1(self.webpackChunkmattermost_webapp=self.webpackChunkmattermost_webapp||[]).push([[729,4331,5660,6676],{61486(e,t,a){"use strict";a.d(t,{N5:()=>d,Qp:()=>c,Qq:()=>l,p$:()=>o,rN:()=>m});var s=a(1418),n=a(87988),i=a(40693),r=a(81444);function l(e){return{type:r.Q3.NEEDS_LOGGED_IN_LIMIT_REACHED_CHECK,data:e}}function o(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,a)=>{let r;try{r=await i.mT.getUsersForReporting(e)}catch(e){return(0,n.UP)(e,t,a),t((0,s.vV)(e)),{error:e}}return{data:r}}}function c(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return async(t,a)=>{let r;try{r=await i.mT.getUserCountForReporting(e)}catch(e){return(0,n.UP)(e,t,a),t((0,s.vV)(e)),{error:e}}return{data:r}}}function m(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return async(t,a)=>{try{await i.mT.startUsersBatchExport(e)}catch(e){return(0,n.UP)(e,t,a),t((0,s.vV)(e)),{error:e}}return{data:!0}
1}}},8401(e,t,a){"use strict";a.r(t),a.d(t,{default:()=>hb});var s=a(37270),n=a(32446),i=a(97282),r=a(28676),l=a(23739),o=a(26366),d=a(72377),c=a(26614),m=a(80635),u=a(14776),g=a(7430),p=a(88563),h=a(61486),f=a(62844),E=(a(43617),a(81975),a(99930),a(29217),a(1419)),M=a.n(E),b=a(16983);const _={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"}},y={[_.ABOUT.EDITION_AND_LICENSE]:[b.A.SYSCONSOLE_READ_ABOUT_EDITION_AND_LICENSE,b.A.SYSCONSOLE_WRITE_ABOUT_EDITION_AND_LICENSE],billing:[b.A.SYSCONSOLE_READ_BILLING,b.A.SYSCONSOLE_WRITE_BILLING],[_.REPORTING.SITE_STATISTICS]:[b.A.SYSCONSOLE_READ_REPORTING_SITE_STATISTICS,b.A.SYSCONSOLE_WRITE_REPORTING_SITE_STATISTICS],[_.REPORTING.TEAM_STATISTICS]:[b.A.SYSCONSOLE_READ_REPORTING_TEAM_STATISTICS,b.A.SYSCONSOLE_WRITE_REPORTING_TEAM_STATISTICS],[_.REPORTING.SERVER_LOGS]:[b.A.SYSCONSOLE_READ_REPORTING_SERVER_LOGS,b.A.SYSCONSOLE_WRITE_REPORTING_SERVER_LOGS],[_.USER_MANAGEMENT.USERS]:[b.A.SYSCONSOLE_READ_USERMANAGEMENT_USERS,b.A.SYSCONSOLE_WRITE_USERMANAGEMENT_USERS],[_.USER_MANAGEMENT.GROUPS]:[b.A.SYSCONSOLE_READ_USERMANAGEMENT_GROUPS,b.A.SYSCONSOLE_WRITE_USERMANAGEMENT_GROUPS],[_.USER_MANAGEMENT.TEAMS]:[b.A.SYSCONSOLE_READ_USERMANAGEMENT_TEAMS,b.A.SYSCONSOLE_WRITE_USERMANAGEMENT_TEAMS],[_.USER_MANAGEMENT.CHANNELS]:[b.A.SYSCONSOLE_READ_USERMANAGEMENT_CHANNELS,b.A.SYSCONSOLE_WRITE_USERMANAGEMENT_CHANNELS],[_.USER_MANAGEMENT.PERMISSIONS]:[b.A.SYSCONSOLE_READ_USERMANAGEMENT_PERMISSIONS,b.A.SYSCONSOLE_WRITE_USERMANAGEMENT_PERMISSIONS],[_.USER_MANAGEMENT.SYSTEM_ROLES]:[b.A.SYSCONSOLE_READ_USERMANAGEMENT_SYSTEM_ROLES,b.A.SYSCONSOLE_WRITE_USERMANAGEMENT_SYSTEM_ROLES],[_.SYSTEM_ATTRIBUTES.USER_ATTRIBUTES]:[b.A.SYSCONSOLE_READ_USERMANAGEMENT_USERS,b.A.SYSCONSOLE_WRITE_USERMANAGEMENT_USERS],[_.SYSTEM_ATTRIBUTES.ATTRIBUTE_BASED_ACCESS_CONTROL]:[b.A.SYSCONSOLE_READ_USERMANAGEMENT_SYSTEM_ROLES,b.A.SYSCONSOLE_WRITE_USERMANAGEMENT_SYSTEM_ROLES],[_.SITE.CUSTOMIZATION]:[b.A.SYSCONSOLE_READ_SITE_CUSTOMIZATION,b.A.SYSCONSOLE_WRITE_SITE_CUSTOMIZATION],[_.SITE.LOCALIZATION]:[b.A.SYSCONSOLE_READ_SITE_LOCALIZATION,b.A.SYSCONSOLE_WRITE_SITE_LOCALIZATION],[_.SITE.USERS_AND_TEAMS]:[b.A.SYSCONSOLE_READ_SITE_USERS_AND_TEAMS,b.A.SYSCONSOLE_WRITE_SITE_USERS_AND_TEAMS],[_.SITE.NOTIFICATIONS]:[b.A.SYSCONSOLE_READ_SITE_NOTIFICATIONS,b.A.SYSCONSOLE_WRITE_SITE_NOTIFICATIONS],[_.SITE.ANNOUNCEMENT_BANNER]:[b.A.SYSCONSOLE_READ_SITE_ANNOUNCEMENT_BANNER,b.A.SYSCONSOLE_WRITE_SITE_ANNOUNCEMENT_BANNER],[_.SITE.EMOJI]:[b.A.SYSCONSOLE_READ_SITE_EMOJI,b.A.SYSCONSOLE_WRITE_SITE_EMOJI],[_.SITE.POSTS]:[b.A.SYSCONSOLE_READ_SITE_POSTS,b.A.SYSCONSOLE_WRITE_SITE_POSTS],[_.SITE.FILE_SHARING_AND_DOWNLOADS]:[b.A.SYSCONSOLE_READ_SITE_FILE_SHARING_AND_DOWNLOADS,b.A.SYSCONSOLE_WRITE_SITE_FILE_SHARING_AND_DOWNLOADS],[_.SITE.PUBLIC_LINKS]:[b.A.SYSCONSOLE_READ_SITE_PUBLIC_LINKS,b.A.SYSCONSOLE_WRITE_SITE_PUBLIC_LINKS],[_.SITE.NOTICES]:[b.A.SYSCONSOLE_READ_SITE_NOTICES,b.A.SYSCONSOLE_WRITE_SITE_NOTICES],[_.SITE.IP_FILTERING]:[b.A.SYSCONSOLE_READ_SITE_IP_FILTERS,b.A.SYSCONSOLE_WRITE_SITE_IP_FILTERS],[_.ENVIRONMENT.WEB_SERVER]:[b.A.SYSCONSOLE_READ_ENVIRONMENT_WEB_SERVER,b.A.SYSCONSOLE_WRITE_ENVIRONMENT_WEB_SERVER],[_.ENVIRONMENT.DATABASE]:[b.A.SYSCONSOLE_READ_ENVIRONMENT_DATABASE,b.A.SYSCONSOLE_WRITE_ENVIRONMENT_DATABASE],[_.ENVIRONMENT.ELASTICSEARCH]:[b.A.SYSCONSOLE_READ_ENVIRONMENT_ELASTICSEARCH,b.A.SYSCONSOLE_WRITE_ENVIRONMENT_ELASTICSEARCH],[_.ENVIRONMENT.FILE_STORAGE]:[b.A.SYSCONSOLE_READ_ENVIRONMENT_FILE_STORAGE,b.A.SYSCONSOLE_WRITE_ENVIRONMENT_FILE_STORAGE],[_.ENVIRONMENT.IMAGE_PROXY]:[b.A.SYSCONSOLE_READ_ENVIRONMENT_IMAGE_PROXY,b.A.SYSCONSOLE_WRITE_ENVIRONMENT_IMAGE_PROXY],[_.ENVIRONMENT.SMTP]:[b.A.SYSCONSOLE_READ_ENVIRONMENT_SMTP,b.A.SYSCONSOLE_WRITE_ENVIRONMENT_SMTP],[_.ENVIRONMENT.PUSH_NOTIFICATION_SERVER]:[b.A.SYSCONSOLE_READ_ENVIRONMENT_PUSH_NOTIFICATION_SERVER,b.A.SYSCONSOLE_WRITE_ENVIRONMENT_PUSH_NOTIFICATION_SERVER],[_.ENVIRONMENT.HIGH_AVAILABILITY]:[b.A.SYSCONSOLE_READ_ENVIRONMENT_HIGH_AVAILABILITY,b.A.SYSCONSOLE_WRITE_ENVIRONMENT_HIGH_AVAILABILITY],[_.ENVIRONMENT.RATE_LIMITING]:[b.A.SYSCONSOLE_READ_ENVIRONMENT_RATE_LIMITING,b.A.SYSCONSOLE_WRITE_ENVIRONMENT_RATE_LIMITING],[_.ENVIRONMENT.LOGGING]:[b.A.SYSCONSOLE_READ_ENVIRONMENT_LOGGING,b.A.SYSCONSOLE_WRITE_ENVIRONMENT_LOGGING],[_.ENVIRONMENT.SESSION_LENGTHS]:[b.A.SYSCONSOLE_READ_ENVIRONMENT_SESSION_LENGTHS,b.A.SYSCONSOLE_WRITE_ENVIRONMENT_SESSION_LENGTHS],[_.ENVIRONMENT.PERFORMANCE_MONITORING]:[b.A.SYSCONSOLE_READ_ENVIRONMENT_PERFORMANCE_MONITORING,b.A.SYSCONSOLE_WRITE_ENVIRONMENT_PERFORMANCE_MONITORING],[_.ENVIRONMENT.DEVELOPER]:[b.A.SYSCONSOLE_READ_ENVIRONMENT_DEVELOPER,b.A.SYSCONSOLE_WRITE_ENVIRONMENT_DEVELOPER],[_.ENVIRONMENT.MOBILE_SECURITY]:[b.A.SYSCONSOLE_READ_ENVIRONMENT_MOBILE_SECURITY,b.A.SYSCONSOLE_WRITE_ENVIRONMENT_MOBILE_SECURITY],[_.AUTHENTICATION.SIGNUP]:[b.A.SYSCONSOLE_READ_AUTHENTICATION_SIGNUP,b.A.SYSCONSOLE_WRITE_AUTHENTICATION_SIGNUP],[_.AUTHENTICATION.EMAIL]:[b.A.SYSCONSOLE_READ_AUTHENTICATION_EMAIL,b.A.SYSCONSOLE_WRITE_AUTHENTICATION_EMAIL],[_.AUTHENTICATION.PASSWORD]:[b.A.SYSCONSOLE_READ_AUTHENTICATION_PASSWORD,b.A.SYSCONSOLE_WRITE_AUTHENTICATION_PASSWORD],[_.AUTHENTICATION.MFA]:[b.A.SYSCONSOLE_READ_AUTHENTICATION_MFA,b.A.SYSCONSOLE_WRITE_AUTHENTICATION_MFA],[_.AUTHENTICATION.LDAP]:[b.A.SYSCONSOLE_READ_AUTHENTICATION_LDAP,b.A.SYSCONSOLE_WRITE_AUTHENTICATION_LDAP],[_.AUTHENTICATION.SAML]:[b.A.SYSCONSOLE_READ_AUTHENTICATION_SAML,b.A.SYSCONSOLE_WRITE_AUTHENTICATION_SAML],[_.AUTHENTICATION.OPENID]:[b.A.SYSCONSOLE_READ_AUTHENTICATION_OPENID,b.A.SYSCONSOLE_WRITE_AUTHENTICATION_OPENID],[_.AUTHENTICATION.GUEST_ACCESS]:[b.A.SYSCONSOLE_READ_AUTHENTICATION_GUEST_ACCESS,b.A.SYSCONSOLE_WRITE_AUTHENTICATION_GUEST_ACCESS],plugins:[b.A.SYSCONSOLE_READ_PLUGINS,b.A.SYSCONSOLE_WRITE_PLUGINS],[_.INTEGRATIONS.INTEGRATION_MANAGEMENT]:[b.A.SYSCONSOLE_READ_INTEGRATIONS_INTEGRATION_MANAGEMENT,b.A.SYSCONSOLE_WRITE_INTEGRATIONS_INTEGRATION_MANAGEMENT],[_.PRODUCTS.BOARDS]:[b.A.SYSCONSOLE_READ_PRODUCTS_BOARDS,b.A.SYSCONSOLE_WRITE_PRODUCTS_BOARDS],[_.INTEGRATIONS.BOT_ACCOUNTS]:[b.A.SYSCONSOLE_READ_INTEGRATIONS_BOT_ACCOUNTS,b.A.SYSCONSOLE_WRITE_INTEGRATIONS_BOT_ACCOUNTS],[_.INTEGRATIONS.GIF]:[b.A.SYSCONSOLE_READ_INTEGRATIONS_GIF,b.A.SYSCONSOLE_WRITE_INTEGRATIONS_GIF],[_.INTEGRATIONS.CORS]:[b.A.SYSCONSOLE_READ_INTEGRATIONS_CORS,b.A.SYSCONSOLE_WRITE_INTEGRATIONS_CORS],[_.COMPLIANCE.DATA_RETENTION_POLICY]:[b.A.SYSCONSOLE_READ_COMPLIANCE_DATA_RETENTION_POLICY,b.A.SYSCONSOLE_WRITE_COMPLIANCE_DATA_RETENTION_POLICY],[_.COMPLIANCE.COMPLIANCE_EXPORT]:[b.A.SYSCONSOLE_READ_COMPLIANCE_COMPLIANCE_EXPORT,b.A.SYSCONSOLE_WRITE_COMPLIANCE_COMPLIANCE_EXPORT],[_.COMPLIANCE.COMPLIANCE_MONITORING]:[b.A.SYSCONSOLE_READ_COMPLIANCE_COMPLIANCE_MONITORING,b.A.SYSCONSOLE_WRITE_COMPLIANCE_COMPLIANCE_MONITORING],[_.COMPLIANCE.CUSTOM_TERMS_OF_SERVICE]:[b.A.SYSCONSOLE_READ_COMPLIANCE_CUSTOM_TERMS_OF_SERVICE,b.A.SYSCONSOLE_WRITE_COMPLIANCE_CUSTOM_TERMS_OF_SERVICE],[_.EXPERIMENTAL.FEATURES]:[b.A.SYSCONSOLE_READ_EXPERIMENTAL_FEATURES,b.A.SYSCONSOLE_WRITE_EXPERIMENTAL_FEATURES],[_.EXPERIMENTAL.FEATURE_FLAGS]:[b.A.SYSCONSOLE_READ_EXPERIMENTAL_FEATURE_FLAGS,b.A.SYSCONSOLE_WRITE_EXPERIMENTAL_FEATURE_FLAGS],[_.EXPERIMENTAL.BLEVE]:[b.A.SYSCONSOLE_READ_EXPERIMENTAL_BLEVE,b.A.SYSCONSOLE_WRITE_EXPERIMENTAL_BLEVE]};var v=a(8361),S=a(35073),C=(a(26502),a(66184),a(36418)),A=a(14778),T=a(81911),N=a(98449),k=a.n(N),w=a(85406),I=a(40693),R=a(67166),L=a(85873);function x(){return C.createElement("div",{className:"alert alert-warning"},C.createElement(A.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 D(e){let{children:t,helpText:a,inputId:s,label:n,setByEnv:i}=e;return C.createElement("fieldset",{"data-testid":s,id:s,className:"form-group"},C.createElement("legend",{className:"control-label form-legend col-sm-4"},n),C.createElement("div",{className:"col-sm-8"},t,a?C.createElement("div",{"data-testid":s+"help-text",className:"help-text"},a):null,i?C.createElement(x,null):null))}
1const P=R.default.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})),O=e=>{let{id:t,label:a,value:s,onChange:n,trueText:i=C.createElement(A.FormattedMessage,{id:"admin.true",defaultMessage:"True"}),falseText:r=C.createElement(A.FormattedMessage,{id:"admin.false",defaultMessage:"False"}),disabled:l=!1,setByEnv:o,disabledText:d,helpText:c}=e;const m=(0,C.useMemo)((()=>l&&d?C.createElement("div",null,C.createElement("span",{className:"admin-console__disabled-text"},d),c):c),[c,l,d]),u=(0,C.useCallback)((e=>{n(t,"true"===e.target.value)}),[t,n]);return C.createElement(D,{helpText:m,inputId:t,label:a,setByEnv:o},C.createElement(P,{isDisabled:l||o},C.createElement("input",{"data-testid":t+"true",type:"radio",value:"true",id:L.rH(t)+"true",name:t,checked:s,onChange:u,disabled:l||o}),i),C.createElement(P,{isDisabled:l||o},C.createElement("input",{"data-testid":t+"false",type:"radio",value:"false",id:L.rH(t)+"false",name:t,checked:!s,onChange:u,disabled:l||o}),r))},F=C.memo(O);a(93991);var U=a(84295),B=a(26624),H=a(94231);function G(e){const{innerProps:t,children:a}=e;return C.createElement("div",Object.assign({className:"Remove"},t,{onClick:e.onClick}
1),a||C.createElement(H.A,null))}function V(e){const{data:t,innerProps:a,selectProps:s,removeProps:n}=e;return C.createElement("div",Object.assign({className:"ReasonOption"},a),t.label,C.createElement(G,Object.assign({data:t,innerProps:a,selectProps:s},n)))}const z=R.default.h3.withConfig({displayName:"SectionHeading"})(["&&&{margin-bottom:8px;}"]),j=R.default.div.attrs({className:"header"}).withConfig({displayName:"SectionHeader"})(["&&&{padding:24px 32px;","}"],(e=>{let{$borderless:t}=e;return!t&&(0,R.css)(["border-bottom:1px solid var(--center-channel-color-12,rgba(63,67,80,0.12));"])})),W=R.default.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"})),Y=R.default.section.attrs({className:"AdminPanel"}).withConfig({displayName:"AdminSection"})(["&&{overflow:visible;}"]),q=e=>C.createElement("div",{className:"admin-console__wrapper"},C.createElement("div",{className:"admin-console__content"},e.children)),Z=R.default.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,R.css)(["&&{color:#D24B4E;text-decoration:line-through;}"])}),(e=>{let{$strong:t}=e;return t&&(0,R.css)(["&&{font-size:14px;font-style:normal;font-weight:600;}"])})),J=R.default.span.withConfig({displayName:"DangerText"})(["color:#D24B4E;"]),K=(R.default.button.attrs({className:"btn btn-sm btn-transparent"}).withConfig({displayName:"FieldDeleteButton"})(["font-weight:normal;"]),R.default.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 Q(e){let{id:t,onChange:a,value:s,disabled:n=!1}=e;const[i,r]=C.useState(s),l=(0,C.useCallback)((e=>{const s={...i,Reasons:e.map((e=>e.value))};r(s),a(t,s)}),[i,t,a]),o=(0,C.useCallback)((e=>{const s={...i,ReporterCommentRequired:"true"===e.target.value};r(s),a(t,s)}),[i,t,a]),d=(0,C.useCallback)((e=>{const s={...i,ReviewerCommentRequired:"true"===e.target.value};r(s),a(t,s)}),[i,t,a]),c=(0,C.useCallback)((e=>{const s={...i,HideFlaggedContent:"true"===e.target.value};r(s),a(t,s)}),[i,t,a]),m=(0,C.useMemo)((()=>i.Reasons.map((e=>({label:e,value:e})))),[i.Reasons]);return C.createElement(Y,null,C.createElement(j,null,C.createElement("hgroup",null,C.createElement("h1",{className:"content-flagging-section-title"},C.createElement(A.FormattedMessage,{id:"admin.dataSpillage.additionalSettings.title",defaultMessage:"Additional Settings"})),C.createElement("h5",{className:"content-flagging-section-description"},C.createElement(A.FormattedMessage,{id:"admin.dataSpillage.additionalSettings.description",defaultMessage:"Configure how you want the quarantine to behave"})))),C.createElement(W,null,C.createElement("div",{className:"content-flagging-section-setting-wrapper"},C.createElement("div",{className:"content-flagging-section-setting"},C.createElement("div",{className:"setting-title"},C.createElement(A.FormattedMessage,{id:"admin.dataSpillage.additionalSettings.reasonsForFlagging",defaultMessage:"Reasons for quarantine"})),C.createElement("div",{className:"setting-content"},C.createElement(U.A,{className:"contentFlaggingReasons",classNamePrefix:"contentFlaggingReasons_",inputId:"contentFlaggingReasons",isClearable:!1,isMulti:!0,value:m,placeholder:"Type and press Tab to add a reason",onChange:l,isDisabled:n,components:{DropdownIndicator:()=>null,Menu:()=>null,MenuList:()=>null,IndicatorSeparator:()=>null,Input:B.N5,MultiValue:V}}))),C.createElement("div",{className:"content-flagging-section-setting"},C.createElement("div",{className:"setting-title"},C.createElement(A.FormattedMessage,{id:"admin.dataSpillage.additionalSettings.requireReporterComment",defaultMessage:"Require reporters to add comment"})),C.createElement("div",{className:"setting-content"},C.createElement(P,{isDisabled:n},C.createElement("input",{"data-testid":"requireReporterComment_true",id:"requireReporterComment_true",type:"radio",value:"true",checked:i.ReporterCommentRequired,onChange:o,disabled:n}),C.createElement(A.FormattedMessage,{id:"admin.true",defaultMessage:"True"})),C.createElement(P,{isDisabled:n},C.createElement("input",{"data-testid":"requireReporterComment_false",id:"requireReporterComment_false",type:"radio",value:"false",checked:!i.ReporterCommentRequired,onChange:o,disabled:n}),C.createElement(A.FormattedMessage,{id:"admin.false",defaultMessage:"False"})))),C.createElement("div",{className:"content-flagging-section-setting"},C.createElement("div",{className:"setting-title"},C.createElement(A.FormattedMessage,{id:"admin.dataSpillage.additionalSettings.requireReviewerComment",defaultMessage:"Require reviewers to add comment"})),C.createElement("div",{className:"setting-content"},C.createElement(P,{isDisabled:n},C.createElement("input",{"data-testid":"requireReviewerComment_true",id:"requireReviewerComment_true",type:"radio",value:"true",checked:i.ReviewerCommentRequired,onChange:d,disabled:n}),C.createElement(A.FormattedMessage,{id:"admin.true",defaultMessage:"True"})),C.createElement(P,{isDisabled:n},C.createElement("input",{"data-testid":"requireReviewerComment_false",id:"requireReviewerComment_false",type:"radio",value:"false",checked:!i.ReviewerCommentRequired,onChange:d,disabled:n}),C.createElement(A.FormattedMessage,{id:"admin.false",defaultMessage:"False"})))),C.createElement("div",{className:"content-flagging-section-setting"},C.createElement("div",{className:"setting-title"},C.createElement(A.FormattedMessage,{id:"admin.dataSpillage.additionalSettings.hideFlaggedPosts",defaultMessage:"Hide message from channel while it is being reviewed"})),C.createElement("div",{className:"setting-content"},C.createElement(P,{isDisabled:n},C.createElement("input",{"data-testid":"hideFlaggedPosts_true",id:"hideFlaggedPosts_true",type:"radio",value:"true",checked:i.HideFlaggedContent,onChange:c,disabled:n}),C.createElement(A.FormattedMessage,{id:"admin.true",defaultMessage:"True"})),C.createElement(P,{isDisabled:n},C.createElement("input",{"data-testid":"setHideFlaggedPosts_false",id:"setHideFlaggedPosts_false",type:"radio",value:"false",checked:!i.HideFlaggedContent,onChange:c,disabled:n}),C.createElement(A.FormattedMessage,{id:"admin.false",defaultMessage:"False"})))))))}const X=e=>{let{disabled:t=!1,id:a,label:s,defaultChecked:n,setByEnv:i,onChange:r}=e;return C.createElement("div",null,C.createElement("label",{className:"checkbox-inline"},C.createElement("input",{"data-testid":a,type:"checkbox",id:a,name:a,defaultChecked:n,onChange:e=>{r(a,e.target.checked)},disabled:t||i}),s),i?C.createElement(x,null):null)},$=(0,C.memo)(X);var ee=a(84943),te=a(79407),ae=a(85236),se=a(63937);function ne(e){let{teamReviewersSetting:t,onChange:a,disabled:n}=e;const i=(0,A.useIntl)(),r=(0,s.useDispatch)(),[o,d]=(0,C.useState)(0),[c,m]=(0,C.useState)(0),[u,g]=(0,C.useState)(1),[p,h]=(0,C.useState)(100),[f,E]=(0,C.useState)(""),[M,b]=(0,C.useState)([]),_=(0,C.useCallback)(((e,t)=>{const a=10*e+1,s=Math.min(10*(e+1),t);g(a),h(s)}),[]);(0,C.useEffect)((()=>{(async e=>{try{const t=await r((0,l.Fo)(e||"",{page:o,per_page:10}));t&&t.data&&(m(t.data.total_count),t.data.teams.length>0&&b(t.data.teams),_(o,t.data.total_count))}catch(e){console.error(e)}})(f)}),[r,o,_,f]);const y=(0,C.useCallback)((e=>()=>{const s={...t};s[e]||(s[e]={Enabled:!1,ReviewerIds:[]}),s[e]={...s[e],Enabled:!s[e].Enabled||!s[e].Enabled},a(s)}),[a,t]),v=(0,C.useCallback)((e=>s=>{const n={...t};n[e]||(n[e]={Enabled:!1,ReviewerIds:[]}),n[e]={...n[e],ReviewerIds:s},a(n)}),[a,t]),S=(0,C.useMemo)((()=>[{name:i.formatMessage({id:"admin.dataSpillage.reviewerSettings.header.team",defaultMessage:"Team"}),field:"team",fixed:!0},{name:i.formatMessage({id:"admin.dataSpillage.reviewerSettings.header.reviewers",defaultMessage:"Reviewers"}),field:"reviewers",fixed:!0},{name:i.formatMessage({id:"admin.dataSpillage.reviewerSettings.header.enabled",defaultMessage:"Enabled"}),field:"enabled",fixed:!0}]),[i]),T=(0,C.useMemo)((()=>M.map((e=>({cells:{id:e.id,team:C.createElement("div",{className:"TeamReviewers__team"},C.createElement(ae.P,{size:"xxs",url:L.lt(e),content:e.display_name,intl:i}),C.createElement("span",{"data-testid":"teamName",className:"TeamReviewers__team-name"},e.display_name)),reviewers:C.createElement(se.T,{isMulti:!0,id:`team_content_reviewer_${e.id}`,multiSelectInitialValue:t[e.id]?.ReviewerIds||[],multiSelectOnChange:v(e.id),disabled:n}),enabled:C.createElement(te.A,{id:`team_content_reviewer_toggle_${e.id}`,ariaLabel:i.formatMessage({id:"admin.dataSpillage.reviewerSettings.toggle",defaultMessage:"Enable or disable content reviewers for this team"}),size:"btn-md",onToggle:y(e.id),toggled:t[e.id]?.Enabled||!1,disabled:n})}})))),[n,v,y,i,t,M]),N=(0,C.useCallback)((()=>{10*o+10<c&&d((e=>e+1))}),[o,c]),k=(0,C.useCallback)((()=>{o>0&&d((e=>e-1))}),[o]),w=(0,C.useCallback)((e=>{E(e),d(0)}),[]),I=(0,C.useCallback)((()=>{const e={};Object.entries(t).forEach((t=>{let[a,s]=t;e[a]={...s,Enabled:!1}})),a(e)}),[a,t]),R=(0,C.useMemo)((()=>
1C.createElement("div",{className:"TeamReviewers__disable-all"},C.createElement("button",{"data-testid":"disableForAllTeamsButton",className:"btn btn-link icon-close","aria-label":i.formatMessage({id:"admin.dataSpillage.reviewerSettings.disableAll",defaultMessage:"Disable for all teams"}),disabled:n,"aria-disabled":n,onClick:I},i.formatMessage({id:"admin.dataSpillage.reviewerSettings.disableAll",defaultMessage:"Disable for all teams"})))),[n,i,I]);return C.createElement("div",{className:"TeamReviewers"},C.createElement(ee.A,{rows:T,columns:S,startCount:u,endCount:p,loading:!1,nextPage:N,previousPage:k,total:c,onSearch:w,extraComponent:R,term:f,disabled:n}))}function ie(e){let{id:t,onChange:a,value:s,disabled:n=!1}=e;const[i,r]=(0,C.useState)(s),l=(0,C.useCallback)((e=>{const s={...i,CommonReviewers:"true"===e.target.value};r(s),a(t,s)}),[t,a,i]),o=(0,C.useCallback)(((e,s)=>{const n={...i,SystemAdminsAsReviewers:s};r(n),a(t,n)}),[t,a,i]),d=(0,C.useCallback)(((e,s)=>{const n={...i,TeamAdminsAsReviewers:s};r(n),a(t,n)}),[t,a,i]),c=(0,C.useCallback)((e=>{const s={...i,CommonReviewerIds:e};r(s),a(t,s)}),[t,a,i]),m=(0,C.useCallback)((e=>{const s={...i,TeamReviewersSetting:e};r(s),a(t,s)}),[t,a,i]);return C.createElement(Y,null,C.createElement(j,null,C.createElement("hgroup",null,C.createElement("h1",{className:"content-flagging-section-title"},C.createElement(A.FormattedMessage,{id:"admin.dataSpillage.reviewerSettings.title",defaultMessage:"Content Reviewers"})),C.createElement("h5",{className:"content-flagging-section-description"},C.createElement(A.FormattedMessage,{id:"admin.dataSpillage.reviewerSettings.description",defaultMessage:"Define who should review content in your environment"})))),C.createElement(W,null,C.createElement("div",{className:"content-flagging-section-setting-wrapper"},C.createElement("div",{className:"content-flagging-section-setting"},C.createElement("div",{className:"setting-title"},C.createElement(A.FormattedMessage,{id:"admin.dataSpillage.reviewerSettings.sameReviewersForAllTeams",defaultMessage:"Same reviewers for all teams:"})),C.createElement("div",{className:"setting-content"},C.createElement(P,{isDisabled:n},C.createElement("input",{"data-testid":"sameReviewersForAllTeams_true",id:"sameReviewersForAllTeams_true",type:"radio",value:"true",checked:i.CommonReviewers,onChange:l,disabled:n}),C.createElement(A.FormattedMessage,{id:"admin.true",defaultMessage:"True"})),C.createElement(P,{isDisabled:n},C.createElement("input",{"data-testid":"sameReviewersForAllTeams_false",id:"sameReviewersForAllTeams_false",type:"radio",value:"false",checked:!i.CommonReviewers,onChange:l,disabled:n}),C.createElement(A.FormattedMessage,{id:"admin.false",defaultMessage:"False"})))),i.CommonReviewers&&C.createElement("div",{className:"content-flagging-section-setting"},C.createElement("div",{className:"setting-title"},C.createElement(A.FormattedMessage,{id:"admin.dataSpillage.reviewerSettings.commonReviewers",defaultMessage:"Reviewers:"})),C.createElement("div",{className:"setting-content"},C.createElement(se.T,{isMulti:!0,id:"content_reviewers_common_reviewers",multiSelectInitialValue:i.CommonReviewerIds,multiSelectOnChange:c,disabled:n}))),!i.CommonReviewers&&C.createElement("div",{className:"content-flagging-section-setting teamSpecificReviewerSection"},C.createElement("div",{className:"setting-title"},C.createElement(A.FormattedMessage,{id:"admin.dataSpillage.reviewerSettings.perTeamReviewers.title",defaultMessage:"Configure data spillage handling per team"})),C.createElement(ne,{teamReviewersSetting:i.TeamReviewersSetting,onChange:m,disabled:n})),C.createElement("div",{className:"content-flagging-section-setting"},C.createElement("div",{className:"setting-title"},C.createElement(A.FormattedMessage,{id:"admin.dataSpillage.reviewerSettings.additionalReviewers",defaultMessage:"Additional reviewers"})),C.createElement("div",{className:"setting-content-wrapper"},C.createElement("div",{className:"setting-content"},C.createElement($,{id:"notifyOnDismissal_reviewers",label:C.createElement(A.FormattedMessage,{id:"admin.dataSpillage.reviewerSettings.additionalReviewers.systemAdmins",defaultMessage:"System Administrators"}),defaultChecked:i.SystemAdminsAsReviewers,onChange:o,setByEnv:!1,disabled:n}),C.createElement($,{id:"notifyOnDismissal_author",label:C.createElement(A.FormattedMessage,{id:"admin.dataSpillage.reviewerSettings.additionalReviewers.teamAdmins",defaultMessage:"Team Administrators"}),defaultChecked:i.TeamAdminsAsReviewers,onChange:d,setByEnv:!1,disabled:n})),C.createElement("div",{className:"helpText"},C.createElement(A.FormattedMessage,{id:"admin.dataSpillage.reviewerSettings.additionalReviewers.helpText",defaultMessage:"If enabled, system administrators will be sent quarantined posts for review from every team that they are a part of. Team administrators will only be sent quarantined posts for review from their respective teams."})))))))}function re(e){let{id:t,value:a,onChange:s,disabled:n}=e;const[i,r]=(0,C.useState)(a),l=(0,C.useCallback)(((e,a)=>{const[n,l]=e.split("_"),o=n,d=l;if(!o||!d)return;const c={...i};c.EventTargetMapping||(c.EventTargetMapping={flagged:[],assigned:[],removed:[],dismissed:[]}),c.EventTargetMapping[o]||(c.EventTargetMapping[o]=[]),a?c.EventTargetMapping[o].includes(d)||(c.EventTargetMapping={...c.EventTargetMapping,[o]:[...c.EventTargetMapping[o],d]}):c.EventTargetMapping={...c.EventTargetMapping,[o]:c.EventTargetMapping[o].filter((e=>e!==d))},r(c),s(t,c)}),[t,i,s]),o=(0,C.useCallback)(((e,t)=>i&&i.EventTargetMapping&&i.EventTargetMapping[e]?.includes(t)||!1),[i]);return C.createElement(Y,null,C.createElement(j,null,C.createElement("hgroup",null,C.createElement("h1",{className:"content-flagging-section-title"},C.createElement(A.FormattedMessage,{id:"admin.dataSpillage.notificationSettings.title",defaultMessage:"Notification Settings"})),C.createElement("h5",{className:"content-flagging-section-description"},C.createElement(A.FormattedMessage,{id:"admin.dataSpillage.notificationSettings.description",defaultMessage:"Choose who receives notifications from the System bot when content is quarantined and reviewed"}
1)))),C.createElement(W,null,C.createElement("div",{className:"content-flagging-section-setting-wrapper"},C.createElement("div",{className:"content-flagging-section-setting"},C.createElement("div",{className:"setting-title"},C.createElement(A.FormattedMessage,{id:"admin.dataSpillage.notificationSettings.notifyOnFlag",defaultMessage:"Notify when content is quarantined"})),C.createElement("div",{className:"setting-content"},C.createElement($,{id:"flagged_reviewers",label:C.createElement(A.FormattedMessage,{id:"admin.dataSpillage.notificationSettings.reviewers",defaultMessage:"Reviewer(s)"}),defaultChecked:o("flagged","reviewers"),onChange:l,setByEnv:!1,disabled:!0}),C.createElement($,{id:"flagged_author",label:C.createElement(A.FormattedMessage,{id:"admin.dataSpillage.notificationSettings.author",defaultMessage:"Author"}),defaultChecked:o("flagged","author"),onChange:l,setByEnv:!1,disabled:n}))),C.createElement("div",{className:"content-flagging-section-setting"},C.createElement("div",{className:"setting-title"},C.createElement(A.FormattedMessage,{id:"admin.dataSpillage.notificationSettings.notifyOnReviewerAssigned",defaultMessage:"Notify when a reviewer is assigned"})),C.createElement("div",{className:"setting-content"},C.createElement($,{id:"assigned_reviewers",label:C.createElement(A.FormattedMessage,{id:"admin.dataSpillage.notificationSettings.reviewers",defaultMessage:"Reviewer(s)"}),defaultChecked:o("assigned","reviewers"),onChange:l,setByEnv:!1,disabled:n}
1))),C.createElement("div",{className:"content-flagging-section-setting"},C.createElement("div",{className:"setting-title"},C.createElement(A.FormattedMessage,{id:"admin.dataSpillage.notificationSettings.notifyOnRemoval",defaultMessage:"Notify when content is removed"})),C.createElement("div",{className:"setting-content"},C.createElement($,{id:"removed_reviewers",label:C.createElement(A.FormattedMessage,{id:"admin.dataSpillage.notificationSettings.reviewers",defaultMessage:"Reviewer(s)"}),defaultChecked:o("removed","reviewers"),onChange:l,setByEnv:!1,disabled:n}),C.createElement($,{id:"removed_author",label:C.createElement(A.FormattedMessage,{id:"admin.dataSpillage.notificationSettings.author",defaultMessage:"Author"}),defaultChecked:o("removed","author"),onChange:l,setByEnv:!1,disabled:n}),C.createElement($,{id:"removed_reporter",label:C.createElement(A.FormattedMessage,{id:"admin.dataSpillage.notificationSettings.reporter",defaultMessage:"Reporter"}),defaultChecked:o("removed","reporter"),onChange:l,setByEnv:!1,disabled:n}
1))),C.createElement("div",{className:"content-flagging-section-setting"},C.createElement("div",{className:"setting-title"},C.createElement(A.FormattedMessage,{id:"admin.dataSpillage.notificationSettings.notifyOnDismissal",defaultMessage:"Notify when quarantine is dismissed"})),C.createElement("div",{className:"setting-content"},C.createElement($,{id:"dismissed_reviewers",label:C.createElement(A.FormattedMessage,{id:"admin.dataSpillage.notificationSettings.reviewers",defaultMessage:"Reviewer(s)"}),defaultChecked:o("dismissed","reviewers"),onChange:l,setByEnv:!1,disabled:n}),C.createElement($,{id:"dismissed_author",label:C.createElement(A.FormattedMessage,{id:"admin.dataSpillage.notificationSettings.author",defaultMessage:"Author"}),defaultChecked:o("dismissed","author"),onChange:l,setByEnv:!1,disabled:n}),C.createElement($,{id:"dismissed_reporter",label:C.createElement(A.FormattedMessage,{id:"admin.dataSpillage.notificationSettings.reporter",defaultMessage:"Reporter"}),defaultChecked:o("dismissed","reporter"),onChange:l,setByEnv:!1,disabled:n}))))))}a(76281);var le=a(20463);const oe=e=>{let{blocked:t,actions:a,onClick:s,onCancelConfirmed:n,...i}=e;const r=(0,C.useCallback)((e=>{s?.(e),t&&(e.preventDefault(),a.deferNavigation((()=>{n()})))}),[a,t,s,n]);return C.createElement("button",Object.assign({},i,{onClick:r}))},de=C.memo(oe),ce=(0,s.connect)((function(e){return{blocked:(0,le.$S)(e)}}),(function(e){return{actions:(0,n.zH)({deferNavigation:p.Ld},e)}}))(de);var me=a(87295),ue=a(14309);const ge=e=>{let{saveNeeded:t,onClick:a,saving:s,serverError:n,cancelLink:i,onCancel:r,isDisabled:l,savingMessage:o}=e;const{formatMessage:d}=(0,A.useIntl)();return C.createElement("div",{className:"admin-console-save"},C.createElement(ue.A,{saving:s,disabled:l||!t,onClick:a,savingMessage:o??d({id:"admin.team_channel_settings.saving",defaultMessage:"Saving Config..."})}),i?C.createElement(me.A,{id:"cancelButtonSettings",className:"btn btn-quaternary",to:i},C.createElement(A.FormattedMessage,{id:"admin.team_channel_settings.cancel",defaultMessage:"Cancel"})):r&&C.createElement(ce,{id:"cancelButtonSettings",className:"btn btn-quaternary",onCancelConfirmed:r},C.createElement(A.FormattedMessage,{id:"admin.team_channel_settings.cancel",defaultMessage:"Cancel"})),C.createElement("div",{className:"error-message"},n))};var pe=a(71633),he=a.n(pe);const fe=e=>C.createElement("div",{className:he()("admin-console__header",{"with-back":e.withBackButton})},e.children),Ee=(0,A.defineMessages)({title:{id:"admin.dataSpillage.title",defaultMessage:"Data Spillage Handling"},enableTitle:{id:"admin.data_spillage.enableTitle",defaultMessage:"Enable Data Spillage Handling"},legacyTitle:{id:"admin.contentFlagging.title",defaultMessage:"Content Flagging"}}),Me=[Ee.title,Ee.enableTitle,Ee.legacyTitle];a(35214);var be=a(65976),_e=a(45955),ye=a(27840),ve=a(81444),Se=(a(15724),a(73242),a(37227),a(94985),a(80569),a(61295));const Ce=e=>{let{children:t,setByEnv:a,helpText:s,inputId:n,label:i}=e;return C.createElement("div",{"data-testid":n,className:"form-group"},C.createElement("label",{className:"control-label col-sm-4",htmlFor:n},i),C.createElement("div",{className:"col-sm-8"},t,C.createElement("div",{"data-testid":n+"help-text",className:"help-text"},s),a?C.createElement(x,null):null))},Ae=C.memo(Ce),Te=e=>{const t=(0,C.useCallback)((t=>{e.onChange&&e.onChange(e.id,t)}),[e.id,e.onChange]);return C.createElement(Ae,{label:e.label,helpText:e.helpText,inputId:e.id},C.createElement(Se.A,{id:e.id,value:e.value,onChange:t,isDisabled:e.disabled}))},Ne=C.memo(Te),ke=e=>{let{id:t,values:a,label:s,value:n,onChange:i,disabled:r=!1,setByEnv:l,helpText:o}=e;const d=(0,C.useCallback)((e=>{i(t,e.target.value)}),[i,t]),c=(0,C.useMemo)((()=>a.map((e=>{let{value:t,text:a}=e;return C.createElement("option",{value:t,key:t},a)}))),[a]);return C.createElement(Ae,{label:s,inputId:t,helpText:o,setByEnv:l},C.createElement("select",{"data-testid":t+"dropdown",className:"form-control",id:t,value:n,onChange:d,disabled:r||l},c))},we=(0,C.memo)(ke),Ie=e=>{let{id:t,error:a,label:s,helpText:n,disabled:i,fileType:r,uploadingText:l,onSubmit:o}=e;const[d,c]=(0,C.useState)(null),[m,u]=(0,C.useState)(!1),[g,p]=(0,C.useState)(!1),h=(0,C.useRef)(null),f=(0,C.useRef)(!1);(0,C.useEffect)((()=>(f.current=!0,()=>{f.current=!1})),[]);const E=(0,C.useCallback)((()=>{h.current?.click()}),[]),M=(0,C.useCallback)((()=>{const e=h.current?.files;e&&e.length>0&&(p(!0),c(e[0].name))}),[]),b=(0,C.useCallback)((e=>{e.preventDefault(),u(!0);const a=h.current?.files?.[0];a&&o(t,a,(e=>{f.current&&(u(!1),e&&h.current&&L.K2(h.current))}))}),[t,o]);let _,y;return a&&(_=C.createElement("div",{className:"form-group has-error"},C.createElement("label",{className:"control-label"},a))),y=d||C.createElement(A.FormattedMessage,{id:"admin.file_upload.noFile",defaultMessage:"No file uploaded"}),C.createElement(Ae,{label:s,helpText:n,inputId:t},C.createElement("div",null,C.createElement("div",{className:"file__upload"},C.createElement("button",{type:"button",className:"btn btn-tertiary",disabled:i,onClick:E}
1,C.createElement(A.FormattedMessage,{id:"admin.file_upload.chooseFile",defaultMessage:"Choose File"})),C.createElement("input",{ref:h,type:"file",disabled:i,accept:r,onChange:M})),C.createElement("button",{type:"button",className:"btn btn-primary",disabled:!g,onClick:b},m&&C.createElement(C.Fragment,null,C.createElement("span",{className:"glyphicon glyphicon-refresh glyphicon-refresh-animate"}),l),!m&&C.createElement(A.FormattedMessage,{id:"admin.file_upload.uploadFile",defaultMessage:"Upload"})),C.createElement("div",{className:"help-text m-0"},y),_))},Re=(0,C.memo)(Ie);var Le=a(9241);const xe=e=>{let{id:t,label:a,helpText:s,setByEnv:n,placeholder:i,value:r,disabledText:l,regenerateHelpText:o,onChange:d,disabled:c=!1,regenerateText:m=C.createElement(A.FormattedMessage,{id:"admin.regenerate",defaultMessage:"Regenerate"})}=e;const u=(0,C.useCallback)((e=>{e.preventDefault();const a=Le.randomBytes(256).toString("base64").substring(0,32);d(t,a.replaceAll("+","-").replaceAll("/","_"))}),[t,d]);let g=null;c&&l&&(g=C.createElement("div",{className:"admin-console__disabled-text"},l));let p=null;o&&(p=C.createElement("div",{className:"help-text"},o));let h=r;return h||(h=C.createElement("span",{className:"placeholder-text"},i)),C.createElement("div",{className:"form-group"},C.createElement("label",{className:"control-label col-sm-4",htmlFor:t},a),C.createElement("div",{className:"col-sm-8"},C.createElement("div",{className:"form-control disabled",id:t},h),g,C.createElement("div",{className:"help-text"},s),C.createElement("div",{className:"help-text"},C.createElement("button",{type:"button",className:"btn btn-tertiary",onClick:u,disabled:c||n},m)),p,n?C.createElement(x,null):null))},De=(0,C.memo)(xe);var Pe=a(81149);function Oe(e){return e.entities.jobs.jobsByTypeList}var Fe=a(5955),Ue=a(57891);const Be=e=>{const{job:t,disabled:a,onClick:s}=e,n=(0,A.useIntl)();let i=null;const r=(0,C.useCallback)((e=>{e.preventDefault(),s(t.id)}),[s,t.id]);return a||t.status!==ve.Im.PENDING&&t.status!==ve.Im.IN_PROGRESS||(i=C.createElement("span",{onClick:r,className:"JobCancelButton",title:n.formatMessage({id:"admin.jobTable.cancelButton",defaultMessage:"Cancel"})},"Ã")),i},He=C.memo(Be);var Ge=a(17518);const Ve=C.memo((e=>{let{job:t}=e;return"true"===t.data?.is_downloadable&&parseInt(t.data?.messages_exported,10)>0&&t.data?.export_type!==ve.Fu.EXPORT_FORMAT_GLOBALRELAY?C.createElement(Ge.A,{key:t.id,location:"job_download_link",href:`${I.mT.getJobsRoute()}/${t.id}/download`,className:"JobDownloadLink"},C.createElement(A.FormattedMessage,{id:"admin.jobTable.downloadLink",defaultMessage:"Download"})):C.createElement(C.Fragment,null,"--")})),ze=C.memo((e=>{let{status:t,millis:a}=e;if(0===a||t===ve.Im.PENDING||t===ve.Im.IN_PROGRESS||t===ve.Im.CANCEL_REQUESTED)return C.createElement("span",{className:"JobFinishAt whitespace--nowrap"},"--");const s=new Date(a);return C.createElement("span",{className:"JobFinishAt whitespace--nowrap"},C.createElement(A.FormattedDate,{value:s,day:"2-digit",month:"short",year:"numeric"})," - ",C.createElement(A.FormattedTime,{value:s,hour:"2-digit",minute:"2-digit"}))})),je=C.memo((e=>{let{job:t}=e;const a=(0,A.useIntl)();let s=t.last_activity_at-t.start_at;if(t.status===ve.Im.IN_PROGRESS){const e=Date.now()-t.start_at;e>s&&(s=e)}let n=a.formatMessage({id:"admin.jobTable.lastActivityAt",defaultMessage:"Last Activity: "})+"--";t.last_activity_at>0&&(n=a.formatMessage({id:"admin.jobTable.lastActivityAt",defaultMessage:"Last Activity: "})+a.formatDate(new Date(t.last_activity_at),{year:"numeric",month:"short",day:"2-digit"})+" - "+a.formatTime(new Date(t.last_activity_at),{hour:"2-digit",minute:"2-digit",second:"2-digit"}));const i=Math.round(s/1e3),r=Math.round(s/6e4);return s<=0||t.status===ve.Im.CANCELED?C.createElement("span",{className:"JobRunLength whitespace--nowrap"},"--"):i<=120?C.createElement("span",{className:"JobRunLength whitespace--nowrap",title:n},i+a.formatMessage({id:"admin.jobTable.runLengthSeconds",defaultMessage:" seconds"})):C.createElement("span",{className:"JobRunLength whitespace--nowrap",title:n},r+a.formatMessage({id:"admin.jobTable.runLengthMinutes",defaultMessage:" minutes"}))})),We=C.memo((e=>{let{job:t}=e;const a=(0,A.useIntl)();return t.status===ve.Im.PENDING?C.createElement("span",{className:"JobStatus status-icon-warning",title:a.formatMessage({id:"admin.jobTable.jobId",defaultMessage:"Job ID: "})+t.id},C.createElement(A.FormattedMessage,{id:"admin.jobTable.statusPending",defaultMessage:"Pending"})):t.status===ve.Im.IN_PROGRESS?C.createElement("span",{className:"JobStatus status-icon-warning",title:a.formatMessage({id:"admin.jobTable.jobId",defaultMessage:"Job ID: "})+t.id},C.createElement(A.FormattedMessage,{id:"admin.jobTable.statusInProgress",defaultMessage:"In Progress"})):t.status===ve.Im.SUCCESS?C.createElement("span",{className:"JobStatus status-icon-success",title:a.formatMessage({id:"admin.jobTable.jobId",defaultMessage:"Job ID: "})+t.id},C.createElement(A.FormattedMessage,{id:"admin.jobTable.statusSuccess",defaultMessage:"Success"})):t.status===ve.Im.WARNING?C.createElement("span",{className:"JobStatus status-icon-warning",title:a.formatMessage({id:"admin.jobTable.jobId",defaultMessage:"Job ID: "})+t.id},C.createElement(A.FormattedMessage,{id:"admin.jobTable.statusWarning",defaultMessage:"Warning"})):t.status===ve.Im.ERROR?C.createElement("span",{className:"JobStatus status-icon-error",title:a.formatMessage({id:"admin.jobTable.jobId",defaultMessage:"Job ID: "})+t.id},C.createElement(A.FormattedMessage,{id:"admin.jobTable.statusError",defaultMessage:"Error"})):t.status===ve.Im.CANCEL_REQUESTED?C.createElement("span",{className:"JobStatus status-icon-warning",title:a.formatMessage({id:"admin.jobTable.jobId",defaultMessage:"Job ID: "})+t.id},C.createElement(A.FormattedMessage,{id:"admin.jobTable.statusCanceling",defaultMessage:"Canceling..."})):t.status===ve.Im.CANCELED?C.createElement("span",{className:"JobStatus status-icon-error",title:a.formatMessage({id:"admin.jobTable.jobId",defaultMessage:"Job ID: "})+t.id},C.createElement(A.FormattedMessage,{id:"admin.jobTable.statusCanceled",defaultMessage:"Canceled"})):C.createElement("span",{className:"JobStatus",title:a.formatMessage({id:"admin.jobTable.jobId",defaultMessage:"Job ID: "})+t.id},t.status)}));
1class Ye extends C.PureComponent{interval=null;constructor(e){super(e),this.state={currentPage:0}}componentDidMount(){this.props.actions.getJobsByType(this.props.jobType),this.interval=setInterval(this.reload,15e3)}componentWillUnmount(){this.interval&&clearInterval(this.interval)}getExtraInfoText=e=>e.data&&e.data.error&&e.data.error.length>0?C.createElement("span",{title:e.data.error},e.data.error):this.props.getExtraInfoText?this.props.getExtraInfoText(e):C.createElement("span",null);reload=()=>{this.props.actions.getJobsByType(this.props.jobType)};handleCancelJob=async e=>{await this.props.actions.cancelJob(e),this.reload()};handleCreateJob=async e=>{e.preventDefault();const t={type:this.props.jobType,data:this.props.jobData};await this.props.actions.createJob(t),this.reload()};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})}};handlePrevPage=()=>{this.state.currentPage>0&&this.setState({currentPage:this.state.currentPage-1})};render(){const{perPage:e}=this.props,{currentPage:t}=this.state;let a=this.props.jobs,s=0,n=this.props.jobs.length;e&&(s=t*e,n=Math.min(s+e,this.props.jobs.length),a=this.props.jobs.slice(s,n));const i=this.props.jobType===ve.jj.MESSAGE_EXPORT&&this.props.downloadExportResults,r=this.props.jobType===ve.jj.ACCESS_CONTROL_SYNC,l=a.map((e=>C.createElement("tr",{key:e.id,onClick:this.props.onRowClick?()=>this.props.onRowClick(e):void 0,className:this.props.onRowClick?"clickable":""},C.createElement("td",{className:"whitespace--nowrap"},C.createElement(We,{job:e})),C.createElement("td",{className:"whitespace--nowrap"},C.createElement(ze,{status:e.status,millis:e.last_activity_at})),C.createElement("td",{className:"whitespace--nowrap"},C.createElement(je,{job:e})),i&&C.createElement("td",{className:"whitespace--nowrap"},C.createElement(Ve,{job:e})),!r&&C.createElement("td",null,this.getExtraInfoText(e)),C.createElement("td",{className:"cancel-button-field whitespace--nowrap text-center"},C.createElement(He,{job:e,onClick:this.handleCancelJob,disabled:this.props.disabled})))));return C.createElement("div",{className:he()("JobTable","job-table__panel",this.props.className)},C.createElement("div",{className:"job-table__create-button"},!this.props.hideJobCreateButton&&C.createElement("div",null,C.createElement("button",{type:"button",className:"btn btn-tertiary",onClick:this.handleCreateJob,disabled:this.props.disabled},this.props.createJobButtonText)),C.createElement("div",{className:"help-text"},this.props.createJobHelpText)),!this.props.hideTable&&C.createElement("div",{className:"job-table__table"},C.createElement("table",{className:"table","data-testid":"jobTable"},C.createElement("thead",null,C.createElement("tr",null,C.createElement("th",
1null,C.createElement(A.FormattedMessage,{id:"admin.jobTable.headerStatus",defaultMessage:"Status"})),C.createElement("th",null,C.createElement(A.FormattedMessage,{id:"admin.jobTable.headerFinishAt",defaultMessage:"Finish Time"})),C.createElement("th",null,C.createElement(A.FormattedMessage,{id:"admin.jobTable.headerRunTime",defaultMessage:"Run Time"})),i&&C.createElement("th",null,C.createElement(A.FormattedMessage,{id:"admin.jobTable.headerFiles",defaultMessage:"Files"})),!r&&C.createElement("th",{colSpan:3},C.createElement(A.FormattedMessage,{id:"admin.jobTable.headerExtraInfo",defaultMessage:"Details"})),C.createElement("th",{className:"cancel-button-field"}))),C.createElement("tbody",null,l)),e&&this.props.jobs.length>0&&(()=>{let t=null;if(e){const e=s<=0,a=n>=this.props.jobs.length;t=C.createElement("div",{className:"DataGrid_footer"},C.createElement("div",{className:"DataGrid_cell"},C.createElement(A.FormattedMessage,{id:"admin.data_grid.paginatorCount",defaultMessage:"{startCount, number} - {endCount, number} of {total, number}",values:{startCount:s+1,endCount:n,total:this.props.jobs.length}}),C.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"},C.createElement(Ue.A,null)),C.createElement("button",{type:"button",className:"btn btn-quaternary btn-icon btn-sm next "+(a?"disabled":""),onClick:this.handleNextPage,disabled:a,"aria-label":"Next page"},C.createElement(Fe.A,null))))}return t})()))}}const qe=Ye,Ze=(0,s.connect)((function(e,t){return{jobs:(a=t.jobType,(0,v.Mz)("makeGetJobsByType",Oe,(e=>e[a]||[])))(e),downloadExportResults:(0,d.zj)(e).MessageExportSettings?.DownloadExportResults};var a}),(function(e){return{actions:(0,n.zH)({getJobsByType:Pe.mF,createJob:Pe._S,cancelJob:Pe.mh},e)}}))(qe);var Je=a(7481),Ke=a(85990);const Qe=e=>{let{text:t}=e;return t},Xe=e=>{let{id:t,values:a,label:s,selected:n,onChange:i,disabled:r=!1,setByEnv:l,helpText:o,noOptionsMessage:d}=e;const[c,m]=(0,C.useState)(!1),u=(0,C.useCallback)((e=>{const a=e?e.map((e=>e.value)):[];i(t,a),m(!1)}),[t,i]),g=(0,C.useMemo)((()=>a.reduce(((e,t)=>(e[t.value]=t,e)),{})),[a]),p=(0,C.useMemo)((()=>n.reduce(((e,t)=>{const a=g[t];return a&&e.push(a),e}),[])),[n,g]);return C.createElement(Ae,{label:s,inputId:t,helpText:o,setByEnv:l},C.createElement(Je.Ay,{id:t,isMulti:!0,getOptionLabel:Qe,options:a,delimiter:",",isClearable:!1,isDisabled:r||l,noOptionsMessage:()=>d,onChange:u,value:p}),C.createElement(Ke.Ay,{error:c}))},$e=C.memo(Xe),et=e=>{let{id:t,label:a,values:s,value:n,setByEnv:i,disabled:r=!1,helpText:l,onChange:o}=e;const d=e=>{o(t,e.target.value)},c=r||i,m=s.map((e=>{let{value:a,text:s}=e;const i=he()("RadioSetting__label",{"RadioSetting__label--disabled":c});return C.createElement("label",{key:a,className:i},C.createElement("input",{type:"radio",className:"RadioSetting__input",value:a,name:t,checked:a===n,onChange:d,disabled:c}),C.createElement("span",{className:"RadioSetting__text"},s))}));return C.createElement(Ae,{label:a,inputId:t,helpText:l,setByEnv:i},m)},tt=C.memo(et),at=e=>{let{id:t,label:a,helpText:s,removeButtonText:n,removingText:i,fileName:r,onSubmit:l,disabled:o}=e;const[d,c]=(0,C.useState)(!1),m=(0,C.useCallback)((e=>{e.preventDefault(),c(!0),l(t,(()=>{c(!1)}))}),[t,l]);return C.createElement(Ae,{label:a,helpText:s,inputId:t},C.createElement("div",null,C.createElement("div",{className:"help-text remove-filename"},r),C.createElement("button",{type:"button",className:"btn btn-danger",onClick:m,disabled:o},d&&C.createElement(C.Fragment,null,C.createElement("span",{className:"glyphicon glyphicon-refresh glyphicon-refresh-animate"}),i),!d&&n)))},st=(0,C.memo)(at);function nt(){const{formatMessage:e}=(0,A.useIntl)();return C.createElement("i",{className:"fa fa-check",title:e({id:"generic_icons.success",defaultMessage:"Success Icon"})})}var it=a(87064),rt=a(55476);class lt extends C.PureComponent{static defaultProps={disabled:!1,saveNeeded:!1,showSuccessMessage:!0,includeDetailedError:!1,successMessage:(0,A.defineMessage)({id:"admin.requestButton.requestSuccess",defaultMessage:"Test Successful"}),errorMessage:(0,A.defineMessage)({id:"admin.requestButton.requestFailure",defaultMessage:"Test Failure: {error}"})};constructor(e){super(e),this.state={busy:!1,fail:"",success:!1}}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(
1)};render(){let e=null;if(this.state.fail){const t="string"==typeof this.props.errorMessage?this.props.errorMessage:C.createElement(A.FormattedMessage,Object.assign({},this.props.errorMessage,{values:{error:this.state.fail}}));e=C.createElement("div",null,C.createElement("div",{className:"alert alert-warning"},C.createElement(it.A,null),t))}else if(this.state.success&&this.props.showSuccessMessage){const t="string"==typeof this.props.successMessage?this.props.successMessage:C.createElement(A.FormattedMessage,this.props.successMessage);e=C.createElement("div",null,C.createElement("div",{className:"alert alert-success"},C.createElement(nt,null),t))}let t="col-sm-8",a=null;return this.props.label?a=C.createElement("label",{className:"control-label col-sm-4"},this.props.label):t=this.props.flushLeft?"col-sm-12":"col-sm-offset-4 "+t,C.createElement("div",{className:"form-group",id:this.props.id},a,C.createElement("div",{className:t},C.createElement("div",null,C.createElement("button",{type:"button",className:`btn btn-${this.props.buttonType||"tertiary"}`,onClick:this.handleRequest,disabled:this.props.disabled},C.createElement(rt.A,{loading:this.state.busy,text:this.props.loadingText||C.createElement(A.FormattedMessage,{id:"admin.requestButton.loading",defaultMessage:"Loading..."})},this.props.buttonText)),this.props.alternativeActionElement,e),C.createElement("div",{className:"help-text"},this.props.helpText)))}}var ot=a(83185),dt=a.n(ot),ct=a(71127);const mt=e=>{let{isMarkdown:t,text:a,textValues:s}=e;if("string"==typeof a){if(t){const e=dt()(a,{breaks:!0,sanitize:!0,renderer:new ct.B});return C.createElement("span",{dangerouslySetInnerHTML:{__html:e}})}return C.createElement("span",null,a)}return"id"in a?t?C.createElement(ct.A,Object.assign({},a,{values:s})):C.createElement(A.FormattedMessage,Object.assign({},a,{values:s})):a},ut=e=>{let{show:t=!0,container:a=!0,header:s,title:n,subtitle:i,children:r}=e,l="",o="";if(!t)return null;a&&(l="admin-console__wrapper",o="admin-console__content");let d=null;!s&&n&&(d=C.createElement("div",{className:"section-title"},"string"==typeof n?n:C.createElement(A.FormattedMessage,n)));let c=null;!s&&i&&(c=C.createElement("div",{className:"section-subtitle"},i));let m=null;return(d||c)&&(m=C.createElement("div",{className:"section-header"},d,c)),C.createElement("div",{className:l},C.createElement("div",{className:o},s?C.createElement("h4",null,s):null,m,r))},gt=(0,C.memo)(ut);var pt=a(49195);const ht=e=>{const{setByEnv:t,disabled:a,footer:s,placeholder:n,...i}=e,r=a||t,l=(0,A.useIntl)();let o;return n&&(o="string"==typeof n?n:l.formatMessage(n)),C.createElement(pt.A,Object.assign({},i,{labelClassName:"col-sm-4",inputClassName:"col-sm-8",disabled:r,footer:t?C.createElement(x,null):s,placeholder:o}))};var ft=a(65357),Et=a(86791),Mt=a(32269),bt=a(4565);const _t=(0,s.connect)(null,(function(e){return{actions:(0,n.zH)({autocompleteUsers:ft.X4},e)}}))((e=>{let{id:t,label:a,placeholder:s,helpText:n,value:i,onChange:r,disabled:l,actions:o}=e;const d=(0,C.useRef)([new Et.A(o.autocompleteUsers)]),c=(0,C.useCallback)((e=>{r(t,e.target.value)}),[r,t]),m=(0,C.useCallback)((e=>{r(t,e.username)}),[t,r]);return C.createElement(Ae,{label:a,helpText:n,inputId:t},C.createElement("div",{className:"admin-setting-user__dropdown"},C.createElement(Mt.A,{id:"admin_user_setting_"+t,className:"form-control",placeholder:s,value:i,onChange:c,onItemSelected:m,listComponent:bt.A,listPosition:"bottom",providers:d.current,disabled:l,requiredCharacters:0,openOnFocus:!0})))}));var yt=a(18515);const vt=e=>{switch(e){case ve.gS.EnterpriseAdvanced:return"Enterprise Advanced";case ve.gS.Enterprise:return"Enterprise";case ve.gS.Professional:return"Professional";case ve.gS.Starter:return"Starter";default:return e}},St=e=>{let{sku:t}=e;return C.createElement("span",{className:"LicenseSkuBadge","aria-label":`Requires ${vt(t)} license`},C.createElement("i",{className:"icon icon-key-variant"}),vt(t))},Ct=e=>{let{title:t,description:a,licenseSku:s,children:n}=e;return C.createElement("div",{className:"AdminSectionPanel"},(t||a)&&C.createElement("div",{className:"AdminSectionPanel__header"},t&&C.createElement("h3",{className:"AdminSectionPanel__title"},"string"==typeof t?t:C.createElement(A.FormattedMessage,t),s&&C.createElement(St,{sku:s}
1)),a&&C.createElement("div",{className:"AdminSectionPanel__description"},"string"==typeof a?a:C.createElement(A.FormattedMessage,a))),C.createElement("div",{className:"AdminSectionPanel__body"},n))};var At=a(67416);const Tt=e=>{let{className:t="",size:a="xs",variant:s="info"}=e;const{formatMessage:n}=(0,A.useIntl)();return C.createElement(At.A,{uppercase:!0,size:a,variant:s,className:he()("BetaTag",t),text:n({id:"tag.default.beta",defaultMessage:"BETA"})})};var Nt=a(87131),kt=a(90478);a(71336),a(41558),a(17663),a(68630),a(79645),a(89858),a(8620);const wt="true",It="false",Rt={enableTeamCreation:{[wt]:[{roleName:"system_user",permission:o.xB.CREATE_TEAM,shouldHave:!0}],[It]:[{roleName:"system_user",permission:o.xB.CREATE_TEAM,shouldHave:!1}]},editOthersPosts:{[wt]:[{roleName:"system_admin",permission:o.xB.EDIT_OTHERS_POSTS,shouldHave:!0},{roleName:"team_admin",permission:o.xB.EDIT_OTHERS_POSTS,shouldHave:!0}],[It]:[{roleName:"team_admin",permission:o.xB.EDIT_OTHERS_POSTS,shouldHave:!1},{roleName:"system_admin",permission:o.xB.EDIT_OTHERS_POSTS,shouldHave:!0}]},enableOnlyAdminIntegrations:{[wt]:[{roleName:"team_user",permission:o.xB.MANAGE_INCOMING_WEBHOOKS,shouldHave:!1},{roleName:"team_user",permission:o.xB.MANAGE_OUTGOING_WEBHOOKS,shouldHave:!1},{roleName:"team_user",permission:o.xB.MANAGE_SLASH_COMMANDS,shouldHave:!1},{roleName:"system_user",permission:o.xB.MANAGE_OAUTH,shouldHave:!1}],[It]:[{roleName:"team_user",permission:o.xB.MANAGE_INCOMING_WEBHOOKS,shouldHave:!0},{roleName:"team_user",permission:o.xB.MANAGE_OUTGOING_WEBHOOKS,shouldHave:!0},{roleName:"team_user",permission:o.xB.MANAGE_SLASH_COMMANDS,shouldHave:!0},{roleName:"system_user",permission:o.xB.MANAGE_OAUTH,shouldHave:!0}]}};const Lt=[];function xt(e){return e.replace(/\./g,"+")}function Dt(e){return e.replace(/\+/g,".")}function Pt(e,t,a){if(e)return"string"==typeof e?e:t.formatMessage(e,a)}class Ot extends C.PureComponent{constructor(e){super(e),this.isPlugin=!1,this.saveActions=[],this.buildSettingFunctions={[ve.Ay.SettingsTypes.TYPE_TEXT]:this.buildTextSetting,[ve.Ay.SettingsTypes.TYPE_LONG_TEXT]:this.buildTextSetting,[ve.Ay.SettingsTypes.TYPE_NUMBER]:this.buildTextSetting,[ve.Ay.SettingsTypes.TYPE_COLOR]:this.buildColorSetting,[ve.Ay.SettingsTypes.TYPE_BOOL]:this.buildBoolSetting,[ve.Ay.SettingsTypes.TYPE_PERMISSION]:this.buildPermissionSetting,[ve.Ay.SettingsTypes.TYPE_DROPDOWN]:this.buildDropdownSetting,[ve.Ay.SettingsTypes.TYPE_RADIO]:this.buildRadioSetting,[ve.Ay.SettingsTypes.TYPE_BANNER]:this.buildBannerSetting,[ve.Ay.SettingsTypes.TYPE_GENERATED]:this.buildGeneratedSetting,[ve.Ay.SettingsTypes.TYPE_USERNAME]:this.buildUsernameSetting,[ve.Ay.SettingsTypes.TYPE_BUTTON]:this.buildButtonSetting,[ve.Ay.SettingsTypes.TYPE_LANGUAGE]:this.buildLanguageSetting,[ve.Ay.SettingsTypes.TYPE_JOBSTABLE]:this.buildJobsTableSetting,[ve.Ay.SettingsTypes.TYPE_FILE_UPLOAD]:this.buildFileUploadSetting,[ve.Ay.SettingsTypes.TYPE_ROLES]:this.buildRolesSetting,[ve.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?{prevSchemaId:e.schema.id,saveNeeded:!1,saving:!1,serverError:null,...Ot.getStateFromConfig(e.config,e.schema,e.roles)}:null}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 a=JSON.parse(JSON.stringify(t));return function(e){const t=function(){let e=[];return Object.values(Rt).forEach((t=>{Object.values(t).forEach((t=>{const a=t.map((e=>e.roleName));e=e.concat(a)}))})),[...new Set(e.map((e=>e)))]}();Object.keys(e).forEach((a=>{t.includes(a)||delete e[a]}))}(a),Object.keys(Rt).forEach((t=>{const s=e[t];s&&function(e,t,a){const s=Rt[e][t];if(void 0===s)throw new Error(`Value '${t}' not present in MAPPING for key '${e}'.`);
1s.forEach((e=>{const t=a[e.roleName];e.shouldHave?function(e,t){t.permissions.includes(e)||t.permissions.push(e)}(e.permission,t):function(e,t){const a=t.permissions.indexOf(e);-1!==a&&t.permissions.splice(a,1)}(e.permission,t)}))}(t,s,a)})),Object.entries(a).forEach((e=>{let[s,n]=e;const i=new Set(t[s].permissions),r=new Set(n.permissions),l=[...r].filter((e=>!i.has(e)));i.size===r.size&&0===l.length&&delete a[s]})),a}((this.props.schema&&"settings"in this.props.schema&&this.props.schema.settings||[]).reduce(((e,t)=>(t.type===ve.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(Ot.getStateFromConfig):(this.setState({saving:!1,saveNeeded:!1,serverError:null}),this.props.setNavigationBlocked(!1))}};static getStateFromConfig(e,t,a){let s={};if(t){let n=[];"settings"in t&&t.settings?n=t.settings:"sections"in t&&t.sections&&t.sections.map((e=>e.settings)).forEach((e=>n.push(...e)));const i=e=>{const t=[];return e.forEach((e=>{t.push(e),e.type===ve.Ay.SettingsTypes.TYPE_EXPANDABLE_SETTING&&e.settings&&t.push(...i(e.settings))})),t};i(n).forEach((t=>{if(!t.key)return;if(t.type===ve.Ay.SettingsTypes.TYPE_PERMISSION){try{s[t.key]="true"===function(e,t){for(const a of function*(e,t){for(const a in e)if(Object.hasOwn(e,a)){const s=e[a].some((e=>{const a=t[e.roleName];return e.shouldHave&&!a.permissions.includes(e.permission)||!e.shouldHave&&a.permissions.includes(e.permission)}));yield{value:a,allConditionsAreMet:!s}}}(Rt[e],t))if(a.allConditionsAreMet)return a.value;throw new Error(`No matching mapping value found for key '${e}' with the given roles.`)}(t.permissions_mapping_name,a)}catch(e){s[t.key]=!1}return}let n=Ot.getConfigValue(e,t.key);"onConfigLoad"in t&&t.onConfigLoad&&(n=t.onConfigLoad(n,e)),s[t.key]=n??void 0})),"onConfigLoad"in t&&t.onConfigLoad&&(s={...s,...t.onConfigLoad(e)})}return s}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}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&&C.createElement(Tt,{variant:"default",size:"sm",className:"admin-header-beta-badge"});return"string"==typeof e?C.createElement(fe,null,e,t):C.createElement(fe,null,C.createElement(A.FormattedMessage,e),t)};renderBanner=e=>this.props.schema&&"label"in e?"string"==typeof e.label?e.label_markdown?C.createElement(yt.A,{message:e.label}):C.createElement("span",null,e.label):C.createElement(A.FormattedMessage,Object.assign({},e.label,{values:e.label_values})):C.createElement("span",null,"");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);isHidden=e=>"function"==typeof e.isHidden?e.isHidden(this.props.config,this.state,this.props.license):Boolean(e.isHidden);isSectionHidden=e=>"function"==typeof e.isHidden?e.isHidden(this.props.config,this.state,this.props.license):Boolean(e.isHidden);buildButtonSetting=e=>{if(!this.props.schema||"button"!==e.type)return C.createElement(C.Fragment,null);const t=Ut(e,this.props.schema,this.isDisabled(e)),a=Ft(e,this.props.schema,this.props.intl);return C.createElement(lt,{id:e.key,key:this.props.schema.id+"_text_"+e.key,requestAction:(t,a)=>{if(!e.skipSaveNeeded&&!1!==this.state.saveNeeded)return void a({message:this.props.intl.formatMessage({id:"admin_settings.save_unsaved_changes",defaultMessage:"Please save unsaved changes first"})});let s="ServiceSettings.SiteURL";e.sourceUrlKey&&(s=e.sourceUrlKey),e.action((e=>{const a=new Map(Object.entries(e));(this.props.schema&&"settings"in this.props.schema&&this.props.schema.settings||[]).forEac
1h((e=>{if(e.key&&"setFromMetadataField"in e&&e.setFromMetadataField){const t=a.get(e.setFromMetadataField);e.type===ve.Ay.SettingsTypes.TYPE_TEXT?this.setState({[e.key]:t,[`${e.key}Error`]:null}):e.type===ve.Ay.SettingsTypes.TYPE_FILE_UPLOAD&&this.buildSettingFunctions[e.type]&&this.buildSettingFunctions[e.type](e)?.props.onSetData&&this.buildSettingFunctions[e.type](e)?.props.onSetData(e.key,t)}})),t&&"function"==typeof t&&t()}),a,this.state[s])},helpText:t,loadingText:Pt(e.loading,this.props.intl),buttonText:C.createElement("span",null,a),showSuccessMessage:Boolean(e.success_message),includeDetailedError:!0,disabled:this.isDisabled(e),errorMessage:e.error_message,successMessage:e.success_message})};buildTextSetting=e=>{if(!this.props.schema||!e.key||"text"!==e.type&&"longtext"!==e.type&&"number"!==e.type)return C.createElement(C.Fragment,null);let t="text";e.type===ve.Ay.SettingsTypes.TYPE_NUMBER?t="number":e.type===ve.Ay.SettingsTypes.TYPE_LONG_TEXT&&(t="textarea");let a="";a=e.dynamic_value?e.dynamic_value(a,this.props.config,this.state):e.multiple?this.state[e.key]?this.state[e.key].join(","):"":this.state[e.key]??("function"==typeof e.default?e.default(a,this.props.config,this.state):e.default||"");let s=null;if(e.validate){const t=e.validate(a).error(this.props.intl);s=t?C.createElement(Ke.Ay,{type:"backstrage",error:t}):s}const n=Ft(e,this.props.schema,this.props.intl),i=Ut(e,this.props.schema,this.isDisabled(e));return C.createElement(ht,{key:this.props.schema.id+"_text_"+e.key,id:e.key,multiple:e.multiple,type:t,label:n,helpText:i,placeholder:Pt(e.placeholder,this.props.intl,e.placeholder_values),value:a,disabled:this.isDisabled(e),setByEnv:Bt(e.key,this.props.environmentConfig),onChange:this.handleChange,maxLength:e.max_length,footer:s})};buildColorSetting=e=>{if(!this.props.schema||!e.key||"color"!==e.type)return C.createElement(C.Fragment,null);const t=Ft(e,this.props.schema,this.props.intl),a=Ut(e,this.props.schema,this.isDisabled(e));return C.createElement(Ne,{key:this.props.schema.id+"_text_"+e.key,id:e.key,label:t,helpText:a,value:this.state[e.key]||"",disabled:this.isDisabled(e),onChange:this.handleChange})};buildBoolSetting=e=>{if(!this.props.schema||!e.key||"bool"!==e.type)return C.createElement(C.Fragment,null);const t=Ft(e,this.props.schema,this.props.intl),a=Ut(e,this.props.schema,this.isDisabled(e));return C.createElement(F,{key:this.props.schema.id+"_bool_"+e.key,id:e.key,label:t,helpText:a,value:this.state[e.key]??(e.default||!1),disabled:this.isDisabled(e),setByEnv:Bt(e.key,this.props.environmentConfig),onChange:this.handleChange})};buildPermissionSetting=e=>{if(!this.props.schema||!e.key||"permission"!==e.type)return C.createElement(C.Fragment,null);const t=Ft(e,this.props.schema,this.props.intl),a=Ut(e,this.props.schema,this.isDisabled(e));return C.createElement(F,{key:this.props.schema.id+"_bool_"+e.key,id:e.key,label:t,helpText:a,value:this.state[e.key]||!1,disabled:this.isDisabled(e),setByEnv:Bt(e.key,this.props.environmentConfig),onChange:this.handlePermissionChange})};buildDropdownSetting=e=>{if(!this.props.schema||!e.key||"dropdown"!==e.type)return C.createElement(C.Fragment,null);const t=[];e.options.forEach((e=>{e.isHidden&&("function"!=typeof e.isHidden||e.isHidden(this.props.config,this.state,this.props.license,this.props.enterpriseReady))||t.push(e)}));const a=t.map((e=>({value:e.value,text:Pt(e.display_name,this.props.intl)}))),s=this.state[e.key]??a[0].value;let n=null;for(const e of t)if(e.help_text&&e.value===s){n=e;break}let i=!1;e.isHelpHidden&&(i="function"==typeof e.isHelpHidden?e.isHelpHidden(this.props.config,this.state,this.props.license,this.props.enterpriseReady):e.isHelpHidden);const r=Ft(e,this.props.schema,this.props.intl);let l="";return i||(l=n?Ht(n):Ut(e,this.props.schema,this.isDisabled(e))),C.createElement(we,{key:this.props.schema.id+"_dropdown_"+e.key,id:e.key,values:a,label:r,helpText:l,value:s,disabled:this.isDisabled(e),setByEnv:Bt(e.key,this.props.environmentConfig),onChange:this.handleChange})};buildRolesSetting=e=>{if(!this.props.schema||!e.key||"roles"!==e.type)return C.createElement(C.Fragment,null);const{roles:t}=this.props,a=Object.keys(t).map((e=>({value:t[e].name,text:t[e].name}))),s=Ft(e,this.props.schema,this.props.intl),n=Ut(e,this.props.schema,this.isDisabled(e));if(e.multiple){const t="object"==typeof e.no_result?C.createElement(A.FormattedMessage,e.no_result):e.no_result;return C.createElement($e,{key:this.props.schema.id+"_language_"+e.key,id:e.key,values:a,label:s,helpText:n,selected:this.state[e.key]||Lt,disabled:this.isDisabled(e),setByEnv:Bt(e.key,this.props.environmentConfig),onChange:this.handleChange,noOptionsMessage:t})}return C.createElement(we,{key:this.props.schema.id+"_language_"+e.key,id:e.key,values:a,label:s,helpText:n,value:this.state[e.key]??a[0].value,disabled:this.isDisabled(e),setByEnv:Bt(e.key,this.props.environmentConfig),onChange:this.handleChange})};buildLanguageSetting=e=>{if(!this.props.schema||!e.key||"language"!==e.type)return C.createElement(C.Fragment,null);const t=kt.No(),a=[];for(const e of Object.values(t))a.push({value:e.value,text:e.name,order:e.order});a.sort(((e,t)=>e.order-t.order));const s=Ft(e,this.props.schema,this.props.intl),n=Ut(e,this.props.schema,this.isDisabled(e));return e.multiple?C.createElement($e,{key:this.props.schema.id+"_language_"+e.key,id:e.key,label:s,values:a,helpText:n,selected:this.state[e.key]&&this.state[e.key].split(",")||[],disabled:this.isDisabled(e),setByEnv:Bt(e.key,this.props.environmentConfig),onChange:(e,t)=>
1this.handleChange(e,t.join(",")),noOptionsMessage:Pt(e.no_result,this.props.intl)}):C.createElement(we,{key:this.props.schema.id+"_language_"+e.key,id:e.key,label:s,values:a,helpText:n,value:this.state[e.key]??a[0].value,disabled:this.isDisabled(e),setByEnv:Bt(e.key,this.props.environmentConfig),onChange:this.handleChange})};buildRadioSetting=e=>{if(!this.props.schema||!e.key||"radio"!==e.type)return C.createElement(C.Fragment,null);const t=(e.options||[]).map((e=>({value:e.value,text:Pt(e.display_name,this.props.intl)}))),a=t.find((t=>t.value===e.default))?.value||t[0].value,s=Ft(e,this.props.schema,this.props.intl),n=Ut(e,this.props.schema,this.isDisabled(e));return C.createElement(tt,{key:this.props.schema.id+"_radio_"+e.key,id:e.key,values:t,label:s,helpText:n,value:this.state[e.key]??a,disabled:this.isDisabled(e),setByEnv:Bt(e.key,this.props.environmentConfig),onChange:this.handleChange})};buildBannerSetting=e=>!this.props.schema||"banner"!==e.type||this.isDisabled(e)?C.createElement(C.Fragment,null):C.createElement("div",{className:"banner "+e.banner_type,key:this.props.schema.id+"_bool_"+e.key},C.createElement("div",{className:"banner__content"},C.createElement("span",null,"warning"===e.banner_type?C.createElement(it.A,{additionalClassName:"banner__icon"}):null,this.renderBanner(e))));buildGeneratedSetting=e=>{if(!this.props.schema||!e.key||"generated"!==e.type)return C.createElement(C.Fragment,null);const t=Ft(e,this.props.schema,this.props.intl),a=Ut(e,this.props.schema,this.isDisabled(e));return C.createElement(De,{key:this.props.schema.id+"_generated_"+e.key,id:e.key,label:t,helpText:a,regenerateHelpText:e.regenerate_help_text,placeholder:Pt(e.placeholder,this.props.intl),value:this.state[e.key]??(e.default||""),disabled:this.isDisabled(e),setByEnv:Bt(e.key,this.props.environmentConfig),onChange:this.handleGeneratedChange})};handleGeneratedChange=(e,t)=>
1{this.handleChange(e,t.replace(/\+/g,"-").replace(/\//g,"_"))};handleChange=(()=>{var e=this;return function(t,a){let s=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=arguments.length>3&&void 0!==arguments[3]&&arguments[3],i=arguments.length>4&&void 0!==arguments[4]&&arguments[4],r="permissions"===e.state.saveNeeded?"both":"config";const l="true"===e.props.license.Cloud&&"starter"===e.props.license.SkuShortName;"openidType"===t&&"openid"===a&&l&&(r=!1);const o=!1===i?e.state.clientWarning:i;let d=s?t:e.state.confirmNeededId;t!==e.state.confirmNeededId||s||(d=""),e.setState({saveNeeded:r,confirmNeededId:d,clientWarning:o,[t]:a}),n&&e.doSubmit(Ot.getStateFromConfig),e.props.setNavigationBlocked(!0)}})();handlePermissionChange=(e,t)=>{let a="permissions";"config"===this.state.saveNeeded&&(a="both"),this.setState({saveNeeded:a,[e]:t}),this.props.setNavigationBlocked(!0)};buildUsernameSetting=e=>{if(!this.props.schema||!e.key||e.type!==ve.Ay.SettingsTypes.TYPE_USERNAME)return C.createElement(C.Fragment,null);const t=Ft(e,this.props.schema,this.props.intl),a=Ut(e,this.props.schema,this.isDisabled(e));return C.createElement(_t,{key:this.props.schema.id+"_userautocomplete_"+e.key,id:e.key,label:t,helpText:a,placeholder:e.placeholder,value:this.state[e.key]??(e.default||""),disabled:this.isDisabled(e),onChange:this.handleChange})};buildJobsTableSetting=e=>{if(!this.props.schema||"jobstable"!==e.type)return C.createElement(C.Fragment,null);const t=Ut(e,this.props.schema,this.isDisabled(e));return C.createElement(Ze,{key:this.props.schema.id+"_jobstable_"+e.key,jobType:e.job_type,getExtraInfoText:e.render_job,disabled:this.isDisabled(e),createJobButtonText:Pt(e.label,this.props.intl),createJobHelpText:t})};buildFileUploadSetting=e=>{if(!this.props.schema||"fileupload"!==e.type||!e.key)return C.createElement(C.Fragment,null);if(this.state[e.key]){const t=(t,a)=>{e.remove_action((()=>{this.handleChange(e.key,""),this.setState({[e.key]:null,[`${e.key}Error`]:null})}),(t=>{a(),this.setState({[e.key]:null,[`${e.key}Error`]:t.message})}))},a=Ft(e,this.props.schema,this.props.intl),s=Ut(e,this.props.schema,this.isDisabled(e));return C.createElement(st,{id:this.props.schema.id,key:this.props.schema.id+"_fileupload_"+e.key,label:a,helpText:s,removeButtonText:Pt(e.remove_button_text,this.props.intl),removingText:Pt(e.removing_text,this.props.intl),fileName:this.state[e.key],onSubmit:t,disabled:this.isDisabled(e),setByEnv:Bt(e.key,this.props.environmentConfig)})}const t=Ft(e,this.props.schema,this.props.intl),a=Ut(e,this.props.schema,this.isDisabled(e));return C.createElement(Re,{id:e.key,key:this.props.schema.id+"_fileupload_"+e.key,label:t,helpText:a,uploadingText:Pt(e.uploading_text,this.props.intl),disabled:this.isDisabled(e),fileType:e.fileType,onSubmit:(t,a,s)=>{e.upload_action(a,(a=>{this.handleChange(t,a),this.setState({[e.key]:a,[`${e.key}Error`]:null}),s&&"function"==typeof s&&s()}),(e=>{s&&"function"==typeof s&&s(e.message)}))},error:this.state.idpCertificateFileError})};buildCustomSetting=e=>{if(!this.props.schema||"custom"!==e.type)return C.createElement(C.Fragment,null);const t=Ft(e,this.props.schema,this.props.intl),a=Ut(e,this.props.schema,this.isDisabled(e)),s=e.component,n=C.createElement(s,{key:this.props.schema.id+"_custom_"+e.key,id:e.key,label:t,helpText:a,value:this.state[e.key],disabled:this.isDisabled(e),config:this.props.config,license:this.props.license,setByEnv:Bt(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?C.createElement(Ae,{label:t,inputId:e.key,helpText:a},n):n};unRegisterSaveAction=e=>{const t=this.saveActions.indexOf(e);this.saveActions.splice(t,1)};registerSaveAction=e=>{this.saveActions.push(e)};setSaveNeeded=()=>{this.setState({saveNeeded:"config"}),this.props.setNavigationBlocked(!0)};renderSettings=()=>{const e=this.props.schema;if(!e)return null;if("settings"in e&&e.settings){const t=[];let a,s;
1return e.settings&&e.settings.forEach((e=>{this.buildSettingFunctions[e.type]&&!this.isHidden(e)&&t.push(this.buildSettingFunctions[e.type](e))})),e.header&&(a=C.createElement("div",{className:"banner"},C.createElement(mt,{text:e.header,isMarkdown:!0}))),e.footer&&(s=C.createElement("div",{className:"banner"},C.createElement(mt,{text:e.footer,isMarkdown:!0}))),C.createElement(gt,{container:!1},a,t,s)}if("sections"in e&&e.sections){const t=[];return e.sections.forEach((e=>{if(this.isSectionHidden(e))return;const a=[];if(e.settings&&e.settings.forEach((e=>{this.buildSettingFunctions[e.type]&&!this.isHidden(e)&&a.push(this.buildSettingFunctions[e.type](e))})),e.component){const s=e.component;return void t.push(C.createElement(s,Object.assign({settingsList:a,key:e.key,sectionTitle:e.title,sectionDescription:e.description},e.componentProps)))}let s,n;e.header&&(s=C.createElement("div",{className:"banner"},C.createElement(mt,{text:e.header,isMarkdown:!0}))),e.footer&&(n=C.createElement("div",{className:"banner"},C.createElement(mt,{text:e.footer,isMarkdown:!0}))),e.key.startsWith("PluginSettings.PluginStates")&&e.key.endsWith("Enable.Section")?t.push(C.createElement(gt,{container:!1,key:e.key},s,a,n)):e.description||e.license_sku?t.push(C.createElement(Ct,{key:e.key,title:e.title,description:e.description,licenseSku:e.license_sku},s,a,n)):t.push(C.createElement("div",{className:"config-section",key:e.key},C.createElement(gt,{show:!0,title:e.title,subtitle:e.subtitle},C.createElement("div",{className:"section-body"},s,a,n))))}
1)),C.createElement("div",null,t)}return null};doSubmit=async e=>{if(!this.props.schema)return;let t=JSON.parse(JSON.stringify(this.props.config));t=Vt(t,this.state,this.props.schema,this.isDisabled);const{error:a}=await this.props.patchConfig(t);a?this.setState({serverError:a.message,serverErrorId:a.id}):(this.setState({serverError:null,serverErrirId:null}),this.setState(e(t,this.props.schema)));const s=[];for(const e of this.saveActions)s.push(e());const n=await Promise.all(s).then((e=>e.some((e=>e.error&&e.error.message))));this.state.serverError||n?this.setState({saving:!1}):(this.setState({saving:!1,saveNeeded:!1,confirmNeededId:"",showConfirmId:"",clientWarning:""}),this.props.setNavigationBlocked(!1))};cancelSubmit=()=>{this.setState({showConfirmId:""})};static getConfigValue(e,t){return t.split(".").reduce(((e,t)=>e?e[Dt(t)]:null),e)}isSetByEnv=e=>Boolean(Ot.getConfigValue(this.props.environmentConfig,e));hybridSchemaAndComponent=()=>{const e=this.props.schema;if(e&&"component"in e&&e.component){const t=e.component;return C.createElement(t,Object.assign({},this.props,{disabled:this.props.isDisabled}))}return null};canSave=()=>{if(!this.props.schema||!("settings"in this.props.schema)||!this.props.schema.settings)return!0;for(const e of this.props.schema.settings)if("key"in e&&e.key&&!Bt(e.key,this.props.environmentConfig)&&"validate"in e&&e.validate){if("isHidden"in e){let t=!1;if(t="function"==typeof e.isHidden?e.isHidden?.(this.props.config,this.state,this.props.license,this.props.enterpriseReady,this.props.consoleAccess,this.props.cloud,this.props.isCurrentUserSystemAdmin):Boolean(e.isHidden),t)continue}if(!e.validate(this.state[e.key]).isValid())return!1}return!0};render=()=>{const e=this.props.schema;if(e&&"component"in e&&e.component&&!("settings"in e)){const t=e.component;return C.createElement(t,Object.assign({},this.props,{disabled:this.props.isDisabled}))}return e?C.createElement("div",{className:"wrapper--fixed "+this.state.customComponentWrapperClass,"data-testid":`sysconsole_section_${this.props.schema.id}`},this.renderTitle(),C.createElement("div",{className:"admin-console__wrapper"},C.createElement("div",{className:"admin-console__content"},C.createElement("form",{className:"form-horizontal",role:"form",onSubmit:this.handleSubmit},this.renderSettings()),this.hybridSchemaAndComponent())),C.createElement("div",{className:"admin-console-save"},C.createElement(ue.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..."})}),C.createElement(Nt.A,{title:this.state?.serverError??""},C.createElement("div",{className:"error-message","data-testid":"errorMessage"},C.createElement(Ke.Ay,{iconClassName:"fa-exclamation-triangle",textClassName:"has-warning",error:this.state.clientWarning}),C.createElement(Ke.Ay,{error:this.state.serverError}))))):C.createElement("div",{className:"wrapper--fixed"},C.createElement(fe,null,C.createElement(A.FormattedMessage,{id:"error.plugin_not_found.title",defaultMessage:"Plugin Not Found"})),C.createElement("div",{className:"admin-console__wrapper"},C.createElement("div",{className:"admin-console__content"},C.createElement("p",null,C.createElement(A.FormattedMessage,{id:"error.plugin_not_found.desc",defaultMessage:"The plugin you are looking for does not exist."})),C.createElement(T.Link,{to:"plugin_management"},C.createElement(A.FormattedMessage,{id:"admin.plugin.backToPlugins",defaultMessage:"Go back to the Plugins"})))))}}const Ft=(e,t,a)=>t&&e.label?"string"==typeof e.label?e.label:a.formatMessage(e.label):"",Ut=(e,t,a)=>{if(!t||"banner"===e.type||!e.help_text)return C.createElement("span",null,"");let s,n,i;return"disabled_help_text"in e&&e.disabled_help_text&&a?(s=e.disabled_help_text,n=e.disabled_help_text_markdown,i=e.disabled_help_text_values):(s=e.help_text,n=e.help_text_markdown,i=e.help_text_values),C.createElement(mt,{isMarkdown:n,text:s,textValues:i})},Bt=(e,t)=>
1Boolean(Ot.getConfigValue(t,e)),Ht=e=>e.help_text?C.createElement(mt,{isMarkdown:e.help_text_markdown,text:e.help_text,textValues:e.help_text_values}):C.createElement("span",null,""),Gt=(e,t,a)=>{!function e(t,s){const n=Dt(s[0]);1===s.length?t[n]=a:(null==t[n]&&(t[n]={}),e(t[n],s.slice(1)))}(e,t.split("."))},Vt=(e,t,a,s)=>{if(a){let n=[];"settings"in a&&a.settings?n=a.settings:"sections"in a&&a.sections&&a.sections.map((e=>e.settings)).forEach((e=>n.push(...e)));const i=e=>{const t=[];return e.forEach((e=>{t.push(e),e.type===ve.Ay.SettingsTypes.TYPE_EXPANDABLE_SETTING&&e.settings&&t.push(...i(e.settings))})),t};if(i(n).forEach((a=>{if(!a.key)return;if(a.type===ve.Ay.SettingsTypes.TYPE_PERMISSION)return void Gt(e,a.key,null);let n=((e,t,a,s)=>(e.type!==ve.Ay.SettingsTypes.TYPE_BOOL||!s(e))&&(e.key?e.type===ve.Ay.SettingsTypes.TYPE_TEXT&&e.dynamic_value?e.dynamic_value(t[e.key],a,t):t[e.key]:void 0))(a,t,e,s);const i=Ot.getConfigValue(e,a.key);"onConfigSave"in a&&a.onConfigSave&&(n=a.onConfigSave(n,i)),Gt(e,a.key,n)})),"onConfigSave"in a&&a.onConfigSave)return a.onConfigSave(e)}return e},zt=(0,A.injectIntl)(Ot),jt=zt;function Wt(e){return{type:"bool",key:"PluginSettings.PluginStates."+xt(e.id)+".Enable",label:(0,A.defineMessage)({id:"admin.plugin.enable_plugin",defaultMessage:"Enable Plugin: "}),help_text:(0,A.defineMessage)({id:"admin.plugin.enable_plugin.help",defaultMessage:"When true, this plugin is enabled."})}}var Yt=a(3289),qt=a(52231);class Zt{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 Jt=e=>(t,a,s,n,i,r,l)=>"function"==typeof e?!e(t,a,s,n,i,r,l):!e,Kt=function(){for(var e=arguments.length,t=new Array(e),a=0;a<e;a++)t[a]=arguments[a];return(e,a,s,n,i,r,l)=>{for(const o of t)if("function"==typeof o?!o(e,a,s,n,i,r,l):!o)return!1;return!0}},Qt=function(){for(var e=arguments.length,t=new Array(e),a=0;a<e;a++)t[a]=arguments[a];return(e,a,s,n,i,r,l)=>{for(const o of t)if("function"==typeof o?o(e,a,s,n,i,r,l):o)return!0;return!1}},Xt=(e,t)=>(a,s)=>s[e].match(t),$t=(e,t)=>(a,s)=>s[e]===t,ea=e=>(t,a)=>Boolean(a[e]),ta=e=>(t,a)=>!a[e],aa=(e,t)=>a=>Boolean(a[e]?.[t]),sa=(e,t)=>a=>!a[e]?.[t],na=(e,t,a)=>s=>Boolean(s[e]?.[t]?.includes(a)),ia=(e,t,a)=>"true"===a?.IsLicensed,ra=(e,t,a)=>Boolean(a?.IsLicensed&&(0,qt.P3)(a)),la=e=>(t,a,s)=>Boolean(s?.IsLicensed&&"true"===s[e]),oa=e=>(t,a,s)=>Boolean(s?.IsLicensed&&s.SkuShortName===e),da=e=>(t,a,s)=>Boolean(s?.IsLicensed&&(0,ve.GZ)(s.SkuShortName)>=(0,ve.GZ)(e)),ca=(e,t,a)=>Boolean(a?.IsLicensed&&(0,qt.P3)(a)&&a.SkuShortName===ve.gS.Starter),ma=e=>(t,a,s,n,i)=>i?.read?.[e],ua=e=>(t,a,s,n,i)=>Object.values(e).some((e=>i?.read?.[e])),ga=e=>(t,a,s,n,i)=>i?.write?.[e],pa=(e,t,a,s,n,i,r)=>Boolean(r),ha=e=>t=>new Zt(Boolean(t),e),fa=(e,t)=>a=>new Zt(a>=e,t),Ea=(e,t,a,s,n,i)=>!!(e.GitLabSettings&&e.GoogleSettings&&e.Office365Settings)&&Qt(Kt(Jt(na("GitLabSettings","Scope","openid")),Qt(aa("GitLabSettings","Id"),aa("GitLabSettings","Secret"))),Kt(Jt(na("GoogleSettings","Scope","openid")),Qt(aa("GoogleSettings","Id"),aa("GoogleSettings","Secret"))),Kt(Jt(na("Office365Settings","Scope","openid")),Qt(aa("Office365Settings","Id"),aa("Office365Settings","Secret"))))(e,t,a,s,n,i),Ma=function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:ve.gS.Professional;return{value:a=>C.createElement(Yt.A,{useModal:!1,blocked:e||!("true"===a?.subscription?.is_free_trial),minimumPlanRequiredForFeature:t,tooltipMessageBlocked:(0,A.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,a)=>e||(0,qt.P3)(t)&&a?.sku===ve.YE.STARTER}};const ba=(0,s.connect)((function(){const e=(0,v.Mz)("makeGetPluginSchema",((e,t)=>e.entities.admin.plugins?.[t]),((e,t)=>vM(e,t)),((e,t)=>SM(e,t)),(e=>(0,be.It)(e)),_e.I0,((e,t,a,s,n)=>{if(!e)return null;
1const i=xt(e.id),r="PluginSettings.PluginStates."+i+".Enable",l=a=>a.map((a=>{const s=a.key.toLowerCase();let l=null,o="",d=a.type,c=a.display_name,m=Qt(ta(r),Jt(ga("plugins")));return t[s]?(l=t[s].component,d=ve.YM.SettingsTypes.TYPE_CUSTOM):a.type===ve.YM.SettingsTypes.TYPE_CUSTOM&&(d=ve.YM.SettingsTypes.TYPE_BANNER,c=(0,A.defineMessage)({id:"admin.plugin.customSetting.pluginDisabledWarning",defaultMessage:"In order to view this setting, enable the plugin and click Save."}),o="warning",m=Qt(ea(r),Jt(ga("plugins")))),{...a,type:d,key:"PluginSettings.Plugins."+i+"."+s,help_text_markdown:!0,label:c,translate:Boolean(e.translate),isDisabled:m,isHidden:()=>n&&"on-prem"===a.hosting||!n&&"cloud"===a.hosting,banner_type:o,component:l,showTitle:!!t[s]&&t[s].options.showTitle}}));let o=[],d=[];if(e.settings_schema&&e.settings_schema.sections?o=(e=>e.map((e=>{const t=e.key.toLowerCase();let s,n=[];return e.custom?a[t]?(s=a[t]?.component,n=l(e.settings)):n=e.fallback?l(e.settings):[{key:t+"disabledWarning",type:ve.YM.SettingsTypes.TYPE_BANNER,label:(0,A.defineMessage)({id:"admin.plugin.customSection.pluginDisabledWarning",defaultMessage:"In order to view this section, enable the plugin and click Save."}),banner_type:"warning"}]:n=l(e.settings),{key:t,title:e.title,subtitle:e.subtitle,settings:n,header:e.header,footer:e.footer,component:s}})))(e.settings_schema.sections):e.settings_schema&&e.settings_schema.settings&&(d=l(e.settings_schema.settings)),e.id!==ye.lR||s){const t=Wt(e),s=e.settings_schema?.sections?.every((e=>e.custom&&!a[e.key.toLowerCase()])),n=e.settings_schema?.sections?.every((e=>e.custom&&e.fallback));if(e.settings_schema&&s&&!n){const a={key:"admin.plugin.customSections.pluginDisabledWarning",type:ve.YM.SettingsTypes.TYPE_BANNER,label:(0,A.defineMessage)({id:"admin.plugin.customSections.pluginDisabledWarning",defaultMessage:"In order to view and configure plugin settings, enable the plugin and click Save."}),banner_type:"warning"};o=[{key:r+".Section",header:e.settings_schema?.header,footer:e.settings_schema?.footer,settings:[t,a]}]}else o.length>0?o.unshift({key:r+".Section",header:e.settings_schema?.header,footer:e.settings_schema?.footer,settings:[t]}):d.unshift(t)}const c=e=>{e.isDisabled?e.isDisabled=Qt(e.isDisabled,Jt(ga("plugins"))):e.isDisabled=Jt(ga("plugins"))};return o.length>0?o.forEach((e=>e.settings.forEach(c))):d.forEach(c),{...e.settings_schema,id:e.id,name:e.name,settings:o.length>0?void 0:d,sections:o.length>0?o:void 0,translate:Boolean(e.translate)}}));return(t,a)=>{const s=a.match.params.plugin_id;return{schema:e(t,s),roles:(0,m.O0)(t)}}}))(jt);var _a=a(21650);const ya=e=>{let{pluginId:t}=e;const a=(0,s.useSelector)((e=>(0,_a.Vk)(e,t)));return C.createElement(A.FormattedMessage,{id:"admin.customProfileAttributes.managedByPlugin",defaultMessage:"This field is managed by the {pluginId} plugin and cannot be edited.",values:{pluginId:a}})},va=e=>{let{attributeKey:t,attributeName:a,attributeType:s}=e;return C.createElement("div",{className:"help-text-container"},"ldap"===t&&C.createElement(A.FormattedMessage,{id:"admin.customProfileAttribDesc.ldap",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:a,strong:e=>C.createElement("strong",null,e)}}),"saml"===t&&C.createElement(A.FormattedMessage,{id:"admin.customProfileAttribDesc.saml",defaultMessage:"(Optional) The attribute in the SAML Assertion that will be used to populate the {name} of users in Mattermost.",values:{name:a}}),"text"!==s&&C.createElement("div",{className:"help-text-warning"},C.createElement(A.FormattedMessage,{id:"admin.customProfileAttribWarning",defaultMessage:"(Warning) This attribute will be converted to a TEXT attribute, if the field is set to synchronize."})))};va.displayName="AttributeHelpText";const Sa=e=>{const t=(0,s.useSelector)((e=>(0,c.A1)(e))),[a,n]=(0,C.useState)(Object.values(t)),[i]=(0,C.useState)(a),r
1="SamlSettings.CustomProfileAttributes"===e.id?"saml":"ldap";return(0,C.useEffect)((()=>{const t=async()=>{try{return await Promise.all(a.map((e=>{const t=i.find((t=>t.id===e.id));if(t?.attrs?.[r]!==e.attrs?.[r]){const t={type:"text",attrs:{...e.attrs}};return I.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,a,i,r]),0===a.length?null:C.createElement("div",{className:"custom-profile-attributes"},C.createElement(gt,{id:e.id,title:(0,A.defineMessage)({id:"admin.customProfileAttributes.title",defaultMessage:"User attributes sync"}),container:!1,subtitle:C.createElement(A.FormattedMessage,{id:"admin.customProfileAttributes.subtitle",defaultMessage:"You can add or remove user attributes by going to the <link>user attributes page</link>.",values:{link:e=>C.createElement(T.Link,{to:"/admin_console/system_attributes/user_attributes"},e)}})},C.createElement("div",{className:"custom-section-body"},a.map((t=>{const a=Boolean(t.attrs?.protected),s=t.attrs?.source_plugin_id;return C.createElement(ht,{key:t.id,id:`custom_profile_attribute-${t.name}`,label:t.name,value:t.attrs?.[r]||"",onChange:(a,s)=>{n((e=>e.map((e=>e.id===t.id?{...e,attrs:{...e.attrs,[r]:s}}:e)))),e.setSaveNeeded()},setByEnv:!1,disabled:e.isDisabled||a,placeholder:{id:"admin.customProfileAttr.placeholder",defaultMessage:'E.g.: "fieldName"'},helpText:a?C.createElement(ya,{pluginId:s}):C.createElement(va,{attributeKey:r,attributeName:t.name,attributeType:t.type})})})))))};var Ca=a(64335),Aa=a(17461),Ta=a(1396);class Na extends C.Component{constructor(e){super(e);const t={saveNeeded:!1,saving:!1,serverError:null};e.config?this.state=Object.assign(this.getStateFromConfig(e.config),t):this.state=t}handleChange=(e,t)=>
1{this.setState((a=>({...a,saveNeeded:!0,[e]:t}))),this.props.setNavigationBlocked&&this.props.setNavigationBlocked(!0)};handleSubmit=e=>{e.preventDefault(),this.doSubmit()};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:a,error:s}=await this.props.patchConfig(t);a?(this.setState(this.getStateFromConfig(a)),this.setState({saveNeeded:!1,saving:!1}),this.props.setNavigationBlocked&&this.props.setNavigationBlocked(!1),e&&e(),this.handleSaved&&this.handleSaved(t)):s&&(this.setState({saving:!1,serverError:s.message,serverErrorId:s.server_error_id}),e&&e(),this.handleSaved&&this.handleSaved(t))}};parseInt=(e,t)=>{const a=parseInt(e,10);return isNaN(a)?t||0:a};parseIntNonNegative=(e,t)=>{const a="string"==typeof e?parseInt(e,10):e;return isNaN(a)||a<0?t||0:a};parseIntZeroOrMin=(()=>function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;const a="string"==typeof e?parseInt(e,10):e;return isNaN(a)||a<0?0:a>0&&a<t?t:a})();parseIntNonZero=(()=>function(e,t){let a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;const s="string"==typeof e?parseInt(e,10):e;return isNaN(s)||s<a?t||1:s})();getConfigValue(e,t){return t.split(".").reduce(((e,t)=>e?e[t]:null),e)}setConfigValue(e,t,a){!function e(t,s){const n=s[0];1===s.length?Object.assign(t,{[n]:a}):(null==t[n]&&Object.assign(t,{[n]:{}}),e(t[n],s.slice(1)))}(e,t.split("."))}isSetByEnv=e=>Boolean(this.props.environmentConfig&&this.getConfigValue(this.props.environmentConfig,e));render(){return C.createElement("form",{className:"form-horizontal",role:"form",onSubmit:this.handleSubmit},C.createElement("div",{className:"wrapper--fixed"},C.createElement(fe,null,this.renderTitle()),this.renderSettings(),C.createElement("div",{className:"admin-console-save"},C.createElement(ue.A,{saving:this.state.saving,disabled:this.props.isDisabled||!this.state.saveNeeded||this.canSave&&!this.canSave(),onClick:this.handleSubmit,savingMessage:C.createElement(A.FormattedMessage,{id:"admin.saving",defaultMessage:"Saving Config..."})}),C.createElement(Nt.A,{title:this.state?.serverError??""},C.createElement("div",{className:"error-message"},C.createElement(Ke.Ay,{error:this.state.serverError}))))))}}const ka=e=>{let{state:t}=e;switch(t){case Ca.A.PLUGIN_STATE_NOT_RUNNING:return C.createElement(A.FormattedMessage,{id:"admin.plugin.state.not_running",defaultMessage:"Not running"});case Ca.A.PLUGIN_STATE_STARTING:return C.createElement(A.FormattedMessage,{id:"admin.plugin.state.starting",defaultMessage:"Starting"});case Ca.A.PLUGIN_STATE_RUNNING:return C.createElement(A.FormattedMessage,{id:"admin.plugin.state.running",defaultMessage:"Running"});case Ca.A.PLUGIN_STATE_FAILED_TO_START:return C.createElement(A.FormattedMessage,{id:"admin.plugin.state.failed_to_start",defaultMessage:"Failed to start"});case Ca.A.PLUGIN_STATE_FAILED_TO_STAY_RUNNING:return C.createElement(A.FormattedMessage,{id:"admin.plugin.state.failed_to_stay_running",defaultMessage:"Crashing"});case Ca.A.PLUGIN_STATE_STOPPING:return C.createElement(A.FormattedMessage,{id:"admin.plugin.state.stopping",defaultMessage:"Stopping"});default:return C.createElement(A.FormattedMessage,{id:"admin.plugin.state.unknown",defaultMessage:"Unknown"})}},wa=e=>{let{state:t,error:a}=e;switch(t){case Ca.A.PLUGIN_STATE_NOT_RUNNING:return C.createElement("div",{className:"alert alert-info"},C.createElement("i",{className:"fa fa-ban"}),C.createElement(A.FormattedMessage,{id:"admin.plugin.state.not_running.description",defaultMessage:"This plugin is not enabled."}));case Ca.A.PLUGIN_STATE_STARTING:return C.createElement("div",{className:"alert alert-success"},C.createElement("i",{className:"fa fa-info"}),C.createElement(A.FormattedMessage,{id:"admin.plugin.state.starting.description",defaultMessage:"This plugin is starting."}));case Ca.A.PLUGIN_STATE_RUNNING:return C.createElement("div",{className:"alert alert-success"},C.createElement("i",{className:"fa fa-check"}),C.createElement(A.FormattedMessage,{id:"admin.plugin.state.running.description",defaultMessage:"This plugin is running."}));case Ca.A.PLUGIN_STATE_FAILED_TO_START:{const e=a||C.createElement(A.FormattedMessage,{id:"admin.plugin.state.failed_to_start.check_logs",defaultMessage:"Check your system logs for errors."});return C.createElement("div",{className:"alert alert-warning"},C.createElement("i",{className:"fa fa-warning"}),C.createElement(A.FormattedMessage,{id:"admin.plugin.state.failed_to_start.description",defaultMessage:"This plugin failed to start. {error}",values:{error:e}}))}case Ca.A.PLUGIN_STATE_FAILED_TO_STAY_RUNNING:return C.createElement("div",{className:"alert alert-warning"},C.createElement("i",{className:"fa fa-warning"}),C.createElement(A.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 Ca.A.PLUGIN_STATE_STOPPING:return C.createElement("div",{className:"alert alert-info"},C.createElement("i",{className:"fa fa-info"}),C.createElement(A.FormattedMessage,{id:"admin.plugin.state.stopping.description",defaultMessage:"This plugin is stopping."}));default:return null}},Ia=(0,A.defineMessages)({title:{id:"admin.plugin.management.title",defaultMessage:"Plugin 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
1System 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."}}),Ra=[Ia.title,Ia.enable,Ia.enableDesc,Ia.uploadTitle,Ia.installedTitle,Ia.installedDesc,Ia.uploadDesc,Ia.uploadDisabledDesc,Ia.enableMarketplace,Ia.enableMarketplaceDesc,Ia.enableRemoteMarketplace,Ia.enableRemoteMarketplaceDesc,Ia.automaticPrepackagedPlugins,Ia.automaticPrepackagedPluginsDesc,Ia.marketplaceUrl,Ia.marketplaceUrlDesc],La=e=>{let t,{pluginStatus:a,removing:s,handleEnable:n,handleDisable:i,handleRemove:r,showInstances:l,hasSettings:o,appsFeatureFlagEnabled:d,isDisabled:c}=e;const m=a.state===Ca.A.PLUGIN_STATE_STARTING,u=a.state===Ca.A.PLUGIN_STATE_STOPPING;t=a.active?C.createElement("a",{"data-plugin-id":a.id,className:u||c?"disabled":"",onClick:i},u?C.createElement(A.FormattedMessage,{id:"admin.plugin.disabling",defaultMessage:"Disabling..."}):C.createElement(A.FormattedMessage,{id:"admin.plugin.disable",defaultMessage:"Disable"})):C.createElement("a",{"data-plugin-id":a.id,className:m||c?"disabled":"",onClick:n},m?C.createElement(A.FormattedMessage,{id:"admin.plugin.enabling",defaultMessage:"Enabling..."}):C.createElement(A.FormattedMessage,{id:"admin.plugin.enable",defaultMessage:"Enable"}));let g,p=null;o&&(p=C.createElement("span",null," - ",C.createElement(T.Link,{to:"/admin_console/plugins/plugin_"+a.id},C.createElement(A.FormattedMessage,{id:"admin.plugin.settingsButton",defaultMessage:"Settings"})))),g=s?C.createElement(A.FormattedMessage,{id:"admin.plugin.removing",defaultMessage:"Removing..."}):C.createElement(A.FormattedMessage,{id:"admin.plugin.remove",defaultMessage:"Remove"});let h,f=C.createElement("span",null," - ",C.createElement("a",{"data-plugin-id":a.id,className:s||c?"disabled":"",onClick:r},g));a.description&&(h=C.createElement("div",{className:"pt-2"},a.description));const E=[];a.instances.some((e=>e.version!==a.version))&&E.push(C.createElement("div",{key:"multiple-versions",className:"alert alert-warning"},C.createElement("i",{className:"fa fa-warning"}),C.createElement(A.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(C.createElement(wa,{key:"state-description",state:a.state,error:a.error}));const M=a.instances.slice();let b;return M.sort(((e,t)=>e.cluster_id<t.cluster_id?-1:e.cluster_id>t.cluster_id?1:0)),l&&(b=C.createElement("div",{className:"pt-3 pb-3"},C.createElement("div",{className:"row"},C.createElement("div",{className:"col-md-6"},C.createElement("strong",null,C.createElement(A.FormattedMessage,{id:"admin.plugin.cluster_instance",defaultMessage:"Cluster Instance"}))),C.createElement("div",{className:"col-md-3"},C.createElement("strong",null,C.createElement(A.FormattedMessage,{id:"admin.plugin.version_title",defaultMessage:"Version"}))),C.createElement("div",{className:"col-md-3"},C.createElement("strong",null,C.createElement(A.FormattedMessage,{id:"admin.plugin.state",defaultMessage:"State"})))),M.map((e=>C.createElement("div",{key:e.cluster_id,className:"row"},C.createElement("div",{className:"col-md-6"},e.cluster_id),C.createElement("div",{className:"col-md-3"},e.version),C.createElement("div",{className:"col-md-3"},C.createElement(ka,{state:e.state}))))))),a.id!==ye.lR||d||(t=C.createElement(C.Fragment,null,"Plugin disabled by feature flag"),f=null),C.createElement("div",{"data-testid":a.id},C.createElement("div",null,C.createElement("strong",null,a.name)," (",a.id," - ",a.version,")"),h,C.createElement("div",{className:"pt-2"},t,f,p),C.createElement("div",null,E),C.createElement("div",null,b),C.createElement("hr",null))},xa=(0,A.injectIntl)(class extends Na{constructor(e){super(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=C.createRef()}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);getStateFromConfig(e){return{enable:e?.PluginSettings?.Enable,enableUploads:e?.PluginSettings?.EnableUploads,allowInsecureDownloadUrl:e?.PluginSettings?.AllowInsecureDownloadURL,enableMarketplace:e?.PluginSettings?.EnableMarketplace,enableRemoteMarketplace:e?.PluginSettings?.EnableRemoteMarketplace,automaticPrepackagedPlugins:e?.PluginSettings?.AutomaticPrepackagedPlugins,marketplaceUrl:e?.PluginSettings?.MarketplaceURL,requirePluginSignature:e?.PluginSettings?.RequirePluginSignature}}componentDidMount(){this.state.enable&&this.props.actions.getPluginStatuses().then((()=>this.setState({loading:!1})))}handleChooseFileClick=()=>{this.fileInput.current?.click()};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]})};helpSubmitUpload=async(e,t)=>{this.setState({uploading:!0});const{error:a}=await this.props.actions.uploadPlugin(e,t);if(a)return"app.plugin.install_id.app_error"!==a.server_error_id||t?(this.setState({file:null,fileSelected:!1,uploading:!1}),"app.plugin.activate.app_error"===a.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"===a.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:a.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 s=`Successfully uploaded plugin from ${e?.name}`;this.state.overwritingUpload&&(s=`Successfully updated plugin from ${e?.name}`),this.setState({file:null,fileSelected:!1,serverError:null,lastMessage:s,overwritingUpload:!1,uploading:!1,loading:!1})};handleSubmitUpload=e=>{e.preventDefault();const t=this.fileInput.current;if(0===t.files?.length)return;const a=t.files&&t.files[0];a&&this.helpSubmitUpload(a,!1),L.K2(t)};handleOverwriteUploadPluginCancel=()=>{this.setState({file:null,fileSelected:!1,serverError:null,confirmOverwriteUploadModal:!1,lastMessage:null,uploading:!1})};handleOverwriteUploadPlugin=()=>{this.setState({confirmOverwriteUploadModal:!1}),this.state.file&&this.helpSubmitUpload(this.state.file,!0)};onPluginDownloadUrlChange=e=>{this.setState({pluginDownloadUrl:e.target.value})};installFromUrl=async e=>{const{pluginDownloadUrl:t}=this.state;this.setState({installing:!0,serverError:null,lastMessage:null});const{error:a}=await this.props.actions.installPluginFromUrl(t,e);if(a)return"app.plugin.install_id.app_error"!==a.server_error_id||e?(this.setState({installing:!1}),void("app.plugin.extract.app_error"===a.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:a.message}))):void this.setState({confirmOverwriteInstallModal:!0,overwritingInstall:!0});this.setState({loading:!0}),await this.props.actions.getPlugins();let s=`Successfully installed plugin from ${t}`;this.state.overwritingInstall&&(s=`Successfully updated plugin from ${t}`),this.setState({serverError:null,lastMessage:s,overwritingInstall:!1,installing:!1,loading:!1})};getMarketplaceURLHelpText=(e,t)=>
1C.createElement("div",null,""===e&&t&&C.createElement("div",{className:"alert-warning"},C.createElement("i",{className:"fa fa-warning"}),C.createElement(A.FormattedMessage,{id:"admin.plugins.settings.marketplaceUrlDesc.empty",defaultMessage:" Marketplace URL is a required field."})),""!==e&&t&&C.createElement(A.FormattedMessage,Ia.marketplaceUrlDesc),!t&&C.createElement(A.FormattedMessage,Object.assign({},Ia.uploadDisabledDesc,{values:{link:e=>C.createElement(Ge.A,{href:ve.i3.PLUGINS,location:"plugin_management"},e)}})));canSave=()=>""!==this.state.marketplaceUrl;handleSubmitInstall=e=>(e.preventDefault(),this.installFromUrl(!1));handleOverwriteInstallPluginCancel=()=>{this.setState({confirmOverwriteInstallModal:!1,installing:!1,serverError:null,lastMessage:null})};handleOverwriteInstallPlugin=()=>(this.setState({confirmOverwriteInstallModal:!1}),this.installFromUrl(!0));showRemovePluginModal=e=>{if(this.props.isDisabled)return;e.preventDefault();const t=e.currentTarget.getAttribute("data-plugin-id");this.setState({showRemoveModal:!0,removing:t})};handleRemovePluginCancel=()=>{this.setState({showRemoveModal:!1,removing:null})};handleRemovePlugin=()=>{this.setState({showRemoveModal:!1}),this.handleRemove()};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})}};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})}};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})}};renderTitle(){return C.createElement(A.FormattedMessage,Ia.title)}renderOverwritePluginModal=e=>{let{show:t,onConfirm:a,onCancel:s}=e;const n=C.createElement(A.FormattedMessage,{id:"admin.plugin.upload.overwrite_modal.title",defaultMessage:"Overwrite existing plugin?"}),i=C.createElement(A.FormattedMessage,{id:"admin.plugin.upload.overwrite_modal.desc",defaultMessage:"A plugin with this ID already exists. Would you like to overwrite it?"}),r=C.createElement(A.FormattedMessage,{id:"admin.plugin.upload.overwrite_modal.overwrite",defaultMessage:"Overwrite"});return C.createElement(Aa.A,{show:t,title:n,message:i,confirmButtonClass:"btn btn-danger",confirmButtonText:r,onConfirm:a,onCancel:s})};renderRemovePluginModal=(e,t,a)=>{const s=C.createElement(A.FormattedMessage,{id:"admin.plugin.remove_modal.title",defaultMessage:"Remove plugin?"}),n=C.createElement(A.FormattedMessage,{id:"admin.plugin.remove_modal.desc",defaultMessage:"Are you sure you would like to remove the plugin?"}),i=C.createElement(A.FormattedMessage,{id:"admin.plugin.remove_modal.overwrite",defaultMessage:"Remove"});return C.createElement(Aa.A,{show:e,title:s,message:n,confirmButtonClass:"btn btn-danger",confirmButtonText:i,onConfirm:t,onCancel:a})};renderEnablePluginsSetting=()=>this.props.config.ExperimentalSettings&&this.props.config.ExperimentalSettings.RestrictSystemAdmin?null:C.createElement(F,{id:"enable",label:C.createElement(A.FormattedMessage,Ia.enable),helpText:C.createElement(A.FormattedMessage,Object.assign({},Ia.enableDesc,{values:{link:e=>C.createElement(Ge.A,{href:ve.i3.PLUGINS,location:"plugin_management"},e)}})),value:this.state.enable,onChange:this.handleChange,setByEnv:this.isSetByEnv("PluginSettings.Enable"),disabled:this.props.isDisabled});renderSettings=()=>{const{enableUploads:e}=this.state,t=this.props.config?.PluginSettings?.Enable;let a=C.createElement(C.Fragment,null),s=C.createElement(C.Fragment,null);const n=e&&t&&!(this.props.config.PluginSettings&&this.props.config.PluginSettings.RequirePluginSignature);this.state.serverError&&(a=C.createElement("div",{className:"col-sm-12"},C.createElement("div",{className:"form-group has-error half"},C.createElement("label",{className:"control-label"},this.state.serverError)))),this.state.lastMessage&&(s=C.createElement("div",{className:"col-sm-12"},C.createElement("div",{className:"form-group half"},this.state.lastMessage)));let i,r,l,o,d,c="btn btn-primary";this.state.fileSelected&&(c="btn btn-primary"),this.state.file&&(i=this.state.file.name),r=this.state.uploading?C.createElement(A.FormattedMessage,{id:"admin.plugin.uploading",defaultMessage:"Uploading..."}):C.createElement(A.FormattedMessage,{id:"admin.plugin.upload",defaultMessage:"Upload"});const m=Object.values(this.props.pluginStatuses);if(this.state.loading)l=C.createElement(Ta.A,null);else if(0===m.length)d=C.createElement(A.FormattedMessage,{id:"admin.plugin.no_plugins",defaultMessage:"No installed plugins."});else{const e=m.some((e=>e.instances.length>1));m.sort(((e,t)=>{const a=e.name.localeCompare(t.name);return 0!==a?a:e.id.localeCompare(t.id)})),l=m.map((t=>{const a=this.props.plugins[t.id],s=Boolean(a&&a.settings_schema&&(a.settings_schema.header||a.settings_schema.footer||a.settings_schema.settings&&a.settings_schema.settings.length>0));return C.createElement(La,{key:t.id,pluginStatus:t,removing:this.state.removing===t.id,handleEnable:this.handleEnable,handleDisable:this.handleDisable,handleRemove:this.showRemovePluginModal,showInstances:e,hasSettings:s,appsFeatureFlagEnabled:this.props.appsFeatureFlagEnabled,isDisabled:this.props.isDisabled})}
1)),d=C.createElement("div",{className:"alert alert-transparent"},l)}let u;t&&(o=C.createElement(D,{label:C.createElement(A.FormattedMessage,Ia.installedTitle)},C.createElement("p",{className:"help-text"},C.createElement(A.FormattedMessage,Ia.installedDesc)),C.createElement("br",null),d)),u=e&&t?C.createElement(A.FormattedMessage,Object.assign({},Ia.uploadDesc,{values:{link:e=>C.createElement(Ge.A,{href:ve.i3.PLUGINS,location:"plugin_management"},e)}})):t&&!e?C.createElement(A.FormattedMessage,Object.assign({},Ia.uploadDisabledDesc,{values:{link:e=>C.createElement(Ge.A,{href:ve.i3.PLUGINS,location:"plugin_management"},e)}})):C.createElement(A.FormattedMessage,{id:"admin.plugin.uploadAndPluginDisabledDesc",defaultMessage:"To enable plugins, set <strong>Enable Plugins</strong> to true. See <link>documentation</link> to learn more.",values:{link:e=>C.createElement(Ge.A,{href:ve.i3.PLUGINS,location:"plugin_management"},e),strong:e=>C.createElement("strong",null,e)}});const g=this.state.confirmOverwriteUploadModal&&this.renderOverwritePluginModal({show:this.state.confirmOverwriteUploadModal,onConfirm:this.handleOverwriteUploadPlugin,onCancel:this.handleOverwriteUploadPluginCancel}),p=this.state.showRemoveModal&&this.renderRemovePluginModal(this.state.showRemoveModal,this.handleRemovePlugin,this.handleRemovePluginCancel);return C.createElement("div",{className:"admin-console__wrapper"},C.createElement("div",{className:"admin-console__content"},C.createElement(gt,{id:"PluginSettings",container:!1},this.renderEnablePluginsSetting(),!this.props.config.ExperimentalSettings?.RestrictSystemAdmin&&C.createElement(C.Fragment,null,C.createElement(F,{id:"requirePluginSignature",label:C.createElement(A.FormattedMessage,{id:"admin.plugins.settings.requirePluginSignature",defaultMessage:"Require Plugin Signature:"}),helpText:C.createElement(A.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=>C.createElement(Ge.A,{href:ve.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")}),C.createElement(F,{id:"automaticPrepackagedPlugins",label:C.createElement(A.FormattedMessage,Ia.automaticPrepackagedPlugins),helpText:C.createElement(A.FormattedMessage,Ia.automaticPrepackagedPluginsDesc),value:this.state.automaticPrepackagedPlugins,disabled:this.props.isDisabled||!this.state.enable,onChange:this.handleChange,setByEnv:this.isSetByEnv("PluginSettings.AutomaticPrepackagedPlugins")}),C.createElement(D,{helpText:u,label:C.createElement(A.FormattedMessage,Ia.uploadTitle)},C.createElement("div",{className:"file__upload"},C.createElement("button",{type:"button",className:he()(["btn",{"btn-tertiary":e}]),onClick:this.handleChooseFileClick,disabled:!n||this.props.isDisabled},C.createElement(A.FormattedMessage,{id:"admin.plugin.choose",defaultMessage:"Choose File"})),C.createElement("input",{ref:this.fileInput,type:"file",accept:".gz",onChange:this.handleUpload,disabled:!n||this.props.isDisabled})),C.createElement("button",{className:c,id:"uploadPlugin",disabled:!this.state.fileSelected,onClick:this.handleSubmitUpload},r),C.createElement("div",{className:"help-text m-0"},i),a,s),C.createElement(F,{id:"enableMarketplace",label:C.createElement(A.FormattedMessage,Ia.enableMarketplace),helpText:C.createElement(A.FormattedMessage,Object.assign({},Ia.enableMarketplaceDesc,{values:{link:e=>C.createElement(Ge.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")}),C.createElement(F,{id:"enableRemoteMarketplace",label:C.createElement(A.FormattedMessage,Ia.enableRemoteMarketplace),helpText:C.createElement(A.FormattedMessage,Ia.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")}),C.createElement(ht,{id:"marketplaceUrl",label:C.createElement(A.FormattedMessage,Ia.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")})),o),g,p))}}),Da=(0,s.connect)((function(e){return{plugins:e.entities.admin.plugins,pluginStatuses:e.entities.admin.pluginStatuses,appsFeatureFlagEnabled:(0,be.It)(e)}}),(function(e){return{actions:(0,n.zH)({uploadPlugin:i.Hs,installPluginFromUrl:i.iG,removePlugin:i.c_,getPlugins:i.xy,getPluginStatuses:i.aN,enablePlugin:i.HF,disablePlugin:i.Af},e)}}))(xa);var Pa=a(96568),Oa=a(32683),Fa=a(31655),Ua=a(35631),Ba=a(77440),Ha=a(44553);const Ga=e=>{let{license:t,totalUsers:a,location:n}=e;const{formatMessage:i}
1=(0,A.useIntl)(),r=(0,s.useDispatch)(),l=(0,s.useSelector)(g.HW),o=(()=>{if(!t||!t.Users)return 0;const e=parseInt(t.Users,10);return e&&0!==e?a/e*100:0})(),d=(e=>{if(e<90)return"";const t="license_settings"===n?"license_settings":"system_statistics";return e>=100?`100_seat_${t}`:e>=95?`95_seat_${t}`:`90_seat_${t}`})(o),c=(0,s.useSelector)((e=>(0,Ba.Jt)(e,ve.pm.CATEGORY_SYSTEM_NOTICE,d,"false"))),[m,u]=(0,C.useState)("false"===c);if((0,C.useEffect)((()=>{u("false"===c)}),[c]),!m||!t||!t.Users||o<90)return null;let p="info",h=null,f=null;o>=90&&o<95?(p="success",h=C.createElement(A.FormattedMessage,{id:"admin.license.userSeatAlert.successTitle",defaultMessage:"Your workspace has reached 90% of your licensed seats"}),f=C.createElement(A.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."})):o>=95&&o<100?(p="info",h=C.createElement(A.FormattedMessage,{id:"admin.license.userSeatAlert.infoTitle",defaultMessage:"Your workspace has reached 95% of your licensed seats"}),f=C.createElement(A.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."})):o>=100&&(p="danger",h=C.createElement(A.FormattedMessage,{id:"admin.license.userSeatAlert.dangerTitle",defaultMessage:"Your workspace has reached 100% of your licensed seats"}),f=C.createElement(A.FormattedMessage,{id:"admin.license.userSeatAlert.dangerMessage",defaultMessage:"All licensed seats are now in use. Contact Sales to extend your license."}));const E=C.createElement(Ge.A,{href:ve.vx.CONTACT_SALES,location:"license_settings_user_seat_alert",className:"style-button AlertBanner__buttonLeft"},C.createElement(A.FormattedMessage,{id:"admin.license.userSeatAlert.contactSales",defaultMessage:"Contact Sales"}));return C.createElement(Ha.A,{mode:p,title:h,message:f,actionButtonLeft:E,onDismiss:()=>{u(!1),r((0,Ua.SF)(l.id,[{user_id:l.id,category:ve.pm.CATEGORY_SYSTEM_NOTICE,name:d,value:"true"}]))},closeBtnTooltip:i({id:"admin.license.userSeatAlert.closeBtnTooltip",defaultMessage:"Dismiss"})})},Va=e=>{let{title:t,icon:a,count:s,id:n,children:i,status:r,formatter:l}=e;const o=C.createElement(A.FormattedMessage,{id:"analytics.chart.loading",defaultMessage:"Loading..."}),d=l?l(s??0):s,c=void 0===s||isNaN(s)?o:d;return C.createElement("div",{className:"grid-statistics__card"},C.createElement("div",{className:he()({"total-count":!0,"total-count--has-message":Boolean(r)})},C.createElement("div",{"data-testid":`${n}Title`,className:he()({title:!0,"team_statistics--warning":"warning"===r,"team_statistics--error":"error"===r})},t,C.createElement("i",{className:"fa "+a})),C.createElement("div",{"data-testid":n,className:he()({content:!0,"team_statistics--warning":"warning"===r,"team_statistics--error":"error"===r})},c)),i)},za=C.memo(Va);var ja=a(66351);const Wa=(0,A.defineMessages)({totalUsers:{id:"analytics.team.totalUsers",defaultMessage:"Total Activated Users"}}),Ya=e=>{let{guestAccountsEnabled:t}=e;const a=(0,A.useIntl)();return C.createElement(Nt.A,{title:(0,A.defineMessage)({id:"analytics.team.totalUsers.title.tooltip.title",defaultMessage:"Activated users on this server"}),hint:t?(0,A.defineMessage)({id:"analytics.team.totalUsers.title.tooltip.hint.withGuests",defaultMessage:"Also called Registered Users. Excludes single-channel guests."}):(0,A.defineMessage)({id:"analytics.team.totalUsers.title.tooltip.hint",defaultMessage:"Also called Registered Users"})},C.createElement("span",null,C.createElement(Ge.A,{location:"activated_users_card.title",href:"https://mattermost.com/pl/site-statistics-definitions"},a.formatMessage(Wa.totalUsers),C.createElement(w.InformationOutlineIcon,{size:"16"}))))},qa=e=>{let{activatedUsers:t,seatsPurchased:a,isCloud:s,guestAccountsEnabled:n=!1}=e;const{isBetween5PercerntAnd10PercentPurchasedSeats:i,isOver10PercerntPurchasedSeats:r}=(0,ja.A)({seatsPurchased:a,activeUsers:t||0}),l=!s&&(i||r);let o;return!s&&i&&(o="warning"),!s&&r&&(o="error"),C.createElement(za,{title:C.createElement(Ya,{guestAccountsEnabled:n}),icon:"fa-users",status:o,count:t,id:"totalActiveUsers"},l&&C.createElement("div",{className:he()({team_statistics__message:!0,"team_statistics--warning":i,"team_statistics--error":r})},C.createElement(w.AlertOutlineIcon,{size:14}),C.createElement(A.FormattedMessage,{id:"analytics.team.overageUsersSeats",defaultMessage:"This exceeds total licensed seats"},(e=>C.createElement("span",null,e)))))},Za=(0,A.defineMessages)({singleChannelGuests:{id:"analytics.system.singleChannelGuests",defaultMessage:"Single-channel Guests"}}),Ja=e=>{let{isOverLimit:t}=e;const a=(0,A.useIntl)().formatMessage(Za.singleChannelGuests);return t?C.createElement(Nt.A,{title:(0,A.defineMessage)({id:"analytics.system.singleChannelGuests.tooltip.title",defaultMessage:"Limit reached for single-channel guests"}),hint:(0,A.defineMessage)({id:"analytics.system.singleChannelGuests.tooltip.hint",defaultMessage:"The number of single-channel guests cannot exceed the total number of licensed seats"}),className:"single-channel-guest-tooltip"},C.createElement("span",{className:"single-channel-guest-title"},a,C.createElement(w.AlertOutlineIcon,{size:14}))):C.createElement(Nt.A,{title:(0,A.defineMessage)({id:"analytics.system.singleChannelGuests.info.tooltip.title",defaultMessage:"Single-channel guests"}),hint:(0,A.defineMessage)({id:"analytics.system.singleChannelGuests.info.tooltip.hint",defaultMessage:"Guests that are only in one channel are not counted towards your total activated user count."})},C.createElement("span",{className:"single-channel-guest-title"},a,C.createElement(w.InformationOutlineIcon,{size:14})))},Ka=e=>{let{singleChannelGuestsCount:t,singleChannelGuestLimit:a}=e;const s=void 0!==t&&a>0&&t>a;return C.createElement(za,{title:C.createElement(Ja,{isOverLimit:s}),icon:"fa-users",status:s?"error":void 0,count:t,id:"singleChannelGuests"})};
1var Qa=a(81266),Xa=a(62757),$a=a.n(Xa);const es=e=>{let{title:t,width:a,height:s,data:n}=e;const i=(0,C.useRef)(null),r=(0,C.useRef)(null);let l;return(0,C.useEffect)((()=>{if(!i.current||!n)return;const e=i.current.getContext("2d");e&&(r.current?$a()(r.current.data,n)||(r.current.data=JSON.parse(JSON.stringify(n)),r.current.update()):r.current=new Qa.A(e,{type:"doughnut",data:JSON.parse(JSON.stringify(n)),options:{}}))}),[n]),(0,C.useEffect)((()=>()=>{r.current?.destroy(),r.current=null}),[]),l=void 0===n?C.createElement(A.FormattedMessage,{id:"analytics.chart.loading",defaultMessage:"Loading..."}):C.createElement("canvas",{ref:i,width:a,height:s}),C.createElement("div",{className:"col-sm-6"},C.createElement("div",{className:"total-count"},C.createElement("div",{className:"title"},t),C.createElement("div",{className:"content"},l)))};function ts(e,t){return ns({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 as(){const e=new Set;for(var t=arguments.length,a=new Array(t),s=0;s<t;s++)a[s]=arguments[s];return a.forEach((t=>{t?.length&&t.forEach((t=>e.add(t.name)))})),Array.from(e).sort()}function ss(e,t){return ns({labels:[],datasets:[{label:"",fillColor:"rgba(151,187,205,0.2)",borderColor:"rgba(151,187,205,1)",pointBackgroun
1dColor:"rgba(151,187,205,1)",pointBorderColor:"#fff",pointHoverBackgroundColor:"#fff",pointHoverBorderColor:"rgba(151,187,205,1)",data:[]}]},e,t)}function ns(e,t,a){return a?.length&&(e.labels=t,e.labels.forEach((t=>{const s=a.find((e=>e.name===t)),n=s?s.value:0;e.datasets[0].data.push(n)}))),e}class is extends C.PureComponent{canvasRef=C.createRef();chart=null;chartOptions={plugins:{legend:{display:!1}}};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),$a()(e.data,this.props.data))return;const t=this.props.data&&this.props.data.labels.length>0,a=Boolean(this.chart);t&&this.initChart(a)}componentWillUnmount(){this.chart&&this.chart.destroy(),window.removeEventListener("resize",this.resizeChart)}resizeChart=()=>{this.chart&&this.canvasRef.current&&this.chart.options.responsive&&(this.canvasRef.current.style.width="100%")};initChart=e=>{if(!this.canvasRef.current)return;const t=this.canvasRef.current.getContext("2d"),a=JSON.parse(JSON.stringify(this.props.data));let s=this.chartOptions||{};this.props.options&&(s={...s,...this.props.options}),e?this.chart?.update():this.chart=new Qa.A(t,{type:"line",data:a,options:s||{}})};render(){let e;return e=null==this.props.data?C.createElement(A.FormattedMessage,{id:"analytics.chart.loading",defaultMessage:"Loading..."}):0===this.props.data.labels.length?C.createElement("h5",null,C.createElement(A.FormattedMessage,{id:"analytics.chart.meaningful",defaultMessage:"Not enough data for a meaningful representation."})):C.createElement("canvas",{"data-testid":this.props.id,ref:this.canvasRef,width:this.props.width,height:this.props.height,"data-labels":this.props.data.labels}),C.createElement("div",{className:"col-sm-12"},C.createElement("div",{className:"total-count by-day"},C.createElement("div",{className:"title"},this.props.title),C.createElement("div",{className:"content"},e)))}}const rs=ve.Ay.StatTypes,ls=(0,A.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"},singleChannelGuests:{id:"analytics.system.singleChannelGuests",defaultMessage:"Single-channel Guests"}}),os=[ls.title,ls.totalPosts,ls.activeUsers,ls.totalSessions,ls.totalCommands,ls.totalIncomingWebhooks,ls.totalOutgoingWebhooks,ls.totalWebsockets,ls.totalMasterDbConnections,ls.totalReadDbConnections,ls.postTypes,ls.channelTypes,ls.totalTeams,ls.totalChannels,ls.dailyActiveUsers,ls.monthlyActiveUsers,ls.totalFiles,ls.totalFilesSize,ls.singleChannelGuests];
1class ds extends C.PureComponent{state={pluginSiteStats:{},lineChartsDataLoaded:!1};async componentDidMount(){p.ur(),p.xt(),this.props.isLicensed&&p.fu(),this.fetchPluginStats()}loadLineChartData=async()=>{await Promise.allSettled([p.fs(),p._C(),p.iN()]),this.setState({lineChartsDataLoaded:!0})};handleLineChartsToggle=e=>{e.currentTarget.open&&!this.state.lineChartsDataLoaded&&this.loadLineChartData()};async fetchPluginStats(){const e=Object.keys(this.props.pluginStatHandlers);if(!e.length)return;const t=Object.values(this.props.pluginStatHandlers).map((e=>e())),a=await Promise.all(t),s={};a.forEach(((t,a)=>{Object.entries(t).forEach((t=>{let[n,i]=t;const r=`${e[a]}.${n}`;s[r]=i}))})),this.setState({pluginSiteStats:s})}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,a=-1===e[rs.TOTAL_POSTS],s=as(e[rs.POST_PER_DAY],e[rs.BOT_POST_PER_DAY],e[rs.USERS_WITH_POSTS_PER_DAY]),n=ts(s,e[rs.POST_PER_DAY]),i=ts(s,e[rs.BOT_POST_PER_DAY]),r=ss(s,e[rs.USERS_WITH_POSTS_PER_DAY]);let l,o,d,c,m,u,g,p,h,f,E,M,b;if(a?l=C.createElement("div",{className:"banner"},C.createElement("div",{className:"banner__content"},C.createElement(A.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=>C.createElement(Ge.A,{href:"https://docs.mattermost.com/administration/statistics.html",location:"system_analytics"},e)}}))):(o=C.createElement(za,{id:"totalPosts",title:C.createElement(A.FormattedMessage,ls.totalPosts),icon:"fa-comment",count:this.getStatValue(e[rs.TOTAL_POSTS])}),c=C.createElement("div",{className:"row"},C.createElement(is,{title:C.createElement(A.FormattedMessage,{id:"analytics.system.totalBotPosts",defaultMessage:"Total Posts from Bots"}),data:i,id:"totalPostsFromBotsLineChart",width:740,height:225})),d=C.createElement("div",{className:"row"},C.createElement(is,{title:C.createElement(A.FormattedMessage,ls.totalPosts),id:"totalPostsLineChart",data:n,width:740,height:225})),m=C.createElement("div",{className:"row"},C.createElement(is,{title:C.createElement(A.FormattedMessage,ls.activeUsers),id:"activeUsersWithPostsLineChart",data:r,width:740,height:225}))),this.props.isLicensed){p=C.createElement(za,{id:"totalSessions",title:C.createElement(A.FormattedMessage,ls.totalSessions),icon:"fa-signal",count:this.getStatValue(e[rs.TOTAL_SESSIONS])}),h=C.createElement(za,{id:"totalCommands",title:C.createElement(A.FormattedMessage,ls.totalCommands),icon:"fa-terminal",count:this.getStatValue(e[rs.TOTAL_COMMANDS])}),f=C.createElement(za,{id:"incomingWebhooks",title:C.createElement(A.FormattedMessage,ls.totalIncomingWebhooks),icon:"fa-arrow-down",count:this.getStatValue(e[rs.TOTAL_IHOOKS])}),E=C.createElement(za,{id:"outgoingWebhooks",title:C.createElement(A.FormattedMessage,ls.totalOutgoingWebhooks),icon:"fa-arrow-up",count:this.getStatValue(e[rs.TOTAL_OHOOKS])}),M=C.createElement(za,{id:"totalFiles",title:C.createElement(A.FormattedMessage,ls.totalFiles),icon:"fa-files-o",count:this.getStatValue(e[rs.TOTAL_FILE_COUNT])}),b=C.createElement(za,{id:"totalFilesSize",title:C.createElement(A.FormattedMessage,ls.totalFilesSize),icon:"fa-files-o",count:this.getStatValue(e[rs.TOTAL_FILE_SIZE]),formatter:Fa.av}),u=C.createElement(C.Fragment,null,C.createElement(za,{id:"websocketConns",title:C.createElement(A.FormattedMessage,ls.totalWebsockets),icon:"fa-user",count:this.getStatValue(e[rs.TOTAL_WEBSOCKET_CONNECTIONS])}),C.createElement(za,{id:"masterDbConns",title:C.createElement(A.FormattedMessage,ls.totalMasterDbConnections),icon:"fa-terminal",count:this.getStatValue(e[rs.TOTAL_MASTER_DB_CONNECTIONS])}),C.createElement(za,{id:"replicaDbConns",title:C.createElement(A.FormattedMessage,ls.totalReadDbConnections),icon:"fa-terminal",count:this.getStatValue(e[rs.TOTAL_READ_DB_CONNECTIONS])}));const t=(_=e[rs.TOTAL_PUBLIC_CHANNELS],y=e[rs.TOTAL_PRIVATE_GROUPS],{labels:[L.Vw({id:"analytics.system.publicChannels",defaultMessage:"Public Channels"}),L.Vw({id:"analytics.system.privateGroups",defaultMessage:"Private Channels"})],datasets:[{data:[_,y],backgroundColor:["#46BFBD","#FDB45C"],hoverBackgroun
1dColor:["#5AD3D1","#FFC870"]}]});g=C.createElement("div",{className:"row"},C.createElement(es,{title:C.createElement(A.FormattedMessage,ls.channelTypes),data:t,width:300,height:225}))}var _,y;const v="true"===this.props.license.Cloud,S="true"===this.props.config?.EnableGuestAccounts,T=this.props.serverLimits?.activeUserCount??this.getStatValue(e[rs.TOTAL_USERS]),N=C.createElement(qa,{activatedUsers:T,seatsPurchased:parseInt(this.props.license.Users,10),isCloud:v,guestAccountsEnabled:S}),k=C.createElement(za,{id:"seatPurchased",title:C.createElement(A.FormattedMessage,{id:"analytics.system.seatsPurchased",defaultMessage:"Licensed Seats"}),icon:"fa-users",count:parseInt(this.props.license.Users,10)}),w=C.createElement(za,{id:"totalTeams",title:C.createElement(A.FormattedMessage,ls.totalTeams),icon:"fa-users",count:this.getStatValue(e[rs.TOTAL_TEAMS])}),I=this.getStatValue(e[rs.TOTAL_PUBLIC_CHANNELS]),R=this.getStatValue(e[rs.TOTAL_PRIVATE_GROUPS]),x=C.createElement(za,{id:"totalChannels",title:C.createElement(A.FormattedMessage,ls.totalChannels),icon:"fa-globe",count:I&&R?I+R:!I&&R?R:I&&!R?I:void 0}),D=C.createElement(za,{id:"dailyActiveUsers",title:C.createElement(A.FormattedMessage,ls.dailyActiveUsers),icon:"fa-users",count:this.getStatValue(e[rs.DAILY_ACTIVE_USERS])}),P=C.createElement(za,{id:"monthlyActiveUsers",title:C.createElement(A.FormattedMessage,ls.monthlyActiveUsers),icon:"fa-users",count:this.getStatValue(e[rs.MONTHLY_ACTIVE_USERS])}),O=[],F=[],U=[];for(const[e,t]of Object.entries(this.state.pluginSiteStats))switch(t.visualizationType){case Oa.dQ.LineChart:F.push(C.createElement("div",{className:"row",key:"pluginstat."+e},C.createElement(is,{id:e,title:t.name,data:t.value,width:740,height:225})));break;case Oa.dQ.DoughnutChart:U.push(C.createElement("div",{className:"row",key:"pluginstat."+e},C.createElement(es,{title:t.name,data:t.value,width:300,height:225})));break;case Oa.dQ.Count:default:O.push(C.createElement(za,{id:e,key:"pluginstat."+e,title:t.name,icon:t.icon,count:t.value}))}const B=this.props.license.SkuShortName===ve.gS.Entry,H=t&&!B&&S,G=this.getStatValue(e[rs.SINGLE_CHANNEL_GUESTS]),V=this.props.serverLimits?.singleChannelGuestLimit??parseInt(this.props.license.Users,10),z=H?C.createElement(Ka,{singleChannelGuestsCount:G,singleChannelGuestLimit:V}):null;let j;return t?j=C.createElement(C.Fragment,null,N,v?null:k,z,w,x,a?null:o,p,h,f,E,M,b):t||(j=C.createElement(C.Fragment,null,N,v||!t?null:k,w,x,a?null:o)),C.createElement("div",{className:"wrapper--fixed team_statistics"},C.createElement(fe,null,C.createElement(A.FormattedMessage,ls.title)),C.createElement("div",{className:"admin-console__wrapper"},C.createElement("div",{className:"admin-console__content"},C.createElement(Ga,{license:this.props.license,totalUsers:this.props.serverLimits?.activeUserCount??this.getStatValue(e[rs.TOTAL_USERS])??0,location:"system_statistics"}),l,C.createElement("div",{className:"grid-statistics"},j,D,P,u,O),g,U,F,C.createElement("details",{onToggle:this.handleLineChartsToggle,"data-testid":"details-expander"},C.createElement("summary",null,C.createElement(A.FormattedMessage,{id:"analytics.system.perDayStatistics",defaultMessage:"Load Advanced Statistics"})),C.createElement(C.Fragment,null,d,c,m)))))}}const cs=(0,s.connect)((function(e){const t=(0,c.Ay)(e);return{isLicensed:"true"===t.IsLicensed,license:t,stats:e.entities.admin.analytics,config:(0,c.zj)(e),pluginStatHandlers:e.plugins.siteStatsHandlers,serverLimits:(0,Pa.Mz)(e)}}))(ds);var ms=a(17085),us=a(61185),gs=a(69657),ps=a(77212);const hs=e=>{let t=C.createElement(A.FormattedMessage,{id:"admin.banner.heading",defaultMessage:"Note:"});return e.title&&(t=e.title),C.createElement("div",{className:"banner"},C.createElement("div",{className:"banner__content"},C.createElement("h4",{className:"banner__heading"},t),C.createElement("p",null,e.description)))},fs=e=>{let{title:t,data:a}=e;return C.createElement("div",{className:"col-sm-6"},C.createElement("div",{className:"total-count recent-active-users"},C.createElement("div",{className:"title"},t),C.createElement("div",{className:"content"},C.createElement("table",null,C.createElement("tbody",null,a.map((e=>C.createElement("tr",{key:"table-entry-"+e.name},C.createElement("td",null,C.createElement(Nt.A,{title:e.tip},C.createElement("span",null,e.name))),C.createElement("td",null,e.value)))))))))},Es=(0,C.memo)(fs);var Ms=a(45036);const bs=(0,A.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"}}),_s=[[bs.title,{team:""}],bs.info,bs.totalPosts,bs.activeUsers,Wa.totalUsers,bs.publicChannels,bs.privateGroups,bs.recentUsers,bs.newlyCreated];
1class ys extends C.PureComponent{constructor(e){super(e),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}getData=async e=>{p.ur(e),p.fs(e),p._C(e),p.iN(e);const{data:t}=await this.props.actions.getProfilesInTeam(e,0,o.Bz.PROFILE_CHUNK_SIZE,"last_activity_at"),{data:a}=await this.props.actions.getProfilesInTeam(e,0,o.Bz.PROFILE_CHUNK_SIZE,"create_at");this.setState({recentlyActiveUsers:t,newUsers:a})};handleTeamChange=e=>{const t=e.target.value;let a;this.props.teams.forEach((e=>{e.id===t&&(a=e)})),this.setState({team:a}),this.props.actions.setGlobalItem("last_analytics_team",t)};render(){if(0===this.props.teams.length||!this.state.team||!this.props.stats[this.state.team.id])return C.createElement(Ta.A,null);if(null==this.state.team)return C.createElement(hs,{description:C.createElement(A.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=as(e[ve.g5.POST_PER_DAY],e[ve.g5.USERS_WITH_POSTS_PER_DAY]),a=ts(t,e[ve.g5.POST_PER_DAY]),s=ss(t,e[ve.g5.USERS_WITH_POSTS_PER_DAY]);let n,i,r,l=C.createElement("div",{className:"banner"},C.createElement("div",{className:"banner__content"},C.createElement(A.FormattedMessage,bs.info)));-1===e[ve.g5.TOTAL_POSTS]?l=C.createElement("div",{className:"banner"},C.createElement("div",{className:"banner__content"},C.createElement(A.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."}),C.createElement("p",null),C.createElement(A.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=>C.createElement(Ge.A,{href:"https://docs.mattermost.com/administration/statistics.html",location:"team_analytics"},e)}}))):(n=C.createElement(za,{title:C.createElement(A.FormattedMessage,bs.totalPosts),icon:"fa-comment",count:this.getStatValue(e[ve.g5.TOTAL_POSTS])}),i=C.createElement("div",{className:"row"},C.createElement(is,{key:this.state.team.id,title:C.createElement(A.FormattedMessage,bs.totalPosts),id:"totalPosts",data:a,width:740,height:225})),r=C.createElement("div",{className:"row"},C.createElement(is,{key:this.state.team.id,title:C.createElement(A.FormattedMessage,bs.activeUsers),id:"activeUsersWithPosts",data:s,width:740,height:225})));const o=(m=this.state.recentlyActiveUsers,u=this.props.locale,null==m?[]:m.map((e=>({name:e.username,value:C.createElement(A.FormattedDate,{value:e.last_activity_at,day:"numeric",month:(0,Ms.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:C.createElement(A.FormattedDate,{value:e.create_at,day:"numeric",month:(0,Ms.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 a=e.display_name.toUpperCase(),s=t.display_name.toUpperCase();return a===s?0:a>s?1:-1})).map((e=>C.createElement("option",{key:e.id,value:e.id},e.display_name)));var m,u;return C.createElement("div",{className:"wrapper--fixed team_statistics"},C.createElement(fe,null,C.createElement("div",{className:"team-statistics__header"},C.createElement(A.FormattedMessage,Object.assign({},bs.title,{values:{team:this.state.team.display_name}}))),C.createElement("div",{className:"team-statistics__team-filter"},C.createElement("select",{"data-testid":"teamFilter",className:"form-control team-statistics__team-filter__dropdown",onChange:this.handleTeamChange,value:this.state.team.id},c))),C.createElement("div",{className:"admin-console__wrapper"},C.createElement("div",{className:"admin-console__content"},l,C.createElement("div",{className:"grid-statistics"},C.createElement(qa,{activatedUsers:this.getStatValue(e[ve.g5.TOTAL_USERS]),seatsPurchased:parseInt(this.props.license.Users,10),isCloud:"true"===this.props.license.Cloud}),C.createElement(za,{title:C.createElement(A.FormattedMessage,bs.publicChannels),icon:"fa-globe",count:this.getStatValue(e[ve.g5.TOTAL_PUBLIC_CHANNELS])}),C.createElement(za,{title:C.createElement(A.FormattedMessage,bs.privateGroups),icon:"fa-lock",count:this.getStatValue(e[ve.g5.TOTAL_PRIVATE_GROUPS])}),n),i,r,C.createElement("div",{className:"row"},C.createElement(Es,{title:C.createElement(A.FormattedMessage,bs.recentUsers),data:o}),C.createElement(Es,{title:C.createElement(A.FormattedMessage,bs.newlyCreated),data:d})))))}}const vs=(0,s.connect)((function(e){const t=(0,u.Lq)(e),a=(0,ps.zR)("last_analytics_team","")(e);return{initialTeam:e.entities.teams.teams[a]||(t.length>0?t[0]:null),locale:(0,gs.k)(e),teams:t,stats:e.entities.admin.teamAnalytics}}),(function(e){return{actions:(0,n.zH)({getTeams:l.ZN,getProfilesInTeam:ms.xJ,setGlobalItem:us.X2},e)}}))(ys);var Ss=a(82739),Cs=a(63155),As=a(87461),Ts=a(89020);const Ns=(0,s.connect)(null,(e=>({actions:(0,n.zH)({searchPolicies:As.a5,deletePolicy:As.fQ},e)})))(Ts.A);var ks=a(14696),ws=a(30413),Is=a(65952),Rs=a(62194),Ls=a(36057),xs=a(86255),Ds=a(78064),Ps=a(19513);const Os=(0,A.defineMessages)({channelCount:{id:"more_channels.count",defaultMessage:"{count} Results"},noMore:{id:"more_channels.noMore",defaultMessage:'No results for "{text}"'}}),Fs=(0,A.injectIntl)((e=>{const[t,a]=(0,C.useState)(0),[s,n]=(0,C.useState)(!1),[i,r]=(0,C.useState)(""),[l,o]=(0,C.useState)(e.isSearch),d=(0,C.useRef)(null);(0,C.useEffect)((()=>{o(e.isSearch),e.isSearch&&!l&&a(0)}),[e.isSearch,l]),(0,C.useEffect)((()=>(document.addEventListener("keydown",c),()=>{document.removeEventListener("keydown",c)})),[]);const c=e=>
1{const t=e.target,a=(0,Ps.e)(e,ve.Ay.KeyCodes.ENTER);a&&(e.shiftKey||e.ctrlKey||e.altKey)||a&&t?.classList.contains("more-modal__row")&&t.click()},m=t=>{const a=`${t.display_name}, ${t.purpose}`.toLowerCase(),s=(0,Ds.gU)(t),n=C.createElement(s,{size:18}),i=e.teams[t.team_id],r=C.createElement("div",{id:"channelMoreInfoContainer","aria-label":`${i.display_name}`},C.createElement("span",{className:"more-modal__description"},`${i.display_name}`)),l=e.syncResults[t.id],o=l?C.createElement("div",{className:"changes-cell"},C.createElement("span",{className:"changes-summary"},C.createElement("span",{className:"added"},"+"+(l.MembersAdded?.length||0))," / ",C.createElement("span",{className:"removed"},"-"+(l.MembersRemoved?.length||0)))):null;return C.createElement("div",{className:"more-modal__row job-sync-row",key:t.id,id:`ChannelRow-${t.name}`,"data-testid":`ChannelRow-${t.name}`,"aria-label":a,onClick:()=>(t=>{e.onViewDetails&&e.syncResults[t.id]&&e.onViewDetails(t.id,t.display_name,e.syncResults[t.id])})(t),tabIndex:0},C.createElement("div",{className:"more-modal__details"},C.createElement("div",{className:"style--none more-modal__name"},n,C.createElement("span",{id:"channelName"},t.display_name)),i&&r),C.createElement("div",{className:"more-modal__actions"},o))},u=s=>{s.preventDefault(),a(t+1),n(!0),e.nextPage(t+1),d.current?.scrollTo({top:0})},g=e=>{e.preventDefault(),a(t-1),d.current?.scrollTo({top:0})},p=e.channels;let h,f,E;if(e.loading&&0===p.length)h=C.createElement(Ta.A,null);else if(0===p.length)h=C.createElement("div",{className:"no-channel-message channel-switcher__suggestion-box","aria-label":i.length>0?e.intl.formatMessage(Os.noMore,{text:i}):e.intl.formatMessage({id:"widgets.channels_input.empty",defaultMessage:"No channels found"})},C.createElement(Ls.A,null),C.createElement("h3",{className:"primary-message"},C.createElement(A.FormattedMessage,{id:"more_channels.noMore",tagName:"strong",defaultMessage:'No results for "{text}"',values:{text:i}})),e.noResultsText);else{const a=t*e.channelsPerPage,n=a+e.channelsPerPage,i=e.channels.slice(a,n);h=i.map(m),i.length>=e.channelsPerPage&&n<e.channels.length&&(f=C.createElement("button",{className:"btn btn-sm btn-tertiary filter-control filter-control__next",onClick:u,disabled:s,"aria-label":e.intl.formatMessage({id:"more_channels.next",defaultMessage:"Next"})},C.createElement(A.FormattedMessage,{id:"more_channels.next",defaultMessage:"Next"}))),t>0&&(E=C.createElement("button",{className:"btn btn-sm btn-tertiary filter-control filter-control__prev",onClick:g,"aria-label":e.intl.formatMessage({id:"more_channels.prev",defaultMessage:"Previous"})},C.createElement(A.FormattedMessage,{id:"more_channels.prev",defaultMessage:"Previous"})))}const M=C.createElement("div",{className:"filter-row"},C.createElement("span",{id:"searchIcon","aria-hidden":"true"},C.createElement("i",{className:"icon icon-magnify"})),C.createElement(xs.A,{id:"searchChannelsTextbox",className:"form-control filter-textbox",placeholder:e.intl.formatMessage({id:"filtered_channels_list.search",defaultMessage:"Search channels"}),onInput:t=>{t?.currentTarget&&(r(t.currentTarget.value),e.search(t.currentTarget.value))},clearable:!0,onClear:()=>{r(""),e.search("")},value:i,"aria-label":e.intl.formatMessage({id:"filtered_channels_list.search",defaultMessage:"Search channels"})}));let b;return b=0===p.length?e.intl.formatMessage({id:"more_channels.count_zero",defaultMessage:"0 Results"}):1===p.length?e.intl.formatMessage({id:"more_channels.count_one",defaultMessage:"1 Result"}):p.length>1?e.intl.formatMessage(Os.channelCount,{count:p.length}):e.intl.formatMessage({id:"more_channels.count_zero",defaultMessage:"0 Results"}),C.createElement("div",{className:"filtered-user-list"},M,C.createElement("div",{className:"more-modal__dropdown"},C.createElement("span",{className:"sync-job-channel-count-label"},b)),C.createElement("div",{role:"search",className:"more-modal__list",tabIndex:-1},C.createElement("div",{id:"moreChannelsList",tabIndex:-1,ref:d},h)),C.createElement("div",{className:"filter-controls"},E,f))}));var Us=a(59925),Bs=a(24876);const Hs=e=>{let{userIds:t,noResultsMessageId:a,noResultsDefaultMessage:n,actions:i}=e;const r=(0,s.useDispatch)(),[l,o]=(0,C.useState)([]),[d,c]=(0,C.useState)(0),m=t.length,u=(0,C.useCallback)((async e=>{const a=10*e,s=a+10,n=t.slice(a,s);await r(i.getProfilesByIds(n)).then((e=>{o(e?.data?[...e.data]:[])}))}),[t]);return(0,C.useEffect)((()=>{u(d)}),[d]),0===t.length?C.createElement("div",{className:"no-user-message","aria-label":"No users found"},C.createElement(Us.w,{className:"empty-state-svg"}),C.createElement("h3",{className:"primary-message"},C.createElement(A.FormattedMessage,{id:a,tagName:"strong",defaultMessage:n}))):C.createElement(Bs.A,{users:l,usersPerPage:10,total:m,nextPage:()=>{c(d+1)},previousPage:()=>{c(d-1)},search:e=>{""===e?u(0):o(l.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:{}})},Gs=e=>{let{channelId:t,channelName:a,syncResults:s,onClose:n}=e;const[i,r]=(0,C.useState)("added"),l=e=>{r(e)},o=a||t;return C.createElement(ks.zW,{className:"a11y__modal more-modal",id:"user-list-modal-dialog",onExited:n,show:!0,onHide:n,compassDesign:!0,bodyPadding:!1,modalHeaderText:C.createElement(A.FormattedMessage,{id:"admin.jobTable.syncResults.userListTitle",defaultMessage:"Channel Membership Changes"}),modalSubheaderText:`${o} - (${t})`},C.createElement("div",{className:"tabs"},C.createElement("button",{className:"tab-button "+("added"===i?"active":""),onClick:()=>l("added")},C.createElement(A.FormattedMessage,{id:"admin.jobTable.syncResults.added",defaultMessage:"Added ({count, number})",values:{count:s.MembersAdded.length}})),C.createElement("button",{className:"tab-button "+("removed"===i?"active":""),onClick:()=>l("removed")},C.createElement(A.FormattedMessage,{id:"admin.jobTable.syncResults.removed",defaultMessage:"Removed ({count, number}
1)",values:{count:s.MembersRemoved.length}}))),C.createElement("div",{className:"tab-content"},"added"===i&&C.createElement(Hs,{userIds:s.MembersAdded,noResultsMessageId:"admin.jobTable.syncResults.noUsersAdded",noResultsDefaultMessage:"No users were added",actions:{getProfilesByIds:ms.G1}}),"removed"===i&&C.createElement(Hs,{userIds:s.MembersRemoved,noResultsMessageId:"admin.jobTable.syncResults.noUsersRemoved",noResultsDefaultMessage:"No users were removed",actions:{getProfilesByIds:ms.G1}})))},Vs=e=>{let{status:t}=e,a="status-indicator";return a+="success"===t?" status-success":"error"===t||"canceled"===t?" status-error":"in_progress"===t?" status-in-progress":" status-pending",C.createElement("div",{className:"status-wrapper"},C.createElement("div",{className:a,title:t}))};function zs(e){let{job:t,onExited:a}=e;const n=(0,s.useDispatch)(),[i,r]=(0,C.useState)(null),[l,o]=(0,C.useState)(""),[d,c]=(0,C.useState)(null),[m,g]=(0,C.useState)({}),[p,h]=(0,C.useState)({}),[f,E]=(0,C.useState)(null),[M,b]=(0,C.useState)(""),[_,y]=(0,C.useState)([]),v=(0,s.useSelector)((e=>e));(0,C.useEffect)((()=>{if(t?.data?.sync_results){const e=JSON.parse(t.data.sync_results);E(e);const a=[];Object.entries(e).forEach((e=>{const t=e[0];a.push(t)})),a.length>0&&a.forEach((e=>{n(ws.c(e))}))}}),[t?.data?.sync_results,n]),(0,C.useEffect)((()=>{if(f){const e={},t={},a=[];Object.keys(f).forEach((s=>{const n=(0,Is.c)(v,s);if(n&&(e[s]=n,a.push(n),!t[n.team_id])){const e=(0,u.Uo)(v,n.team_id);e&&(t[e.id]=e)}})),h(t),g(e),y(a)}}),[f,v]);const S=(()=>{let e=_;return M&&(e=e.filter((e=>e.display_name.toLowerCase().includes(M.toLowerCase())||e.name.toLowerCase().includes(M.toLowerCase())||m[e.id]&&p[m[e.id].team_id]?.name.toLowerCase().includes(M.toLowerCase())))),e})(),T=C.createElement("span",{className:"no-results-message"},C.createElement(A.FormattedMessage,{id:"admin.jobTable.syncResults.noResultsSearchable",defaultMessage:"No channels match your search or filter."}));return C.createElement(ks.zW,{id:"job-details-modal",onExited:a,compassDesign:!0,modalHeaderText:C.createElement("div",{className:"modal-header-with-status"},C.createElement(A.FormattedMessage,{id:"admin.jobTable.details.title",defaultMessage:"Job Details"}),C.createElement(Vs,{status:t.status})),modalSubheaderText:C.createElement("div",{className:"modal-subheader-text"},"canceled"===t.status&&t.type.includes("access_control_sync")?C.createElement(A.FormattedMessage,{id:"admin.access_control.jobTable.details.subheader.canceled",defaultMessage:"Canceled at {canceledAt}",values:{canceledAt:new Date(t.last_activity_at).toLocaleString()}}):C.createElement(A.FormattedMessage,{id:"admin.access_control.jobTable.details.subheader",defaultMessage:"Finished at {finishedAt}",values:{finishedAt:new Date(t.last_activity_at).toLocaleString()}})),show:!0,bodyPadding:!1},"error"===t.status&&C.createElement("div",{className:"error-status-content"},C.createElement("div",{className:"error-status-content__title"},C.createElement(A.FormattedMessage,{id:"admin.jobTable.syncResults.error",defaultMessage:"An error occurred while syncing the channels."})),C.createElement(Rs.A,{code:JSON.stringify(t.data,null,2),language:"json"})),"canceled"===t.status&&t.type.includes("access_control_sync")&&C.createElement("div",{className:"canceled-status-content"},C.createElement(Ha.A,{mode:"warning",variant:"app",title:C.createElement(A.FormattedMessage,{id:"admin.access_control.jobTable.syncResults.canceled.title",defaultMessage:"Job Canceled"}),message:C.createElement(A.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"!==t.status&&!("canceled"===t.status&&t.type.includes("access_control_sync"))&&t.type.includes("access_control_sync")&&f&&C.createElement(Fs,{channels:S,teams:p,channelsPerPage:10,nextPage:()=>{},isSearch:Boolean(M),search:b,onViewDetails:(e,t,a)=>{r(e),o(t),c(a)},noResultsText:T,syncResults:f}),i&&d&&C.createElement(Gs,{channelId:i,channelName:l,syncResults:d,onClose:()=>{r(null),o(""),c(null)}}))}const js=(0,s.connect)(null,(e=>({actions:(0,n.zH)({createJob:Pe._S,getJobsByType:Pe.mF},e)})))((function(e){const[t,a]=(0,C.useState)(null),[s,n]=(0,C.useState)(!1),[i,r]=(0,C.useState)(!1);return(0,C.useEffect)((()=>{e.actions.getJobsByType(ve.jj.ACCESS_CONTROL_SYNC);const t=setInterval((()=>{e.actions.getJobsByType(ve.jj.ACCESS_CONTROL_SYNC)}),15e3);return()=>{clearInterval(t)}}
1),[e.actions]),C.createElement("div",{className:"AccessControlSyncJobTable"},C.createElement("div",{className:"policy-header"},C.createElement("div",{className:"policy-header-text"},C.createElement("h1",null,"Access Control Sync Jobs"),C.createElement("p",null,"Synchronize access control policies with system resources and permissions.")),C.createElement("button",{className:"btn btn-primary",onClick:async t=>{if(t?.preventDefault(),i)return;r(!0);const a={type:ve.jj.ACCESS_CONTROL_SYNC};try{await e.actions.createJob(a),e.actions.getJobsByType(ve.jj.ACCESS_CONTROL_SYNC)}finally{setTimeout((()=>{r(!1)}),1e3)}},disabled:i},C.createElement("i",{className:"icon icon-plus"}),C.createElement("span",null,i?"Running Job...":"Run Sync Job"))),C.createElement(Ze,{perPage:5,jobType:ve.jj.ACCESS_CONTROL_SYNC,hideJobCreateButton:!0,className:"job-table__access-control",createJobButtonText:"Create Job",disabled:!1,createJobHelpText:C.createElement(C.Fragment,null),onRowClick:e=>{a(e),n(!0)}}),s&&t&&C.createElement(zs,{job:t,onExited:()=>{n(!1),a(null)}}))}));var Ws=a(54452),Ys=a(25042);function qs(e){const[t,a]=(0,C.useState)(0),[s,n]=(0,C.useState)(!1),[i,r]=(0,C.useState)(!1);return(0,C.useEffect)((()=>{n(!0),e.expanded&&r(!0)}),[e.expanded]),(0,C.useEffect)((()=>{e.expanded||r(!1)}),[s]),C.createElement("div",{ref:e=>{e&&e.children&&a(Array.from(e.children).map((e=>e.scrollHeight)).reduce(((e,t)=>e+t),0))},style:{height:s&&i?t:""},className:he()("Card__body",{expanded:i,expanding:s}),onTransitionEnd:()=>n(!1)},e.children)}const Zs=e=>C.createElement("div",{className:he()("Card__header",{expanded:e.expanded}),onClick:e.onClick},e.children,e.expanded&&C.createElement("hr",{className:"Card__hr"}));class Js extends C.PureComponent{static Header=Zs;static Body=qs;render(){const{expanded:e,children:t}=this.props,a=C.Children.map(t,(t=>(0,C.isValidElement)(t)?(0,C.cloneElement)(t,{expanded:e}):t));return C.createElement("div",{className:he()("Card",this.props.className,{expanded:e})},a)}}const Ks=e=>{let t=C.createElement("button",{disabled:e.isDisabled,className:"btn btn-primary",onClick:e.onClick},e.buttonText);return e.isDisabled&&e.tooltipText&&(t=C.createElement(Nt.A,{title:e.tooltipText},t)),C.createElement(C.Fragment,null,C.createElement("div",null,C.createElement("div",{className:"text-top"},e.title),e.subtitle&&C.createElement("div",{className:"text-bottom"},e.subtitle)),e.buttonText&&e.onClick&&t)};var Qs=a(48996),Xs=a(24867),$s=a(53779),en=a(83007),tn=a(15369),an=a(22327),sn=a(87988);const nn="expressionLanguage";function rn(e){let{schemas:t}=e;return(0,C.useEffect)((()=>{an.eo.getLanguages().some((e=>e.id===nn))||(an.eo.register({id:nn}),an.eo.setMonarchTokensProvider(nn,{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=an.eo.registerCompletionItemProvider("expressionLanguage",{triggerCharacters:["."," ",'"',"'","="],provideCompletionItems:(e,a)=>{const s=a.lineNumber,n=a.column,i=e.getLineContent(s).substring(0,n-1),r=i.match(/(\w+(?:\.\w+)*)\s+(==|!=|>|<|>=|<=)\s+["']?(\w*)$/);if(r){const[,e,,a]=r,i=(e=>{const a=t[e];if(Array.isArray(a))return a;const s=e.split(".");if(s.length>=2){const e=s.pop();if(!e)return null;const a=s.join("."),n=t[a];if(!n||Array.isArray(n)||"boolean"==typeof n)return null;const i=n[e];if(Array.isArray(i))return i;if(!0===i)return null}return null})(e);if(i&&i.length>0){const e=n-a.length;return{suggestions:i.filter((e=>e.toString().toLowerCase().startsWith(a.toLowerCase()))).map((t=>({label:t.toString(),kind:an.eo.CompletionItemKind.Value,insertText:`"${t}"`,range:{startLineNumber:s,startColumn:e,endLineNumber:s,endColumn:n}})))}}}if(i.match(/(\w+(?:\.\w+)*)\s+$/))return{suggestions:["&&","||","==","!=","in"].map((e=>({label:e,kind:an.eo.CompletionItemKind.Operator,insertText:e+" ",range:{startLineNumber:s,startColumn:n,endLineNumber:s,endColumn:n}})))};const l=i.match(/(\w+)(?:\.(\w+))*\.$/);if(l){const e=(e=>{const a=t[e];return a?Array.isArray(a)?a:"object"==typeof a?Object.keys(a):[]:[]})(l[0].slice(0,-1));if(e.length>0)return{suggestions:e.map((e=>({label:e,kind:an.eo.CompletionItemKind.Field,insertText:e,range:{startLineNumber:s,startColumn:n,endLineNumber:s,endColumn:n}})))}}const o=i.match(/(?:^|\s+|[&|=!<>()]|\()(\w*)$/);if(o){const e=o[1]||"",a=n-e.length;return{suggestions:Object.keys(t).filter((e=>!e.includes("."))).filter((t=>t.toLowerCase().startsWith(e.toLowerCase()))).map((e=>({label:e,kind:an.eo.CompletionItemKind.Class,insertText:e,range:{startLineNumber:s,startColumn:a,endLineNumber:s,endColumn:n}})))}}return{suggestions:[]}}});return()=>{e.dispose()}}),[t]),null}var ln=a(62100),on=a(1643),dn=a(29064);const cn={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},mn=function(e){let{value:t,onChange:a,onValidate:s,placeholder:n="user.attributes.<attribute> == <value>",className:i="",channelId:r,teamId:l,disabled:o=!1,userAttributes:d}=e;const c=(0,A.useIntl)(),[m,u]=(0,C.useState)({expression:t,isValidating:!1,isValid:!0,cursorPosition:{line:1,column:1}
1,validationErrors:[],statusBarColor:"var(--button-bg)",showTestResults:!1,testResults:null,isWaitingForValidation:!1}),g={user:["attributes"],"user.attributes":d.map((e=>e.attribute)).filter((e=>!e.includes(" ")&&""!==e.trim()))},p=(0,C.useRef)(null),h=(0,C.useRef)(null),[f,E]=(0,C.useState)(!1),M=(0,C.useRef)(),b=(0,C.useRef)();(0,C.useEffect)((()=>{u((e=>({...e,expression:t})))}),[t]),(0,C.useEffect)((()=>{h.current&&h.current.getValue()!==m.expression&&h.current.setValue(m.expression)}),[m.expression]);const _=(0,C.useCallback)((async e=>{if(!e.trim())return u((e=>({...e,isValid:!0,validationErrors:[],statusBarColor:"var(--button-bg)",isValidating:!1,isWaitingForValidation:!1}))),void s?.(!0);u((e=>({...e,isValidating:!0,isWaitingForValidation:!1})));try{const t=await I.mT.checkAccessControlExpression(e,r,l),a=0===t.length;u((e=>({...e,isValid:a,validationErrors:t.map((e=>`${e.message} @L${e.line}:${e.column+1}`)),statusBarColor:a?"var(--online-indicator)":"var(--error-text)",isValidating:!1}))),s?.(a)}catch(e){u((t=>({...t,isValid:!1,validationErrors:[e.detailed_error||"Unknown error"],statusBarColor:"var(--error-text)",isValidating:!1}))),s?.(!1)}}),[s]);(0,C.useEffect)((()=>{b.current=_}),[_]);const y=(0,C.useMemo)((()=>(0,sn.sg)((e=>{b.current?.(e)}),1e3)),[]),v=(0,C.useCallback)((e=>{u((t=>({...t,expression:e,statusBarColor:"var(--button-bg)",validationErrors:[],isWaitingForValidation:!0}))),a(e),y(e)}),[a,y]);(0,C.useEffect)((()=>{M.current=v}),[v]),(0,C.useEffect)((()=>{t.trim()&&_(t)}),[]),(0,C.useEffect)((()=>{if(!p.current||h.current)return;const e=an.EN.create(p.current,cn);h.current=e,e.setValue(m.expression);const t=e.getModel()?.onDidChangeContent((()=>{const t=e.getValue();M.current?.(t)})),a=e.onDidChangeCursorPosition((e=>{u((t=>({...t,cursorPosition:{line:e.position.lineNumber,column:e.position.column}})))}));return an.EN.addKeybindingRule({keybinding:an.QX.CtrlCmd|an.DD.KeyF,command:null}),()=>{t?.dispose(),a?.dispose(),e.dispose(),h.current=null}}),[]),(0,C.useEffect)((()=>{h.current&&h.current.updateOptions({readOnly:o})}),[o]);const S=(0,C.useCallback)((()=>m.validationErrors.length>0?"error":m.isValid&&"var(--online-indicator)"===m.statusBarColor?"validated":m.isValidating?"validating":m.expression.trim()?m.isWaitingForValidation?"waiting":"unvalidated":"empty"),[m]),T=(0,C.useCallback)((e=>{switch(e){case"error":return C.createElement("span",{className:"cel-editor__error"},C.createElement("i",{className:"icon icon-alert-circle-outline"}),m.validationErrors[0]);case"validated":return C.createElement("span",{className:"cel-editor__valid"},C.createElement("i",{className:"icon icon-check"}),"Valid");case"validating":return C.createElement("span",{className:"cel-editor__loading"},C.createElement("i",{className:"fa fa-spinner fa-spin"}),C.createElement(A.FormattedMessage,{id:"admin.access_control.cel.validating",defaultMessage:"Validating..."}));case"empty":return C.createElement("span",{className:"cel-editor__empty"},C.createElement(A.FormattedMessage,{id:"admin.access_control.cel.type_expression",defaultMessage:"Type an expression..."}));case"waiting":return C.createElement("span",{className:"cel-editor__waiting"},C.createElement(A.FormattedMessage,{id:"admin.access_control.cel.incomplete_expression",defaultMessage:"Incomplete expression, awaiting input..."}));default:return null}}),[m.validationErrors]);return C.createElement("div",{className:`cel-editor ${i}`},C.createElement(rn,{schemas:g}),C.createElement("div",{className:"cel-editor__container","data-status-color":m.statusBarColor},!m.expression&&C.createElement("div",{className:"policy-editor-placeholder","aria-label":"CEL Expression Editor"},n),C.createElement("div",{ref:p,className:"cel-editor__input"}),C.createElement("div",{className:"cel-editor__status-bar",style:{backgroundColor:m.statusBarColor},"data-validation-state":S()},C.createElement("div",{className:"cel-editor__status-message"},T(S())),C.createElement("div",{className:"cel-editor__cursor-position"},C.createElement(A.FormattedMessage,{id:"admin.access_control.cel.line_and_column_number",defaultMessage:"L{lineNumber}:{columnNumber}",values:{lineNumber:m.cursorPosition.line,columnNumber:m.cursorPosition.column}}
1)))),C.createElement("div",{className:"cel-editor__footer"},C.createElement("div",{className:"help-text-container"},C.createElement("div",null,C.createElement(dn.$9,{message:c.formatMessage({id:"admin.access_control.cel.help_text",defaultMessage:"Write rules like `user.attributes.{lessThan}attribute{greaterThan} == {lessSign}value{greaterSign}`. Use `&&` / `||` (and/or) for multiple conditions. Group conditions with `()`."},{lessThan:"<",greaterThan:">",lessSign:"<",greaterSign:">"}),onLearnMoreClick:()=>E(!0)}))),C.createElement(dn.vD,{onClick:()=>u((e=>({...e,showTestResults:!0}))),disabled:o||!m.expression||!m.isValid||m.isValidating})),m.showTestResults&&C.createElement(on.A,{onExited:()=>u((e=>({...e,showTestResults:!1}))),isStacked:!0,actions:{openModal:()=>{},searchUsers:(e,t,a)=>(0,As.Yz)(m.expression,e,t,a,r,l)}}),f&&C.createElement(ln.A,{onExited:()=>E(!1)}))};var un=a(68611);function gn(e){let{active:t,onExited:a,onConfirm:s,channelsAffected:n}=e;const{formatMessage:i}=(0,A.useIntl)(),[r,l]=(0,C.useState)(!0);return C.createElement(ks.zW,{className:"PolicyConfirmationModal",show:!0,onExited:a,onHide:a,compassDesign:!0,modalHeaderText:C.createElement(A.FormattedMessage,{id:"admin.access_control.policy.save_policy_confirmation_title",defaultMessage:"Save access control policy "}),modalSubheaderText:C.createElement(A.FormattedMessage,{id:"admin.access_control.policy.save_policy_confirmation_subheader",defaultMessage:"{count} channels will be affected.",values:{count:n}}),footerContent:C.createElement("div",null,C.createElement("button",{type:"button",className:"btn-cancel",onClick:a},i({id:"admin.access_control.edit_policy.cancel",defaultMessage:"Cancel"})),C.createElement("button",{type:"button",className:r?"btn-apply":"btn-save",onClick:()=>s(r)},i(r?{id:"admin.access_control.edit_policy.apply_policy",defaultMessage:"Apply policy"}:{id:"admin.access_control.edit_policy.save_policy",defaultMessage:"Save policy"})))},C.createElement("div",{className:"body"},i(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."})),C.createElement("div",{className:"enforce-toggle"},C.createElement("label",{className:"enforce-checkbox-label"},C.createElement("input",{type:"checkbox",checked:r,onChange:e=>l(e.target.checked)}),C.createElement("span",null,i({id:"admin.access_control.policy.enforce_immediately",defaultMessage:"Enforce policy immediately"})))),C.createElement("div",{className:"confirmation"},i(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?"})))}const pn=(0,s.connect)((function(e,t){const a=t.match.params.policy_id;return{policy:(0,Ws.Ar)(e,a),policyId:a,accessControlSettings:(0,Ws.Nh)(e)}}),(function(e){return{actions:(0,n.zH)({fetchPolicy:As.Ar,createPolicy:As.IS,deletePolicy:As.fQ,searchChannels:As.U8,assignChannelsToAccessControlPolicy:As.GF,unassignChannelsFromAccessControlPolicy:As.kj,setNavigationBlocked:p.Jb,createJob:Pe._S,updateAccessControlPoliciesActive:As.X},e)}}))((function(e){let{policy:t,policyId:a,actions:s,accessControlSettings:n}=e;const[i,r]=(0,C.useState)(t?.name||""),[l,o]=(0,C.useState)((0,Ys.Db)(t?.rules)?.expression||""),[d,c]=(0,C.useState)(t?.rules||[]),[m,u]=(0,C.useState)(t?.active||!1),[g,p]=(0,C.useState)(void 0),[h,f]=(0,C.useState)(!1),[E,b]=(0,C.useState)("table"),[_,y]=(0,C.useState)({removed:{},added:{},removedCount:0}),[v,S]=(0,C.useState)([]),[T,N]=(0,C.useState)(!1),[k,w]=(0,C.useState)(!1),[I,R]=(0,C.useState)(0),[L,x]=(0,C.useState)([]),[D,P]=(0,C.useState)(!1),[O,F]=(0,C.useState)(!1),[U,B]=(0,C.useState)(!1),{formatMessage:H}=(0,A.useIntl)(),G=(0,$s.V)(),V=(0,C.useMemo)((()=>
1C.createElement("div",{key:"no-private-channels",className:"no-channel-message"},C.createElement("p",{className:"primary-message"},C.createElement(A.FormattedMessage,{id:"admin.access_control.policy.edit_policy.no_private_channels",defaultMessage:"There are no private channels available to add to this policy."})))),[]),z=D&&!(0,dn.OT)(L,n.EnableUserManagedAttributes);(0,C.useEffect)((()=>{j()}),[a]);const j=async()=>{const e=G.getAccessControlFields("",100).then((e=>{e.data&&x(e.data),P(!0)}));if(a){const t=s.fetchPolicy(a).then((e=>{r(e.data?.name||""),o((0,Ys.Db)(e.data?.rules)?.expression||""),c(e.data?.rules||[]),u(e.data?.active||!1)})),n=s.searchChannels(a,"",{per_page:10}).then((e=>{R(e.data?.total_count||0)}));await Promise.all([e,t,n])}else await e},W=async function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];w(!0);try{let t=!0,n=a;if(await s.createPolicy({id:n||"",name:i,rules:(0,Ys._V)(d,l),type:"parent"}).then((e=>{if(e.error)return"app.pap.save_policy.name_exists.app_error"===e.error.server_error_id?p(H({id:"admin.access_control.edit_policy.name_exists",defaultMessage:"A policy with this name already exists. Please choose a different name."})):p(e.error.message),F(!1),void(t=!1);n=e.data?.id,r(e.data?.name||""),o((0,Ys.Db)(e.data?.rules)?.expression||""),c(e.data?.rules||[]),u(e.data?.active||!1)})),!n||!t)return void F(!1);if(t)try{_.removedCount>0&&await s.unassignChannelsFromAccessControlPolicy(n,Object.keys(_.removed)),Object.keys(_.added).length>0&&await s.assignChannelsToAccessControlPolicy(n,Object.keys(_.added)),y({removed:{},added:{},removedCount:0})}catch(e){return p(H({id:"admin.access_control.policy.edit_policy.error.assign_channels",defaultMessage:"Error assigning channels: {error}"},{error:e.message})),F(!1),void(t=!1)}if(t&&v.length>0){try{await s.updateAccessControlPoliciesActive(v)}catch(e){return p(H({id:"admin.access_control.policy.edit_policy.error.update_active_status",defaultMessage:"Error updating policy active status: {error}"},{error:e.message})),void(t=!1)}S([])}if(e)try{await G.createAccessControlSyncJob({policy_id:n})}catch(e){return p(H({id:"admin.access_control.policy.edit_policy.error.create_job",defaultMessage:"Error creating job: {error}"},{error:e.message})),F(!1),void(t=!1)}N(!1),F(!1),s.setNavigationBlocked(!1),(0,en.J)().push("/admin_console/system_attributes/membership_policies")}finally{w(!1)}},Y=()=>I>_.removedCount||Object.keys(_.added).length>0;return C.createElement("div",{className:"wrapper--fixed AccessControlPolicySettings"},C.createElement(fe,{withBackButton:!0},C.createElement("div",null,C.createElement(me.A,{to:"/admin_console/system_attributes/membership_policies",className:"fa fa-angle-left back"}),C.createElement(A.FormattedMessage,{id:"admin.access_control.policy.edit_policy.title",defaultMessage:"Edit Access Control Policy"}))),C.createElement("div",{className:"admin-console__wrapper"},C.createElement("div",{className:"admin-console__content"},C.createElement("div",{className:"admin-console__setting-group"},C.createElement(pt.A,{id:"admin.access_control.policy.edit_policy.policyName",label:C.createElement(A.FormattedMessage,{id:"admin.access_control.policy.edit_policy.policyName",defaultMessage:"Access control policy name:"}),value:i,placeholder:H({id:"admin.access_control.policy.edit_policy.policyName.placeholder",defaultMessage:"Add a unique policy name"}),onChange:(e,t)=>
1{r(t),N(!0),s.setNavigationBlocked(!0)},labelClassName:"col-sm-4 vertically-centered-label",inputClassName:"col-sm-8",autoFocus:void 0===a})),z&&C.createElement("div",{className:"admin-console__warning-notice"},C.createElement(Xs.A,{type:"warning",title:C.createElement(A.FormattedMessage,{id:"admin.access_control.policy.edit_policy.notice.title",defaultMessage:"Please add user attributes and values to use Attribute-Based Access Control"}),text:H({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:H({id:"admin.access_control.policy.edit_policy.notice.button",defaultMessage:"Configure user attributes"}),onClick:()=>{(0,en.J)().push("/admin_console/system_attributes/user_attributes")}}})),C.createElement(Js,{expanded:!0,className:"console"},C.createElement(Js.Header,null,C.createElement(Ks,{title:C.createElement(A.FormattedMessage,{id:"admin.access_control.policy.edit_policy.access_rules.title",defaultMessage:"Attribute-based access rules"}),subtitle:C.createElement(A.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?C.createElement(A.FormattedMessage,{id:"admin.access_control.policy.edit_policy.switch_to_advanced",defaultMessage:"Switch to Advanced Mode"}):C.createElement(A.FormattedMessage,{id:"admin.access_control.policy.edit_policy.switch_to_simple",defaultMessage:"Switch to Simple Mode"}),onClick:()=>b("table"===E?"cel":"table"),isDisabled:z||"cel"===E&&!(0,dn.PF)(l),tooltipText:z?H({id:"admin.access_control.policy.edit_policy.no_usable_attributes_tooltip",defaultMessage:"Please configure user attributes to use the editor."}):"cel"!==E||(0,dn.PF)(l)?void 0:H({id:"admin.access_control.policy.edit_policy.complex_expression_tooltip",defaultMessage:"Complex expression detected. Simple expressions editor is not available at the moment."})})),C.createElement(Js.Body,null,"cel"===E?C.createElement(mn,{value:l,onChange:e=>{o(e),N(!0),s.setNavigationBlocked(!0)},onValidate:()=>{},disabled:z,userAttributes:L.filter((e=>{if(n.EnableUserManagedAttributes)return!0;const t=e.attrs?.ldap||e.attrs?.saml,a="admin"===e.attrs?.managed,s=e.attrs?.protected;return t||a||s})).map((e=>({attribute:e.name,values:[]})))}):C.createElement(un.Ay,{value:l,onChange:e=>{o(e),N(!0),s.setNavigationBlocked(!0)},onValidate:()=>{},disabled:z,userAttributes:L,onParseError:()=>{b("cel")},enableUserManagedAttributes:n.EnableUserManagedAttributes,actions:G}))),C.createElement(Js,{expanded:!0,className:"console add-channels"},C.createElement(Js.Header,null,C.createElement(Ks,{title:C.createElement(A.FormattedMessage,{id:"admin.access_control.policy.edit_policy.channel_selector.title",defaultMessage:"Assigned channels"}),subtitle:C.createElement(A.FormattedMessage,{id:"admin.access_control.policy.edit_policy.channel_selector.subtitle",defaultMessage:"Add channels that this attribute-based access policy will apply to."}),buttonText:C.createElement(A.FormattedMessage,{id:"admin.access_control.policy.edit_policy.channel_selector.addChannels",defaultMessage:"Add channels"}),onClick:()=>f(!0)})),C.createElement(Js.Body,{expanded:!0},C.createElement(tn.A,{onRemoveCallback:e=>(e=>{y((t=>{const a=M()(t);return a.added[e.id]?.id===e.id?delete a.added[e.id]:a.removed[e.id]?.id!==e.id&&(a.removedCount++,a.removed[e.id]=e),a})),N(!0),s.setNavigationBlocked(!0)})(e),channelsToRemove:_.removed,channelsToAdd:_.added,policyId:a,policyActiveStatusChanges:v,onPolicyActiveStatusChange:e=>{S(e),N(!0),s.setNavigationBlocked(!0)},saving:k}))),a&&C.createElement(Js,{expanded:!0,className:"console delete-policy"},C.createElement(Js.Header,null,C.createElement(Ks,{title:C.createElement(A.FormattedMessage,{id:"admin.access_control.policy.edit_policy.delete_policy.title",defaultMessage:"Delete policy"}),subtitle:Y()?C.createElement(A.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"}):C.createElement(A.FormattedMessage,{id:"admin.access_control.policy.edit_policy.delete_policy.subtitle",defaultMessage:"This policy will be deleted and cannot be recovered."}),buttonText:C.createElement(A.FormattedMessage,{id:"admin.access_control.policy.edit_policy.delete_policy.delete",defaultMessage:"Delete"}),onClick:()=>{Y()||B(!0)},isDisabled:Y()}))))),h&&C.createElement(Qs.A,{onModalDismissed:()=>f(!1),onChannelsSelected:e=>(e=>{y((t=>{const a=M()(t);return e.forEach((e=>{a.removed[e.id]?.id===e.id?(delete a.removed[e.id],a.removedCount--):a.added[e.
1id]=e})),a})),N(!0),s.setNavigationBlocked(!0)})(e),groupID:"",alreadySelected:Object.values(_.added).map((e=>e.id)),excludeTypes:["O","D","G"],customNoOptionsMessage:V,excludeGroupConstrained:!0}),O&&C.createElement(gn,{active:m,onExited:()=>F(!1),onConfirm:W,channelsAffected:I-_.removedCount+Object.keys(_.added).length}),U&&C.createElement(ks.zW,{onExited:()=>B(!1),handleConfirm:async()=>{if(!a)return;let e=!0;if(_.removedCount>0)try{await s.unassignChannelsFromAccessControlPolicy(a,Object.keys(_.removed))}catch(t){p(H({id:"admin.access_control.policy.edit_policy.error.unassign_channels",defaultMessage:"Error unassigning channels: {error}"},{error:t.message})),e=!1}if(e)try{await s.deletePolicy(a)}catch(e){p(H({id:"admin.access_control.policy.edit_policy.error.delete_policy",defaultMessage:"Error deleting policy: {error}"},{error:e.message}))}e&&(0,en.J)().push("/admin_console/system_attributes/membership_policies")},handleCancel:()=>B(!1),modalHeaderText:C.createElement(A.FormattedMessage,{id:"admin.access_control.policy.edit_policy.delete_confirmation.title",defaultMessage:"Confirm Policy Deletion"}),confirmButtonText:C.createElement(A.FormattedMessage,{id:"admin.access_control.policy.edit_policy.delete_confirmation.confirm_button",defaultMessage:"Delete Policy"}),confirmButtonClassName:"btn btn-danger",isDeleteModal:!0,compassDesign:!0},C.createElement(A.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."})),C.createElement("div",{className:"admin-console-save"},C.createElement(ue.A,{disabled:!T,saving:k,onClick:()=>{(0===i.length?(p(H({id:"admin.access_control.policy.edit_policy.error.name_required",defaultMessage:"Please add a name to the policy"})),0):0!==l.length||(p(H({id:"admin.access_control.policy.edit_policy.error.expression_required",defaultMessage:"Please add an expression to the policy"})),0))&&(Y()?F(!0):W())},defaultMessage:C.createElement(A.FormattedMessage,{id:"admin.access_control.edit_policy.save",defaultMessage:"Save"})}),C.createElement(me.A,{className:"btn btn-quaternary",to:"/admin_console/system_attributes/membership_policies"},C.createElement(A.FormattedMessage,{id:"admin.access_control.edit_policy.cancel",defaultMessage:"Cancel"})),g&&C.createElement("span",{className:"EditPolicy__error"},C.createElement("i",{className:"icon icon-alert-outline"}),C.createElement(A.FormattedMessage,{id:"admin.access_control.edit_policy.serverError",defaultMessage:"There are errors in the form above: {serverError}",values:{serverError:g}}))))})),hn=C.createElement("tr",null,C.createElement("td",null,C.createElement(A.FormattedMessage,{id:"admin.connectionSecurityNone",defaultMessage:"None"})),C.createElement("td",null,C.createElement(A.FormattedMessage,{id:"admin.connectionSecurityNoneDescription",defaultMessage:"Mattermost will connect over an insecure connection."}))),fn=C.createElement("tr",null,C.createElement("td",null,C.createElement(A.FormattedMessage,{id:"admin.connectionSecurityTls.title",defaultMessage:"TLS"})),C.createElement("td",null,C.createElement(A.FormattedMessage,{id:"admin.connectionSecurityTlsDescription",defaultMessage:"Encrypts the communication between Mattermost and your server."}))),En=C.createElement("tr",null,C.createElement("td",null,C.createElement(A.FormattedMessage,{id:"admin.connectionSecurityStart",defaultMessage:"STARTTLS"})),C.createElement("td",null,C.createElement(A.FormattedMessage,{id:"admin.connectionSecurityStartDescription",defaultMessage:"Takes an existing insecure connection and attempts to upgrade it to a secure connection using TLS."}))),Mn=C.createElement("table",{className:"table table-bordered",cellPadding:"5"},C.createElement("tbody",null,hn,fn,En)),bn=C.createElement("table",{className:"table table-bordered",cellPadding:"5"},C.createElement("tbody",null,hn,fn,En)),_n=C.createElement("table",{className:"table table-bordered",cellPadding:"5"},C.createElement("tbody",null,hn,fn)),yn=C.createElement("div",null,C.createElement("table",{className:"table table-bordered",cellPadding:"5"},C.createElement("tbody",null,C.createElement("tr",null,C.createElement("td",null,C.createElement(A.FormattedMessage,{id:"admin.webserverModeGzip",defaultMessage:"gzip"})),C.createElement("td",null,C.createElement(A.FormattedMessage,{id:"admin.webserverModeGzipDescription",defaultMessage:"The Mattermost server will serve static files compressed with gzip."}))),C.createElement("tr",null,C.createElement("td",null,C.createElement(A.FormattedMessage,{id:"admin.webserverModeUncompressed",defaultMessage:"Uncompressed"})),C.createElement("td",null,C.createElement(A.FormattedMessage,{id:"admin.webserverModeUncompressedDescription",defaultMessage:"The Mattermost server will serve static files uncompressed."}))),C.createElement("tr",null,C.createElement("td",null,C.createElement(A.FormattedMessage,{id:"admin.webserverModeDisabled",defaultMessage:"Disabled"})),C.createElement("td",null,C.createElement(A.FormattedMessage,{id:"admin.webserverModeDisabledDescription",defaultMessage:"The Mattermost server will not serve static files."}
1))))),C.createElement("p",{className:"help-text"},C.createElement(A.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."}))),vn=[{value:"DEBUG",display_name:(0,A.defineMessage)({id:"admin.log.levelOptions.DEBUG",defaultMessage:"DEBUG"})},{value:"INFO",display_name:(0,A.defineMessage)({id:"admin.log.levelOptions.INFO",defaultMessage:"INFO"})},{value:"ERROR",display_name:(0,A.defineMessage)({id:"admin.log.levelOptions.ERROR",defaultMessage:"ERROR"})},{value:"WARN",display_name:(0,A.defineMessage)({id:"admin.log.levelOptions.WARN",defaultMessage:"WARN"})}];var Sn=a(6995);var Cn=a(30491);function An(){const{formatMessage:e}=(0,A.useIntl)();return C.createElement("i",{className:"fa fa-refresh",title:e({id:"generic_icons.reload",defaultMessage:"Reload Icon"})})}class Tn extends C.PureComponent{constructor(e){super(e),this.state={loadingReports:!0},this.descInput=C.createRef(),this.emailsInput=C.createRef(),this.fromInput=C.createRef(),this.keywordsInput=C.createRef(),this.toInput=C.createRef()}componentDidMount(){this.props.isLicensed&&this.props.enabled&&this.props.actions.getComplianceReports().then((()=>this.setState({loadingReports:!1})))}reload=()=>{this.setState({loadingReports:!0}),this.props.actions.getComplianceReports().then((()=>this.setState({loadingReports:!1})))};runReport=e=>{e.preventDefault(),this.setState({runningReport:!0});const t={};t.desc=this.descInput.current?.value,t.emails=this.emailsInput.current?.value,t.keywords=this.keywordsInput.current?.value,t.start_at=this.fromInput.current?Date.parse(this.fromInput.current.value):void 0,t.end_at=this.toInput.current?Date.parse(this.toInput.current.value):void 0,this.props.actions.createComplianceReport(t).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()}))};getDateTime(e){const t=new Date(e);return C.createElement("span",{style:Nn.date},C.createElement(A.FormattedDate,{value:t,day:"2-digit",month:"short",year:"numeric"})," - ",C.createElement(A.FormattedTime,{value:t,hour:"2-digit",minute:"2-digit"}))}render(){if(!this.props.isLicensed||!this.props.enabled)return C.createElement("div",null);let e=null;if(this.state.loadingReports)e=C.createElement(Ta.A,null);else{const t=[];for(let e=0;e<this.props.reports.length;e++){const a=this.props.reports[e];let s="";"adhoc"===a.type&&(s=C.createElement("span",null,C.createElement(A.FormattedMessage,{id:"admin.compliance_reports.from",defaultMessage:"From:"})," ",this.getDateTime(a.start_at),C.createElement("br",null),C.createElement(A.FormattedMessage,{id:"admin.compliance_reports.to",defaultMessage:"To:"})," ",this.getDateTime(a.end_at),C.createElement("br",null),C.createElement(A.FormattedMessage,{id:"admin.compliance_reports.emails",defaultMessage:"Emails:"})," ",a.emails,C.createElement("br",null),C.createElement(A.FormattedMessage,{id:"admin.compliance_reports.keywords",defaultMessage:"Keywords:"})," ",a.keywords));let n="",i="";"finished"===a.status?(n=C.createElement("a",{href:`${I.mT.getBaseRoute()}/compliance/reports/${a.id}/download`},C.createElement(A.FormattedMessage,{id:"admin.compliance_table.download",defaultMessage:"Download"})),i=C.createElement("span",{className:"status-icon-success"},C.createElement(A.FormattedMessage,{id:"admin.compliance_table.success",defaultMessage:"Success"}))):"running"===a.status?i=C.createElement("span",{className:"status-icon-warning"},C.createElement(A.FormattedMessage,{id:"admin.compliance_table.pending",defaultMessage:"Pending"})):"failed"===a.status&&(i=C.createElement("span",{className:"status-icon-error"},C.createElement(A.FormattedMessage,{id:"admin.compliance_table.failed",defaultMessage:"Failed"})));let r=a.user_id;const l=this.props.users[a.user_id];l&&(r=l.email),t[e]=C.createElement("tr",{key:a.id},C.createElement("td",null,i),C.createElement("td",{style:Nn.dataCell},n),C.createElement("td",null,this.getDateTime(a.create_at)),C.createElement("td",null,a.count),C.createElement("td",null,a.type),C.createElement("td",{style:Nn.dataCell},a.desc),C.createElement("td",null,r),C.createElement("td",{style:Nn.dataCell},s))}e=C.createElement("div",{style:Nn.content},C.createElement("table",{className:"table"},C.createElement("thead",null,C.createElement("tr",null,C.createElement("th",
1null,C.createElement(A.FormattedMessage,{id:"admin.compliance_table.status",defaultMessage:"Status"})),C.createElement("th",null,C.createElement(A.FormattedMessage,{id:"admin.compliance_table.files",defaultMessage:"Files"})),C.createElement("th",null,C.createElement(A.FormattedMessage,{id:"admin.compliance_table.timestamp",defaultMessage:"Timestamp"})),C.createElement("th",null,C.createElement(A.FormattedMessage,{id:"admin.compliance_table.records",defaultMessage:"Records"})),C.createElement("th",null,C.createElement(A.FormattedMessage,{id:"admin.compliance_table.type",defaultMessage:"Type"})),C.createElement("th",null,C.createElement(A.FormattedMessage,{id:"admin.compliance_table.desc",defaultMessage:"Description"})),C.createElement("th",null,C.createElement(A.FormattedMessage,{id:"admin.compliance_table.userId",defaultMessage:"Requested By"})),C.createElement("th",null,C.createElement(A.FormattedMessage,{id:"admin.compliance_table.params",defaultMessage:"Params"})))),C.createElement("tbody",null,t)))}let t="";return this.props.serverError&&(t=C.createElement("div",{className:"form-group has-error",style:Nn.serverError},C.createElement("label",{className:"control-label"},this.props.serverError))),C.createElement("div",{className:"panel compliance-panel"},C.createElement("h4",null,C.createElement(A.FormattedMessage,{id:"admin.compliance_reports.title",defaultMessage:"Compliance Reports"})),C.createElement("div",{className:"row"},C.createElement("div",{className:"col-sm-6 col-md-4 form-group"},C.createElement("label",{htmlFor:"desc"},C.createElement(A.FormattedMessage,{id:"admin.compliance_reports.desc",defaultMessage:"Job Name:"})),C.createElement(Cn.A,{type:"text",className:"form-control",id:"desc",ref:this.descInput,placeholder:(0,A.defineMessage)({id:"admin.compliance_reports.desc_placeholder",defaultMessage:'E.g. "Audit 445 for HR"'}),disabled:this.props.readOnly})),C.createElement("div",{className:"col-sm-3 col-md-2 form-group"},C.createElement("label",{htmlFor:"from"},C.createElement(A.FormattedMessage,{id:"admin.compliance_reports.from",defaultMessage:"From:"})),C.createElement(Cn.A,{type:"text",className:"form-control",id:"from",ref:this.fromInput,placeholder:(0,A.defineMessage)({id:"admin.compliance_reports.from_placeholder",defaultMessage:'E.g. "2016-03-11"'}),disabled:this.props.readOnly})),C.createElement("div",{className:"col-sm-3 col-md-2 form-group"},C.createElement("label",{htmlFor:"to"},C.createElement(A.FormattedMessage,{id:"admin.compliance_reports.to",defaultMessage:"To:"})),C.createElement(Cn.A,{type:"text",className:"form-control",id:"to",ref:this.toInput,placeholder:(0,A.defineMessage)({id:"admin.compliance_reports.to_placeholder",defaultMessage:'E.g. "2016-03-15"'}),disabled:this.props.readOnly}))),C.createElement("div",{className:"row"},C.createElement("div",{className:"col-sm-6 col-md-4 form-group"},C.createElement("label",{htmlFor:"emails"},C.createElement(A.FormattedMessage,{id:"admin.compliance_reports.emails",defaultMessage:"Emails:"})),C.createElement(Cn.A,{type:"text",className:"form-control",id:"emails",ref:this.emailsInput,placeholder:(0,A.defineMessage)({id:"admin.compliance_reports.emails_placeholder",defaultMessage:'E.g. "[email protected], [email protected]"'}),disabled:this.props.readOnly})),C.createElement("div",{className:"col-sm-6 col-md-4 form-group"},C.createElement("label",{htmlFor:"keywords"},C.createElement(A.FormattedMessage,{id:"admin.compliance_reports.keywords",defaultMessage:"Keywords:"})),C.createElement(Cn.A,{type:"text",className:"form-control",id:"keywords",ref:this.keywordsInput,placeholder:(0,A.defineMessage)({id:"admin.compliance_reports.keywords_placeholder",defaultMessage:'E.g. "shorting stock"'}),disabled:this.props.readOnly}))),C.createElement("div",{className:"clearfix"},C.createElement("button",{id:"run-button",type:"submit",className:"btn btn-primary",onClick:this.runReport,disabled:this.props.readOnly},C.createElement(A.FormattedMessage,{id:"admin.compliance_reports.run",defaultMessage:"Run Compliance Report"}))),t,C.createElement("div",{className:"text-right"},C.createElement("button",{type:"submit",className:"btn btn-tertiary",disabled:this.state.runningReport,onClick:this.reload},C.createElement(An,null),C.createElement(A.FormattedMessage,{id:"admin.compliance_reports.reload",defaultMessage:"Reload Completed Compliance Reports"}))),C.createElement("div",{className:"compliance-panel__table"},e))}}const Nn={content:{margin:10},greenStatus:{color:"green"},redStatus:{color:"red"},dataCell:{whiteSpace:"nowrap"},date:{whiteSpace:"nowrap"},serverError:{marginTop:"10px"}},kn=(0,v.Mz)("getUsersForReports",(e=>e.entities.users.profiles),(e=>e.entities.admin.complianceReports),((e,t)=>{const a={};return Object.values(t).forEach((t=>{const s=e[t.user_id];s&&(a[s.id]=s)})),a})),wn=(0,s.connect)((function(e){const t="true"===(0,c.Ay)(e).IsLicensed;let a=!1;const s=(0,d.zj)(e);let n;s&&s.ComplianceSettings&&(a=s.ComplianceSettings.Enable);const i=e.requests.admin.createCompliance.error;return i&&(n=i.message),{isLicensed:t,enabled:a,reports:Object.values((0,d.$q)(e)).sort(((e,t)=>t.create_at-e.create_at)),serverError:n,users:kn(e)}}),(function(e){return{actions:(0,n.zH)({getComplianceReports:i.$q,createComplianceReport:i.O},e)}}))(Tn);var In=a(43957);const Rn=(0,A.defineMessages)({reload:{id:"admin.audits.reload",defaultMessage:"Reload User Activity L
1ogs"}}),Ln=[Rn.reload],xn=e=>{let{isLicensed:t,audits:a,isDisabled:s,actions:n}=e;const[i,r]=(0,C.useState)(!0);(0,C.useEffect)((()=>{n.getAudits().then((()=>r(!1)))}),[]);const l=(0,C.useCallback)((()=>{r(!0),n.getAudits().then((()=>r(!1)))}),[n]);let o=null;return o=i?C.createElement(Ta.A,null):C.createElement("div",null,C.createElement(In.A,{audits:a,showUserId:!0,showIp:!0,showSession:!0})),C.createElement("div",null,t?C.createElement(wn,{readOnly:s}):C.createElement("div",null),C.createElement("div",{className:"panel compliance-panel"},C.createElement("div",{style:{clear:"both"}},C.createElement("h4",{style:{display:"inline-block",marginBottom:"6px"}},C.createElement(A.FormattedMessage,{id:"admin.complianceMonitoring.userActivityLogsTitle",defaultMessage:"User Activity Logs"})),C.createElement("button",{type:"submit",className:"btn btn-tertiary pull-right",onClick:l},C.createElement(An,null),C.createElement(A.FormattedMessage,Rn.reload))),C.createElement("div",{className:"compliance-panel__table"},o)))},Dn=(0,C.memo)(xn),Pn=(0,s.connect)((function(e){return{isLicensed:"true"===(0,c.Ay)(e).Compliance,audits:Object.values(d.F5(e))}}),(function(e){return{actions:(0,n.zH)({getAudits:i.F5},e)}}))(Dn);var On=a(86724);function Fn(){const e=(0,s.useDispatch)();return(0,s.useSelector)(_e.I0)?C.createElement("div",{className:"CloudFetchError "},C.createElement("div",{className:"CloudFetchError__header "},C.createElement(A.FormattedMessage,{id:"cloud.fetch_error",defaultMessage:"Error fetching billing data. Please try again later."})),C.createElement("button",{className:"btn btn-primary",onClick:()=>{e((0,Sn.Zp)())}},C.createElement(A.FormattedMessage,{id:"cloud.fetch_error.retry",defaultMessage:"Retry"}))):null}const Un=e=>C.createElement("svg",{width:e.width?e.width.toString():"152",height:e.height?e.height.toString():"116",viewBox:"0 0 152 116",fill:"none",xmlns:"http://www.w3.org/2000/svg"},C.createElement("rect",{y:"13.5",width:"126",height:"36",rx:"5.625",fill:"#1C58D9",fillOpacity:"0.12"}),C.createElement("rect",{x:"21",y:"54",width:"130.5",height:"37.5",rx:"5.625",fill:"#1C58D9",fillOpacity:"0.12"}),C.createElement("rect",{x:"42.0417",y:"14.0039",width:"72.1826",height:"88.3429",rx:"3",fill:"#28427B"}),C.createElement("rect",{x:"34.5",width:"75.7575",height:"98.0391",rx:"3",fill:"var(--center-channel-bg)"}),C.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"}),C.createElement("path",{d:"M43.5 10.5H56.4282",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeWidth:"1.5",strokeLinecap:"round"}),C.createElement("path",{d:"M43.5 75H85.5168",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeWidth:"1.5",strokeLinecap:"round"}),C.createElement("path",{d:"M43.5 51H85.5168",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeWidth:"1.5",strokeLinecap:"round"}),C.createElement("path",{d:"M43.5 16.5H67.2018",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeWidth:"1.5",strokeLinecap:"round"}),C.createElement("path",{d:"M43.5 87H98.445",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeWidth:"1.5",strokeLinecap:"round"}),C.createElement("path",{d:"M43.5 63H98.445",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeWidth:"1.5",strokeLinecap:"round"}),C.createElement("path",{d:"M43.5 39H98.445",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeWidth:"1.5",strokeLinecap:"round"}),C.createElement("path",{d:"M43.5 22.5H53.1962",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeWidth:"1.5",strokeLinecap:"round"}),C.createElement("path",{d:"M57 22.5H66.6962",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeWidth:"1.5",strokeLinecap:"round"}),C.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:"var(--center-c
1hannel-color)",fillOpacity:"0.32"}),C.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:"var(--center-channel-bg)",stroke:"var(--center-channel-color)",strokeWidth:"1.5"}),C.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:"var(--center-channel-bg)"}),C.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:"var(--center-channel-color)",strokeOpacity:"0.32",strokeWidth:"1.5"}),C.createElement("path",{d:"M94.1567 51.9434V77.948L105.647 89.4384",stroke:"var(--center-channel-color)",strokeOpacity:"0.8",strokeWidth:"1.5",strokeLinejoin:"round"}),C.createElement("circle",{cx:"94.1571",cy:"77.9464",r:"2.41903",fill:"var(--center-channel-color)",fillOpacity:"0.8"}));var Bn=a(53654),Hn=a(79751),Gn=a(89735),Vn=a(98496),zn=a(25660);const jn=function(e){const t=(0,s.useDispatch)(),a=(0,s.useSelector)((e=>(0,Vn.o)(e,ve.IQ.CLOUD_INVOICE_PREVIEW))),n=()=>{t((0,Hn.O)(ve.IQ.CLOUD_INVOICE_PREVIEW)),"function"==typeof e.onHide&&e.onHide()};return C.createElement(Gn.Modal,{show:a,onExited:n,onHide:n,id:"cloud-invoice-preview",className:"CloudInvoicePreview",dialogClassName:"a11y__modal"},C.createElement(Gn.Modal.Header,{closeButton:!0},C.createElement(Gn.Modal.Title,null,"Invoice"),C.createElement("div",{className:"subtitle"},C.createElement(A.FormattedMessage,{id:"cloud.invoice_pdf_preview.download",defaultMessage:"<downloadLink>Download</downloadLink> this page for your records",values:{downloadLink:t=>C.createElement(Ge.A,{href:e.url||"",location:"cloud_invoice_preview"},t)}}))),C.createElement(Gn.Modal.Body,null,C.createElement("div",{className:"cloud_invoice_preview_modal"},C.createElement(zn.default,{fileInfo:{extension:"pdf",size:0,name:""},fileUrl:e.url??"",scale:1.4,handleBgClose:()=>{}}))))};var Wn=a(76401);function Yn(e){let{invoice:t}=e;const a=t.line_items.filter((e=>e.type===Wn.nv.Full)).reduce(((e,t)=>e+t.quantity),0),s=t.line_items.filter((e=>e.type===Wn.nv.Partial)).reduce(((e,t)=>e+t.quantity),0),n=t.line_items.filter((e=>e.type===Wn.nv.Metered)).reduce(((e,t)=>e+t.quantity),0),i=t.line_items.filter((e=>e.type===Wn.nv.OnPremise)).reduce(((e,t)=>e+t.quantity),0);return i?C.createElement(A.FormattedMessage,{id:"admin.billing.history.onPremSeats",defaultMessage:"{num} seats",values:{num:Math.floor(i)}}):n?a||s?C.createElement(A.FormattedMessage,{id:"admin.billing.history.fractionalAndRatedSeats",defaultMessage:"{fractionalSeats} metered seats, {fullSeats} seats at full rate, {partialSeats} seats with partial charges",values:{fractionalSeats:(0,L.Kv)(n,2),fullSeats:a.toFixed(0),partialSeats:s.toFixed(0)}}):C.createElement(A.FormattedMessage,{id:"admin.billing.history.fractionalSeats",defaultMessage:"{fractionalSeats} seats",values:{fractionalSeats:(0,L.Kv)(n,2)}}):C.createElement(A.FormattedMessage,{id:"admin.billing.history.seatsAndRates",defaultMessage:"{fullSeats} seats at full rate, {partialSeats} seats with partial charges",values:{fullSeats:a.toFixed(0),partialSeats:s.toFixed(0)}})}function qn(e){let{invoices:t}=e;const a=(0,s.useDispatch)(),[n,i]=(0,C.useState)(void 0),[r,l]=(0,C.useState)(1),o=Object.values(t||[]).length;(0,C.useEffect)((()=>
1{if(t&&o){const e=Object.values(t).sort(((e,t)=>t.period_start-e.period_start));i(e.slice(r-1,r-1+4))}}),[t,r]);const d=C.createElement("div",{className:"BillingHistory__paging"},C.createElement(A.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}}),C.createElement("button",{onClick:()=>{r>4&&l(r-4)},disabled:r<=4},C.createElement("i",{className:"icon icon-chevron-left"})),C.createElement("button",{onClick:()=>{t&&r+4<o&&l(r+4)},disabled:!t||r+4>=o},C.createElement("i",{className:"icon icon-chevron-right"})));return C.createElement(C.Fragment,null,C.createElement("table",{className:"BillingHistory__table"},C.createElement("tbody",null,C.createElement("tr",{className:"BillingHistory__table-header"},C.createElement("th",null,C.createElement(A.FormattedMessage,{id:"admin.billing.history.date",defaultMessage:"Date"})),C.createElement("th",null,C.createElement(A.FormattedMessage,{id:"admin.billing.history.description",defaultMessage:"Description"})),C.createElement("th",{className:"BillingHistory__table-headerTotal"},C.createElement(A.FormattedMessage,{id:"admin.billing.history.total",defaultMessage:"Total"}
1)),C.createElement("th",null,C.createElement(A.FormattedMessage,{id:"admin.billing.history.status",defaultMessage:"Status"})),C.createElement("th",null,"")),n?.map((e=>{const t=I.mT.getInvoicePdfUrl(e.id);return C.createElement("tr",{className:"BillingHistory__table-row",key:e.id,onClick:()=>{a((0,Hn.q)({modalId:ve.IQ.CLOUD_INVOICE_PREVIEW,dialogType:jn,dialogProps:{url:t}}))}},C.createElement("td",{"data-testid":"billingHistoryTableRow"},C.createElement(A.FormattedDate,{value:new Date(e.period_start),month:"2-digit",day:"2-digit",year:"numeric",timeZone:"UTC"})),C.createElement("td",null,C.createElement("div",null,e.current_product_name),C.createElement("div",{className:"BillingHistory__table-bottomDesc"},C.createElement(Yn,{invoice:e}))),C.createElement("td",{"data-testid":e.number,className:"BillingHistory__table-total"},C.createElement(A.FormattedNumber,{value:e.total/100,style:"currency",currency:"USD"})),C.createElement("td",{"data-testid":e.id},(e=>{switch(e){case"failed":return C.createElement("div",{className:"BillingHistory__paymentStatus failed"},C.createElement("i",{className:"icon icon-alert-outline"}),C.createElement(A.FormattedMessage,{id:"admin.billing.history.paymentFailed",defaultMessage:"Payment failed"}));case"paid":return C.createElement("div",{className:"BillingHistory__paymentStatus paid"},C.createElement("i",{className:"icon icon-check-circle-outline"}),C.createElement(A.FormattedMessage,{id:"admin.billing.history.paid",defaultMessage:"Paid"}));default:return C.createElement("div",{className:"BillingHistory__paymentStatus pending"},C.createElement("i",{className:"icon icon-check-circle-outline"}),C.createElement(A.FormattedMessage,{id:"admin.billing.history.pending",defaultMessage:"Pending"}))}})(e.status)),C.createElement("td",{className:"BillingHistory__table-invoice"},C.createElement("a",{"data-testid":`billingHistoryLink-${e.id}`,target:"_self",rel:"noopener noreferrer",onClick:e=>e.stopPropagation(),href:t},C.createElement("i",{className:"icon icon-file-pdf-outline"}))))})))),o>4&&d)}const Zn=(0,A.defineMessages)({title:{id:"admin.billing.history.title",defaultMessage:"Billing History"}}),Jn=[Zn.title],Kn=e=>C.createElement("div",{className:"BillingHistory__noHistory"},C.createElement(Un,{width:152,height:116}),C.createElement("div",{className:"BillingHistory__noHistory-message"},C.createElement(A.FormattedMessage,{id:"admin.billing.history.noBillingHistory",defaultMessage:"In the future, this is where your billing history will show."})),C.createElement(Ge.A,{"data-testid":"billingHistoryLink",location:"billing_history",href:e.selfHosted?ve.Zd.SELF_HOSTED_BILLING:ve.Lu.BILLING_DOCS,className:"BillingHistory__noHistory-link"},C.createElement(A.FormattedMessage,{id:"admin.billing.history.seeHowBillingWorks",defaultMessage:"See how billing works"})));var Qn=a(95685),Xn=a.n(Qn),$n=a(42689),ei=a.n($n),ti=a(3569),ai=a(49395);const si=e=>{const t=e.styleButton?" style-button":"",a=e.styleLink?" style-link":"",[s]=(0,ai.A)(),n=C.createElement(A.FormattedMessage,{id:"upgradeLink.warn.upgrade_now",defaultMessage:"Upgrade now"});return C.createElement("button",{className:`upgradeLink${t}${a}`,onClick:e=>(async e=>{e.preventDefault(),s()})(e)},e.buttonText?e.buttonText:n)};var ni=a(90327);const ii=e=>{let{trialEndDate:t}=e;const a=new Date(t),{formatMessage:n}=(0,A.useIntl)(),i=(0,s.useDispatch)(),r=(0,s.useSelector)(ti.HW),l=(0,s.useSelector)((e=>(0,Ba.Jt)(e,ve.pm.CLOUD_TRIAL_BANNER,ve.qE.UPGRADE_FROM_TRIAL)));let o=!0;if(!Xn()(l)){const e=ei()(),t=ei()(Number(l||0)).diff(e,"days")<0;o=Boolean(l)&&t}const[d,c]=(0,C.useState)(o);return 0!==t&&d?C.createElement(Ha.A,{mode:"info",onDismiss:()=>{c(!1);const e=ei()(new Date).add(10,"days").format("x");i((0,Ua.SF)(r.id,[{category:ve.pm.CLOUD_TRIAL_BANNER,name:ve.qE.UPGRADE_FROM_TRIAL,user_id:r.id,value:e}]))},title:C.createElement(A.FormattedMessage,{id:"admin.subscription.cloudTrialCard.upgradeTitle",defaultMessage:"Upgrade to one of our paid plans to keep your workspace"}),message:C.createElement(A.FormattedMessage,{id:"admin.subscription.cloudTrialCard.description",defaultMessage:"Your trial ends on {date} {time}
1. Upgrade to one of our paid plans with no limits.",values:{date:ei()(a).format("MMM D, YYYY "),time:ei()(a).endOf("day").format("h:mm a ")+ei()().tz((0,ni.C7)()).format("z")}}),hideIcon:!0,actionButtonLeft:C.createElement(si,{buttonText:n({id:"admin.subscription.cloudTrialCard.upgrade",defaultMessage:"Upgrade"}),styleButton:!0}),actionButtonRight:null}):null};var ri=a(19408),li=a(54302);const oi=e=>C.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"},C.createElement("g",{clipPath:"url(#clip0)"},C.createElement("g",{filter:"url(#filter0_d)"},C.createElement("rect",{x:"6",y:"20",width:"338",height:"197",rx:"8",fill:"white"}),C.createElement("rect",{x:"6",y:"20",width:"100.516",height:"197",fill:"#1E325C"}),C.createElement("circle",{cx:"22",cy:"39",r:"9",fill:"white",fillOpacity:"0.16"}),C.createElement("rect",{x:"38",y:"33",width:"45",height:"5",rx:"2.5",fill:"white",fillOpacity:"0.32"}),C.createElement("rect",{x:"38",y:"41",width:"30",height:"3",rx:"1.5",fill:"white",fillOpacity:"0.32"}),C.createElement("rect",{x:"15",y:"60",width:"30",height:"4",rx:"2",fill:"white",fillOpacity:"0.32"}),C.createElement("rect",{x:"16",y:"190",width:"29",height:"4",rx:"2",fill:"white",fillOpacity:"0.32"}),C.createElement("circle",{cx:"19",cy:"76",r:"4",fill:"white",fillOpacity:"0.16"}),C.createElement("rect",{x:"29",y:"74",width:"57",height:"4",rx:"2",fill:"white",fillOpacity:"0.32"}),C.createElement("circle",{cx:"19",cy:"126",r:"4",fill:"white",fillOpacity:"0.16"}),C.createElement("rect",{x:"30",y:"124",width:"57",height:"4",rx:"2",fill:"white",fillOpacity:"0.32"}),C.createElement("circle",{cx:"19",cy:"93",r:"4",fill:"white",fillOpacity:"0.16"}),C.createElement("rect",{x:"30",y:"91",width:"49",height:"4",rx:"2",fill:"white",fillOpacity:"0.32"}),C.createElement("circle",{cx:"19",cy:"142",r:"4",fill:"white",fillOpacity:"0.16"}),C.createElement("rect",{x:"30",y:"141",width:"49",height:"4",rx:"2",fill:"white",fillOpacity:"0.32"}),C.createElement("circle",{cx:"19",cy:"109",r:"4",fill:"white",fillOpacity:"0.16"}),C.createElement("rect",{x:"30",y:"107",width:"64",height:"4",rx:"2",fill:"white",fillOpacity:"0.32"}),C.createElement("circle",{cx:"19",cy:"159",r:"4",fill:"white",fillOpacity:"0.16"}),C.createElement("rect",{x:"30",y:"157",width:"64",height:"4",rx:"2",fill:"white",fillOpacity:"0.32"}),C.createElement("circle",{cx:"19",cy:"204",r:"4",fill:"white",fillOpacity:"0.16"}),C.createElement("rect",{x:"30",y:"203",width:"64",height:"4",rx:"2",fill:"white",fillOpacity:"0.32"}),C.createElement("circle",{cx:"19",cy:"176",r:"4",fill:"white",fillOpacity:"0.16"}),C.createElement("rect",{x:"30",y:"174",width:"43",height:"4",rx:"2",fill:"white",fillOpacity:"0.32"}),C.createElement("circle",{cx:"124",cy:"66",r:"8",fill:"#3F4350",fillOpacity:"0.08"}),C.createElement("rect",{x:"139",y:"59",width:"39",height:"4",rx:"2",fill:"#3F4350",fillOpacity:"0.16"}),C.createElement("rect",{x:"139",y:"68",width:"119",height:"3",rx:"1.5",fill:"#3F4350",fillOpacity:"0.08"}),C.createElement("rect",{x:"139",y:"76",width:"98",height:"3",rx:"1.5",fill:"#3F4350",fillOpacity:"0.08"}),C.createElement("rect",{x:"139",y:"84",width:"133",height:"3",rx:"1.5",fill:"#3F4350",fillOpacity:"0.08"}),C.createElement("rect",{x:"139",y:"92",width:"70",height:"3",rx:"1.5",fill:"#3F4350",fillOpacity:"0.08"}),C.createElement("circle",{cx:"124",cy:"118",r:"8",fill:"#3F4350",fillOpacity:"0.08"}),C.createElement("rect",{x:"139",y:"111",width:"39",height:"4",rx:"2",fill:"#3F4350",fillOpacity:"0.16"}),C.createElement("rect",{x:"139",y:"120",width:"119",height:"3",rx:"1.5",fill:"#3F4350",fillOpacity:"0.08"}),C.createElement("rect",{x:"139",y:"128",width:"98",height:"3",rx:"1.5",fill:"#3F4350",fillOpacity:"0.08"}),C.createElement("rect",{x:"139",y:"136",width:"133",height:"3",rx:"1.5",fill:"#3F4350",fillOpacity:"0.08"}),C.createElement("rect",{x:"139",y:"144",width:"70",height:"3",rx:"1.5",fill:"#3F4350",fillOpacity:"0.08"}),C.createElement("circle",{cx:"124",cy:"170",r:"8",fill:"#3F4350",fillOpacity:"0.08"}),C.createElement("rect",{x:"139",y:"163",width:"39",height:"4",rx:"2",fill:"#3F4350",fillOpacity:"0.16"}),C.createElement("rect",{x:"139",y:"172",width:"119",height:"3",rx:"1.5",fill:"#3F4350",fillOpacity:"0.08"}),C.createElement("rect",{x:"139",y:"180",width:"98",height:"3",rx:"1.5",fill:"#3F4350",fillOpacity:"0.08"}),C.createElement("rect",{x:"139",y:"188",width:"133",height:"3",rx:"1.5",fill:"#3F4350",fillOpacity:"0.08"}),C.createElement("rect",{x:"139",y:"196",width:"70",height:"3",rx:"1.5",fill:"#3F4350",fillOpacity:"0.08"}),C.createElement("circle",{cx:"166.5",cy:"32.5",r:"2.5",fill:"#3F4350",fillOpacity:"0.16"}),C.createElement("circle",{cx:"320",cy:"36",r:"4",fill:"#3F4350",fillOpacity:"0.16"}),C.createElement("circle",{cx:"248",cy:"36",r:"4",fill:"#3F4350",fillOpacity:"0.16"}),C.createElement("circle",{cx:"177.5",cy:"32.5",r:"2.5",fill:"#3F4350",fillOpacity:"0.16"}),C.createElement("circle",{cx:"332",cy:"36",r:"4",fill:"#3F4350",fillOpacity:"0.16"}),C.createElement("rect",{x:"116",y:"31",width:"43",height:"3",rx:"1.5",fill:"#3F4350",fillOpacity:"0.24"}),C.createElement("rect",{x:"256",y:"32",width:"55",height:"8",rx:"4",fill:"#3F4350",fillOpacity:"0.08"}),C.createElement("rect",{x:"133",y:"40",width:"66",height:"1",rx:"0.5",fill:"#3F4350",fillOpacity:"0.08"}),C.createElement("circle",{cx:"118.5",cy:"40.2079",r:"2.5",fill:"#3F4350",fillOpacity:"0.16"}),C.createElement("ellipse",{cx:"126.5",cy:"40.2128",rx:"2.5",ry:"2.5049",fill:"#3F4350",fillOpacity:"0.16"}),C.createElement("rect",{x:"5",y:"19",width:"340",height:"199",rx:"9",stroke:"#3F4350",strokeOpacity:"0.04",strokeWidth:"2"}
1)),C.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"}),C.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"}),C.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"}),C.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"}),C.createElement("path",{d:"M360.119 212.66L340.791 232.388L317.097 206.819L334.601 189.28L360.119 212.66Z",fill:"#954D0E"})),C.createElement("defs",null,C.createElement("filter",{id:"filter0_d",x:"-8",y:"14",width:"366",height:"225",filterUnits:"userSpaceOnUse",colorInterpolationFilters:"sRGB"},C.createElement("feFlood",{floodOpacity:"0",result:"BackgroundImageFix"}),C.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"}),C.createElement("feOffset",{dy:"8"}),C.createElement("feGaussianBlur",{stdDeviation:"6"}),C.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"}),C.createElement("feBlend",{mode:"normal",in2:"BackgroundImageFix",result:"effect1_dropShadow"}),C.createElement("feBlend",{mode:"normal",in:"SourceGraphic",in2:"effect1_dropShadow",result:"shape"})),C.createElement("clipPath",{id:"clip0"},C.createElement("rect",{width:"372",height:"250",fill:"white"})))),di=e=>C.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"},C.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.
1025 113.305C329.585 113.821 340.975 118.539 350.196 127.516Z",fill:"#FFBC1F"}),C.createElement("mask",{id:"mask0","mask-type":"alpha",maskUnits:"userSpaceOnUse",x:"0",y:"0",width:"364",height:"210"},C.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"})),C.createElement("g",{mask:"url(#mask0)"},C.createElement("rect",{x:"3.47766",y:"137.949",width:"358.204",height:"86.9427",fill:"url(#pattern0)"})),C.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"}),C.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"}),C.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"}),C.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"}),C.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"}),C.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"}),C.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"}),C.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"}),C.createElement("defs",null,C.createElement("pattern",{id:"pattern0",patternContentUnits:"objectBoundingBox",width:"1",height:"1"},C.createElement("use",{xlinkHref:"#image0",transform:"scale(0.00411523 0.0169492)"})),C.createElement("image",{id:"image0",width:"243",height:"59",xlinkHref:"data:image/png;base64,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"}))),ci=e=>{const[t,a]=(0,ai.A)(),{isFreeTrial:s,subscriptionPlan:n,onUpgradeMattermostCloud:i}=e;let r,l;const o=C.createElement(Ge.A,{location:"contact_sales_card",href:ve.Lu.PRICING,rel:"noopener noreferrer"},ve.Lu.PRICING),d=n===ve.YE.LEGACY;if(s)r=C.createElement(A.FormattedMessage,{id:"admin.billing.subscription.privateCloudCard.freeTrial.title",defaultMessage:"Questions about your trial?"}),l=C.createElement(A.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=C.createElement(A.FormattedMessage,{id:"admin.billing.subscription.privateCloudCard.cloudEnterprise.title",defaultMessage:"Looking to rollout Mattermost for your entire organization? "}),l=C.createElement(A.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(n){case ve.YE.STARTER:r=C.createElement(A.FormattedMessage,{id:"admin.billing.subscription.privateCloudCard.cloudFree.title",defaultMessage:"Upgrade to Cloud Professional"}),l=C.createElement(A.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 ve.YE.PROFESSIONAL:r=C.createElement(A.FormattedMessage,{id:"admin.billing.subscription.privateCloudCard.cloudProfessional.title",defaultMessage:"Upgrade to Cloud Enterprise"}),l=C.createElement(A.FormattedMessage,{id:"admin.billing.subscription.privateCloudCard.cloudProfessional.description",defaultMessage:"Advanced security and compliance features with premium support. See {pricingLink} for more details.",values:{pricingLink:o}});break;case ve.YE.ENTERPRISE:r=C.createElement(A.FormattedMessage,{id:"admin.billing.subscription.privateCloudCard.cloudEnterprise.title",defaultMessage:"Looking to rollout Mattermost for your entire organization? "}),l=C.createElement(A.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=C.createElement(A.FormattedMessage,{id:"admin.billing.subscription.privateCloudCard.cloudProfessional.title",defaultMessage:"Upgrade to Cloud Enterprise"}),l=C.createElement(A.FormattedMessage,{id:"admin.billing.subscription.privateCloudCard.cloudProfessional.description",defaultMessage:"Advanced security and compliance features with premium support. See {pricingLink} for more details.",values:{pricingLink:o}})}return C.createElement("div",{className:"PrivateCloudCard"},C.createElement("div",{className:"PrivateCloudCard__text"},C.createElement("div",{className:"PrivateCloudCard__text-title"},r),C.createElement("div",{className:"PrivateCloudCard__text-description"},l),(s||n===ve.YE.ENTERPRISE||d)&&C.createElement(Ge.A,{location:"contact_sales_card",href:a,className:"btn btn-tertiary PrivateCloudCard__actionButton"},C.createElement(A.FormattedMessage,{id:"admin.billing.subscription.privateCloudCard.contactSales",defaultMessage:"Contact Sales"})),!s&&n!==ve.YE.ENTERPRISE&&n!==ve.YE.LEGACY&&C.createElement("button",{type:"button",onClick:()=>{n===ve.YE.STARTER?i():t()},className:"btn btn-tertiary PrivateCloudCard__actionButton"},n===ve.YE.STARTER?C.createElement(A.FormattedMessage,{id:"admin.billing.subscription.privateCloudCard.upgradeNow",defaultMessage:"Upgrade Now"}):C.createElement(A.FormattedMessage,{id:"admin.billing.subscription.privateCloudCard.contactSales",defaultMessage:"Contact Sales"}))),C.createElement("div",{className:"PrivateCloudCard__image"},s?C.createElement(oi,{width:170,height:123}):C.createElement(di,{width:170,height:123}
1)))},mi=e=>C.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"},C.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"}),C.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"}),C.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"}),C.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"}),C.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"}),C.createElement("path",{d:"M401.495 130L384 152.389H391.417V190H411.071V152.417V152.389H419L401.495 130Z",fill:"#386FE5"}),C.createElement("path",{d:"M99.489 83L58 135.624H75.5887V223H122.198V135.69V135.624H141L99.489 83Z",fill:"#386FE5"}),C.createElement("mask",{id:"mask0","mask-type":"alpha",maskUnits:"userSpaceOnUse",x:"95",y:"1",width:"284",height:"284"},C.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"})),C.createElement("g",{mask:"url(#mask0)"},C.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"}),C.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"}),C.createElement("mask",{id:"mask1","mask-type":"alpha",maskUnits:"userSpaceOnUse",x:"166",y:"105",width:"172",height:"197"},C.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"})),C.createElement("g",{mask:"url(#mask1)"},C.createElement("rect",{x:"166.156",y:"105",width:"171.739",height:"170.292",fill:"url(#pattern0)"}),C.createElement("rect",{x:"166.156",y:"105",width:"150.513",height:"196.825",fill:"url(#pattern1)"}
1)),C.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"}),C.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"})),C.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"}),C.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"}),C.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"}),C.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"}),C.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"}),C.createElement("mask",{id:"mask2","mask-type":"alpha",maskUnits:"userSpaceOnUse",x:"149",y:"9",width:"128",height:"96"},C.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"})),C.createElement("g",{mask:"url(#mask2)"},C.createElement("rect",{x:"149.754",y:"9",width:"107.578",height:"95.5179",fill:"url(#pattern2)"})),C.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.
11586C297.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"}),C.createElement("mask",{id:"mask3","mask-type":"alpha",maskUnits:"userSpaceOnUse",x:"263",y:"77",width:"121",height:"227"},C.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"})),C.createElement("g",{mask:"url(#mask3)"},C.createElement("rect",{x:"263.121",y:"77.0203",width:"75.7389",height:"156.784",fill:"url(#pattern3)"})),C.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"}),C.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"}),C.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"}
1),C.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"}),C.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"}),C.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"}),C.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"}),C.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"}),C.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"}),C.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"}),C.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"}),C.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"}),C.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"}),C.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"}),C.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"}),C.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"}),C.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
162.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"}),C.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"}),C.createElement("defs",null,C.createElement("pattern",{id:"pattern0",patternContentUnits:"objectBoundingBox",width:"1",height:"1"},C.createElement("use",{xlinkHref:"#image0",transform:"scale(0.00280899)"})),C.createElement("pattern",{id:"pattern1",patternContentUnits:"objectBoundingBox",width:"1",height:"1"},C.createElement("use",{xlinkHref:"#image1",transform:"scale(0.00320513 0.00245098)"})),C.createElement("pattern",{id:"pattern2",patternContentUnits:"objectBoundingBox",width:"1",height:"1"},C.createElement("use",{xlinkHref:"#image2",transform:"scale(0.0044843 0.00505051)"})),C.createElement("pattern",{id:"pattern3",patternContentUnits:"objectBoundingBox",width:"1",height:"1"},C.createElement("use",{xlinkHref:"#image3",transform:"scale(0.00636943 0.00307692)"})),C.createElement("image",{id:"image0",width:"356",height:"353",xlinkHref:"data:image/png;base64,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"}
1),C.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/biknDwfBLzQCRmBPBF6B4H78OI4fOI6DdBPn0+05ziyVEXgKAq9AcE8R3C81AkZgfwRMcPv3sSU0Ah8WARPch+16C24E9kdgR4L7wVu3/e/9u88SGgEj0EPgKoL7R8dx/NAtzeOZ1UVUBACZ//NxHCY5j38j8IERuIrgfuY4Dvan/o/jOP78iXhSAIC8Oj60g/b4YwSMwAdF4CqCY+P9Pz6O42+O4/jrJ2L5fcdx/NhxHN+6teWJTfGrjYAReDYCVxEccqDBPdM8fTaWfr8RMAIvhsCVBPdiork5RsAIfHQETHAffQRYfiOwMQI7Ehx+OM6LcAR144Fr0YxABoEawUEQnLXwjh/a/lM3f6Crk7xjD7rNRuBCBEqCI1DwL2/P/9M3JDoI7udu7Xd1kgsHih9lBN4RgZLgSLGgugefR+aRQaqQE+c7nK0oQmUSEo//+4OjurxTJ4294+LwjuPXbTYCXQRqGhwkhyb3qMNkeBeJwnz+2+2979htP3kcxw/fGv4nDybXd8TLbTYCd0fgiiADGt+P3BJrV48PZPcB5ACpvtruA9qFdka70ApbH4gakvufTjK++7j1C4xACoErCA6nPmYhn/+Ueut7XaRtaLvK91694dYagQkEriA47f989jatCbGnLpXpyS4NTE9/jIAReBMEriC4rKiYoexX/Ys3zFGjUgrBj3dNn8n2ka8zAlsh8CiCWw0kUNsNcnl0RHSrTrYwRuCjIvAoggNf+eqoNoI5O/pAipy4hWnonLYRWv7eCBiBTxCYITi2P/3dyfSH7C4JJRyTtEtkll0J3zzZfzyTgpjWBk8C6duNwLsgkCW4uEPgEZVyMUtJ/v3+W3oGfrtMKSbaCYmRqlFerwOm8aWRiAvhkd7Cde9y4DRtRg58gRB/BpN3GYtupxG4HIEswZEGgonJ51F7PHknhIV5mv1AipBjLeKpaK8IToTHsyG8szsosm08c10syc45sqt5h2fa4HuNwNsgkCU4BCLhFY0KbacWTYSMSIj9v08kix7BIQNt5EP7IVBSQPj3WfP3UR1OFJrqyWrzO5Dyo7Dxe4zAJwjMENwIvrhV6Y+TKRXcA9FcsQdVBAYJoPXtar4hH7KZ3EYj0t9/eAQyBBe1nh5gs3sxo9n7zntQP/wgMgBG4FURGBEcTm18b5Dcn92c9y1ZuBbSwnzK+M14pjQ4KpeUGknrKEL+/hO34MMzD7h51T51u4yAEbghMCI4+Xy4/NFbsciB41MeRagTvPju1at2QPokK1NdeFeT2ZPJCLwsAiOCo+EEF4hMErU7M0mJYqrqSCYtQwGDklghXSKgtOXVgwPaqO9E5ZedAm7YzghEgsP040MO2T0+2smgNI3MOzB5S9P1nc5cIFFZqS4iYxKmiTT7YwSMwJ0REMHF/Kp75bmpbhy5W5mtWjXRo0/wXu1svRfTGLKaKRZQ7p4QyTuH7c4D2483AiAggou+tpnJ97njODA9SZQl1ePen1hSfWT2zZrEvbZrZwXXzOBTPrOm0d0bszPPdxn2M+j53qcjEE1UfG2YT2hYmbJADP4vBf/cl0/66DJgYLKiSamkOuklrY/8X1fUcUNz02E8RHxXfZG0H20ZH+TqMzI4XXVNTP15xBa9q9rt5xiBbyOQCTK0oGKyosHh8CeF5FHVfCEbfkYEoTLomMMzW5qyBQE+whDS9jYFdEaYfwRMLOMbIXCG4BDzzAlW3MvWr3sFNVa6QZFb/Gy98xdWnv2Ie2RSotlelSOItoxGn9HqHyGj32EE0gicJbj0iyoXyoTs+bQw59AaHnVKvXxk77qzQgQN3K+eI3hm7PheI5BCAIIjofaREUk1TBHFMpFX35Mzx44FPmerfZBsi+nZ0xaJ8nKuKYT6jcReT575rYSpnOqIiy6SSTkKwFz0Oj/GCLw2AiK4KxzxkjS7d1Vbu8hzI0oJoeF8V+AAwiFqelYbieXSW6ZnrHeX
1IQel1dg39drj26374AhAcJhlM454tAR8Pfh4akm4aGaQykzUrVXmiMiuSparqyAX/HfZSGTc1N/abgbBYTLzO5MGQruIMPKZkfODDzeLbwQei8CsDy5qQzItY+oDjmgIk8+M2aucNbS3XsQzalot07aGIITEvTy/5SxHNn4yhQJ4R418Z3vvKge+THB8lbsGA6TRs+DhsthVztkx5Os7CPQIrmZq8jdVF9Ep9AoWiHCye1cxPzFNIR0R0KgunN4PMTx68/+VA4n2f+FmgpNX97UTEzaS/jtjMsLXAZQRQv7+EwRaBKdDX/g9KpO0sv0IE/df3Exd3qHN95noJdczqd+54CPy//qtNzD1ySFkgVj5RPN6Rqtdedcz72ERxE9L+s7qVr9ntt/vfgICEFxtQ3v0W/V8UpANJkPtGTVxVMsNMxDtDX8auXAQG+YVZu2zk0llCs2Y2LNdByn98k12zC1I7ozJRT+w3a5ngs+20dcbgbdHAIJrZe7jF4O4WmWSZJrOEEE0M9BatCvhbCJprDBCuyFO2t1KC6Ed3FMziVWHLhNNffsBYAGMwM4IzAYZhEUMNrSIQNqaDkjht8jjyrQU2iSy5dxWiIvfrXbFttd8VtriJR/jzv3fku2KM3BdFuojjpwXk3mV4BADIsAswryq+Y9qG7VFRBlf2wxU2oHAPRAbJNZqV2w7NdpKk5iJCUk+avfEjJzZa89soZN/lAWJ3RArprOOZLQWnO0xX3cXBEqC02HIDMyaeRcPHh75jVSCKSbDqoQ3z85OHO5RLbZWegDXEJWlkOQZB3Ssi7cakSRlg88zCbKMbM8MnlgaajXHT2Xlr9bUZ+TwtUbgk2oi0UdWO/ovft/zvUE4OnMUU09kpnJH0WylG5QywrWlRhVJh5SKbLRxpfKvtjpJE5wtiR7benZ7WTk8FfzIEK/6aVVTJmLJp1eOqjd96H/aS19l+8vT0QhcjkCpwWmCt8wT+dBoSI/gonkat0fVzNaoMdQmJESFyUObRrXqFNWlfZnN/DVAlZPHxJyN6MYdDnGze7bEU6+DlY4DDiw+I4JhMUETz2rKlw8uP9AIPBuBmg8OwiHHrDYxssmWMlF4BpqMiAKzFW0tniYf87gwe2ViRrLK4CS/D21H04Pg+MycAdF7j2QfRY2RkXdGclyJOJdtgbCkFa1qVhkcr75mth+vfr+f94ERmA0yyEeHr6s3yZSXxSSXqdrbXlMm7yoJOLMvVN2HhoP/i7w6TEvey7+/PpEUDNniZC+P+YuR11nCzCTiypx+teokZ6eGgw1nEfT9pxCYJbjyZZABk7K1qyD6pKLDepSrpqhojUxa+zfRnH4plDCS7yfuxKC9tAktsdZmmdA15zjaE/f2orNEYHkHxBrNabRiyJcs/JrZ23vvqQ5+8s0ONjy5Az7663uJvkxUNItWZdu426EVbZP/DBJEG9NHvryWPwmyYlsO0dYYFYUkPnszcWspDCJGCEbakFJB4p7N1nvjhm6eP/OJ/kXuG5my8dkyYflbLP1+z1wy/IW4C1gIrqr+W+LFYsQ4gdTfeWvdzDjwtS+EQKvgpXKhehM1ml6z6QSt8kgjaGKUs/ZOiJGJC5nWJhTvpYgme18xXeNHvqKaD23ULr6P/kkIFD9gtjKJNNq4z1KEea9cMgUtGANs9vfHCGyHgAiunEQxsokGpImKRsE9Ig+VGOJvTFKui5Oa1ZtJq4AF16CFYb5pw3wZzGhtHQN8vkPrYKdC1AjLjmll4tNetEc0iqhhabLXtC6wUGAE0mp9rt4PKsIEWx0Uzfuv0oToC9XA+6NQ8GC7QW6BPi4CTB4c+jWNp3T8R39aWWEkagPaLgXJ4KyPeVsyTVtVLyBEJrairLNpGvRkrLZbBjaimUrOnQIlalfN55eNHNdGUa3kVHa06QxYyqhjQsrMnzkhbPSudzundSSPvzcC34OAggwZX080D2M6Bw+U7wpyk1+PyQ1Bxdw2+ZrKZFWuRbOjHUTe+JTlxdVGiBcSaznsR2ZsrdwS96Cp1Yhez5stRQRB/fxNo0VDypweFrVX5dTRLhYKfs6cyVob+vQb7ohYKv6ZU+TMFrNnttvvflEEICNpKJn0B8gHEoOgStNSPixlwWOqQlrltqwyLyoe5sxzmeQECSA4vUMH0Eij4xkyq/FV4TeDnJioWTP23l3yxdsWM2T4vYEjH3nQgpU3KLl7OYmj9ouYZ1JtRs+89/dntpjdu21+/hsiIB+cml7bntUT64wJpufGCGKpGeqaGKGEiFV/bjah95EaAosBpi+a31cHuyJkjiLvzHa0Xt8oRSOzcL3K0D27xexV5HA7XgQBCE4lyNF+lJIBoUAGPZNIya9na+TLf9fbmK0EY8w0CAONTduQVNUE39Qow1/vuldksuzWXsAkXgvWce/uiu+xfLee2aqAe8XilDmOcWaoK2jV2kkz86yVa1XYQQvNFf0waof2bfP7yiDS6L0f4vtaom/mFCrAWd0EXwK7UmEk0zkQBiYepq4qe2Q0BO0qYPLin6oVAKgRmYIqmbbd4xr5MYm4jiZmNIlXJ1Xc3fFoM1gLnvYnX4Vn9N9epUmP2jbaiz263993EKgRXMyB62k6M5vgn9EJioyWAY1ReXVMZsgNXyJa4UjbAwcdlTiT3LuCidJs0LbLHLuZ3MI4kVvkxDgggos2VauqEgkuRqRrcmkHCdpkJtgywqa1Q2Z03+h7aVP4maMPeHTfme8ZP7gTrMGdQbFxb2uzPZOFz2hyn22SzljNaEmz78J0hcxaz2ZgEbxgAmvSaTVVoAKfIETHBG9t74oT/Z54xRSX2nu0fxec4m6IFm7gg9bZOgdDPjzub/lmVXmlV4MvaiiZSiiZfgYLjdGrI8uZ9/uaN0GgtReVQUkks1WYksHPYI1FL5noTJjWCl06+KMpvFq3bARzr0wRE+RzN3Put27JtFEbU0ItOx9oXy9NRGkm9z40p+dDpO0QDu3u7aCgn2L5qZY5q7NqeRaLxOon9rMLYK6i6PuWEMhutpfqrrQFBi0fmWR8D2Hwu2XyKFoatY+RlrUk1O0m+ZmY+DpQWpMZIv7pWya/Jl3cs8q9IrhW7t6Ztq3ee4W/Mpp3V/rO5LusVTJ+1AKwiqvv2xSBLMGp7I1gUJ6WDmaJaRxxlY5bpuQjuqcZF7spmkb8XaXTMUuZcLRNOXk45luTvZYYrPfwDp6HTDrb9YqhMnsuAtez6NCGUYHLiEvWkV7mLpYyRs03U3H4Coz8DCMwRCASnJzKSvuIN0d/jAgqpkDEXDYRXKz8gXbExJupMsuk4h7ezaf0pbVSFHCM4yQmQKCil5IFTY42KNDANZh1mOMrvhyR9lW+JbWT57ILgnb9ziBJOPrmsuQykyKSqel21g+pVKUY8R4O3sYFoxJeq8/1fW+IQCS4qIXFctuIVSO4KK5OHdc5qhDHmZC7JhX7L5nkfKKfrhVFixFgJgvykUTLBOSDlkYkr7fVa6YbJaOIReetiiwVRMFXObNJnjZzMDRETZLwyAemBWYUzZyRTde2SjmVz2IMaLvbKE0l3hvJ8awvVjteeP5s0noWGwWnWNSu1Nqz7/d1EwhEgpOfrazBVhJcqSWUxSu11QpygjR5x2zIXZOKZ0EMtI3Jy4SX/4/38lHZJK5Voia/VQVFZChneWby6dDrVuS0BnE0/fBNgqM0yNl9rLSZrV6Q+1du2uioW8v0FwV98ImNzNbes3kuC05tXOg+bbdbrS2XKSY6kp/vtSeaf5eLdOb+zDX3PFgo835fM4HAyAeHGQhR8Wkdy1eeBF8LJrSaxGCR7ygSj+q6QUpKQYiaBBOJCUfb+B2DHJpkPA/SU0mgrEM9mnwlMfGelvan1AXIROa0op5ZzUoFBaL2u6rVXBUcQStCplbhU/o2av9XnyY2MZy/fSljh/Zma/HNPl+LKPetuDVm3+frTyDQI7i4UvVWQ/mhpNmpBM/IL9UjklKkaMbwXblnNaYixL2X8R0zRCFyKN8jwuIdaGnIqFptrW7IbtdSHhvPhUzQmpB71rylHRGvWe0xytErkRWvU+WTd9r3emLa+NZ3QaBHcFL3ZSayIrYOe47mESsoP6MzMbORN2mRPLNV0gi8mWRMSDQ6TFl+o8XRNky9lqkmPxnyxVprtcihiA9tlvdBbv++cciz8siUojIaE1fXZoMgaWOmsrBSamrVTJRQ+2zNbISfvzcCnyAwMlEhFRz3KoGUTSvIQt1LwZBZDNHyKevD1d4RTVUma3lug/aXQjoyiaWV8byRY5rnaxM7hMTntxs+svjcuLNAgQjM1hh46Jm/WTxXr+vV0FM0+4wfL9suxhqfs9u5rvI/Ztvt614UgdrBz+WJUAwWsvmZjL0y4SsiSnvCvK0Nanw7pEug7aE9QkC1RFK9O5Yd4m/R74b29/mb
1LxGyxHnPpJX/aMa8kunbu0eR4Ggar5qOCgAhE4tMJBvaguYKYa8Sg/YVl4cDrfTp6j0xAl5WjK49s1WWPvpdz5jnq3L4vhdCIBJcGQVcCYEzuMpzRfk/z+Z5MZAQS4G3tvBw36/e7sd8pHAkk7ulTZTJvXGAo40SmdTRf78f2jNKZG11GYTKp5VgW/rfZJbzW0nSenZvW1mZ/hId/tHBP9JArxp6vV0Lq++gf2LOY6/0VS83b9Xvutpu3/fCCESCiyvfqimqyQYBMUDRuuS3ippMDAqUmlYJF4NZZY/4N5O9rNrB33gn2p3MajTRcm8oEUF+aEtvgzhtoI2YtDyzlsN2xYIgWaNmV9NeZHpzvbaU6V75SmsmecQSYufTi4byfSYJWH2KhozWCNGD0dnzInCFKDLemzbKy2ztiqHv6B/6+RGmdaut0q5HUegXpoj3bprOT1Ats9LfovwkyCCj0ZVng+IDU5Z6ac6NqlnUkK0dCJ2N9PV6qtwVUUZta2kecUGYSQMhAFLm4kUZZqK9kkkFQPl/aa4iGz8666J3xGP20J8YEOGdkAmfVhWTn735cXn3FW6OZ/orZ2Y8mEvL55jKTA7mzPN97QABCK6Xt6Yct2wVCCY9pKj9mWiCcsa3/FUMAAhWHyZAayAoPw6ylb9JKQrcnyWaGOFEo1FCrlJdIAlMaOUAtuTXDonMwJVZVauADG5oJSrvxHOlaaIVgREkMiorFfcMY66KhMGX90KuvWhoJNpeUEftox/oE94rbUn+UmlOXPvrtz7mb7/xgWYlqT+/eIu2/4fJ3SwtmKSxZ7flfSC4PxUVgtNqXJvEmjDZJNna1iSljdR2BWhC6fAb3sNPrcCiWq8OjuaJooAZ5zTPiRFOtMxYCUXbu+JJY1mC7w2mmKg8Oig79gmLBO3lU+sHCAUNjZQVSBAtWiTK/+XXgrAg7FYCLESk9BcVJsgQt2TumexfupEg5v5vNlxR36kAACAASURBVEDCzYAsIxP6ERP2Kh8jfQH+Khp6hWxxHN1rt8YjMH7IO5jMo9PgaUgrYlU2UhMzG73SpFCFDwgKv11v72WtEGOpuYz8LiLESJIKCGgAMSh1StcVvhy0M+SEiEb+P5G4TgoTAaN9laRTauDlSVw6KHv0TgV9sn1X9n3Ma6xp0sgU03Pi/TEwsFIVuZV6szqJtADWtCTaKo16dNziPc7a0Ni9YtFdxedt7hvlwSFINFtGUbpyV0MGCDnzUedFODXNQZFOfjNZICAGIP//hdtKieb3hycdy8p106E2StHQFqySPGMAYPZ8g5XoLfeg7UCUYDByAWT6gGu0cKz4AOM7VmTifhE1+EIiWaKLmmMkZ535qko2WRyihl8LYsT5MJNa1Hu/NEY07IzWnN0dMyPzltdmCC76uEamFSCNzjxoAdmL3vXSApRegJmG9gfJ1D4iKn7HPYQjbS/m1sVJJ61B26p4Z1zxR+XYM2WISjlqicxxh0dmcvQGcjytTNfVUn/OTIaW+cffkU/nE2TrBrY0x9qZHNmopsYKfVumq0RCvcoPprEwioSfwb12L2OU8a2Mh6uf//TnZQiORmonw+hYvqxAGshcj29otJ9zVLJHgYpegKKsZItMtGPkt6sViIxpLmgNqnUXibMsQlBiM5KphmWZyJxZcLJ9out4B0QnWWYOs8m8a3S4c8ZlUntPqdWgwbHoYUbSR3wifr1+j9fVML56Q7/MzqsJTjUeVUmnXMyltY/2jWf69SWvyRLc1Y2PZMOzR+YIJMMgiNVFZtukSCX3MejlfM+YZNIu4zvj2bG1PLmRuc4kwSdXliFSCgTaWOmUjluqMuZRS/tqmTgxPUYBjbNFPcuzOK7eczszDqI10sv1jGWX7rGI1Npc+k5n5GpdO6rywhiEzFkAzuYwXtHey5+xSnCZZNBeY6NZwXVZc+RKAOh8JjQOcf5Nm0YHXeN8Ljek99oU/VEyeyCuXhAlBkxqKR0MSPotk09WSwGqOalpG4EkmXBoPgpoiHAh4pmincJFDntpCSL2qFll+jUb6Bo9CyIBv962NnCgnfTVvcoujdp5xfcKciBrZrxc8c6XesYKwUn7YsDiwF0Z9AKBDlB9tTPP6YFaahBcy6RV6gUmMgEOPr10mLMHXcfVVI70WjpGNFdqUdPsAJKMTFZpe+VWNoJGfFQz7x6LzVkNkDZF0s8UXchi5Os2R2CF4OJgG5mWM/BdtUKX76xpMXHfI4EJZfmjqkNyLZ9g1J5GQYSyHZCLjutT5j/X1EylkbnSy9OSfxNixwmubUKQaew7meZKBuZ6EoHJVSO/KvsBE56BiVML2NAe3gvm2XzK8t0xNWj1GVl5fN1GCKwQnBzsMyXAI2Q1/0/UCssSR9Lyys362W5onSUayUp7FzVZR365mLelem+KqkIqI39G3NVQ7i0t5eJdaH8QhKJ2Iu2aNoMM8nNBnmiB+shkQaOLtf0gEA7rgaBIs8lq09n9uBzRqN0qcTuXoni8r6ySEnHQzgn2F/cCSdkx4es+CAIiOK2yow3T0expmQpEbpTUWe5flZlWan5xw3hplsXE2zhZyy6Sj6v0pZV5ba2u5T4y7pnkEEmpxYjAVGFX+WcQPSQHQfCRr0n+LLTBmh8HUqdtPTIU3uzl5ANuVFSJBKYIoeSC4JCDvoWscJLz4VngjD+mDF4I/2zyqBKP8SVCjshK30B49H8sf4X5zzXaJgZ++kTNzAU1PwjpPFJMEVx2J0BMj2jlAMWKIvLxSKZeBK0Ves/ujoglhUYaGO1hUmqLExNb22ogHkopxcz/Mi0EbYOIHFqJSiXpEGvIg3tjqkGZIF22VSZrqc3pOrRQ+orvv3YjEp1gVo4X2v9rtwjtH9zq3nFNLE9V2+IzMov1nqi1lflTkfS13a5WIKHUKFUtOjP2Z10DmWfGa8BPRw9GMp59jq9/AQREcHEPY28fKE3WiVMtU6F3ChOkIF9M1gxC84CI0Dx6SbnRbMxsNyp9c6MtMLPH4vXKGCmKzO+YglL64/hOiw8aEGSqCGzrSEIm6Bdu2hoT9HdvJuesltYanjKZtfk/apBa3KKfrLcXeXYKxD5m7LKYoAHXxtJqpF/5i7TtXgENae+0/2xytuZkLM4wi+u216/44F4RDOV7iYQyGeZRs2BCQhgQKKRwxaADJ6UatMg8anJcn908XdMoY7989jgO/F6QYXxm3KkAZmh1PGuU7PzIPteCRrCj7IeYXqRzP2pmdXSl0Lfgnzk+Md6HzKt1EVmQIZyaEhBzDTMLcQZ7mfpZF0PmmVtc8wiCUz04nRV6D+CiWZxNXYn5XSqqSdsy5u1VMsQJOzM4433a2K6adprIrWTeaB4qVeaqiXYFLpljJyM51xYzLRxcB9Gg5Y2irwp00Q9a5LJWRil3bxeLotb8vmqsKUIv98gV/XDmGdorfZWisNyWexNc6a+pJbjGaryrgpx1VscM95EmJd/d6vkHNRlH/q9aEKg0wWp7L0d4Kjpblk+P9ykJeEVetVukoeeWBUbj+7I+V+6JidSlrGinvIcP43xUK7DnM9Wzs2bvaDtadLvwzBYR8J2K0Y768lW+j/mij9oF0pT93gTHi3uVe68CQxFCVRjhvfI5xYit/Fm1VT/rh8wcqIxcaFI621SlvZWjNuNUR5bMHsrapDqbWxi1jZXdJjG5WaZy9KPVtKqez1Vl10f+2JKgeedIG5O2R0WP2p7rqDWP8j+RgR/e2fMb12obxrYrMLSC/bMIb7Y4x13buUJwNeJYbWStGq8m6mgQjd5ZM3Wk5WT2cdaenzEvREYEBbie3xqgMVpd87cpV6xMNFYpcZ7X8tOVxDCzeCjFBpljPlr0F61gRv+Ch3Zs8PyI4Uirin0Q/ZUjc7M3NqSBg/GMCRWxyLgTMtqeLI8Wtr0I9Gj8P/P7q4sRzBbe/a7sKwQ3qpIxC6yqejBo4yAa+ScYQEzi1oEefIejneeoJpgy6olGxjQQBSlqju1SHtpIB7aKYNa2ZGlCxgKIZbQ6kh+EiJYSj3DMTJjY1rgxf+Qsj9eWkUP6B3KRvK1jG2cWJjCMWhW4qPhBK/E5ujtmiLHsv1bid2bcZsuFZ/JFZWIzXsqCC2oL44xF76poa0bGV7xm9uiEUwQ3qpJxFiAGEQO+PBGrfG4022pJojMrvkgpszKP5GNw0zaIAFLo+Yl4FkQMifBbZ0DEd6xqKzK5yo35Si/RqVOQhchDhQRaVYNpV81cqkUGeb+SgGWit7CLOXo9Mla+4OwGePkCaRM/qlnYSxwf9XPv+xjlXu2/M+9fuVfJ27NFW1feNXtPrHA92iX0Pc9e0eC08syo97MCZa4fTcqZFT9Wk1VyMkTAD+aDUg3KdimfqXUu6kgO+aMgWExZSJ0P2iWrNxPzjLZSvr/cbM/30TfG/+UzioGAmBvWMqfKPMH4LsYKsjHxa9pILCHf27I1wrP1fVzsdDbIjB9v5b3IBAajhXrl2VffEwl5ZDld/e67Pm+V4O7aqImH0zFMnpYjtzSFWo+OvjkmmBzK2p+J2VbukR05y3tiyOcFWU
1BkECxaCauTtEieL0e1tDEmzWr1VVVVwWxncqNhtoIdIifGB3hgJkF4tBeCKh32tK/sg2j2ggXP5H2Sj/+j6Upu4aUTz0hduWonAe3TVrvR3t/s8AMTNO5WgYHZ0lp6rwJRtBkNc1RxOtve0XVy37yiBjdqe/P7SHCKRDKAV1IClhtx05RYZbXPc+VZtUmWfY60D7QoVS9mYDHZ+BtaVOkzi1E1Jjz4MSlrqTBl26KfjlA65IH8Ouim1I7jKWDINDobo5S7TGAdrdLIDbmzjxRn/L/rOORj/lgkD94ps4f2KDE3HgguXOLiEbXFWTmz/V27DrLVsY0t0lK/xGIJtcorI/dJr53x3pmdFGcj5mewe9l7I8HVTqtaaTiTlcGdPSItakIrkTraKBOEAXhm1YtaB8TD5B5tD5OviclRI59a23rBhoi5ND0220MMOgin3OM76qdYHoprM2YvRKPzYjnTs3Xwd69WW8QzkmqMpNKe6KdajRyCM4sT79EC3cu3i5hFE7ZGKhA918j/GOdK7bBr9Rta8myhSWlwtI8FXzL1/I6tajwj/+9o3Lz995HgYpnm7JahmqagSTGT5iEfWM0hq7LePZ9fSUytSF+mwxhQmB4zWqzMKkVnGXA69aqWC5ZpB4MTYuN+NENWaExY5fCVWqFyxFoLC20kKisTU6knrQrFChyMFh2Zfzp1rKblaKLHPowaXsxL1N8hJ8Yn99CG0elYZdWZGPgYOfohL7RNtPVacmp5ji7914t+Zvo3c002D642/qNmHbXMFU3vJ27jb3TweEYmpenMzK/Mc6vXlD64s/krURtTdnwvlaPUVkoSi4GE0gcW7+W9qPZa9ZYBueDGMv+MSYOW00oFaL2S56jUEFoJvhFtLGfy853ISWTFszJmTXQqc4/8LiwmSlHJQoFsmLP0nYiKdmXOXoCEaEtZ8kmLAr8hZNrUW3SVuqPq0LQjaonaqlWTSf3FXIDcapqSIs+zfZjFsHWdiCuzyNAP8czduLBKy+zVXWy1gXn1r0MZsJliqLVn9pSZs3h9cv89ggzRsb+qvaihcSKuapWXg1Y8sDTJy/wzZNDRbL2zGMp2Sna0LggDohR5lT48vtO+0sz2mBjhVOFSHb49e8LSz9/yDVW0Upq7ooiQzUpaBzJGR36ryo1M5BoJMBbpn567JPZXmW7UqtiyMqbAHOugVo+v97xVM5P7lHqknRnRnZAZJ7RLBMe//+g4jq+vCB/uEcGN/MAnX/Od2+9BcLFh8XyBngY26uCYFDojuHwh2gt5VUQqmldMIJlgytFhINNmJnfM8VJeHNdlJr0mqIppynemxNi4Q2BW+y4PXxmVi4q464Aa5GYCfP4mD0QyMgdn+i9z7crxi/G5ilDjluBHkXPIDi2UOYK8EHesgqxnyPQfVZyO7cySS0b+mWtWfIPgw2LDQkvVmSvm0Gjv9YxM3WvvTXC8fFYYRXOZPC3HdhaAUtM545uL74zVKlglVaettocRskM7YmAoUXU2oXjFL5jFKF43SrtRf0LafDRR5YTnb5HgZneItCoO92TROaqYuavn9iK3NE4msuSgPfQ184Tnl+Z/9PON9otqoaO9LHCMmbPje6WPP9Q9jyC4WUBHh+7OPK+m6czc37q2TCKWtjZ6tgb5I9RzZGeyZuqglRoN8rSCOjEiG8lMWmvcwtY6Uaum9YwqDo+wPfO9tCul+rAYQVgQHNob/8e/FcvpK68ODR4XQaZPGTfU6uP62UXujHwf9t5XJLhIHveq06/y4meiQtkk4nJwrfpUZgbpjGZRPjezpzSWa68RIZMec0/Jo3Eyx/6NdehixeEzqT4zOOlakWtspwJXsbqIzLOIL26IWvJzqx2QO4t45nCi2jNErL0zfFcw2PKeVyQ4gF4lj0wnZWrU1Z5DmzBXcBKvblObHZyjI/lq7cQchlggIU287J7LOHFbGkkvg5/2lCeGqYqwdj+gWX7xhiOmWgy81NwZEA2aaOsox1GfC3PMwZYJq2gubcz27RWL5KjttcVRaVhX+jq1F5rxMmPm0zd8rvDLzWKRuv5VCS7T+NUBph0I/O4VemxpNiNfS6vtsxuwy/2TmW1LaAe/HE4G4x7tvUSrwjwalXPv7aGMRQlaWtaofDbPUEoPB+j0Jkck3Fb6i/ybtUjpGU2WflQAgj7P+m+1JW5UAUTXsWCOatXFMaXFqzV2kVlVtLPBDGntLbO5ljun99C2bBXtzLy+9JpnEpwGDwJNVQgI1S+4d3UlU6KsHOFKzG0BrGTP1fLe2vHA74x5EQcqbSIKjYajLW3SNOLgg1xw+BP4+ErYvM87f+k4DhI2majsTJiZVMIks9tFOWmQAu/g3bEqbTa3i3dGfx8TmmeqvLwi69pBUpvMSkLmmpVx0johjj7gU0tWzZRc516Np9m0nBEBxDzMbLJ9r95azJ2LPsjYN6NyXKM23+37ZxJc7IhMcmoEQVqYVo/SrJjZLhad270VT2aMtkvNdAr3apJn1HltMeI32o5yzLQyi2SjVkjbW0nF4PW5mwYngsuaYlFO5VaxGJTJuTU8IAKlkChRmb9hcnJ/BosYvEBbw1enD/IyhltlnqSFQewipOwWQq6vnUQWNevaeBmVK1fba36/mTHVupY209f0EcdfrvRzfHZvl5AOT8cqyPTlFfJNPeOZBKcS4UyaXjBh1s6PPraMih4JLrNHszWRaWdt8oiMFaFjovc+0axC65CpE7UnaSOlhtPzn7R8iFkNdmpg3S7+hZumwuDnEOp4QHbsm55GFN+rPbwiLkxw5RPGCabtQExyJTDrObOLaZk6Mxpf2YWQ50KGOhC7ZgJHLZ52q45di6Tj2EHelqylVj3qWxWgmPHPxWfOvm/UnvT3zyQ4DVJ+98odKUM/a+ePBmAJDoMGFZ1oWeus1x6gTCC0FMwVJnHN9MuaLbwnamXRXxaz0OOCoIrIq6uofGI8n0TOLM4tTCAr+gCnPosH+DDAv3wLHqkIpmSImvyqf7NsS8QbMkBGfbKReTQX2sakLvPVMoU3IRswla8XDV71BSHmKHfLLxrHglwqyNGTYWSRxAV3luzTxFJcmDnHZPXZ3fueTXAjoVbtfCY9qnlmt0CvDZla8NqqBEn/2wbBaUdCpiQ67akdMs3AZGIpR2uEXfZ7Jj+kgxmHVsXkywQ0Ws9XuSPVc2OSRrO+1MjLunG1EklRI6uZXOALkbK4sNCwA0ELJ75L2gBuvdqBUZ6oCfXM3x7GZZCINogYISj5B0fPBx+1XwGV6AurtUF+ydpiW1oIs/7v7LiK12lfciZXcOX5zXteneBouOz82bIzZ4FiAH7pNmGYNK1UC2kpTB6igu/2UbCHyYNJF3MDI3FkfVezew15vwippZ2UVTXwTcqvhsap4w91P0TC4sSnp6VIy9JWPvVdWYxgZWIiF1hIg+M3bYpa6qz7Zfb61lisJWXfc9wq8NQ6x+Ru7y4LXmpf5VnH5N0a/MAHY0J84bZ6/s4gPyizHe1efgiREH3W2/qjIwwhsKxDOJrFreKT8uHFHRO0aSZKq+1WTP54GJC6WwSnYyG1N5fv8WkybtF0ojakZGQ0lJa8cddMGXHsFRlVAQXaU2pAyK75o+DSbGkgMOWnnIfyoyJPdsF54JS57FXISbDk9HbNSHCzK+9l0tzxQcqoXyHslcoLPVHuVSYmtrNVVkdbhEQI2ckRawSiQUNE5QEycRM5z2fyrRRWwEfVSuZV9JZ2KzjFu1RsgN+0TbXjskOKZ0FkpNZAcGjpcqRHH1kpU2vjfK+ySbZNZWAh9lXs67K6jhKaWcBmFpdsux553dkqRN9tqwguqtOjRNBS0KvU5qsBlJmxOuFoz9nokWSKZthVjnQ9O+PDYtL82i094/cm8w4hDj461q9MBpV/Rdo/1zLJ5BPj3/ijWlFmrq+lY/TGA20i+jirGdWeCZFRWBRtAYKFOBSxZuzwoxw87kcOrtfcUUS7jGCWGi/jUYUZegtuL/igc4S5PyZax3ev5mn2Fpir5+boeRH/lcXyE4LjDyvqtFYbBsFVh3mMhM9+P4qm0nZpAdlnnrmuFjgYPU9VLspzMkrNlOsgiZaJN7uLoraIyU9WErS0K8gGUiMaDfkoXw3NSP6yVtpOTIF5ZN0/iBdzl/czwX/3ZvppO1TN94Zc3IOsyBYrLKMNgkdNScgm9spXx3Nqe6X5u4g39pOev+IvjGX1wf/ZSovcLjN7fKtz6WyQoSzumEn+HE3q+H30Z8zcp2tbGliZIJvdhrPShuw9MQ1A99QmxUpVVp6nHQCZXRQ1gtPkzewIUL4aEzHmvrXu1fWYVtqbqmTt
1K4/3K6PZ0RRCZmldYAXh1Y6LFBnzPWk10XHO8/lhEVCxTO3vHB1Ukx0nrev0bjDM+ljjPFEqDQSnw4KQ7wot+axsy/efJTgmJauZzg7NNiRqfq1jymbNluy7uW4mQXbmuavXRjyi6aEFRKuyyE1H8PVKWZ9dHGokNxs84BlKh+DfPXKVbNq1MbupXO+hjRBTGXCJZpy0UJl8krV2gEy54DL5IQOubaVYRJdE7CPGXXZDP1oVJvOK/3hlHNI2BTZwZ8ANbPcjCt0jVdUGfMnjBs8S3AqQ3BOjVy2VerRpe/XdcdWiQ2tRu7PPnr2/tx0manbkmPF/8FOuWs2k65kro8NpZtteI8K495TvIZdSKyg11l+9mbXIxRYjEVzvPIX4bvxibFFCG0fziCePITPv/5WbWYmprJQeLaSl76rcYI4MmNradTFKklXkN6PxlhhGP9wjj06kHWjTFGxAfki8V2Y/tnNFzrNjbXj/swiOwSKndSvqE307rxQVaoXwa2BjZuGrGe2QEGnhu+rl+4n0mYz0XcvnJsd/GRAoD8QpTfOWz284kMIFtV0bMelVOwMgAKV1cDsJ0xA9BMfEiuZk5hBlngfBgeEfFMnKLAgceI21gcnF83tb5uKJVNKo46KscyzAV2MZWXhmNA97WnScAzoxTIsP38mHecYnqYVF0eZsP6KhMibpi54GyTVxHj9K28zKcfczGdINeaMLNYFHK/gVka0aLBnTE3NDBy1Hv2g0yXqaX6tsDu3pHTsXo/HRNJPjHNMaEoiJuKpE0SrTlD0SUoRI20viBgu0Xx29OKp+UXsnbWZLHs/4rTDxKUH1i7fgCkGK7M6A8oBngjMy97TtDjlGu3F0Ty0gERe07Ba12K6rfHCZMXsXCniWBncXYR7w0BicGEWrZq59QNO/+wpt95JWrK1ARAQZ3Py/lSoUHeXSbMrDlUWu4IPmVktAFuFRVUSE0Ar06Fo0o9UtZDLZe0cDxj6QRg3pyIXBJMUM5oMWqFO+0AzRPvlAfFmXh7Qr7uNZvFP7rrOpWrXirQomifDQxnhXJrgUNW3alW1Hb/xqzKymr5yaGzsSXC0aeQqk4mYdRJJJqGSyM7gevkUlKXB0ho9qhyEH1UHQCjCjOUIOEpcGUd4fJ0vr2aPSQyMxsn19RQRTBKT+lG+K/2P6QtCrBCw5pYVmI8dqE781HrEwdEjRVwdJv9wXzy0WYbIoyZUwG5Et+0zuktHZrqO+Xvp+N4JT2H80WZfA2vCmOGlHpaLQ7oQvpguO+l40OmoXreTmaNLW3q8JCHmUftjM2RGxy1rb6Wr+tl5Xl+WTHjUseC/mcSQ/8CnLubMAo2mCOdpxz9dY2xlxdQ6cNHpVln4UXt9+z24Ep0F/
1dZXUh3bKg1+G1sCgFoHwbzSrsvKJTCq+j9UsVK6pFhzJFHUs3x/Fb5X+KVM++L+SzWc1jpgLp4glZjfbtxQEmX2mEoi1i+Zsl8aFIJqNZUAHso4BilFkc1Ra6Wy7n37/bgRX5o2tABx9I9nTnVg1iZai1p81U1bafOU98dwFAhFnPjESuhJhi87+UsNTMi6TH0LikylwWsqj9I8YkY6OdjQgroG0sqewjXZmqM3Kc4tjrpZPFgku+n5VmorFScnFaExoeUSTyxSTUuu9bM/nmUFyz3t3IziwyvplWrhG02oUbdMzNNDuqTmelSs7jq5IsL4y125U2ke7IJjUqyW1VNwSRzhmXdyJAamVpeI1zuiTGnHXdmbUNFOZ7pmtdDX/HH3FvcgNKUNuCtxAnjHgEd+h90rbU5WW7Bh55HXlYjD17h0JbgqAxsWzJ8kr8MC2nGwUbaadrcKb2g6U1Syy71ypzKFnx8BBLc2AiYaGo4KYvTbpgOheyaOsTL3rYnWQ2m4G4QyJ0r/SuPi9EmmM5Z9UZ/CsrKP9yMiPxsYCjpWh9KFa7mM0sbNWTKYf5EqYMfnLWoCZ93z3GhPcFFynL2Y1KrP8Mw+Vhhjz06IfapSyknnHVddEsqjlXkXzrZebFTXpkS+p1XalsMRadTXtS4cxo8ko/aOHR1kQsyVHq7/pu7LS8Sr+OtNUtela5AFpsROjXFhq+53LHL1sea2eDLhweH9ZCWUkt8bLUhTWBDeC99rv44lLaF1MwMxmZvn40GSkIc5EQK+Vov+0WFeQ9iq3C20OokE7RCMdZdePIqxlK5iU0k50XKEqoJQ5WGdr88X0GtrRcmVccRaBimuyiPWOKaQdveTzGFCIhFwLBEnL5pmqEiQzvneAdm9kRH/fjK8UrBUBn/bjmuAeOfW/U5pbfht+8zPaETFq4dOyxBsNoz2QGH445OP/+IU0WVraAGSPYzymg/QirOXr41kQEE7N5yTtrVX6aYR1/D76Kmulwvieva8sSCxmpWYoYhlN9l6ZpSzR0u5IZIw5kphFGJmK1DUrQngoetvbxUFfqix+eTqXks1HWxpn+ufb15rgpiE7dYMcxXFbzij/7NQLOzffs8BhzK9SuSSc3shdM+dGe2QzGEAoKigJqUQTt8S4lpulNiuHMrNwcA331UqXo71hFkK0nCgWtQ/+BvlhXtLW/9gpcTSKakeXQG/fqsYeJiwpMHxG5Foj9NLnGHFezT8tF6dMf6euMcGlYLrLRWeP+zvTqKh9XOlEVpsURSRah0NbJo82pJemxqiu4KrTu5ejV+IXc8ogQHYnoOlwFGTtA4bsQ0UWVQKOcsmkqwWe0Lz+zU3TBR8qm/RqEvac8z3NqNbulSyB3liLroRs1kH5vDOVV7rzwAR3hiZe+16RgnLzVK6IQaiUAiR4dDmeEjUmKI5kTFRMlFqqR/TfaBLJuc7zMoGB+F7kV0FLkZIOvsFfx2lqfM/nNyvkowAPbYYweP9sG3gGcikye9VoglhpO8TZCjhcVYpfbV6JjtbGwbSPbQSaCW6E0Pt+H0kBB7/MEkXRMOcy1SrujUDU3lrRSGmATACVJIKw+WGyfv22NzbT1pjG0orOsucW3xfvYwN9rVL12UBFpq0r18RAVm+byY96VgAAAeZJREFUVnx2zf+58u6Xu8cE92mXMGmYUJgnmQjny3XqrUHIgH8IGdDiVHJ81YyIqzXkiOl1xYorDU5brbJ4Qowc68j99BVmXia/qow+4xeUPLG/GQeQIeTZkjP66ZRPdrmjPAAiPyPtQdaa708LBhocCxjySi7+jfbKfQr2nPF/Ir98uVeMhWzfp68zwX0vVK+aW5bu0MGFo90QrORMVAZ/iyxqBS2vat/sc2grExQfWBmZ6z0rbiiPTnqZ63Ec4EfEeV4eaajEXNImmNwU22Q+9WrpZeRT4ELloWI/qK0sXNoSSKCAa4hAR5KJMkhTjfltCjD06u1xPVi1th+uaIsZDC67xgT3KZSxntYrVRK+rNMbD4qaTS+x9pUIbkRiaBcxHYLryxPJanlgwkIHSjPBy3QeRf4gVp07i6aEhpw1DZUIHNvYS7KFjEi1gMzkI8R81s6TGDCKaTKKfNZOmqMN3E8bogYbI+GtVKaXP0vZBHdv2rj++do/eHX5mWxibW1P5PVSzj2x1Ka4Wz7IeC6usun5Pvr7mPh8VDCBiY6ckI0IpUyP0OQmBQUyAD9I4htJU5n36RlR6xMJqZJJy/TjOr7j3Tq7tkz7wD9JDiLPUsmpTG5h1P5oZyv95F5jYWRppEfH3wNh4maJRALdSQAAAABJRU5ErkJggg=="}),C.createElement("image",{id:"image2",width:"223",height:"198",xlinkHref:"data:image/png;base64,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"}),C.createElement("image",{id:"image3",width:"157",height:"325",xlinkHref:"data:image/png;base64,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"})));(0,A.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."}});const ui=C.createElement("div",{className:"BillingSummary__noBillingHistory"},C.createElement(Un,{height:116,width:152}),C.createElement("div",{className:"BillingSummary__noBillingHistory-title"},C.createElement(A.FormattedMessage,{id:"admin.billing.subscriptions.billing_summary.noBillingHistory.title",defaultMessage:"No billing history yet"})),C.createElement("div",{className:"BillingSummary__noBillingHistory-message"},C.createElement(A.FormattedMessage,{id:"admin.billing.subscriptions.billing_summary.noBillingHistory.description",defaultMessage:"In the future, this is where your most recent bill summary will show."})),C.createElement(Ge.A,{location:"billing_summary",href:ve.Lu.BILLING_DOCS,className:"btn btn-primary BillingSummary__noBillingHistory-link"},C.createElement(A.FormattedMessage,{id:"admin.billing.subscriptions.billing_summary.noBillingHistory.link",defaultMessage:"See how billing works"})));function gi(e){let{isFreeTrial:t,daysLeftOnTrial:a}=e,s=ui;return t&&(s=(e=>{let{daysLeftOnTrial:t}=e;const[a]=(0,ai.A)();return C.createElement("div",{className:"UpgradeMattermostCloud"},C.createElement("div",{className:"UpgradeMattermostCloud__image"},C.createElement(mi,{height:167,width:234})),C.createElement("div",{className:"UpgradeMattermostCloud__title"},t>ve.RC.TRIAL_1_DAY&&C.createElement(A.FormattedMessage,{id:"admin.billing.subscription.freeTrial.title",defaultMessage:"You're currently on a free trial"}),(t===ve.RC.TRIAL_1_DAY||t===ve.RC.TRIAL_0_DAYS)&&C.createElement(A.FormattedMessage,{id:"admin.billing.subscription.freeTrial.lastDay.title",defaultMessage:"Your free trial ends today"})),C.createElement("div",{className:"UpgradeMattermostCloud__description"},t>ve.RC.TRIAL_WARNING_THRESHOLD&&C.createElement(A.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>ve.RC.TRIAL_1_DAY&&t<=ve.RC.TRIAL_WARNING_THRESHOLD&&C.createElement(A.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===ve.RC.TRIAL_1_DAY||t===ve.RC.TRIAL_0_DAYS)&&C.createElement(A.FormattedMessage,{id:"admin.billing.subscription.freeTrial.lastDay.description",defaultMessage:"Your free trial has ended. Contact Sales to continue enjoying the benefits of Cloud Professional."})),C.createElement("button",{type:"button",onClick:()=>
1a(),className:"UpgradeMattermostCloud__upgradeButton btn btn-primary"},C.createElement(A.FormattedMessage,{id:"admin.billing.subscription.privateCloudCard.contactSales",defaultMessage:"Contact Sales"})))})({daysLeftOnTrial:a})),C.createElement("div",{className:"BillingSummary"},s)}var pi=a(40032),hi=a(11039),fi=a(60088);const Ei=e=>{const t=(0,A.useIntl)(),[a]=(0,hi.A)(),s=[t.formatMessage({id:"admin.billing.subscription.planDetails.features.limitedMessageHistory",defaultMessage:"Limited to a message history of {limit} messages"},{limit:t.formatNumber(a.messages?.history??fi.Cz.messages.history)}),t.formatMessage({id:"admin.billing.subscription.planDetails.features.limitedFileStorage",defaultMessage:"Limited to {limit} file storage"},{limit:(0,fi.Lh)(a.files?.total_storage??fi.Cz.files.totalStorage,t.formatNumber)}),t.formatMessage({id:"admin.billing.subscription.planDetails.features.groupAndOneToOneMessaging",defaultMessage:"Group and one-to-one messaging, file sharing, and search"}),t.formatMessage({id:"admin.billing.subscription.planDetails.features.incidentCollaboration",defaultMessage:"Incident collaboration"}),t.formatMessage({id:"admin.billing.subscription.planDetails.features.unlimitedUsers",defaultMessage:"Unlimited users"}),t.formatMessage({id:"admin.billing.subscription.planDetails.features.mfa",defaultMessage:"Multi-Factor Authentication (MFA)"})],n=[t.formatMessage({id:"admin.billing.subscription.planDetails.features.groupAndOneToOneMessaging",defaultMessage:"Group and one-to-one messaging, file sharing, and search"}),t.formatMessage({id:"admin.billing.subscription.planDetails.features.incidentCollaboration",defaultMessage:"Incident collaboration"}),t.formatMessage({id:"admin.billing.subscription.planDetails.features.unlimittedUsersAndMessagingHistory",defaultMessage:"Unlimited users & message history"}),t.formatMessage({id:"admin.billing.subscription.planDetails.features.mfa",defaultMessage:"Multi-Factor Authentication (MFA)"}),t.formatMessage({id:"admin.billing.subscription.planDetails.features.multilanguage",defaultMessage:"Multi-language translations"})],i=[t.formatMessage({id:"admin.billing.subscription.planDetails.features.fileStorage",defaultMessage:"Unlimited file storage"}),t.formatMessage({id:"admin.billing.subscription.planDetails.features.guestAccounts",defaultMessage:"Guest Accounts"}),t.formatMessage({id:"admin.billing.subscription.planDetails.features.ldapUserSync",defaultMessage:"AD/LDAP user sync"}),t.formatMessage({id:"admin.billing.subscription.planDetails.features.ssoSaml",defaultMessage:"SSO w/ SAML (includes Okta and OneLogIn)"}),t.formatMessage({id:"admin.billing.subscription.planDetails.features.multiplatformSso",defaultMessage:"SSO with Google, O365"}),t.formatMessage({id:"admin.billing.subscription.planDetails.features.openid",defaultMessage:"OpenID"}),t.formatMessage({id:"admin.billing.subscription.planDetails.features.mfaEnforcement",defaultMessage:"MFA enforcement"}),t.formatMessage({id:"admin.billing.subscription.planDetails.features.advanceTeamPermission",defaultMessage:"Advanced team permissions"}),t.formatMessage({id:"admin.billing.subscription.planDetails.features.readOnlyChannels",defaultMessage:"Read-only announcement channels"}),t.formatMessage({id:"admin.billing.subscription.planDetails.features.sharedChannels",defaultMessage:"Shared channels (coming soon)"})],r=[t.formatMessage({id:"admin.billing.subscription.planDetails.features.enterpriseAdminAndSso",defaultMessage:"Enterprise administration & SSO"}),t.formatMessage({id:"admin.billing.subscription.planDetails.features.autoComplianceExports",defaultMessage:"Automated compliance exports"}),t.formatMessage({id:"admin.billing.subscription.planDetails.features.customRetentionPolicies",defaultMessage:"Custom data retention policies"}),t.formatMessage({id:"admin.billing.subscription.planDetails.features.ldapSync",defaultMessage:"AD/LDAP group sync to teams & channels"}),t.formatMessage({id:"admin.billing.subscription.planDetails.features.premiumSupport",defaultMessage:"Premium Support (optional upgrade)"})],l=[t.formatMessage({id:"admin.billing.subscription.planDetails.features.abac",defaultMessage:"Attribute-based access control (ABAC)"}),...r];let o=[];switch(e.subscriptionPlan){case ve.YE.PROFESSIONAL:o=i;break;case ve.YE.STARTER:o=(0,fi.$k)(a)?s:n;break;case ve.YE.ENTERPRISE:o=r;break;case ve.YE.ADVANCED:o=l;break;default:o=[]}const d=o?.map(((e,t)=>C.createElement("div",{key:`PlanDetailsFeature${t.toString()}`,className:"PlanDetailsFeature"},C.createElement("i",{className:"icon-check"}),C.createElement("span",null,e))));return C.createElement(C.Fragment,null,d)},Mi=e=>{let t,{userCount:a,isFreeTrial:s,subscriptionPlan:n,daysLeftOnTrial:i,isYearly:r}=e;const{openPricingModal:l,isAirGapped:o}=(0,ri.A)(),{formatMessage:d}=(0,A.useIntl)(),c=C.createElement("div",{className:"PlanDetails__userCount"},C.createElement(A.FormattedMessage,{id:"admin.billing.subscription.planDetails.userCount",defaultMessage:"{userCount} users",values:{userCount:a}}));switch(n){case ve.YE.PROFESSIONAL:t=C.createElement(A.FormattedMessage,{id:"admin.billing.subscription.planDetails.productName.cloudProfessional",defaultMessage:"Cloud Professional"});break;case ve.YE.ENTERPRISE:t=C.createElement(A.FormattedMessage,{id:"admin.billing.subscription.planDetails.productName.cloudEnterprise",defaultMessage:"Cloud Enterprise"});break;case ve.YE.STARTER:t=C.createElement(A.FormattedMessage,{id:"admin.billing.subscription.planDetails.productName.cloudFree",defaultMessage:"Cloud Free"});break;case ve.YE.ADVANCED:t=C.createElement(A.FormattedMessage,{id:"admin.billing.subscription.planDetails.productName.cloudAdvanced",defaultMessage:"Cloud Enterprise Advanced"});break;default:t=C.createElement(A.FormattedMessage,{id:"admin.billing.subscription.planDetails.productName.unknown",defaultMessage:"Unknown product"})}const m=s?C.createElement(At.A,{className:"TrialBadge",text:d({id:"admin.billing.subscription.cloudTrialBadge.daysLeftOnTrial",defaultMessage:"{daysLeftOnTrial} trial days left"},{daysLeftOnTrial:i})}):null,u=C.createElement(At.A,{className:"RecurringIntervalBadge",text:d({id:"admin.billing.subscription.cloudMonthlyBadge",defaultMessage:"Monthly"})}
1),g=C.createElement(At.A,{className:"RecurringIntervalBadge",text:d({id:"admin.billing.subscription.cloudYearlyBadge",defaultMessage:"Annual"})}),p=o?null:C.createElement("button",{onClick:l,className:"btn btn-secondary PlanDetails__viewPlansButton"},d({id:"workspace_limits.menu_limit.view_plans",defaultMessage:"View plans"}));return C.createElement(C.Fragment,null,C.createElement("div",{className:"PlanDetails__top"},C.createElement("div",{className:"PlanDetails__productName"},t,n===ve.YE.STARTER?null:s?m:r?g:u),p),c)},bi=e=>{let{isFreeTrial:t,subscriptionPlan:a}=e;const n=(0,s.useSelector)(_e.dw),i=(0,s.useSelector)(_e.Pd),r=Math.min((0,L.RF)(n?.trial_end_at),ve.RC.TRIAL_30_DAYS),l=(0,pi.A)();return i&&l?C.createElement("div",{className:"PlanDetails"},C.createElement(Mi,{userCount:l,isFreeTrial:t,subscriptionPlan:a,daysLeftOnTrial:r,isYearly:"year"===i.recurring_interval}),C.createElement("div",{className:"PlanDetails__teamAndChannelCount"},C.createElement(A.FormattedMessage,{id:"admin.billing.subscription.planDetails.subheader",defaultMessage:"Plan details"})),C.createElement(Ei,{subscriptionPlan:a}),(e=>e?null:C.createElement("div",{className:"PlanDetails__currentPlan"},C.createElement("i",{className:"icon-check-circle"}),C.createElement(A.FormattedMessage,{id:"admin.billing.subscription.planDetails.currentPlan",defaultMessage:"Current Plan"})))(t)):null},_i=(0,A.defineMessages)({title:{id:"admin.billing.subscription.title",defaultMessage:"Subscription"}}),yi=[_i.title];var vi=a(25428);const Si=C.createElement("div",{className:"CompanyInfoDisplay__addInfo"},C.createElement(me.A,{to:"/admin_console/billing/company_info_edit",className:"btn btn-primary CompanyInfoDisplay__addInfoButton"},C.createElement("i",{className:"icon icon-plus"}),C.createElement(A.FormattedMessage,{id:"admin.billing.company_info.add",defaultMessage:"Add Company Information"}))),Ci=C.createElement("div",{className:"CompanyInfoDisplay__noCompanyInfo"},C.createElement(vi.A,{width:170,height:149}),C.createElement("div",{className:"CompanyInfoDisplay__noCompanyInfo-message"},C.createElement(A.FormattedMessage,{id:"admin.billing.company_info_display.noCompanyInfo",defaultMessage:"There is currently no company information on file."})),C.createElement(me.A,{to:"/admin_console/billing/company_info_edit",className:"btn btn-primary CompanyInfoDisplay__noCompanyInfo-link"},C.createElement(A.FormattedMessage,{id:"admin.billing.company_info.add",defaultMessage:"Add Company Information"}))),Ai=()=>{const e=(0,s.useSelector)((e=>e.entities.cloud.customer));if(!e)return null;let t=Ci;const a=e?.company_address?.line1?e.company_address:e?.billing_address,n=void 0!==a?.line1&&""!==a?.line1;return n&&(t=C.createElement("div",{className:"CompanyInfoDisplay__companyInfo"},C.createElement("div",{className:"CompanyInfoDisplay__companyInfo-text"},C.createElement("div",{className:"CompanyInfoDisplay__companyInfo-name"},e?.name),Boolean(e.num_employees)&&C.createElement("div",{className:"CompanyInfoDisplay__companyInfo-numEmployees"},C.createElement(A.FormattedMessage,{id:"admin.billing.company_info.employees",defaultMessage:"{employees} employees",values:{employees:e.num_employees}})),C.createElement("div",{className:"CompanyInfoDisplay__companyInfo-addressTitle"},C.createElement(A.FormattedMessage,{id:"admin.billing.company_info.companyAddress",defaultMessage:"Company Address"})),C.createElement("div",{className:"CompanyInfoDisplay__companyInfo-address"},C.createElement("div",null,a.line1),a.line2&&C.createElement("div",null,a.line2),C.createElement("div",null,`${a.city}, ${a.state}, ${a.postal_code}`),C.createElement("div",null,a.country))),C.createElement("div",{className:"CompanyInfoDisplay__companyInfo-edit"},C.createElement(me.A,{to:"/admin_console/billing/company_info_edit",className:"CompanyInfoDisplay__companyInfo-editButton"},C.createElement("i",{className:"icon icon-pencil-outline"}))))),C.createElement("div",{className:"CompanyInfoDisplay"},C.createElement("div",{className:"CompanyInfoDisplay__header"},C.createElement("div",{className:"CompanyInfoDisplay__headerText"},C.createElement("div",{className:"CompanyInfoDisplay__headerText-top"},C.createElement(A.FormattedMessage,{id:"admin.billing.company_info_display.companyDetails",defaultMessage:"Company Details"})),C.createElement("div",{className:"CompanyInfoDisplay__headerText-bottom"},n&&C.createElement(A.FormattedMessage,{id:"admin.billing.company_info_display.detailsProvided",defaultMessage:"Your company name and address"}),!n&&C.createElement(A.FormattedMessage,{id:"admin.billing.company_info_display.provideDetails",defaultMessage:"Provide your company name and address"}))),!a?.line1&&Si),C.createElement("div",{className:"CompanyInfoDisplay__body"},t))},Ti=(0,A.defineMessages)({title:{id:"admin.billing.company_info.title",defaultMessage:"Company Information"}}),Ni=[Ti.title];var ki=a(39131),wi=a(39163),Ii=a(43233),Ri=a(98566);const Li=[{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"}],xi=[{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 Di(e){const{formatMessage:t}=(0,A.useIntl)(),a=t=>{e.onChange(t.value)};let s=[];if("US"===e.country?s=Li:"CA"===e.country&&(s=xi),s.length>0){const n={};return e.testId&&(n.testId=e.testId),C.createElement(Ii.A,Object.assign({},n,{onChange:a,value:e.state?{value:e.state,label:e.state}:void 0,options:s.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 C.createElement(Ri.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})}a(17043),a(87469),a(49790);var Pi=a(59171);const Oi=e=>{let{id:t,disabled:a,setSaveNeeded:s,registerSaveAction:n,unRegisterS
1aveAction:i}=e;const r=(0,C.useRef)(null),l=(0,C.useRef)(null),[o,d]=(0,C.useState)(),[c,m]=(0,C.useState)(!1),[u,g]=(0,C.useState)(!1),[h,f]=(0,C.useState)(Date.now()),[E,M]=(0,C.useState)(""),b=(0,C.useCallback)((async()=>{let e;return M(""),c?await(0,p.MD)((()=>{m(!1),g(!1),d(void 0)}),(t=>{e=t,M(t.message)})):o&&await(0,p.MQ)(o,(()=>{g(!0),d(void 0),f(Date.now())}),(t=>{e=t,M(t.message)})),{error:e}}),[o,c]);(0,C.useEffect)((()=>{fetch(I.mT.getBrandImageUrl(String(Date.now()))).then((e=>{200===e.status?g(!0):g(!1)})).catch((e=>{console.error(`unable to retrieve brand image: ${e}`),g(!1)}))}),[]),(0,C.useEffect)((()=>(n(b),()=>{i(b)})),[b,n,i]),(0,Pi.A)((()=>{if(r.current){const e=new FileReader,t=r.current;e.onload=e=>{const a=e.target?.result instanceof ArrayBuffer?e.target?.result.toString():e.target?.result;a&&t.setAttribute("src",a)},o&&e.readAsDataURL(o)}}),[o]);const _=(0,C.useCallback)((()=>{l.current?.click()}),[]),y=(0,C.useCallback)((()=>{if(!l.current)return;const e=l.current;e.files&&e.files.length>0&&(s(),d(e.files[0]),m(!1))}),[s]),v=(0,C.useCallback)((()=>{m(!0),d(void 0),g(!1),s()}),[s]);let S=null;if(o)S=C.createElement("div",{className:"remove-image__img mb-5"},C.createElement("img",{ref:r,alt:"brand image",src:""}));else if(u){let e;a||(e=C.createElement(Nt.A,{title:C.createElement(A.FormattedMessage,{id:"admin.team.removeBrandImage",defaultMessage:"Remove brand image"}),isVertical:!1},C.createElement("button",{type:"button",className:"remove-image__btn","data-testid":"remove-image__btn",onClick:v},C.createElement("span",{"aria-hidden":!0},"Ã")))),S=C.createElement("div",{className:"remove-image__img mb-5"},C.createElement("img",{alt:"brand image",src:I.mT.getBrandImageUrl(String(h))}),e)}else S=C.createElement("p",{className:"mt-2"},C.createElement(A.FormattedMessage,{id:"admin.team.noBrandImage",defaultMessage:"No brand image uploaded"}));return C.createElement(D,{inputId:t,helpText:C.createElement(A.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:C.createElement(A.FormattedMessage,{id:"admin.team.brandImageTitle",defaultMessage:"Custom Brand Image:"}),setByEnv:!1},C.createElement("div",null,C.createElement("div",{className:"remove-image"},S)),C.createElement("div",{className:"file__upload mt-5"},C.createElement("button",{type:"button",className:"btn btn-tertiary",disabled:a,onClick:_},C.createElement(A.FormattedMessage,{id:"admin.team.chooseImage",defaultMessage:"Select Image"})),C.createElement("input",{ref:l,"data-testid":"file__upload-input",type:"file",accept:ve.YM.ACCEPT_STATIC_IMAGE,disabled:a,onChange:y})),C.createElement(Ke.Ay,{error:E}))},Fi=(0,C.memo)(Oi);class Ui extends C.PureComponent{constructor(e){super(e),this.state={value:this.arrayToString(e.value)}}stringToArray=e=>e.split(",").map((e=>e.trim())).filter(Boolean);arrayToString=e=>e.join(",");handleChange=e=>{const t=this.stringToArray(e.target.value);this.props.onChange(this.props.id,t),this.setState({value:e.target.value})};render(){return C.createElement(Ae,{label:C.createElement(A.FormattedMessage,{id:"admin.customization.clientSideUserIds",defaultMessage:"Client side user ids:"}),helpText:C.createElement(A.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},C.createElement(Cn.A,{id:this.props.id,className:"form-control",type:"text",placeholder:(0,A.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 Bi=a.p+"files/c1906de0fc8e812ef038.png",Hi=a.p+"files/085c984ce938c4bd414c.png";class Gi extends C.PureComponent{render(){let e=C.createElement("img",{alt:"version mismatch",className:"cluster-status",src:Bi}),t=C.createElement("img",{alt:"config mismatch",className:"cluster-status",src:Bi}),a=C.createElement("div",null),s="",n="",i=!1;this.props.clusterInfos.length&&(s=this.props.clusterInfos[0].version,n=this.props.clusterInfos[0].config_hash,i=1===this.props.clusterInfos.length),this.props.clusterInfos.map((i=>(i.version!==s&&(e=C.createElement("img",{alt:"version mismatch",className:"cluster-status",src:Hi}),a=C.createElement("div",{style:Vi.warning,className:"alert alert-warning"},C.createElement(it.A,null),C.createElement(A.FormattedMessage,{id:"admin.cluster.version_mismatch_w
1arning",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."}))),i.config_hash!==n&&(t=C.createElement("img",{alt:"config mismatch",className:"cluster-status",src:Hi})),null)));const r=this.props.clusterInfos.map((a=>{let s=!1,n=null,r=a.hostname;""===r&&(s=!0,r=C.createElement(A.FormattedMessage,{id:"admin.cluster.unknown",defaultMessage:"unknown"}));let l=a.version;""===l&&(s=!0,l=C.createElement(A.FormattedMessage,{id:"admin.cluster.unknown",defaultMessage:"unknown"}));let o=a.config_hash;return""===o&&(s=!0,o=C.createElement(A.FormattedMessage,{id:"admin.cluster.unknown",defaultMessage:"unknown"})),n=i||s?C.createElement("img",{alt:"Cluster status",className:"cluster-status",src:Hi}):C.createElement("img",{alt:"Cluster status",className:"cluster-status",src:Bi}),C.createElement("tr",{key:a.ipaddress},C.createElement("td",{style:Vi.clusterCell},n),C.createElement("td",{style:Vi.clusterCell},r),C.createElement("td",{style:Vi.clusterCell},e," ",l),C.createElement("td",{style:Vi.clusterCell},C.createElement("div",{className:"config-hash"},t," ",o)),C.createElement("td",{style:Vi.clusterCell},a.ipaddress),C.createElement("td",{style:Vi.clusterCell},a.schema_version))}));return C.createElement("div",{className:"cluster-panel__table",style:Vi.clusterTable},C.createElement("div",{className:"text-right"},C.createElement("button",{type:"submit",className:"btn btn-tertiary",onClick:this.props.reload},C.createElement(An,null),C.createElement(A.FormattedMessage,{id:"admin.cluster.status_table.reload",defaultMessage:" Reload Cluster Status"}))),C.createElement("table",{className:"table"},C.createElement("thead",null,C.createElement("tr",null,C.createElement("th",
1null,C.createElement(A.FormattedMessage,{id:"admin.cluster.status_table.status",defaultMessage:"Status"})),C.createElement("th",null,C.createElement(A.FormattedMessage,{id:"admin.cluster.status_table.hostname",defaultMessage:"Hostname"})),C.createElement("th",null,C.createElement(A.FormattedMessage,{id:"admin.cluster.status_table.version",defaultMessage:"Version"})),C.createElement("th",null,C.createElement(A.FormattedMessage,{id:"admin.cluster.status_table.config_hash",defaultMessage:"Config File Hash"})),C.createElement("th",null,C.createElement(A.FormattedMessage,{id:"admin.cluster.status_table.url",defaultMessage:"Gossip Address"})),C.createElement("th",null,C.createElement(A.FormattedMessage,{id:"admin.cluster.status_table.schema_version",defaultMessage:"DB Schema Version"})))),C.createElement("tbody",null,r)),a)}}const Vi={clusterTable:{margin:10,marginBottom:30},clusterCell:{whiteSpace:"nowrap"},warning:{marginBottom:10}},zi=()=>{const e=(0,C.useRef)(),[t,a]=(0,C.useState)(null),s=(0,C.useCallback)((()=>{a(null),(0,p.Zq)(a,null)}),[]);(0,C.useEffect)((()=>(s(),e.current=setInterval(s,15e3),()=>{e.current&&clearInterval(e.current)})),[]);const n=(0,C.useCallback)((e=>{e&&e.preventDefault(),a(null),s()}),[s]);return null==t?C.createElement(Ta.A,null):C.createElement(Gi,{clusterInfos:t,reload:n})},ji=C.memo(zi),Wi=(0,A.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."}}),Yi=[Wi.cluster,Wi.noteDescription,Wi.enableTitle,Wi.enableDescription,Wi.clusterName,Wi.clusterNameDesc,Wi.overrideHostname,Wi.overrideHostnameDesc,Wi.useIPAddress,Wi.useIPAddressDesc,Wi.enableGossipEncryption,Wi.enableGossipEncryptionDesc,Wi.enableGossipCompression,Wi.enableGossipCompressionDesc,Wi.gossipPort,Wi.gossipPortDesc],qi={configLoadedFromCluster:{marginBottom:10},warning:{marginBottom:10}},Zi=(0,A.defineMessages)({enableGuestMagicLinkTitle:{id:"admin.guest_access.enableGuestMagicLinkTitle",defaultMessage:"Enable passwordless authentication for guests using magic links via email: "},enableGuestMagicLinkDescription:{id:"admin.guest_access.enableGuestMagicLinkDescription",defaultMessage:"When true, invited guests can be allowed to login with a magic invitation link sent to their email address. The magic link will log them in without the need to configure a password. Future logins will also be done with a magic link sent to their email."},disableMagicLinkConfirmTitle:{id:"admin.guest_access.disableMagicLinkConfirmTitle",defaultMessage:"Save and Disable Guest Magic Link Access?"}
1,disableMagicLinkConfirmMessage:{id:"admin.guest_access.disableMagicLinkConfirmMessage",defaultMessage:"Disabling guest magic link access will revoke all current Guest Magic Link Account sessions. Those accounts will no longer be able to login and new guests cannot be invited into Mattermost as passwordless accounts. These accounts will be marked as inactive in user lists. Enabling this feature will not reinstate previous guest magic link accounts. Are you sure you wish to remove these users?"},disableMagicLinkConfirmWarning:{id:"admin.guest_access.disableMagicLinkConfirmWarning",defaultMessage:"All current guest magic link account sessions will be revoked, and marked as inactive"},disableMagicLinkConfirmButton:{id:"admin.guest_access.disableMagicLinkConfirmButton",defaultMessage:"Save and Disable Guest Magic Link Access"}}),Ji=[Zi.enableGuestMagicLinkTitle,Zi.enableGuestMagicLinkDescription],Ki=(0,A.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>"}}),Qi=[Ki.termsOfServiceTitle,Ki.enableTermsOfServiceTitle,Ki.enableTermsOfServiceHelp,Ki.termsOfServiceTextTitle,Ki.termsOfServiceTextHelp,Ki.termsOfServiceReAcceptanceTitle,Ki.termsOfServiceReAcceptanceHelp],Xi=(0,s.connect)(null,(function(e){return{actions:(0,n.zH)({getTermsOfService:ms.AW,createTermsOfService:ms.mq},e)}}))(class extends Na{constructor(e){super(e),this.state={termsEnabled:e.config.SupportSettings?.CustomTermsOfServiceEnabled,reAcceptancePeriod:e.config.SupportSettings?.CustomTermsOfServiceReAcceptancePeriod,loadingTermsText:!0,receivedTermsText:"",termsText:"",saveNeeded:!1,saving:!1,serverError:null,errorTooltip:!1}}getStateFromConfig(e){return{termsEnabled:e.SupportSettings?.CustomTermsOfServiceEnabled,reAcceptancePeriod:this.parseIntNonZero(String(e.SupportSettings?.CustomTermsOfServiceReAcceptancePeriod),ve.YM.DEFAULT_TERMS_OF_SERVICE_RE_ACCEPTANCE_PERIOD)}}getConfigFromState=e=>(e&&e.SupportSettings&&(e.SupportSettings.CustomTermsOfServiceEnabled=Boolean(this.state.termsEnabled),e.SupportSettings.CustomTermsOfServiceReAcceptancePeriod=this.parseIntNonZero(String(this.state.reAcceptancePeriod),ve.YM.DEFAULT_TERMS_OF_SERVICE_RE_ACCEPTANCE_PERIOD)),e);componentDidMount(){this.getTermsOfService()}doSubmit=async e=>{if(this.setState({saving:!0,serverError:null}),this.state.termsEnabled&&(this.state.receivedTermsText!==this.state.termsText||!this.props.config?.SupportSettings?.CustomTermsOfServiceEnabled)){const t=await this.props.actions.createTermsOfService(this.state.termsText);if(t.error)return void this.handleAPIError(t.error,e)}let t=JSON.parse(JSON.stringify(this.props.config));t=this.getConfigFromState(t);const{data:a,error:s}=await this.props.patchConfig(t);a?(this.setState(this.getStateFromConfig(a)),this.setState({saveNeeded:!1,saving:!1}),this.props.setNavigationBlocked(!1),e&&e(),this.handleSaved&&this.handleSaved(t)):s&&this.handleAPIError({id:s.server_error_id,...s},e,t)};handleAPIError=(e,t,a)=>{this.setState({saving:!1,serverError:e.message,serverErrorId:e.id}),t&&t(),this.handleSaved&&a&&this.handleSaved(a)};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})};handleTermsTextChange=(e,t)=>
1{this.handleChange("termsText",t)};handleTermsEnabledChange=(e,t)=>{this.handleChange("termsEnabled",t)};handleReAcceptancePeriodChange=(e,t)=>{this.handleChange("reAcceptancePeriod",t)};renderTitle(){return C.createElement(A.FormattedMessage,Ki.termsOfServiceTitle)}renderSettings=()=>this.state.loadingTermsText?C.createElement(Ta.A,null):C.createElement(gt,null,C.createElement(F,{key:"customTermsOfServiceEnabled",id:"SupportSettings.CustomTermsOfServiceEnabled",label:C.createElement(A.FormattedMessage,Ki.enableTermsOfServiceTitle),helpText:C.createElement(A.FormattedMessage,Object.assign({},Ki.enableTermsOfServiceHelp,{values:{a:e=>C.createElement(T.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)}),C.createElement(ht,{key:"customTermsOfServiceText",id:"SupportSettings.CustomTermsOfServiceText",type:"textarea",label:C.createElement(A.FormattedMessage,Ki.termsOfServiceTextTitle),helpText:C.createElement(A.FormattedMessage,Ki.termsOfServiceTextHelp),onChange:this.handleTermsTextChange,setByEnv:this.isSetByEnv("SupportSettings.CustomTermsOfServiceText"),value:this.state.termsText,maxLength:ve.YM.MAX_TERMS_OF_SERVICE_TEXT_LENGTH,disabled:this.props.isDisabled||!this.state.termsEnabled}),C.createElement(ht,{key:"customTermsOfServiceReAcceptancePeriod",id:"SupportSettings.CustomTermsOfServiceReAcceptancePeriod",type:"number",label:C.createElement(A.FormattedMessage,Ki.termsOfServiceReAcceptanceTitle),helpText:C.createElement(A.FormattedMessage,Ki.termsOfServiceReAcceptanceHelp),value:this.state.reAcceptancePeriod||"",onChange:this.handleReAcceptancePeriodChange,setByEnv:this.isSetByEnv("SupportSettings.CustomTermsOfServiceReAcceptancePeriod"),disabled:this.props.isDisabled||!this.state.termsEnabled}))});class $i extends C.PureComponent{constructor(e){super(e),this.state={value:this.arrayToString(e.value)}}stringToArray=e=>e.split(",").map((e=>e.trim())).filter(Boolean);arrayToString=e=>e.join(",");handleChange=e=>{const t=this.stringToArray(e.target.value);this.props.onChange(this.props.id,t),this.setState({value:e.target.value})};render(){return C.createElement(Ae,{label:C.createElement(A.FormattedMessage,{id:"admin.customization.customUrlSchemes",defaultMessage:"Custom URL Schemes:"}),helpText:C.createElement(A.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},C.createElement(Cn.A,{id:this.props.id,className:"form-control",type:"text",placeholder:(0,A.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 er=a(17983),tr=a(99068);const ar=(0,A.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:"}}),sr=[ar.createJob_title,ar.settings_title,ar.globalPolicy_title,ar.globalPolicy_subTitle,ar.customPolicies_title,ar.customPolicies_subTitle,ar.jobCreation_title,ar.jobCreation_subTitle,ar.createJob_instructions];
1class nr extends C.PureComponent{constructor(e){super(e),this.inputRef=(0,C.createRef)(),this.state={customPoliciesLoading:!0,page:0,loading:!1,showEditJobTime:!1}}deleteCustomPolicy=async e=>{await this.props.actions.deleteDataRetentionCustomPolicy(e),this.loadPage(0)};getGlobalPolicyColumns=()=>{const e=[{name:C.createElement(A.FormattedMessage,{id:"admin.data_retention.globalPoliciesTable.description",defaultMessage:"Description"}),field:"description"},{name:C.createElement(A.FormattedMessage,{id:"admin.data_retention.globalPoliciesTable.channelMessages",defaultMessage:"Channel messages"}),field:"channel_messages"},{name:C.createElement(A.FormattedMessage,{id:"admin.data_retention.globalPoliciesTable.files",defaultMessage:"Files"}),field:"files"}];return e.push({name:"",field:"actions",className:"actionIcon"}),e};getCustomPolicyColumns=()=>[{name:C.createElement(A.FormattedMessage,{id:"admin.data_retention.customPoliciesTable.description",defaultMessage:"Description"}),field:"description"},{name:C.createElement(A.FormattedMessage,{id:"admin.data_retention.customPoliciesTable.channelMessages",defaultMessage:"Channel messages"}),field:"channel_messages"},{name:C.createElement(A.FormattedMessage,{id:"admin.data_retention.customPoliciesTable.appliedTo",defaultMessage:"Applied to"}),field:"applied_to"},{name:"",field:"actions",className:"actionIcon"}];getGlobalRetentionSetting=(e,t)=>{if(!e)return C.createElement(A.FormattedMessage,{id:"admin.data_retention.form.keepForever",defaultMessage:"Keep forever"});const a=parseInt(t||"",10);if(a&&a%8760==0){const e=a/8760;return C.createElement(A.FormattedMessage,{id:"admin.data_retention.retention_years",defaultMessage:"{count} {count, plural, one {year} other {years}}",values:{count:`${e}`}})}if(a&&a%24==0){const e=a/24;return C.createElement(A.FormattedMessage,{id:"admin.data_retention.retention_days",defaultMessage:"{count} {count, plural, one {day} other {days}}",values:{count:`${e}`}})}return C.createElement(A.FormattedMessage,{id:"admin.data_retention.retention_hours",defaultMessage:"{count} {count, plural, one {hour} other {hours}}",values:{count:`${t}`}})};getMessageRetentionSetting=(e,t)=>{if(!e)return C.createElement(A.FormattedMessage,{id:"admin.data_retention.form.keepForever",defaultMessage:"Keep forever"});if(t&&t%365==0){const e=t/365;return C.createElement(A.FormattedMessage,{id:"admin.data_retention.retention_years",defaultMessage:"{count} {count, plural, one {year} other {years}}",values:{count:`${e}`}})}return C.createElement(A.FormattedMessage,{id:"admin.data_retention.retention_days",defaultMessage:"{count} {count, plural, one {day} other {days}}",values:{count:`${t}`}})};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:C.createElement("div",{"data-testid":"global_message_retention_cell"},this.getGlobalRetentionSetting(e?.EnableMessageDeletion,this.props.globalMessageRetentionHours)),files:C.createElement("div",{"data-testid":"global_file_retention_cell"},this.getGlobalRetentionSetting(e?.EnableFileDeletion,this.props.globalFileRetentionHours)),actions:C.createElement(tr.A,{isDisabled:!1,stopPropagationOnToggle:!0},C.createElement("div",{className:"text-right"},C.createElement("a",null,C.createElement("i",{className:"icon icon-dots-vertical"}))),C.createElement(er.A,{openLeft:!1,openUp:!1,ariaLabel:this.props.intl.formatMessage({id:"admin.user_item.menuAriaLabel",defaultMessage:"User Actions Menu"})},C.createElement(er.A.ItemAction,{show:!0,onClick:()=>{(0,en.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,en.J)().push("/admin_console/compliance/data_retention_settings/global_policy")}}]};getChannelAndTeamCounts=e=>
10===e.channel_count&&0===e.team_count?C.createElement(A.FormattedMessage,{id:"admin.data_retention.channel_team_counts_empty",defaultMessage:"N/A"}):C.createElement(A.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}});getCustomPolicyRows=(e,t)=>{let a=Object.values(this.props.customPolicies);return a=a.slice(e-1,t),a.map((e=>{const t=`customDescription-${e.id}`,a=`customDuration-${e.id}`,s=`customAppliedTo-${e.id}`,n=`customWrapper-${e.id}`;return{cells:{description:C.createElement("div",{id:t},e.display_name),channel_messages:C.createElement("div",{id:a},this.getMessageRetentionSetting(-1!==e.post_duration,e.post_duration)),applied_to:C.createElement("div",{id:s},this.getChannelAndTeamCounts(e)),actions:C.createElement(tr.A,{isDisabled:!1,stopPropagationOnToggle:!0,id:n},C.createElement("div",{className:"text-right"},C.createElement("a",null,C.createElement("i",{className:"icon icon-dots-vertical"}))),C.createElement(er.A,{openLeft:!1,openUp:!1,ariaLabel:this.props.intl.formatMessage({id:"admin.user_item.menuAriaLabel",defaultMessage:"User Actions Menu"})},C.createElement(er.A.ItemAction,{show:!0,onClick:()=>{(0,en.J)().push(`/admin_console/compliance/data_retention_settings/custom_policy/${e.id}`)},text:this.props.intl.formatMessage({id:"admin.data_retention.globalPoliciesTable.edit",defaultMessage:"Edit"}),disabled:!1}),C.createElement(er.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,en.J)().push(`/admin_console/compliance/data_retention_settings/custom_policy/${e.id}`)}}}))};loadPage=async e=>{this.setState({customPoliciesLoading:!0}),await this.props.actions.getDataRetentionCustomPolicies(e),this.setState({page:e,customPoliciesLoading:!1})};componentDidMount=async()=>{await this.loadPage(this.state.page)};nextPage=()=>{this.loadPage(this.state.page+1)};previousPage=()=>{this.loadPage(this.state.page-1)};getPaginationProps=()=>{const{page:e}=this.state,t=10*e+1,a=this.props.customPoliciesCount;let s=10*(e+1);return s=s>a?a:s,{startCount:t,endCount:s,total:a}};showEditJobTime=e=>{this.setState({showEditJobTime:e})};componentDidUpdate=(e,t)=>{t.showEditJobTime!==this.state.showEditJobTime&&this.state.showEditJobTime&&this.inputRef.current?.focus()};handleCreateJob=async e=>{e?.preventDefault();const t={type:ve.jj.DATA_RETENTION};await this.props.actions.createJob(t),await this.props.actions.getJobsByType(ve.jj.DATA_RETENTION)};changeJobTimeConfig=async e=>{const t=JSON.parse(JSON.stringify(this.props.config));t.DataRetentionSettings.DeletionJobStartTime=e,await this.props.actions.patchConfig(t),this.inputRef.current?.blur()};getJobStartTime=()=>{const{DataRetentionSettings:e}=this.props.config,t=e?.DeletionJobStartTime?.split(":");if(!t)return null;let a=parseInt(t[0],10);return a<12?(0===a&&(a=12),C.createElement(A.FormattedMessage,{id:"admin.data_retention.jobTimeAM",defaultMessage:"{time} AM (UTC)",values:{time:`${a}:${t[1]}`}})):(12!==a&&(a-=12),C.createElement(A.FormattedMessage,{id:"admin.data_retention.jobTimePM",defaultMessage:"{time} PM (UTC)",values:{time:`${a}:${t[1]}`}}))};getJobTimeOptions=()=>{const e=[];return()=>{if(e.length>0)return e;const t=["00","15","30","45"];for(let a=0;a<24;a++){let s=a,n=`${a}`;const i=a>=12?"pm":"am";s<10&&(n=`0${n}`),s>12&&(s-=12),0===s&&(s=12);for(let a=0;a<t.length;a++)e.push({label:`${s}:${t[a]}${i}`,value:`${n}:${t[a]}`})}return e}};getJobTimes=this.getJobTimeOptions();render=()=>{const{DataRetentionSettings:e}=this.props.config,{startCount:t,endCount:a,total:s}=this.getPaginationProps();return C.createElement("div",{className:"wrapper--fixed DataRetentionSettings"},C.createElement(fe,null,C.createElement(A.FormattedMessage,ar.settings_title)),C.createElement("div",{className:"admin-console__wrapper"},C.createElement("div",{className:"admin-console__content"},C.createElement(Js,{expanded:!0,className:"console"},C.createElement(Js.Header,null,C.createElement(Ks,{title:C.createElement(A.FormattedMessage,ar.globalPolicy_title),subtitle:C.createElement(A.FormattedMessage,ar.globalPolicy_subTitle)}
1)),C.createElement(Js.Body,{expanded:!0},C.createElement("div",{id:"global_policy_table"},C.createElement(ee.A,{columns:this.getGlobalPolicyColumns(),rows:this.getGlobalPolicyRows(),loading:!1,nextPage:()=>{},previousPage:()=>{},startCount:1,endCount:4,total:0,className:"customTable"})))),C.createElement(Js,{expanded:!0,className:"console"},C.createElement(Js.Header,null,C.createElement(Ks,{title:C.createElement(A.FormattedMessage,ar.customPolicies_title),subtitle:C.createElement(A.FormattedMessage,ar.customPolicies_subTitle),buttonText:C.createElement(A.FormattedMessage,{id:"admin.data_retention.customPolicies.addPolicy",defaultMessage:"Add policy"}),onClick:()=>{(0,en.J)().push("/admin_console/compliance/data_retention_settings/custom_policy")}})),C.createElement(Js.Body,{expanded:!0},C.createElement("div",{id:"custom_policy_table"},C.createElement(ee.A,{columns:this.getCustomPolicyColumns(),rows:this.getCustomPolicyRows(t,a),loading:this.state.customPoliciesLoading,nextPage:this.nextPage,previousPage:this.previousPage,startCount:t,endCount:a,total:s,className:"customTable"})))),C.createElement(Js,{expanded:!0,className:"console"},C.createElement(Js.Header,null,C.createElement(Ks,{title:C.createElement(A.FormattedMessage,ar.jobCreation_title),subtitle:C.createElement(A.FormattedMessage,ar.jobCreation_subTitle),buttonText:C.createElement(A.FormattedMessage,ar.createJob_title),isDisabled:"true"!==String(e?.EnableMessageDeletion)&&"true"!==String(e?.EnableFileDeletion)&&0===this.props.customPoliciesCount,onClick:this.handleCreateJob})),C.createElement(Js.Body,{expanded:!0},C.createElement(Ze,{jobType:ve.jj.DATA_RETENTION,hideJobCreateButton:!0,className:"job-table__data-retention",disabled:"true"!==String(e?.EnableMessageDeletion)&&"true"!==String(e?.EnableFileDeletion),createJobButtonText:C.createElement(A.FormattedMessage,ar.createJob_title),createJobHelpText:C.createElement("div",null,C.createElement(A.FormattedMessage,ar.createJob_instructions),this.state.showEditJobTime?C.createElement(Je.Ay,{id:"JobSelectTime",className:"JobSelectTime",components:{DropdownIndicator:()=>null,IndicatorSeparator:()=>null},onChange:e=>{this.changeJobTimeConfig(e.value)},styles:{control:e=>({...e,height:32,minHeight:32}),menu:e=>({...e,width:210})},onBlur:()=>{this.showEditJobTime(!1)},value:{label:this.getJobStartTime(),value:e?.DeletionJobStartTime},hideSelectedOptions:!0,isSearchable:!0,options:this.getJobTimes(),ref:this.inputRef,onFocus:()=>{this.showEditJobTime(!0)},menuIsOpen:this.state.showEditJobTime}):C.createElement("span",{className:"JobSelectedtime"},C.createElement("b",null,this.getJobStartTime())),C.createElement("a",{className:"EditJobTime",onClick:()=>this.showEditJobTime(!0)},this.props.intl.formatMessage({id:"admin.data_retention.globalPoliciesTable.edit",defaultMessage:"Edit"})))}))))))}}const ir=(0,A.injectIntl)(nr),rr=(0,s.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,n.zH)({getDataRetentionCustomPolicies:i.Qm,createJob:Pe._S,getJobsByType:Pe.mF,deleteDataRetentionCustomPolicy:i.XP,patchConfig:i.tn},e)}}))(ir);var lr=a(16230),or=a(89247),dr=a(46177),cr=a.n(dr),mr=a(18264),ur=a.n(mr),gr=a(42905);const pr=10;class hr extends C.PureComponent{pageLoaded=0;constructor(e){super(e),this.state={loading:!1,page:0}}componentDidMount=()=>{this.loadPage(0,20)};setStateLoading=e=>{this.setState({loading:e})};setStatePage=e=>{this.setState({page:e})};loadPage=(()=>{var e=this;return async function(t){let a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:pr;e.props.policyId&&(e.setStateLoading(!0),await e.props.actions.getDataRetentionCustomPolicyChannels(e.props.policyId,t,a),e.setStateLoading(!1))}})();nextPage=()=>{const e=this.state.page+1;this.loadPage(e+1),this.setStatePage(e)};previousPage=()=>{const e=this.state.page-1;this.loadPage(e+1),this.setStatePage(e)};getVisibleTotalCount=()=>{const{channelsToAdd:e,channelsToRemove:t,totalCount:a}=this.props;return a+(Object.keys(e).length-Object.keys(t).length)};getPaginationProps=()=>{const{page:e}=this.state,t=e*pr+1,a=this.getVisibleTotalCount();let s=0;return s=(e+1)*pr,s=s>a?a:s,{startCount:t,endCount:s,total:a}};removeChannel=e=>{const{channelsToRemove:t}=this.props;if(t[e.id]===e)return;let{page:a}=this.state;const{endCount:s}=this.getPaginationProps();this.props.onRemoveCallback(e),s>this.getVisibleTotalCount()&&s%pr==1&&a>0&&a--,this.setStatePage(a)};getColumns=()=>[{name:C.createElement(A.FormattedMessage,{id:"admin.channel_settings.channel_list.nameHeader",defaultMessage:"Name"}),field:"name",fixed:!0},{name:C.createElement(A.FormattedMessage,{id:"admin.channel_settings.channel_list.teamHeader",defaultMessage:"Team"}),field:"team",fixed:!0},{name:"",field:"remove",textAlign:"right",fixed:!0}];getRows=()=>{const{page:e}=this.state,{channels:t,channelsToRemove:a,channelsToAdd:s,totalCount:n}=this.props,{startCount:i,endCount:r}=this.getPaginationProps();let l=t;const o=Object.values(s);if(l=l.filter((e=>!a[e.id])),l=[...o,...l],l=l.slice(i-1,r),l.length<pr&&t.length<n){const t=Object.keys(a).length,s=e+Math.floor(t/pr)+1;s>this.pageLoaded&&(this.loadPage(s+1),this.pageLoaded=s)}return l.map((e=>{const t=(0,Ds.gU)(e),a=C.createElement(t,{className:"channel-icon","data-testid":`${e.name}-archive-icon`});return{cells:{id:e.id,name:C.createElement("div",{className:"ChannelList__nameColumn",id:`channel-name-${e.id}`},a,C.createElement("div",{className:"ChannelList__nameText"},C.createElement("b",{id:`display-name-channel-${e.id}`},e.display_name))),team:e.team_display_name,remove:C.createElement("a",{id:`remove-channel-${e.id}`,className:"group-actions TeamList_editText",onClick:t=>{t.preventDefault(),this.removeChannel(e)},href:"#"},C.createElement(A.FormattedMessage,{id:"admin.data_retention.custom_policy.teams.remove",defaultMessage:"Remove"}))}}}))};onSearch=async e=>{this.props.actions.setChannelListSearch(e)};async componentDidUpdate(e){const{policyId:t,searchTerm:a,filters:s}=this.props,n=!ur()(e.filters,this.props.filters);if(e.searchTerm!==a||n){if(this.setStateLoading(!0),""===a)return n&&t?await e.actions.searchChannels(t,a,s):(await this.loadPage(1),this.setStatePage(0)),void this.setStateLoading(!1);this.searchDebounced()}}searchDebounced=cr()((async()=>{const{policyId:e,searchTerm:t,filters:a,actions:s}=this.props;e&&await s.searchChannels(e,t,a),this.setStateLoading(!1)}),ve.YM.SEARCH_TIMEOUT_MILLISECONDS);onFilter=async e=>{const t={},{public:a,private:s,deleted:n}=e.channels.values,{team_ids:i}=e.teams.values;(a.value||s.value||n.value||i.value.length)&&(t.public=a.value,t.private=s.value,t.deleted=n.value,t.team_ids=i.value),this.props.actions.setChannelListFilters(t)};render(){const e=this.getRows(),t=this.getColumns(),{startCount:a,endCount:s,total:n}
1=this.getPaginationProps(),i={options:{teams:{name:"Teams",values:{team_ids:{name:C.createElement(A.FormattedMessage,{id:"admin.team_settings.title",defaultMessage:"Teams"}),value:[]}},keys:["team_ids"],type:gr.A},channels:{name:"Channels",values:{public:{name:C.createElement(A.FormattedMessage,{id:"admin.channel_list.public",defaultMessage:"Public"}),value:!1},private:{name:C.createElement(A.FormattedMessage,{id:"admin.channel_list.private",defaultMessage:"Private"}),value:!1},deleted:{name:C.createElement(A.FormattedMessage,{id:"admin.channel_list.archived",defaultMessage:"Archived"}),value:!1}},keys:["public","private","deleted"]}},keys:["teams","channels"],onFilter:this.onFilter};return C.createElement("div",{className:"PolicyChannelsList"},C.createElement(ee.A,{columns:t,rows:e,loading:this.state.loading,nextPage:this.nextPage,previousPage:this.previousPage,startCount:a,endCount:s,total:n,className:"customTable",onSearch:this.onSearch,term:this.props.searchTerm,filterProps:i}))}}const fr=(0,s.connect)((function(){const e=(0,Is.oI)();return(t,a)=>{let{channelsToAdd:s}=a,n=[],i=0;const r=a.policyId,l=r?(0,d.eb)(t,r):{},o=t.views.search.channelListSearch.term||"",c=t.views.search.channelListSearch?.filters||{};return o||c&&0!==Object.keys(c).length?(n=r?(0,Is.Mf)(t,r,o,c):[],s=function(e,t,a){let s=(0,lr._d)(Object.keys(e).map((t=>e[t])),t);return s=(0,Is.GP)(s,a),(0,lr.fv)(s)}(s,o,c),i=n.length):(n=r?e(t,{policyId:r}):[],l?.channel_count&&(i=l.channel_count)),{channels:n,totalCount:i,searchTerm:o,channelsToAdd:s,filters:c}}}),(function(e){return{actions:(0,n.zH)({getDataRetentionCustomPolicyChannels:i.U6,searchChannels:i.gd,setChannelListSearch:or.SH,setChannelListFilters:or.l4},e)}}))(hr),Er="FOREVER",Mr="YEARS",br="DAYS",_r=()=>({value:Er,label:C.createElement("div",null,C.createElement("i",{className:"icon icon-infinity option-icon"}),C.createElement("span",{className:"option_forever"},L.Vw({id:"admin.data_retention.form.keepForever",defaultMessage:"Keep forever"})))}),yr=()=>({value:Mr,label:C.createElement("span",{className:"option_years"},L.Vw({id:"admin.data_retention.form.years",defaultMessage:"Years"}))}),vr=()=>({value:br,label:C.createElement("span",{className:"option_days"},L.Vw({id:"admin.data_retention.form.days",defaultMessage:"Days"}))}),Sr=()=>({value:"HOURS",label:C.createElement("span",{className:"option_hours"},L.Vw({id:"admin.data_retention.form.hours",defaultMessage:"Hours"}))});var Cr=a(93036);const Ar=10;class Tr extends C.PureComponent{pageLoaded=0;constructor(e){super(e),this.state={loading:!1,page:0}}componentDidMount=()=>{this.loadPage(0,20)};setStateLoading=e=>{this.setState({loading:e})};setStatePage=e=>{this.setState({page:e})};loadPage=(()=>{var e=this;return async function(t){let a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Ar;e.props.policyId&&(e.setStateLoading(!0),await e.props.actions.getDataRetentionCustomPolicyTeams(e.props.policyId,t,a),e.setStateLoading(!1))}})();nextPage=()=>{const e=this.state.page+1;this.loadPage(e+1),this.setStatePage(e)};previousPage=()=>{const e=this.state.page-1;this.loadPage(e+1),this.setStatePage(e)};getVisibleTotalCount=()=>{const{teamsToAdd:e,teamsToRemove:t,totalCount:a}=this.props;return a+(Object.keys(e).length-Object.keys(t).length)};getPaginationProps=()=>{const{page:e}=this.state,t=e*Ar+1,a=this.getVisibleTotalCount();let s=0;return s=(e+1)*Ar,s=s>a?a:s,{startCount:t,endCount:s,total:a}};removeTeam=e=>{const{teamsToRemove:t}=this.props;if(t[e.id]===e)return;let{page:a}=this.state;const{endCount:s}=this.getPaginationProps();this.props.onRemoveCallback(e),s>this.getVisibleTotalCount()&&s%Ar==1&&a>0&&a--,this.setStatePage(a)};getColumns=()=>[{name:C.createElement(A.FormattedMessage,{id:"admin.team_settings.team_list.nameHeader",defaultMessage:"Name"}),field:"name",fixed:!0},{name:"",field:"remove",textAlign:"right",fixed:!0,className:"TeamList__actionColumn"}];getRows=()=>{const{page:e}=this.state,{teams:t,teamsToRemove:a,teamsToAdd:s,totalCount:n}=this.props,{startCount:i,endCount:r}=this.getPaginationProps();let l=t;const o=Object.values(s);if(l=l.filter((e=>!a[e.id])),l=[...o,...l],l=l.slice(i-1,r),l.length<Ar&&t.length<n){const t=Object.keys(a).length,s=e+Math.floor(t/Ar)+1;s>this.pageLoaded&&(this.loadPage(s+1),this.pageLoaded=s)}return l.map((e=>({cells:{id:e.id,name:C.createElement("div",{className:"TeamList__nameColumn",id:`team-name-${e.id}`},C.createElement("div",{className:"TeamList__lowerOpacity"},C.createElement(ae.A,{size:"sm",url:L.lt(e),content:e.display_name})),C.createElement("div",{className:"TeamList__nameText"},C.createElement("b",{"data-testid":"team-display-name"},e.display_name))),remove:C.createElement("a",{id:`remove-team-${e.id}`,className:"group-actions TeamList_editText",onClick:t=>{t.preventDefault(),this.removeTeam(e)},href:"#"},C.createElement(A.FormattedMessage,{id:"admin.data_retention.custom_policy.teams.remove",defaultMessage:"Remove"}))}})))};onSearch=async e=>{this.props.actions.setTeamListSearch(e)};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()}}searchDebounced=cr()((async()=>{const{policyId:e,searchTerm:t,actions:a}=this.props;e&&await a.searchTeams(e,t,{}),this.setStateLoading(!1)}),ve.Ay.SEARCH_TIMEOUT_MILLISECONDS);render(){const e=this.getRows(),t=this.getColumns(),{startCount:a,endCount:s,total:n}
1=this.getPaginationProps();return C.createElement("div",{className:"PolicyTeamsList"},C.createElement(ee.A,{columns:t,rows:e,loading:this.state.loading,nextPage:this.nextPage,previousPage:this.previousPage,startCount:a,endCount:s,total:n,className:"customTable",onSearch:this.onSearch,term:this.props.searchTerm}))}}const Nr=(0,s.connect)((function(){const e=(0,u.ax)();return(t,a)=>{let{teamsToAdd:s}=a,n=[];const i=a.policyId,r=i&&(0,d.eb)(t,i)||{};let l=0;const o=t.views.search.teamListSearch||"";return n=i?e(t,{policyId:i}):[],o?(n=(0,u.q6)(n,o)||[],s=function(e,t){const a=(0,Cr.Dr)(Object.keys(e).map((t=>e[t])),t);return(0,Cr.DT)(a)}(s,o),l=n.length):r?.team_count&&(l=r.team_count),{teams:n,totalCount:l,searchTerm:o,teamsToAdd:s}}}),(function(e){return{actions:(0,n.zH)({getDataRetentionCustomPolicyTeams:i.AF,searchTeams:i.Uk,setTeamListSearch:or.Sb},e)}}))(Tr);var kr=a(50375);class wr extends C.PureComponent{constructor(e){super(e),this.searchTimeoutId=0,this.state={values:[],show:!0,search:!1,loadingTeams:!0,confirmAddModal:!1,confirmAddTeam:null},this.selectedItemRef=C.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)}),ve.Ay.SEARCH_TIMEOUT_MILLISECONDS)}}handleHide=()=>{this.props.actions.setModalSearchTerm(""),this.setState({show:!1})};handleExit=()=>{this.props.onModalDismissed&&this.props.onModalDismissed()};handleSubmit=e=>{e&&e.preventDefault(),0!==this.state.values.length&&(this.props.onTeamsSelected?.(this.state.values),this.handleHide())};addValue=(()=>{var e=this;return function(t){let a=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(e.props.modalID===ve.IQ.ADD_TEAMS_TO_SCHEME&&null!==t.scheme_id&&""!==t.scheme_id&&!a)return void e.setState({confirmAddModal:!0,confirmAddTeam:t});const s=Object.assign([],e.state.values),n=s.map((e=>e.id));t&&t.id&&-1===n.indexOf(t.id)&&s.push(t),e.setState({values:s,confirmAddModal:!1,confirmAddTeam:null})}})();setTeamsLoadingState=e=>{this.setState({loadingTeams:e})};handlePageChange=(e,t)=>
1{e>t&&(this.setTeamsLoadingState(!0),this.props.actions.loadTeams(e,51,!1,this.props.excludePolicyConstrained).then((()=>{this.setTeamsLoadingState(!1)})))};handleDelete=e=>{this.setState({values:e})};search=(e,t)=>{0!==t.state.page&&t.setState({page:0}),this.props.actions.setModalSearchTerm(e)};renderOption=(e,t,a,s)=>{let n="";return t&&(n="more-modal__row--selected"),C.createElement("div",{key:e.id,ref:t?this.selectedItemRef:e.id,className:"more-modal__row clickable "+n,onClick:()=>a(e),onMouseMove:()=>s(e)},C.createElement("div",{className:"more-modal__details"},C.createElement("div",{className:"team-info-block"},C.createElement(ae.A,{content:e.display_name,url:(0,L.lt)(e)}),C.createElement("div",{className:"team-data"},C.createElement("div",{className:"title"},e.display_name)))),C.createElement("div",{className:"more-modal__actions"},C.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})},C.createElement("i",{className:"fa fa-plus"}))))};renderValue(e){return e.data.display_name}renderConfirmModal(e,t){const a=C.createElement(A.FormattedMessage,{id:"add_teams_to_scheme.confirmation.title",defaultMessage:"Team Override Scheme Change?"}),s=C.createElement(A.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?"}),n=C.createElement(A.FormattedMessage,{id:"add_teams_to_scheme.confirmation.accept",defaultMessage:"Yes, Move Team"});return C.createElement(Aa.A,{show:e,title:a,message:s,confirmButtonText:n,onCancel:()=>this.setState({confirmAddModal:!1,confirmAddTeam:null}),onConfirm:()=>this.addValue(t,!0)})}render(){const e=this.renderConfirmModal(this.state.confirmAddModal,this.state.confirmAddTeam),t=C.createElement(A.FormattedMessage,{id:"multiselect.selectTeams",defaultMessage:"Use ââ to browse, âµ to select."}),a=(0,A.defineMessage)({id:"multiselect.add",defaultMessage:"Add"});let s=[];this.props.teams&&(s=this.props.teams.filter((e=>0===e.delete_at)),s=this.props.excludeGroupConstrained?s.filter((e=>!e.group_constrained)):s,this.props.alreadySelected&&(s=s.filter((e=>-1===this.props.alreadySelected?.indexOf(e.id)))),this.props.excludePolicyConstrained&&(s=s.filter((e=>null===e.policy_id))),s.sort(((e,t)=>{const a=e.display_name.toUpperCase(),s=t.display_name.toUpperCase();return a===s?0:a>s?1:-1})));const n=s.map((e=>({label:e.name,value:e.id,...e})));return C.createElement(Gn.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"},C.createElement(Gn.Modal.Header,{closeButton:!0},C.createElement(Gn.Modal.Title,{componentClass:"h1",id:"teamSelectorModalLabel"},C.createElement(A.FormattedMessage,{id:"add_teams_to_scheme.modalTitle",defaultMessage:"Add Teams to Team Selection List"}))),C.createElement(Gn.Modal.Body,null,e,C.createElement(kr.A,{key:"addTeamsToSchemeKey",options:n,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:a,saving:!1,loading:this.state.loadingTeams,placeholderText:(0,A.defineMessage)({id:"multiselect.addTeamsPlaceholder",defaultMessage:"Search and add teams"})})))}}const Ir=(0,A.injectIntl)(wr),Rr=(0,s.connect)((function(e){const t=e.views.search.modalSearch,a=Object.values((0,u.ZN)(e)||{}).filter((e=>e.display_name.toLowerCase().startsWith(t.toLowerCase())||e.description.toLowerCase().startsWith(t.toLowerCase())));return{searchTerm:t,teams:a}}),(function(e){return{actions:(0,n.zH)({loadTeams:l.ZN,setModalSearchTerm:or.qv,searchTeams:l.Fo},e)}}))(Ir);var Lr=a(7453);const xr={input:e=>
1({...e,color:"var(--center-channel-color)"}),control:e=>({...e,border:"none",boxShadow:"none",padding:"0 2px",cursor:"pointer",minHeight:"40px",borderRadius:"0"}),indicatorSeparator:e=>({...e,display:"none"}),menuPortal:e=>({...e,zIndex:99999999})},Dr=e=>C.createElement("div",{className:"DropdownInput__indicatorsContainer"},C.createElement(Lr.c.IndicatorsContainer,e,C.createElement("i",{className:"icon icon-chevron-down"}))),Pr=e=>C.createElement("div",{className:"DropdownInput__controlContainer"},C.createElement(Lr.c.Control,e)),Or=e=>C.createElement("div",{className:he()("DropdownInput__option",{selected:e.isSelected,focused:e.isFocused})},C.createElement(Lr.c.Option,e)),Fr=e=>{const{value:t,placeholder:a,className:s,name:n,legend:i,onDropdownChange:r,onInputChange:l,error:o,exceptionToInput:d,width:c,inputValue:m,inputType:u,defaultValue:g,dropdownClassNamePrefix:p,inputId:h,...f}=e,E=(0,A.useIntl)(),M=(0,C.useRef)(null),b=(0,C.useRef)(null),[_,y]=(0,C.useState)(!1),[v,S]=(0,C.useState)(!1),[T,N]=(0,C.useState)(Boolean(m));(0,C.useEffect)((()=>{T&&!m&&b.current?.focus()}),[T]),(0,C.useEffect)((()=>{_||k(m,!1)}),[m]),(0,C.useEffect)((()=>{m||v||_||(r(g),k(""))}),[v,_]);const k=function(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];!e||d.includes(e)?N(!1):(N(!0),t&&b.current?.focus())},w=Boolean(v||t);return C.createElement("div",{className:"DropdownInput hybrid_container",ref:M,style:{width:"100%"}},C.createElement("fieldset",{className:he()("Input_fieldset",s,{Input_fieldset___error:o,Input_fieldset___legend:w,Input_fieldset___split:T})},C.createElement("legend",{className:he()("Input_legend",{Input_legend___focus:w})},w?(0,Ms.H6)(E.formatMessage,i||a):null),C.createElement("div",{className:he()("Input_wrapper input_hybrid_wrapper",{showInput:T}),onFocus:()=>y(!0),onBlur:()=>y(!1),style:{maxWidth:T?"10000px":"0"}},C.createElement("input",{name:`Input_${n}`,type:u||"text",value:m,onChange:l,placeholder:(0,Ms.H6)(E.formatMessage,a),required:!1,className:he()("Input form-control"),ref:b,id:h,disabled:e.isDisabled})),C.createElement("div",{className:he()("Input_wrapper dropdown_hybrid_wrapper",{showInput:!T}),onFocus:t=>{S(!0),e.onFocus?.(t)},onBlur:t=>{S(!1),e.onBlur?.(t)},style:{width:T?`${c}px`:"100%"}},C.createElement(Je.Ay,Object.assign({id:`DropdownInput_${n}`,placeholder:v?"":(0,Ms.H6)(E.formatMessage,a),components:{IndicatorsContainer:Dr,Option:Or,Control:Pr},className:he()("Input",s,{Input__focus:w}),classNamePrefix:p,onChange:e=>{e&&(k(e.value),r(e))},styles:{...xr,...T?{menu:e=>({...e,width:M.current?`${M.current.offsetWidth}px`:"0px",left:b.current?`-${b.current.offsetWidth}px`:"0px"})}:{}},value:t,hideSelectedOptions:!0,isSearchable:!1,menuPortalTarget:document.body,isDisabled:e.isDisabled},f)))))};class Ur extends C.PureComponent{constructor(e){super(e),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:""}}openAddChannel=()=>{this.setState({addChannelOpen:!0})};closeAddChannel=()=>{this.setState({addChannelOpen:!1})};openAddTeam=()=>{this.setState({addTeamOpen:!0})};closeAddTeam=()=>{this.setState({addTeamOpen:!1})};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();getMessageRetentionDefaultDropdownValue=()=>!this.props.policyId||this.props.policy&&-1===this.props.policy.post_duration?_r():this.props.policy&&this.props.policy.post_duration%365==0?yr():vr();componentDidMount=async()=>{this.loadPage()};loadPage=async()=>{this.props.policyId&&(await this.props.actions.fetchPolicy(this.props.policyId),this.setState({policyName:this.props.policy?.display_name,messageRetentionInputValue:this.getMessageRetentionDefaultInputValue(),messageRetentionDropdownValue:this.getMessageRetentionDefaultDropdownValue()}))};addToNewTeams=e=>{let{removedTeamsCount:t}=this.state;const{newTeams:a,removedTeams:s}=this.state;e.forEach((e=>{s[e.id]?.id===e.id?(delete s[e.id],t-=1):a[e.id]=e})),this.setState({newTeams:{...a},removedTeams:{...s},removedTeamsCount:t,saveNeeded:!0}),this.props.actions.setNavigationBlocked(!0)};addToRemovedTeams=e=>{let{removedTeamsCount:t}=this.state;const{newTeams:a,removedTeams:s}=this.state;a[e.id]?.id===e.id?delete a[e.id]:s[e.id]?.id!==e.id&&(t+=1,s[e.id]=e),this.setState({removedTeams:{...s},newTeams:{...a},removedTeamsCount:t,saveNeeded:!0}),this.props.actions.setNavigationBlocked(!0)};addToNewChannels=e=>{let{removedChannelsCount:t}=this.state;const{newChannels:a,removedChannels:s}=this.state;e.forEach((e=>{s[e.id]?.id===e.id?(delete s[e.id],t-=1):a[e.id]=e})),this.setState({newChannels:{...a},removedChannels:{...s},removedChannelsCount:t,saveNeeded:!0}),this.props.actions.setNavigationBlocked(!0)};addToRemovedChannels=e=>{let{removedChannelsCount:t}=this.state;const{newChannels:a,removedChannels:s}=this.state;a[e.id]?.id===e.id?delete a[e.id]:s[e.id]?.id!==e.id&&(t+=1,s[e.id]=e),this.setState({removedChannels:{...s},newChannels:{...a},removedChannelsCount:t,saveNeeded:!0}),this.props.actions.setNavigationBlocked(!0)};getTeamsToExclude=()=>{const{teams:e}=this.props,{newTeams:t,removedTeams:a}=this.state;let s=e?.map((e=>e.id));const n=Object.keys(t);return s&&(s=s?.filter((e=>!a[e])),s=[...n,...s]),s};handleSubmit=async()=>{const{policyName:e,messageRetentionInputValue:t,messageRetentionDropdownValue:a,newTeams:s,removedTeams:n,newChannels:i,removedChannels:r}=this.state,{policyId:l,policy:o}=this.props,{updateDataRetentionCustomPolicy:d,addDataRetentionCustomPolicyTeams:c,removeDataRetentionCustomPolicyTeams:m,addDataRetentionCustomPolicyChannels:u,removeDataRetentionCustomPolicyChannels:g}=this.props.actions;this.setState({saving:!0});const p=Object.keys(s),h=Object.keys(n),f=Object.keys(i),E=Object.keys(r);let M=!1,b=parseInt(t,10);if(b<=0)this.setState({formErrorText:C.createElement(A.FormattedMessage,{id:"admin.data_retention.custom_policy.form.durationInput.error",defaultMessage:"Error parsing message retention."}),saving:!1});else if(a.value===Er?b=-1:this.state.messageRetentionDropdownValue.value===Mr&&(b=365
1*parseInt(t,10)),e?.trim()){if(l&&o){const t={display_name:e,post_duration:b};if(o?.team_count+p.length-h.length==0&&o?.channel_count+f.length-E.length==0)return void this.setState({formErrorText:C.createElement(A.FormattedMessage,{id:"admin.data_retention.custom_policy.form.teamsError",defaultMessage:"You must add a team or a channel to the policy."}),saving:!1});const a=[d(l,t)];p.length>0&&a.push(c(l,p)),h.length>0&&a.push(m(l,h)),f.length>0&&a.push(u(l,f)),E.length>0&&a.push(g(l,E));const s=await Promise.all(a);for(const e of s)e.error&&(M=!0)}else{if(p.length<1&&f.length<1)return void this.setState({formErrorText:C.createElement(A.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:b,team_ids:p,channel_ids:f};(await this.props.actions.createDataRetentionCustomPolicy(t)).error&&(M=!0)}M?this.setState({serverError:!0,saving:!1}):(this.props.actions.setNavigationBlocked(!1),(0,en.J)().push("/admin_console/compliance/data_retention_settings"))}else this.setState({inputErrorText:C.createElement(A.FormattedMessage,{id:"admin.data_retention.custom_policy.form.input.error",defaultMessage:"Policy name can't be blank."}),saving:!1})};render=()=>{const{serverError:e,formErrorText:t}=this.state;return C.createElement("div",{className:"wrapper--fixed DataRetentionSettings"},C.createElement(fe,{withBackButton:!0},C.createElement("div",null,C.createElement(me.A,{to:"/admin_console/compliance/data_retention_settings",className:"fa fa-angle-left back"}),C.createElement(A.FormattedMessage,{id:"admin.data_retention.customTitle",defaultMessage:"Custom Retention Policy"}
1))),C.createElement("div",{className:"admin-console__wrapper"},C.createElement("div",{className:"admin-console__content"},C.createElement(Js,{expanded:!0,className:"console"},C.createElement(Js.Header,null,C.createElement(Ks,{title:C.createElement(A.FormattedMessage,{id:"admin.data_retention.custom_policy.form.title",defaultMessage:"Name and retention"}),subtitle:C.createElement(A.FormattedMessage,{id:"admin.data_retention.custom_policy.form.subTitle",defaultMessage:"Give your policy a name and configure retention settings."})})),C.createElement(Js.Body,{expanded:!0},C.createElement("div",{className:"CustomPolicy__fields"},C.createElement(Ri.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:Br.policyName,customMessage:{type:ve.Kw.ERROR,value:this.state.inputErrorText}}),C.createElement(Fr,{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:[Er],defaultValue:_r(),options:[vr(),yr(),_r()],legend:Br.channelAndDirectMessageRetention,placeholder:Br.channelAndDirectMessageRetention,inputType:"number",name:"message_retention",dropdownClassNamePrefix:"message_retention",inputId:"message_retention_input"})))),this.state.addTeamOpen&&C.createElement(Rr,{onModalDismissed:this.closeAddTeam,onTeamsSelected:e=>{this.addToNewTeams(e)},modalID:"CUSTOM_POLICY_TEAMS",alreadySelected:Object.keys(this.state.newTeams),excludePolicyConstrained:!0}),C.createElement(Js,{expanded:!0,className:"console"},C.createElement(Js.Header,null,C.createElement(Ks,{title:C.createElement(A.FormattedMessage,{id:"admin.data_retention.custom_policy.team_selector.title",defaultMessage:"Assigned teams"}),subtitle:C.createElement(A.FormattedMessage,{id:"admin.data_retention.custom_policy.team_selector.subTitle",defaultMessage:"Add teams that will follow this retention policy."}),buttonText:C.createElement(A.FormattedMessage,{id:"admin.data_retention.custom_policy.team_selector.addTeams",defaultMessage:"Add teams"}),onClick:this.openAddTeam})),C.createElement(Js.Body,{expanded:!0},C.createElement(Nr,{onRemoveCallback:this.addToRemovedTeams,teamsToRemove:this.state.removedTeams,teamsToAdd:this.state.newTeams,policyId:this.props.policyId}))),this.state.addChannelOpen&&C.createElement(Qs.A,{onModalDismissed:this.closeAddChannel,onChannelsSelected:e=>{this.addToNewChannels(e)},groupID:"",alreadySelected:Object.keys(this.state.newChannels),excludePolicyConstrained:!0,excludeTeamIds:this.getTeamsToExclude()}),C.createElement(Js,{expanded:!0,className:"console"},C.createElement(Js.Header,null,C.createElement(Ks,{title:C.createElement(A.FormattedMessage,{id:"admin.data_retention.custom_policy.channel_selector.title",defaultMessage:"Assigned channels"}),subtitle:C.createElement(A.FormattedMessage,{id:"admin.data_retention.custom_policy.channel_selector.subTitle",defaultMessage:"Add channels that will follow this retention policy."}),buttonText:C.createElement(A.FormattedMessage,{id:"admin.data_retention.custom_policy.channel_selector.addChannels",defaultMessage:"Add channels"}),onClick:this.openAddChannel})),C.createElement(Js.Body,{expanded:!0},C.createElement(fr,{onRemoveCallback:this.addToRemovedChannels,channelsToRemove:this.state.removedChannels,channelsToAdd:this.state.newChannels,policyId:this.props.policyId}))))),C.createElement("div",{className:"admin-console-save"},C.createElement(ue.A,{saving:this.state.saving,disabled:!this.state.saveNeeded,onClick:this.handleSubmit,defaultMessage:C.createElement(A.FormattedMessage,{id:"admin.data_retention.custom_policy.save",defaultMessage:"Save"})}),C.createElement(me.A,{className:"btn btn-tertiary",to:"/admin_console/compliance/data_retention_settings"},C.createElement(A.FormattedMessage,{id:"admin.data_retention.custom_policy.
1cancel",defaultMessage:"Cancel"})),e&&C.createElement("span",{className:"CustomPolicy__error"},C.createElement("i",{className:"icon icon-alert-outline"}),C.createElement(A.FormattedMessage,{id:"admin.data_retention.custom_policy.serverError",defaultMessage:"There are errors in the form above"})),t&&C.createElement("span",{className:"CustomPolicy__error"},C.createElement("i",{className:"icon icon-alert-outline"}),t)))}}const Br=(0,A.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"}}),Hr=(0,s.connect)((function(){const e=(0,u.ax)();return(t,a)=>{const s=a.match.params.policy_id;return{policyId:s,policy:(0,d.eb)(t,s),teams:s?e(t,{policyId:s}):[]}}}),(function(e){return{actions:(0,n.zH)({fetchPolicy:i.eb,fetchPolicyTeams:i.AF,createDataRetentionCustomPolicy:i.gj,updateDataRetentionCustomPolicy:i.Dq,addDataRetentionCustomPolicyTeams:i.jQ,removeDataRetentionCustomPolicyTeams:i.Wr,addDataRetentionCustomPolicyChannels:i.bg,removeDataRetentionCustomPolicyChannels:i.tg,setNavigationBlocked:p.Jb},e)}}))(Ur);class Gr extends C.PureComponent{constructor(e){super(e);const{DataRetentionSettings:t}=e.config;this.state={saveNeeded:!1,saving:!1,serverError:null,formErrorText:"",messageRetentionDropdownValue:this.getDefaultDropdownValue(t?.EnableMessageDeletion,e.messageRetentionHours),messageRetentionInputValue:this.getDefaultInputValue(t?.EnableMessageDeletion,e.messageRetentionHours),fileRetentionDropdownValue:this.getDefaultDropdownValue(t?.EnableFileDeletion,e.fileRetentionHours),fileRetentionInputValue:this.getDefaultInputValue(t?.EnableFileDeletion,e.fileRetentionHours)}}getDefaultInputValue=(e,t)=>{if(!e||void 0===t)return"";const a=parseInt(t,10);return a%8760==0?(a/8760).toString():a%24==0?(a/24).toString():t.toString()};getDefaultDropdownValue=(e,t)=>{if(!e||void 0===t)return _r();const a=parseInt(t,10);return a%8760==0?yr():a%24==0?vr():Sr()};handleSubmit=async()=>{const{messageRetentionDropdownValue:e,messageRetentionInputValue:t,fileRetentionDropdownValue:a,fileRetentionInputValue:s}=this.state,n=JSON.parse(JSON.stringify(this.props.config));if(this.setState({saving:!0}),e.value!==Er&&parseInt(t,10)<1||a.value!==Er&&parseInt(s,10)<1)return void this.setState({formErrorText:C.createElement(A.FormattedMessage,{id:"admin.data_retention.global_policy.form.numberError",defaultMessage:"You must add a number greater than or equal to 1."}),saving:!1});n.DataRetentionSettings.EnableMessageDeletion=this.setDeletionEnabled(e.value),!this.isMessageRetentionSetByEnv()&&this.setDeletionEnabled(e.value)&&(n.DataRetentionSettings.MessageRetentionDays=0,n.DataRetentionSettings.MessageRetentionHours=this.setRetentionHours(e.value,t)),n.DataRetentionSettings.EnableFileDeletion=this.setDeletionEnabled(a.value),!this.isFileRetentionSetByEnv()&&this.setDeletionEnabled(a.value)&&(n.DataRetentionSettings.FileRetentionDays=0,n.DataRetentionSettings.FileRetentionHours=this.setRetentionHours(a.value,s));const{error:i}=await this.props.actions.patchConfig(n);i?this.setState({serverError:i.message,saving:!1}):(this.props.actions.setNavigationBlocked(!1),(0,en.J)().push("/admin_console/compliance/data_retention_settings"))};setDeletionEnabled=e=>e!==Er;setRetentionHours=(e,t)=>e===Mr?24*parseInt(t,10)*365:e===br?24*parseInt(t,10):parseInt(t,10);isMessageRetentionSetByEnv=()=>this.props.environmentConfig?.DataRetentionSettings?.MessageRetentionDays&&this.props.config.DataRetentionSettings?.MessageRetentionDays&&this.props.config.DataRetentionSettings.MessageRetentionDays>0||this.props.environmentConfig?.DataRetentionSettings?.MessageRetentionHours&&this.props.config.DataRetentionSettings?.MessageRetentionHours&&this.props.config.DataRetentionSettings.MessageRetentionHours>0||this.props.environmentConfig?.DataRetentionSettings?.EnableMessageDeletion&&!this.props.config.DataRetentionSettings?.EnableMessageDeletion;isFileRetentionSetByEnv=()=>this.props.environmentConfig?.DataRetentionSettings?.FileRetentionDays&&this.props.config.DataRetentionSettings?.FileRetentionDays&&this.props.config.DataRetentionSettings.FileRetentionDays>0||this.props.environmentConfig?.DataRetentionSettings?.FileRetentionHours&&this.props.config.DataRetentionSettings?.FileRetentionHours&&this.props.config.DataRetentionSettings.FileRetentionHours>0||this.props.environmentConfig?.DataRetentionSettings?.EnableFileDeleti
1on&&!this.props.config.DataRetentionSettings?.EnableFileDeletion;render=()=>C.createElement("div",{className:"wrapper--fixed DataRetentionSettings"},C.createElement(fe,{withBackButton:!0},C.createElement("div",null,C.createElement(me.A,{to:"/admin_console/compliance/data_retention_settings",className:"fa fa-angle-left back"}),C.createElement(A.FormattedMessage,{id:"admin.data_retention.globalPolicyTitle",defaultMessage:"Global Retention Policy"}))),C.createElement("div",{className:"admin-console__wrapper"},C.createElement("div",{className:"admin-console__content"},C.createElement(Js,{expanded:!0,className:"console"},C.createElement(Js.Body,null,C.createElement("div",{className:"global_policy"},C.createElement("p",null,C.createElement(A.FormattedMessage,{id:"admin.data_retention.form.text",defaultMessage:"Applies to all teams and channels, but does not apply to custom retention policies."})),C.createElement("div",{id:"global_direct_message_dropdown"},C.createElement(Fr,{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:[Er],isDisabled:this.isMessageRetentionSetByEnv(),defaultValue:_r(),options:[Sr(),vr(),yr(),_r()],legend:Vr.channelAndMessageRetention,placeholder:Vr.channelAndMessageRetention,name:"channel_message_retention",inputType:"number",dropdownClassNamePrefix:"channel_message_retention_dropdown",inputId:"channel_message_retention_input"}),this.isMessageRetentionSetByEnv()&&C.createElement(x,null)),C.createElement("div",{id:"global_file_dropdown"},C.createElement(Fr,{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:[Er],isDisabled:this.isFileRetentionSetByEnv(),defaultValue:_r(),options:[Sr(),vr(),yr(),_r()],legend:Vr.fileRetention,placeholder:Vr.fileRetention,name:"file_retention",inputType:"number",dropdownClassNamePrefix:"file_retention_dropdown",inputId:"file_retention_input"}),this.isFileRetentionSetByEnv()&&C.createElement(x,null))))))),C.createElement("div",{className:"admin-console-save"},C.createElement(ue.A,{saving:this.state.saving,disabled:!this.state.saveNeeded,onClick:this.handleSubmit,defaultMessage:C.createElement(A.FormattedMessage,{id:"admin.data_retention.custom_policy.save",defaultMessage:"Save"})}),C.createElement(me.A,{className:"btn btn-tertiary",to:"/admin_console/compliance/data_retention_settings"},C.createElement(A.FormattedMessage,{id:"admin.data_retention.custom_policy.cancel",defaultMessage:"Cancel"})),this.state.serverError&&C.createElement("span",{className:"CustomPolicy__error"},C.createElement("i",{className:"icon icon-alert-outline"}),this.state.serverError),this.state.formErrorText&&C.createElement("span",{className:"CustomPolicy__error"},C.createElement("i",{className:"icon icon-alert-outline"}),this.state.formErrorText)))}const Vr=(0,A.defineMessages)({channelAndMessageRetention:{id:"admin.data_retention.form.channelAndDirectMessageRetention",defaultMessage:"Channel & direct message retention"},fileRetention:{id:"admin.data_retention.form.fileRetention",defaultMessage:"File retention"}}),zr=(0,s.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,n.zH)({patchConfig:i.tn,setNavigationBlocked:p.Jb},e)}}))(Gr),jr=e=>{let{createHelpText:t,className:a,actions:s}=e;const[n,i]=(0,C.useState)([]);(0,C.useEffect)((()=>{!async function(){const e=await s.getAppliedSchemaMigrations();e.data&&i(e.data)}()}),[]);const r=(0,C.useMemo)((()=>n.map((e=>C.createElement("tr",{key:e.version}
1,C.createElement("td",{className:"whitespace--nowrap"},e.version),C.createElement("td",{className:"whitespace--nowrap"},e.name))))),[n]);return C.createElement("div",{className:he()("MigrationsTable","migrations-table__panel",a)},C.createElement("div",{className:"help-text"},t),C.createElement("div",{className:"migrations-table__table"},C.createElement("table",{className:"table","data-testid":"migrationsTable"},C.createElement("thead",null,C.createElement("tr",null,C.createElement("th",null,C.createElement(A.FormattedMessage,{id:"admin.database.migrations_table.version",defaultMessage:"Version"})),C.createElement("th",null,C.createElement(A.FormattedMessage,{id:"admin.database.migrations_table.name",defaultMessage:"Name"})))),C.createElement("tbody",null,r))))},Wr=C.memo(jr),Yr=(0,s.connect)(null,(function(e){return{actions:(0,n.zH)({getAppliedSchemaMigrations:i.s6},e)}}))(Wr),qr=(0,A.defineMessages)({title:{id:"admin.database.title",defaultMessage:"Database"},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."},analyticsQueryTimeoutTitle:{id:"admin.sql.analyticsQueryTimeoutTitle",defaultMessage:"Analytics Query Timeout:"},analyticsQueryTimeoutDescription:{id:"admin.sql.analyticsQueryTimeoutDescription",defaultMessage:"The number of seconds to wait for a response from the database after opening a connection and sending certain analytics queries. This setting only applies to long queries which are run in the background to populate some information in the Team and Site Statistics pages."},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."},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."}}),Zr=[qr.title,[qr.recycleDescription,{featureName:"",reloadConfiguration:""}],qr.featureName,qr.reloadConfiguration,qr.button,qr.noteDescription,qr.disableDatabaseSearchTitle,qr.disableDatabaseSearchDescription,qr.driverName,qr.driverNameDescription,qr.dataSource,qr.dataSourceDescription,qr.maxConnectionsTitle,qr.maxConnectionsDescription,qr.maxOpenTitle,qr.maxOpenDescription,qr.queryTimeoutTitle,qr.queryTimeoutDescription,qr.analyticsQueryTimeoutTitle,qr.analyticsQueryTimeoutDescription,qr.connMaxLifetimeTitle,qr.connMaxLifetimeDescription,qr.connMaxIdleTimeTitle,qr.connMaxIdleTimeDescription,qr.traceTitle,qr.traceDescription],Jr=(0,A.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>
1Please 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\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 Indexes"},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."}}),Kr=[[Jr.connectionUrlDescription,{link:e=>e}],[Jr.enableIndexingDescription,{link:e=>e}],Jr.title,Jr.enableIndexingTitle,Jr.connectionUrlTitle,Jr.skipTLSVerificationTitle,Jr.skipTLSVerificationDescription,Jr.usernameTitle,Jr.usernameDescription,Jr.passwordTitle,Jr.passwordDescription,Jr.sniffTitle,Jr.sniffDescription,Jr.testHelpText,Jr.elasticsearch_test_button,Jr.bulkIndexingTitle,Jr.help,Jr.purgeIndexesHelpText,Jr.purgeIndexesButton,Jr.label,Jr.enableSearchingTitle,Jr.enableSearchingDescription],Qr=e=>C.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"},C.createElement("rect",{x:"2.745",y:"15",width:"181",height:"78",rx:"5.625",fill:"var(--center-c
1hannel-color)",fillOpacity:"0.12"}),C.createElement("path",{d:"M11.4834 28L16.9999 33.5618V59L172 59L172 68",stroke:"var(--center-channel-color)",strokeOpacity:"0.24",strokeLinecap:"round"}),C.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"}),C.createElement("path",{d:"M59.1304 15H126.87L131 108H55L59.1304 15Z",fill:"var(--center-channel-color)",fillOpacity:"0.24"}),C.createElement("rect",{width:"92",height:"5",transform:"matrix(1 0 0 -1 47 113)",fill:"var(--center-channel-color)",fillOpacity:"0.4"}),C.createElement("rect",{x:"27",y:"9",width:"131",height:"86",rx:"4",fill:"var(--center-channel-bg)",stroke:"var(--center-channel-color)",strokeWidth:"4"}),C.createElement("circle",{cx:"87.9995",cy:"41.0007",r:"5",fill:"var(--center-channel-color)",fillOpacity:"0.32"}),C.createElement("path",{d:"M95.9995 41.0007H149.056",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round"}),C.createElement("path",{d:"M95.9995 45.0007H149.056",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round"}),C.createElement("path",{d:"M95.9995 37.0007H109.175",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round"}),C.createElement("circle",{cx:"87.9995",cy:"60.0005",r:"5",fill:"var(--center-channel-color)",fillOpacity:"0.32"}),C.createElement("path",{d:"M95.9995 60.0005H149.056",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round"}),C.createElement("path",{d:"M95.9995 64.0005H149.056",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round"}),C.createElement("path",{d:"M95.9995 56.0005H109.175",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round"}),C.createElement("circle",{cx:"87.9995",cy:"79.0003",r:"5",fill:"var(--center-channel-color)",fillOpacity:"0.32"}),C.createElement("path",{d:"M95.9995 79.0003H149.056",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round"}),C.createElement("path",{d:"M95.9995 83.0003H149.056",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round"}),C.createElement("path",{d:"M95.9995 75.0003H109.175",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round"}),C.createElement("rect",{x:"31",y:"13",width:"46",height:"78",fill:"#1C58D9",fillOpacity:"0.16"}),C.createElement("path",{d:"M46.8109 20.0273L63.5002 20.0273",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round"}),C.createElement("path",{d:"M46.8109 22.6628L56.4732 22.6628",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round"}),C.createElement("circle",{cx:"38.5092",cy:"20.5105",r:"4.34771",fill:"var(--center-channel-color)",fillOpacity:"0.32"}),C.createElement("circle",{cx:"36.4795",cy:"36.1602",r:"2",fill:"var(--center-channel-color)",fillOpacity:"0.32"}),C.createElement("path",{d:"M42.4189 36.1602H67.0137",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round"}),C.createElement("circle",{cx:"36.4795",cy:"43.1602",r:"2",fill:"var(--center-channel-color)",fillOpacity:"0.32"}),C.createElement("path",{d:"M42.4189 43.1602H61.7434",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round"}),C.createElement("circle",{cx:"36.4795",cy:"51.1602",r:"2",fill:"var(--center-channel-color)",fillOpacity:"0.32"}),C.createElement("path",{d:"M42.4189 51.1602H69.6489",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round"}),C.createElement("circle",{cx:"36.4795",cy:"58.1602",r:"2",fill:"var(--center-channel-color)",fillOpacity:"0.32"}),C.createElement("path",{d:"M42.4189 58.1602H67.0137",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round"}),C.createElement("circle",{cx:"36.4795",cy:"65.1602",r:"2",fill:"var(--center-channel-color)",fillOpacity:"0.32"}),C.createElement("path",{d:"M42.4189 65.1602H61.7434",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round"}),C.createElement("circle",{cx:"36.4795",cy:"72.1602",r:"2",fill:"var(--center-c
1hannel-color)",fillOpacity:"0.32"}),C.createElement("path",{d:"M42.4189 72.1602H69.6489",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round"}),C.createElement("path",{d:"M147 101.5H119.5",stroke:"var(--center-channel-color)",strokeLinecap:"round",strokeLinejoin:"round"}),C.createElement("path",{d:"M116 101.5H110",stroke:"var(--center-channel-color)",strokeLinecap:"round"}),C.createElement("path",{d:"M107 101.5H101",stroke:"var(--center-channel-color)",strokeLinecap:"round"}),C.createElement("path",{d:"M29 13C29 11.8954 29.8954 11 31 11H154C155.105 11 156 11.8954 156 13V30H29V13Z",fill:"#28427B"}),C.createElement("path",{d:"M50 18H74.5948",stroke:"var(--neutral-0)",strokeLinecap:"round"}),C.createElement("path",{d:"M50 22H131",stroke:"var(--neutral-0)",strokeLinecap:"round"}),C.createElement("circle",{cx:"39.5",cy:"20.5",r:"5",stroke:"var(--neutral-0)"}),C.createElement("line",{x1:"39.5",y1:"20",x2:"39.5",y2:"23",stroke:"var(--neutral-0)"}),C.createElement("line",{x1:"39.5",y1:"20",x2:"39.5",y2:"23",stroke:"var(--neutral-0)"}),C.createElement("line",{x1:"39.5",y1:"18",x2:"39.5",y2:"19",stroke:"white"}),C.createElement("circle",{cx:"172",cy:"84",r:"2",transform:"rotate(-90 172 84)",fill:"var(--center-channel-color)",fillOpacity:"0.32"}),C.createElement("circle",{cx:"172",cy:"78",r:"2",transform:"rotate(-90 172 78)",fill:"var(--center-channel-color)",fillOpacity:"0.32"}),C.createElement("circle",{cx:"172",cy:"72",r:"2",transform:"rotate(-90 172 72)",fill:"var(--center-channel-color)",fillOpacity:"0.32"}));var Xr=a(28458),$r=a(57932),el=a(85866);const tl=()=>C.createElement(A.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 [email protected] for questions around export limitations.",values:{link:e=>C.createElement(Ge.A,{location:"trial_banner",href:ve.vx.EMBARGOED_COUNTRIES},e)}});var al=function(e){return e.NotStarted="NOT_STARTED",e.Started="STARTED",e.Success="SUCCESS",e.Failed="FAILED",e.Embargoed="EMBARGOED",e}(al||{});const sl=(nl=e=>{let t,a,n,i,{isDisabled:r,gettingTrialError:l,gettingTrialResponseCode:o,gettingTrial:d,enterpriseReady:c,upgradingPercentage:m,handleUpgrade:u,upgradeError:p,restartError:h,handleRestart:f,restarting:E,openEEModal:M,openTrialForm:b,upgradeDisabled:_}=e;const{formatMessage:y}=(0,A.useIntl)(),v=(0,s.useSelector)((e=>(0,Ba.Jz)(e,ve.pm.UNIQUE,ve.Ew.REQUEST_TRIAL_AFTER_SERVER_UPGRADE))),S=(0,s.useSelector)((e=>(0,Ba.Jz)(e,ve.pm.UNIQUE,ve.Ew.CLICKED_UPGRADE_AND_TRIAL_BTN))),T=(0,s.useSelector)((e=>(0,g.WR)(e))),[N,k]=(0,C.useState)(al.NotStarted),w=(0,s.useDispatch)(),I=()=>{b&&b()};(0,C.useEffect)((()=>{100===m&&S&&(E||async function(){await R(),f()}())}),[m,S]),(0,C.useEffect)((()=>{d&&!l&&200!==o?k(al.Started):l?k(al.Failed):451===o&&k(al.Embargoed)}),[d,l,o]),(0,C.useEffect)((()=>{if(v&&S&&0===m){const e=ve.pm.UNIQUE,t=ve.Ew.REQUEST_TRIAL_AFTER_SERVER_UPGRADE,a=ve.Ew.CLICKED_UPGRADE_AND_TRIAL_BTN;w((0,Ua.SF)(T,[{category:e,name:t,user_id:T,value:""},{category:e,name:a,user_id:T,value:""}])),I()}}),[v,S]);const R=()=>{const e=ve.pm.UNIQUE,t=ve.Ew.REQUEST_TRIAL_AFTER_SERVER_UPGRADE;w((0,Ua.SF)(T,[{category:e,name:t,user_id:T,value:"true"}]))},L=C.createElement("a",{role:"button",onClick:M},C.createElement(A.FormattedMessage,{id:"admin.license.enterprise.upgrade.eeLicenseLink",defaultMessage:"Enterprise Edition License"}));return c&&!v?(l&&(i=451===o?C.createElement("div",{className:"trial-error"},C.createElement(tl,null)):C.createElement("p",{className:"trial-error"},C.createElement(A.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=>C.createElement(Ge.A,{location:"trial_banner",href:ve.vx.TRIAL_INFO_LINK},e),trialInfoLink:ve.vx.TRIAL_INFO_LINK}}))),t=C.createElement("button",{type:"button",className:"btn btn-primary",onClick:I,disabled:r||null!==l||451===o},(e=>{switch(e){case al.Started:return y({id:"start_trial.modal.gettingTrial",defaultMessage:"Getting Trial..."});case al.Success:return y({id:"start_trial.modal.loaded",defaultMessage:"Loaded!"});case al.Failed:return y({id:"start_trial.modal.failed",defaultMessage:"Failed"});case al.Embargoed:return y({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 [email protected] for questions around export limitations."},{link:e=>C.createElement(Ge.A,{location:"trial_banner",href:ve.vx.EMBARGOED_COUNTRIES},e)});default:return y({id:"admin.license.trial-request.startTrial",defaultMessage:"Start trial"})}})(N)),n=C.createElement(C.Fragment,null,C.createElement(A.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. "}),C.createElement(A.FormattedMessage,{id:"admin.license.trial-request.accept-terms",defaultMessage:"By clicking <strong>Start trial</strong>, I agree to the <linkEvaluation>
1Mattermost Software and Services License Agreement</linkEvaluation>, <linkPrivacy>Privacy Policy</linkPrivacy>, and receiving product emails.",values:{strong:e=>C.createElement("strong",null,e),linkEvaluation:e=>C.createElement(Ge.A,{href:ve.vx.SOFTWARE_SERVICES_LICENSE_AGREEMENT,location:"trial_banner"},e),linkPrivacy:e=>C.createElement(Ge.A,{href:ve.L0.PRIVACY_POLICY,location:"trial_banner"},e)}})),a=null):_?(n=C.createElement(C.Fragment,null,C.createElement(A.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. "})),a=C.createElement("div",{className:"upgrade-error unsupported"},C.createElement("div",{className:"form-group has-error"},C.createElement("div",{className:"as-bs-label control-label"},C.createElement(A.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=>C.createElement(Ge.A,{location:"trial_banner",href:ve.vx.UNSUPPORTED_UPGRADE_LINK},e)}}))))):(i=null,t=C.createElement("button",{type:"button",onClick:()=>{if(!u)return;u();const e=ve.pm.UNIQUE,t=ve.Ew.CLICKED_UPGRADE_AND_TRIAL_BTN;w((0,Ua.SF)(T,[{category:e,name:t,user_id:T,value:"true"}]))},className:"btn btn-primary"},C.createElement(rt.A,{loading:m>0,text:100===m&&E?C.createElement(A.FormattedMessage,{id:"admin.license.enterprise.restarting",defaultMessage:"Restarting"}):C.createElement(A.FormattedMessage,{id:"admin.license.enterprise.upgrading",defaultMessage:"Upgrading {percentage}%",values:{percentage:m}})},C.createElement(A.FormattedMessage,{id:"admin.license.trialUpgradeAndRequest.submit",defaultMessage:"Upgrade Server And Start trial"}))),n=C.createElement(C.Fragment,null,C.createElement(A.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. "})),a=C.createElement(C.Fragment,null,C.createElement("p",{className:"upgrade-legal-terms"},C.createElement(A.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 Evaluation Agreement</linkEvaluation>, <linkPrivacy>Privacy Policy</linkPrivacy>, and receiving product emails. ",values:{strong:e=>C.createElement("strong",null,e),linkEvaluation:e=>C.createElement(Ge.A,{href:ve.vx.SOFTWARE_SERVICES_LICENSE_AGREEMENT,location:"trial_banner"},e),linkPrivacy:e=>C.createElement(Ge.A,{href:ve.L0.PRIVACY_POLICY,location:"trial_banner"},e)}}),C.createElement(A.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:L}})),p&&C.createElement("div",{className:"upgrade-error"},C.createElement("div",{className:"form-group has-error"},C.createElement("div",{className:"as-bs-label control-label",dangerouslySetInnerHTML:{__html:(0,el.GP)(p)}}))),h&&C.createElement("div",{className:"upgrade-error"},C.createElement("div",{className:"form-group has-error"},C.createElement("div",{className:"as-bs-label control-label"},h))))),C.createElement(Ha.A,{mode:"info",title:C.createElement(A.FormattedMessage,{id:"licensingPage.infoBanner.startTrialTitle",defaultMessage:"Start a free 30-day trial of Mattermost Enterprise Advanced"}),message:C.createElement("div",{className:"banner-start-trial"},C.createElement("p",{className:"license-trial-legal-terms"},n),C.createElement("div",{className:"trial"},t),a,i)})},e=>{const t=(0,$r.A)();return C.createElement(nl,Object.assign({openTrialForm:t},e))});var nl,il=a(12895);const rl=e=>{let{className:t="",size:a="xs",sku:s}=e;const n=(0,C.useMemo)((()=>{switch(s){case ve.gS.Starter:return"STARTER";case ve.gS.Professional:return"PROFESSIONAL";case ve.gS.Enterprise:return"ENTERPRISE";case ve.gS.E10:return"ENTERPRISE E10";case ve.gS.E20:return"ENTERPRISE E20";case ve.gS.EnterpriseAdvanced:return"ENTERPRISE ADVANCED";case ve.gS.Entry:return"ENTRY";default:return"UNKNOWN"}}),[s]);return C.createElement(At.A,{className:he()("SkuTag",t),icon:"mattermost",size:a,text:n})};var ll=a(33113);
1class ol extends C.PureComponent{constructor(e){super(e),this.state={gettingTrial:!1,gettingTrialError:null,gettingTrialResponseCode:null}}componentDidMount(){this.props.actions.getPrevTrialLicense()}contactSalesFunc=()=>{const{customer:e,isCloud:t}=this.props,a=e?.email||"",s=e?.contact_first_name||"",n=e?.contact_last_name||"",i=e?.name||"",r=t?"in-product-cloud":"in-product";(0,ll.gc)(s,n,i,a,"mattermost",r)};renderPostTrialCta=()=>{const{learnMoreURL:e}=this.props;return C.createElement("div",{className:"purchase-card"},C.createElement("button",{className:"btn btn-primary btn-lg","data-testid":"featureDiscovery_primaryCallToAction",onClick:()=>{this.contactSalesFunc()}},C.createElement(A.FormattedMessage,{id:"admin.ldap_feature_discovery_cloud.call_to_action.primary_sales",defaultMessage:"Contact sales"})),C.createElement(Ge.A,{location:"feature_discovery",className:"btn btn-tertiary btn-lg",href:e,"data-testid":"featureDiscovery_secondaryCallToAction"},C.createElement(A.FormattedMessage,{id:"admin.ldap_feature_discovery.call_to_action.secondary",defaultMessage:"Learn more"})))};renderStartTrial=(e,t)=>{const{isCloud:a}=this.props;let s=C.createElement(il.A,{btnClass:"btn btn-primary",renderAsButton:!0});return a&&(s=C.createElement("button",{className:"btn btn-primary","data-testid":"featureDiscovery_primaryCallToAction",onClick:()=>{this.contactSalesFunc()}},C.createElement(A.FormattedMessage,{id:"admin.ldap_feature_discovery_cloud.call_to_action.primary_sales",defaultMessage:"Contact sales"}))),C.createElement(C.Fragment,null,s,C.createElement(Ge.A,{location:"feature_discovery",className:"btn btn-secondary",href:e,"data-testid":"featureDiscovery_secondaryCallToAction"},C.createElement(A.FormattedMessage,{id:"admin.ldap_feature_discovery.call_to_action.secondary",defaultMessage:"Learn more"})),t,!this.props.isCloud&&C.createElement("p",{className:"trial-legal-terms"},C.createElement(A.FormattedMessage,{id:"admin.feature_discovery.trial-request.accept-terms",defaultMessage:"By clicking <highlight>Start trial</highlight>, I agree to the <linkEvaluation>Mattermost Software Evaluation Agreement</linkEvaluation>, <linkPrivacy>Privacy Policy</linkPrivacy> and receiving product emails.",values:{highlight:e=>C.createElement("strong",null,e),linkEvaluation:e=>C.createElement(Ge.A,{location:"feature_discovery",href:ve.vx.SOFTWARE_SERVICES_LICENSE_AGREEMENT},e),linkPrivacy:e=>C.createElement(Ge.A,{location:"feature_discovery",href:ve.L0.PRIVACY_POLICY},e)}})))};render(){const{title:e,copy:t,learnMoreURL:a,featureDiscoveryImage:s,isCloud:n,isCloudTrial:i,isSubscriptionLoaded:r,showSkuTag:l}=this.props;if(n&&!r)return C.createElement(Bn.A,null);let o="";if(this.state.gettingTrialError&&451===this.state.gettingTrialResponseCode?o=C.createElement("p",{className:"trial-error"},C.createElement(tl,null)):this.state.gettingTrialError&&(o=C.createElement("p",{className:"trial-error"},C.createElement(A.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=>C.createElement(Ge.A,{location:"feature_discovery",href:ve.vx.TRIAL_INFO_LINK},e),trialInfoLink:ve.vx.TRIAL_INFO_LINK}}))),n&&i&&r)return C.createElement("div",{className:"FeatureDiscovery"},C.createElement(Ha.A,{mode:"info",title:C.createElement(A.FormattedMessage,{id:"admin.featureDiscovery.WarningTitle",defaultMessage:"Your trial has started and updates are being made to your license."}),message:C.createElement(C.Fragment,null,C.createElement(A.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 "}),C.createElement(Bn.A,null))}));const d="true"===this.props.prevTrialLicense?.IsLicensed||!1===this.props.isEnterpriseReady;return C.createElement("div",{className:"FeatureDiscovery","data-testid":"featureDiscovery"},C.createElement("div",{className:"FeatureDiscovery_copyWrapper"},l&&C.createElement(rl,{sku:this.props.minimumSKURequiredForFeature,className:"FeatureDiscovery_tag"}),C.createElement("div",{className:"FeatureDiscovery_title","data-testid":"featureDiscovery_title"},C.createElement(A.FormattedMessage,e)),C.createElement("div",{className:"FeatureDiscovery_copy"},C.createElement(A.FormattedMessage,t)),d?this.renderPostTrialCta():this.renderStartTrial(a,o)),C.createElement("div",{className:"FeatureDiscovery_imageWrapper"},s))}}const dl=(0,Xr.A)((0,s.connect)((function(e){const t=e.entities.cloud.subscription,a=(0,c.Ay)(e),s=(0,qt.P3)(a),n=(0,_e.gh)(e),i="true"===t?.is_free_trial,r=(0,_e.wX)(e),l=(0,c.zj)(e),o="true"===l?.BuildEnterpriseReady;return{stats:e.entities.admin.analytics,prevTrialLicense:e.entities.admin.prevTrialLicense,isCloud:s,isCloudTrial:i,isSubscriptionLoaded:null!=t,isEnterpriseReady:o,hadPrevCloudTrial:n,isPaidSubscription:s&&a?.SkuShortName!==ve.gS.Starter&&!i,customer:r}}),(function(e){return{actions:(0,n.zH)({getPrevTrialLicense:i.fr,getCloudSubscription:On.dw,openM
1odal:Hn.q},e)}}))(ol)),cl=e=>C.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"},C.createElement("g",{clipPath:"url(#clip0_4441_159184)"},C.createElement("rect",{x:"0.745117",y:"17",width:"181",height:"78",rx:"5.625",fill:"var(--center-channel-color)",fillOpacity:"0.12"}),C.createElement("path",{d:"M9.5 30L15 35.5V74.5H172.5V103.5",stroke:"var(--center-channel-color)",strokeLinecap:"round"}),C.createElement("circle",{cx:"2.5",cy:"2.5",r:"2.5",transform:"matrix(1 0 0 -1 170 107)",fill:"var(--center-channel-color)"}),C.createElement("circle",{cx:"2.5",cy:"2.5",r:"2.5",transform:"matrix(1 0 0 -1 6 31)",fill:"var(--center-channel-color)"}),C.createElement("rect",{x:"25",y:"11",width:"131",height:"86",rx:"4",fill:"var(--center-channel-bg)",stroke:"var(--center-channel-color)",strokeWidth:"4"}),C.createElement("rect",{x:"29",y:"15",width:"46",height:"78",fill:"var(--button-bg)",fillOpacity:"0.16"}),C.createElement("path",{d:"M44.8109 22.0273L61.5002 22.0273",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round"}),C.createElement("path",{d:"M44.8109 24.6628L54.4732 24.6628",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round"}),C.createElement("path",{d:"M33.392 33.4453H46.5678",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round"}),C.createElement("circle",{cx:"36.5092",cy:"22.5105",r:"4.34771",fill:"var(--center-channel-color)",fillOpacity:"0.32"}),C.createElement("circle",{cx:"34.4795",cy:"38.1602",r:"2",fill:"var(--center-channel-color)",fillOpacity:"0.32"}),C.createElement("path",{d:"M40.4189 38.1602H65.0137",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round"}),C.createElement("circle",{cx:"34.4795",cy:"45.1602",r:"2",fill:"var(--center-channel-color)",fillOpacity:"0.32"}),C.createElement("path",{d:"M40.4189 45.1602H59.7434",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round"}),C.createElement("circle",{cx:"34.4795",cy:"53.1602",r:"2",fill:"var(--center-channel-color)",fillOpacity:"0.32"}),C.createElement("path",{d:"M40.4189 53.1602H67.6489",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round"}),C.createElement("circle",{cx:"34.4795",cy:"60.1602",r:"2",fill:"var(--center-channel-color)",fillOpacity:"0.32"}),C.createElement("path",{d:"M40.4189 60.1602H65.0137",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round"}),C.createElement("circle",{cx:"34.4795",cy:"67.1602",r:"2",fill:"var(--center-channel-color)",fillOpacity:"0.32"}),C.createElement("path",{d:"M40.4189 67.1602H59.7434",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round"}),C.createElement("circle",{cx:"34.4795",cy:"74.1602",r:"2",fill:"var(--center-channel-color)",fillOpacity:"0.32"}),C.createElement("path",{d:"M40.4189 74.1602H67.6489",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round"}),C.createElement("path",{d:"M145 103.5H117.5",stroke:"var(--center-channel-color)",strokeLinecap:"round",strokeLinejoin:"round"}),C.createElement("path",{d:"M114 103.5H108",stroke:"var(--center-channel-color)",strokeLinecap:"round"}),C.createElement("path",{d:"M105 103.5H99",stroke:"var(--center-channel-color)",strokeLinecap:"round"}),C.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"}),C.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)"}),C.createElement("path",{d:"M158.5 36V13M158.5 13L149 22.8305M158.5 13L168 22.8305",stroke:"var(--center-channel-bg)",strokeLinecap:"round"}),C.createElement("path",{d:"M146 33V42H171V33",stroke:"var(--center-channel-bg)",strokeLinecap:"round"}),C.createElement("rect",{x:"62",y:"34",width:"67",height:"82",rx:"2",fill:"var(--neutral-1200",fillOpacity:"0.24"}),C.createElement("rect",{x:"55",y:"21",width:"70.3182",height:"91",rx:"2",fill:"var(--center-c
1hannel-bg)"}),C.createElement("rect",{x:"55.5",y:"21.5",width:"69.3182",height:"90",rx:"1.5",stroke:"var(--center-channel-color)",strokeOpacity:"0.8"}),C.createElement("path",{d:"M65 30H77",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeLinecap:"round"}),C.createElement("path",{d:"M64 76H97",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeLinecap:"round"}),C.createElement("path",{d:"M64 94H103",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeLinecap:"round"}),C.createElement("path",{d:"M65 35H87",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeLinecap:"round"}),C.createElement("path",{d:"M64 82H115",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeLinecap:"round"}),C.createElement("path",{d:"M64 100H115",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeLinecap:"round"}),C.createElement("path",{d:"M65 41H74",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeLinecap:"round"}),C.createElement("path",{d:"M64 88H83",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeLinecap:"round"}),C.createElement("path",{d:"M76 41H85",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeLinecap:"round"}),C.createElement("path",{d:"M88 88H100",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeLinecap:"round"})),C.createElement("defs",null,C.createElement("clipPath",{id:"clip0_4441_159184"},C.createElement("rect",{width:"189",height:"116",fill:"var(--center-channel-bg)"})))),ml=e=>C.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"},C.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"}),C.createElement("path",{d:"M10 45L10 53.7097L166.84 53.7097L166.84 63L182 63",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round"}),C.createElement("path",{d:"M19.0974 76.51L19.0974 60.445L34.8649 60.445",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round"}),C.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"}),C.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"}),C.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"}),C.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"}),C.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"}),C.createElement("rect",{x:"80.2914",y:"82.7874",width:"41.9173",height:"8.59843",rx:"2",fill:"var(--button-bg)"}),C.createElement("path",{d:"M71.1178 37H84.5296",stroke:"var(--center-channel-color)",strokeOpacity:"0.56",strokeLinecap:"round"}),C.createElement("path",{d:"M71.1178 41H95.706",stroke:"var(--center-channel-color)",strokeOpacity:"0.56",strokeLinecap:"round"}),C.createElement("path",{d:"M71.1178 45H81.1766",stroke:"var(--center-channel-color)",strokeOpacity:"0.56",strokeLinecap:"round"}),C.createElement("path",{d:"M70.0001 55H106.882",stroke:"var(--center-channel-color)",strokeOpacity:"0.56",strokeLinecap:"round"}),C.createElement("path",{d:"M70.0001 66.1646H113.588",stroke:"var(--center-channel-color)",strokeOpacity:"0.56",strokeLinecap:"round"}),C.createElement("path",{d:"M70 71.5525H127",stroke:"var(--center-channel-color)",strokeOpacity:"0.56",strokeLinecap:"round"}),C.createElement("path",{d:"M70.0001 60.7764H91.2354",stroke:"var(--center-c
1hannel-color)",strokeOpacity:"0.56",strokeLinecap:"round"}),C.createElement("path",{d:"M96.8237 60.7764H112.105",stroke:"var(--center-channel-color)",strokeOpacity:"0.56",strokeLinecap:"round"}),C.createElement("path",{d:"M116.69 60.7764H124.331",stroke:"var(--center-channel-color)",strokeOpacity:"0.56",strokeLinecap:"round"}),C.createElement("circle",{cx:"41.5",cy:"22.5",r:"1.5",fill:"var(--center-channel-color)",fillOpacity:"0.32"}),C.createElement("circle",{cx:"49.5",cy:"22.5",r:"1.5",fill:"var(--center-channel-color)",fillOpacity:"0.32"}),C.createElement("circle",{cx:"57.5",cy:"22.5",r:"1.5",fill:"var(--center-channel-color)",fillOpacity:"0.32"}),C.createElement("path",{d:"M116 110L125 110",stroke:"var(--center-channel-color)",strokeLinecap:"round"}),C.createElement("path",{d:"M128 110L132 110",stroke:"var(--center-channel-color)",strokeLinecap:"round"}),C.createElement("path",{d:"M135 110L165 110",stroke:"var(--center-channel-color)",strokeLinecap:"round"}),C.createElement("path",{d:"M113 110L101 110L101 90",stroke:"var(--center-channel-color)",strokeLinecap:"round",strokeLinejoin:"round"}),C.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"}),C.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)"}),C.createElement("path",{d:"M142 29.3101L151.28 38L169 19",stroke:"var(--neutral-0)",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})),ul=e=>C.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"},C.createElement("path",{d:"M5.50196 18L5.50195 33L94.002 33",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round"}),C.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"}),C.createElement("path",{d:"M133.502 52L133.502 66L46.002 66",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round"}),C.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"}),C.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"}),C.createElement("circle",{cx:"2.50195",cy:"91.5",r:"2.5",fill:"var(--center-channel-color)",fillOpacity:"0.48"}),C.createElement("rect",{x:"11",y:"14",width:"94",height:"40",rx:"3.75",fill:"#1C58D9",fillOpacity:"0.12"}),C.createElement("rect",{x:"37",y:"57",width:"105",height:"37",rx:"3.75",fill:"#1C58D9",fillOpacity:"0.12"}),C.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)"}),C.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"}),C.createElement("path",{d:"M40.3696 14.1746L48.8912 12.8832",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeLinecap:"round"}),C.createElement("path",{d:"M46.8125 56.6891L74.5075 52.4921",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeLinecap:"round"}),C.createElement("path",{d:"M44.4152 40.8698L72.1101 36.6727",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeLinecap:"round"}),C.createElement("path",{d:"M40.969 18.1294L56.5918 15.7618",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeLinecap:"round"}),C.createElement("path",{d:"M48.0112 64.5989L84.2277 59.1105",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeLinecap:"round"}),C.createElement("path",{d:"M45.6138 48.7794L81.8303 43.291",stroke:"var(--center-c
1hannel-color)",strokeOpacity:"0.48",strokeLinecap:"round"}),C.createElement("path",{d:"M43.2165 32.9601L79.433 27.4717",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeLinecap:"round"}),C.createElement("path",{d:"M41.5683 22.0842L47.9595 21.1157",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeLinecap:"round"}),C.createElement("path",{d:"M50.4667 20.7357L56.8579 19.7672",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeLinecap:"round"}),C.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)"}),C.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"}),C.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)"}),C.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"}),C.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)"}),C.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"}),C.createElement("path",{d:"M80.5437 14.7212L89.0892 15.8428",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeLinecap:"round"}),C.createElement("path",{d:"M74.9478 57.3556L102.721 61.0009",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeLinecap:"round"}),C.createElement("path",{d:"M77.03 41.4917L104.803 45.137",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeLinecap:"round"}),C.createElement("path",{d:"M80.0231 18.6873L95.6899 20.7436",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeLinecap:"round"}),C.createElement("path",{d:"M73.9067 65.2876L110.225 70.0545",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeLinecap:"round"}),C.createElement("path",{d:"M75.9889 49.4236L112.307 54.1905",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeLinecap:"round"}),C.createElement("path",{d:"M78.0711 33.5597L114.39 38.3266",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeLinecap:"round"}),C.createElement("path",{d:"M79.5026 22.6532L85.9117 23.4944",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeLinecap:"round"}),C.createElement("path",{d:"M88.426 23.8245L94.8352 24.6657",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeLinecap:"round"}),C.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)"}),C.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"}),C.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"}),C.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-c
1hannel-color)",fillOpacity:"0.32"}),C.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)"}),C.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)"}),C.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"}),C.createElement("path",{d:"M32.7713 61.6285V78.9649L40.4316 86.6252",stroke:"var(--center-channel-color)",strokeOpacity:"0.8",strokeLinejoin:"round"}),C.createElement("circle",{cx:"32.7713",cy:"78.965",r:"1.61269",fill:"var(--center-channel-color)",fillOpacity:"0.8"})),gl=e=>C.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"},C.createElement("g",{clipPath:"url(#clip0_4441_155270)"},C.createElement("rect",{x:"2.745",y:"15",width:"181",height:"78",rx:"5.625",fill:"var(--button-bg)",fillOpacity:"0.12"}),C.createElement("path",{d:"M11 4L16.5 9.5V63.5H37.5",stroke:"var(--center-channel-color)",strokeOpacity:"0.24",strokeLinecap:"round"}),C.createElement("circle",{cx:"2.5",cy:"2.5",r:"2.5",transform:"matrix(1 0 0 -1 7 5)",fill:"#8C8C8C"}),C.createElement("path",{d:"M4 28L9.5 33.5V72.5H174.5V101.5",stroke:"var(--center-channel-color)",strokeOpacity:"0.24",strokeLinecap:"round"}),C.createElement("circle",{cx:"2.5",cy:"2.5",r:"2.5",transform:"matrix(1 0 0 -1 172 105)",fill:"#8C8C8C"}),C.createElement("circle",{cx:"2.5",cy:"2.5",r:"2.5",transform:"matrix(1 0 0 -1 0 29)",fill:"#8C8C8C"}),C.createElement("path",{d:"M59.1304 15H126.87L131 108H55L59.1304 15Z",fill:"var(--center-channel-color)",fillOpacity:"0.24"}),C.createElement("rect",{width:"92",height:"5",transform:"matrix(1 0 0 -1 47 113)",fill:"var(--center-channel-color)",fillOpacity:"0.4"}),C.createElement("rect",{x:"27",y:"9",width:"131",height:"86",rx:"4",fill:"var(--center-channel-bg)",stroke:"var(--center-channel-color)",strokeWidth:"4"}),C.createElement("path",{d:"M147 101.5H119.5",stroke:"var(--center-channel-color)",strokeLinecap:"round",strokeLinejoin:"round"}),C.createElement("path",{d:"M116 101.5H110",stroke:"var(--center-channel-color)",strokeLinecap:"round"}),C.createElement("path",{d:"M107 101.5H101",stroke:"var(--center-channel-color)",strokeLinecap:"round"}),C.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)"}),C.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"}),C.createElement("mask",{id:"mask0_4441_155270","mask-type":"luminance",maskUnits:"userSpaceOnUse",x:"102",y:"25",width:"37",height:"37"},C.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"})),C.createElement("g",{mask:"url(#mask0_4441_155270)"},C.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"}),C.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-c
1hannel-bg)"}),C.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)"}),C.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)"}),C.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"}),C.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)"}),C.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"}),C.createElement("path",{d:"M127.453 38.6215C127.443 38.6928 127.396 38.756 127.324 38.7917C127.252 38.8273 127.
1164 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"})),C.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)"}),C.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"}),C.createElement("mask",{id:"mask1_4441_155270","mask-type":"luminance",maskUnits:"userSpaceOnUse",x:"46",y:"24",width:"37",height:"37"},C.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"})),C.createElement("g",{mask:"url(#mask1_4441_155270)"},C.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)"}),C.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)"}),C.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)"}),C.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"}),C.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)"}),C.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"}),C.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"})),C.createElement("circle",{cx:"91.2669",cy:"55.5572",r:"25.3433",fill:"var(--center-c
1hannel-bg)"}),C.createElement("circle",{cx:"91.1111",cy:"55.5572",r:"23.5112",fill:"var(--center-channel-color)",fillOpacity:"0.16"}),C.createElement("mask",{id:"mask2_4441_155270","mask-type":"luminance",maskUnits:"userSpaceOnUse",x:"67",y:"32",width:"48",height:"48"},C.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"})),C.createElement("g",{mask:"url(#mask2_4441_155270)"},C.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)"}),C.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"}),C.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)"}),C.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"}),C.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)"}),C.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"}),C.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"})),C.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"}),C.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"}),C.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-c
1hannel-color)",strokeOpacity:"0.48"})),C.createElement("defs",null,C.createElement("clipPath",{id:"clip0_4441_155270"},C.createElement("rect",{width:"184",height:"113",fill:"white"})))),pl=e=>C.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"},C.createElement("circle",{cx:"20.5",cy:"35",r:"2",transform:"rotate(-90 20.5 35)",fill:"var(--center-channel-color)",fillOpacity:"0.32"}),C.createElement("circle",{cx:"20.5",cy:"29",r:"2",transform:"rotate(-90 20.5 29)",fill:"var(--center-channel-color)",fillOpacity:"0.32"}),C.createElement("circle",{cx:"20.5005",cy:"23",r:"2",transform:"rotate(-90 20.5005 23)",fill:"var(--center-channel-color)",fillOpacity:"0.32"}),C.createElement("path",{d:"M20.5 39.5V79.5H43M45 79.5H49M51 79.5H53",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round",strokeLinejoin:"round"}),C.createElement("path",{d:"M29.5 79.5H177.5V108.5",stroke:"var(--center-channel-color)",strokeOpacity:"0.24",strokeLinecap:"round"}),C.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"}),C.createElement("path",{d:"M62.1304 22H129.87L134 115H58L62.1304 22Z",fill:"var(--center-channel-color)",fillOpacity:"0.24"}),C.createElement("rect",{width:"92",height:"5",transform:"matrix(1 0 0 -1 50 120)",fill:"var(--center-channel-color)",fillOpacity:"0.4"}),C.createElement("rect",{x:"30",y:"16",width:"131",height:"86",rx:"4",fill:"var(--center-channel-bg)",stroke:"var(--center-channel-color)",strokeWidth:"4"}),C.createElement("rect",{x:"34",y:"20",width:"46",height:"78",fill:"#1C58D9",fillOpacity:"0.16"}),C.createElement("path",{d:"M49.8109 27.0273L66.5002 27.0273",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round"}),C.createElement("path",{d:"M49.8109 29.6628L59.4732 29.6628",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round"}),C.createElement("path",{d:"M38.392 38.4453H51.5678",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round"}),C.createElement("circle",{cx:"41.5092",cy:"27.5105",r:"4.34771",fill:"var(--center-channel-color)",fillOpacity:"0.32"}),C.createElement("circle",{cx:"39.4795",cy:"43.1602",r:"2",fill:"var(--center-channel-color)",fillOpacity:"0.32"}),C.createElement("path",{d:"M45.4189 43.1602H70.0137",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round"}),C.createElement("circle",{cx:"39.4795",cy:"50.1602",r:"2",fill:"var(--center-channel-color)",fillOpacity:"0.32"}),C.createElement("path",{d:"M45.4189 50.1602H64.7434",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round"}),C.createElement("circle",{cx:"39.4795",cy:"58.1602",r:"2",fill:"var(--center-channel-color)",fillOpacity:"0.32"}),C.createElement("path",{d:"M45.4189 58.1602H72.6489",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round"}),C.createElement("circle",{cx:"39.4795",cy:"65.1602",r:"2",fill:"var(--center-channel-color)",fillOpacity:"0.32"}),C.createElement("path",{d:"M45.4189 65.1602H70.0137",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round"}),C.createElement("circle",{cx:"39.4795",cy:"72.1602",r:"2",fill:"var(--center-channel-color)",fillOpacity:"0.32"}),C.createElement("path",{d:"M45.4189 72.1602H64.7434",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round"}),C.createElement("circle",{cx:"39.4795",cy:"79.1602",r:"2",fill:"var(--center-channel-color)",fillOpacity:"0.32"}),C.createElement("path",{d:"M45.4189 79.1602H72.6489",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round"}),C.createElement("path",{d:"M150 108.5H122.5",stroke:"var(--center-channel-color)",strokeLinecap:"round",strokeLinejoin:"round"}),C.createElement("path",{d:"M119 108.5H113",stroke:"var(--center-channel-color)",strokeLinecap:"round"}),C.createElement("path",{d:"M110 108.5H104",stroke:"var(--center-c
1hannel-color)",strokeLinecap:"round"}),C.createElement("ellipse",{cx:"138.058",cy:"43.6274",rx:"14.1972",ry:"13.767",fill:"var(--center-channel-color)",fillOpacity:"0.16"}),C.createElement("mask",{id:"mask0_4441_155706","mask-type":"luminance",maskUnits:"userSpaceOnUse",x:"124",y:"30",width:"28",height:"28"},C.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"})),C.createElement("g",{mask:"url(#mask0_4441_155706)"},C.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)"}),C.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"}),C.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)"}),C.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"}),C.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)"}),C.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"}),C.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)"})),C.createElement("ellipse",{cx:"101.058",cy:"80.6274",rx:"14.1972",ry:"13.767",fill:"var(--center-channel-color)",fillOpacity:"0.16"}),C.createElement("mask",{id:"mask1_4441_155706",maskUnits:"userSpaceOnUse",x:"87",y:"67",width:"28",height:"28","mask-type":"luminance"},C.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"})),C.createElement("g",{mask:"url(#mask1_4441_155706)"},C.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-c
1hannel-bg)"}),C.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"}),C.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)"}),C.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"}),C.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)"}),C.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"}),C.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)"})),C.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)"}),C.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"}),C.createElement("mask",{id:"mask2_4441_155706","mask-type":"luminance",maskUnits:"userSpaceOnUse",x:"87",y:"30",width:"28",height:"28"},C.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"})),C.createElement("g",{mask:"url(#mask2_4441_155706)"},C.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)"}),C.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)"}),C.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"}),C.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-c
1hannel-bg)"}),C.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"}),C.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)"}),C.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"}),C.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)"})),C.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)"}),C.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"}),C.createElement("mask",{id:"mask3_4441_155706","mask-type":"luminance",maskUnits:"userSpaceOnUse",x:"124",y:"67",width:"29",height:"28"},C.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"})),C.createElement("g",{mask:"url(#mask3_4441_155706)"},C.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)"}),C.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"}),C.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)"}),C.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"}),C.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.7
177 72.7163 143.116 75.7767 143.13 79.5591Z",fill:"var(--center-channel-bg)"}),C.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"}),C.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)"})),C.createElement("rect",{x:"108",y:"4",width:"83",height:"50",rx:"4",fill:"var(--neutral-1200)",fillOpacity:"0.32"}),C.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)"}),C.createElement("path",{d:"M152 10H166.481",stroke:"var(--center-channel-color)",strokeOpacity:"0.56",strokeLinecap:"round"}),C.createElement("path",{d:"M152 16H175",stroke:"var(--center-channel-color)",strokeOpacity:"0.56",strokeLinecap:"round"}),C.createElement("path",{d:"M152 22H182",stroke:"var(--center-channel-color)",strokeOpacity:"0.56",strokeLinecap:"round"}),C.createElement("path",{d:"M152 28H182",stroke:"var(--center-channel-color)",strokeOpacity:"0.56",strokeLinecap:"round"}),C.createElement("path",{d:"M168.891 10H178.525",stroke:"var(--center-channel-color)",strokeOpacity:"0.56",strokeLinecap:"round"}),C.createElement("path",{d:"M180.932 10H183.946",stroke:"var(--center-channel-color)",strokeOpacity:"0.56",strokeLinecap:"round"}),C.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"}),C.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-c
1hannel-color)",fillOpacity:"0.56"})),hl=e=>C.createElement("svg",{width:e.width?e.width.toString():"198",height:e.height?e.height.toString():"120",viewBox:"0 0 198 120",fill:"none",xmlns:"http://www.w3.org/2000/svg"},C.createElement("g",null,C.createElement("path",{d:"M7 28L12.5 33.5V72.5H177.5V101.5",stroke:"var(--center-channel-color)",strokeOpacity:"0.24",strokeLinecap:"round"}),C.createElement("ellipse",{cx:"97.5",cy:"60.5",rx:"59.5",ry:"59.5",fill:"var(--button-bg)",fillOpacity:"0.08"}),C.createElement("path",{d:"M51 41L51 49.7097L143.46 49.7097L143.46 59L158 59",stroke:"var(--center-channel-color)",strokeOpacity:"0.24",strokeLinecap:"round"}),C.createElement("path",{d:"M131 100L131 85L116 85",stroke:"var(--center-channel-color)",strokeOpacity:"0.24",strokeLinecap:"round"}),C.createElement("path",{d:"M52.5 40.5C52.5 39.6716 51.8284 39 51 39C50.1716 39 49.5 39.6716 49.5 40.5C49.5 41.3284 50.1716 42 51 42C51.8284 42 52.5 41.3284 52.5 40.5Z",fill:"var(--center-channel-color)",fillOpacity:"0.48"}),C.createElement("ellipse",{cx:"131",cy:"101.5",rx:"1.5",ry:"1.5",transform:"rotate(180 131 101.5)",fill:"var(--center-channel-color)",fillOpacity:"0.48"}),C.createElement("ellipse",{cx:"1.5",cy:"1.5",rx:"1.5",ry:"1.5",transform:"matrix(1 8.74228e-08 8.74228e-08 -1 157 70)",fill:"var(--center-channel-color)",fillOpacity:"0.48"}),C.createElement("path",{d:"M97.8223 14.6328C111.365 27.158 124.258 31.6982 136.875 31.6982H136.927L136.978 31.709L137.103 31.7344L137.532 31.8252L137.498 32.2627C135.141 62.6049 129.208 89.9348 102.737 104.651L97.7256 107.438L97.4814 107.572L97.2383 107.437L92.0625 104.543C65.818 89.8755 59.9876 62.795 57.502 32.6943L57.4639 32.2324L57.9219 32.1592L59.8447 31.8545L59.8662 31.8516L59.8877 31.8496C68.6477 31.2264 75.1136 30.1683 80.8018 27.6602C86.4813 25.1558 91.4272 21.1874 97.1055 14.6719L97.4434 14.2832L97.8223 14.6328Z",fill:"var(--center-channel-bg)",stroke:"#3F4350"}),C.createElement("path",{d:"M97.485 99L93.0951 96.6096C71.045 84.6062 66.1078 62.4456 64 37.5833L65.6312 37.3316C80.5165 36.3001 87.8039 33.8204 97.485 23C109.04 33.4089 120.074 37.207 130.894 37.207L131 37.2287C129.001 62.2886 123.977 84.6549 101.736 96.6989L97.485 99Z",fill:"var(--center-channel-color)",fillOpacity:"0.12"}),C.createElement("path",{d:"M72.5632 51.6124H116.686",stroke:"var(--center-channel-color)",strokeOpacity:"0.12",strokeLinecap:"round"}),C.createElement("path",{d:"M79.1345 57.2451H123.257",stroke:"var(--center-channel-color)",strokeOpacity:"0.12",strokeLinecap:"round"}),C.createElement("path",{d:"M74.4407 63.8165H118.563",stroke:"var(--center-channel-color)",strokeOpacity:"0.12",strokeLinecap:"round"}),C.createElement("path",{d:"M82.8896 75.0818H103.543",stroke:"var(--center-channel-color)",strokeOpacity:"0.12",strokeLinecap:"round"}),C.createElement("path",{d:"M68.8076 46.1042H82.8893",stroke:"var(--center-channel-color)",strokeOpacity:"0.12",strokeLinecap:"round"}),C.createElement("path",{d:"M85.7056 46.1042H106.359",stroke:"var(--center-channel-color)",strokeOpacity:"0.12",strokeLinecap:"round"}),C.createElement("path",{d:"M109.175 46.1042H127.012",stroke:"var(--center-channel-color)",strokeOpacity:"0.12",strokeLinecap:"round"}),C.createElement("path",{d:"M96.0327 80.7149H113.869",stroke:"var(--center-channel-color)",strokeOpacity:"0.12",strokeLinecap:"round"}),C.createElement("path",{d:"M82.8899 80.7149H93.2164",stroke:"var(--center-channel-color)",strokeOpacity:"0.12",strokeLinecap:"round"}),C.createElement("path",{d:"M76.3184 69.1778H96.9714",stroke:"var(--center-channel-color)",strokeOpacity:"0.12",strokeLinecap:"round"}),C.createElement("path",{d:"M99.7876 69.1777H117.624",stroke:"var(--center-channel-color)",strokeOpacity:"0.12",strokeLinecap:"round"}),C.createElement("path",{d:"M72.563 40.8164H96.0324",stroke:"var(--center-channel-color)",strokeOpacity:"0.12",strokeLinecap:"round"}),C.createElement("path",{d:"M99.7876 40.8164H123.257",stroke:"var(--center-channel-color)",strokeOpacity:"0.12",strokeLinecap:"round"}),C.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M87.0013 57.3883H108.118C109.095 57.3883 109.885 58.1742 109.885 59.1484V66.9186C109.885 73.5528 106.909 78.9321 100.259 78.9321H94.8606C88.2109 78.9321 85.2349 73.5528 85.2349 66.9186V59.1484C85.2349 58.1775 86.0273 57.3883 87.0013 57.3883ZM97.1724 61.9248H96.2348V64.127V68.0017L97.478 69.2449L96.2348 70.4881V72.1297H99.6365V65.3642L98.6858 64.4136L99.6365 63.4629V61.9248H97.1724Z",fill:"var(--button-bg)"}),C.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M103.374 54.1074V57.4273C103.374 57.4476 103.375 57.4675 103.376 57.4871H106.35C106.352 57.4675 106.352 57.4476 106.352 57.4273V54.1074C106.352 49.1351 103.096 45.0882 98.3075 45.0882H96.2798C91.4909 45.0882 88.2349 49.1351 88.2349 54.1074V57.4273C88.2349 57.4476 88.2356 57.4675 88.2371 57.4871H91.205C91.2066 57.4675 91.2073 57.4476 91.2073 57.4273V54.1074C91.2073 50.7242 93.3244 48.1476 95.8353 48.1476H98.7461C101.424 48.1476 103.374 50.7242 103.374 54.1074Z",fill:"var(--button-bg)"})),C.createElement("rect",{x:"1.5",y:"20.5",width:"43",height:"81",rx:"7.5",fill:"var(--center-c
1hannel-bg)",stroke:"var(--center-channel-color)",strokeWidth:"3"}),C.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:"var(--button-bg)",fillOpacity:"0.16"}),C.createElement("circle",{cx:"12.831",cy:"64.831",r:"5.83099",fill:"var(--center-channel-color)",fillOpacity:"0.56"}),C.createElement("path",{d:"M9.69995 64.7411L12.0947 67.1786L16.2 63",stroke:"var(--center-channel-bg)",strokeWidth:"0.5525",strokeLinecap:"round",strokeLinejoin:"round"}),C.createElement("path",{d:"M22.5488 63H32.915",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeLinecap:"round"}),C.createElement("path",{d:"M8 74H34",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeLinecap:"round"}),C.createElement("path",{d:"M8 82H28",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeLinecap:"round"}),C.createElement("path",{d:"M22.5488 67H38.746",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeLinecap:"round"}),C.createElement("path",{d:"M8 78H24",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeLinecap:"round"}),C.createElement("path",{d:"M27 78L39 78",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeLinecap:"round"}),C.createElement("rect",{x:"15",y:"25",width:"16",height:"1",rx:"0.5",fill:"var(--center-channel-color)"}),C.createElement("rect",{opacity:"0.16",x:"148",y:"24.9268",width:"47.8049",height:"77.0732",rx:"4",fill:"#090A0B"}),C.createElement("rect",{x:"150.451",y:"22.5",width:"45.8049",height:"78.0488",rx:"3.5",fill:"var(--center-channel-bg)",stroke:"var(--center-channel-color)"}),C.createElement("path",{d:"M171 87.9032H191",stroke:"var(--center-channel-color)",strokeOpacity:"0.56",strokeLinecap:"round"}),C.createElement("path",{d:"M181 92.9032H191",stroke:"var(--center-channel-color)",strokeOpacity:"0.56",strokeLinecap:"round"}),C.createElement("path",{d:"M175.317 38.8117H190.927",stroke:"var(--center-channel-color)",strokeOpacity:"0.56",strokeLinecap:"round"}),C.createElement("path",{d:"M156.805 47.5922H190.902",stroke:"var(--center-channel-color)",strokeOpacity:"0.56",strokeLinecap:"round"}),C.createElement("path",{d:"M156.805 53.4459H190.902",stroke:"var(--center-channel-color)",strokeOpacity:"0.56",strokeLinecap:"round"}),C.createElement("path",{d:"M175.317 32.9581H184.717",stroke:"var(--center-channel-color)",strokeOpacity:"0.56",strokeLinecap:"round"}),C.createElement("path",{d:"M186.958 32.9581H189.899",stroke:"var(--center-channel-color)",strokeOpacity:"0.56",strokeLinecap:"round"}),C.createElement("path",{d:"M163.302 29.5986C163.895 29.7336 164.45 29.968 164.95 30.2832L166.259 29.3242L167.631 30.6973L166.661 32.0186C166.963 32.5137 167.185 33.0623 167.312 33.6465L168.956 33.8994V35.8408L167.27 36.0996C167.129 36.6524 166.901 37.1694 166.602 37.6377L167.631 39.04L166.258 40.4121L164.823 39.3604C164.365 39.6314 163.864 39.8356 163.332 39.96L163.058 41.7383H161.117L160.841 39.9453C160.317 39.8163 159.824 39.611 159.375 39.3398L157.913 40.4121L156.541 39.0391L157.601 37.5908C157.319 37.1376 157.103 36.6392 156.967 36.1084L155.217 35.8398V33.8984L156.926 33.6348C157.049 33.0737 157.26 32.5456 157.546 32.0664L156.542 30.6973L157.915 29.3242L159.252 30.3037C159.741 29.9902 160.284 29.7546 160.865 29.6143L161.114 28H163.055L163.302 29.5986ZM162.117 32.1963C160.688 32.1964 159.53 33.3545 159.53 34.7832C159.53 36.2117 160.688 37.37 162.117 37.3701C163.546 37.3701 164.704 36.2118 164.704 34.7832C164.704 33.3545 163.546 32.1963 162.117 32.1963Z",fill:"var(--center-channel-color)",fillOpacity:"0.56"}));var fl=a(33870);const El=e=>C.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:e.width?e.width.toString():"158",height:e.height?e.height.toString():"149",viewBox:"0 0 158 149",fill:"none"},e),C.createElement("circle",{cx:89.0743,cy:80.0743,r:59.5743,fill:"var(--center-channel-bg)"}),C.createElement("circle",{cx:89.0743,cy:80.0743,r:60.3243,stroke:"var(--center-channel-color)",strokeOpacity:.75,strokeWidth:1.5}),C.createElement("circle",{cx:91,cy:82,r:57,fill:"var(--button-bg)",fillOpacity:.08}),C.createElement("path",{d:"M92.3795 39.1628C96.2331 40.3948 96.0752 37.9623 98.5073 40.7949C99.9077 42.4271 102.435 45.3967 105.435 46.1338C105.857 46.2391 106.794 45.3335 106.794 44.6174C106.794 43.9014 104.688 42.385 103.53 42.0691C102.371 41.7532 104.003 39.5208 102.414 38.8363C100.824 38.1519 99.0654 35.614 98.4336 33.6238C97.8019 31.6336 95.0012 33.3079 94.0431 32.9078C93.085 32.5076 91.9373 32.7498 90.8844 34.2662C89.8315 35.7825 91.3898 38.8469 92.3795 39.1628Z",fill:"var(--button-bg)",fillOpacity:.16}),C.createElement("path",{d:"M113.249 94.8888C113.249 94.0569 105.626 89.9079 104.699 89.8553C103.183 89.7605 101.119 89.0023 99.7293 89.8553C99.1423 90.1886 98.644 90.6581 98.2763 91.2242C98.0131 91.7192 96.5286 90.803 95.96 91.1084C94.5912 91.835 93.8542 89.4657 94.2016 88.5601C95.1597 86.3382 91.7799 87.7387 91.4325 87.1279C91.8431 87.8545 91.3167 80.8098 90.1375 84.7797C89.2425 87.7914 85.7364 84.3479 86.1575 82.1576C86.8103 78.7774 91.9063 78.2825 93.0224 78.8827C93.5909 79.1881 95.6651 82.1893 95.9284 82.105C96.4969 81.926 95.5915 78.5668 95.4756 78.1246C95.0755 76.4818 98.2132 75.9343 98.4343 74.2178C98.6238 72.7647 99.6135 73.2701 100.54 72.5014C101.961 71.3747 100.845 69.2686 102.646 68.1945C103.267 67.826 105.594 67.5627 105.899 66.9098C106.205 66.2569 103.941 64.6879 105.899 64.2246C107.626 63.8034 109.384 64.5
151 109.858 62.0553C110.279 59.7913 107.752 59.2754 107.026 57.5168C106.794 56.9903 106.51 53.9576 105.436 54.5157C104.12 55.2107 103.33 56.885 102.214 54.8948C100.266 51.3039 95.444 49.756 97.7078 55.4002C98.866 58.3171 94.5491 67.1941 93.8858 58.991C93.6646 56.1373 85.1362 55.2844 88.0001 52.1253C90.864 48.9662 94.8755 48.8188 95.9495 43.9011C97.4446 37.0775 92.717 42.8481 90.3059 41.5634C86.705 39.5943 89.7584 40.6578 87.8948 43.2061C87.1893 44.1749 84.873 42.5954 83.8412 42.7533C82.8093 42.9113 80.4403 45.0068 79.7769 43.6905C78.5766 41.2791 70.1219 39.7943 67.8371 40.6473C63.0675 42.4374 61.4145 40.0155 56.6554 39.0783C55.0024 38.7518 46.8845 38.5202 47.4109 41.3318C47.7901 42.3623 48.2332 43.3681 48.7376 44.3434C49.2535 45.8913 46.9266 44.7014 46.3897 45.07C47.3376 45.9107 48.3287 46.7016 49.3588 47.4393C50.138 48.2396 46.3791 49.2084 46.0001 50.5352C45.2525 53.231 51.1698 52.4623 50.0853 55.7056C49.7484 56.6849 46.3686 58.296 46.0422 61.6131C45.979 62.2449 50.2538 57.5063 53.0124 58.454C55.4445 59.3385 55.234 52.7255 58.2768 52.7255C63.9204 52.7255 65.0154 58.2223 67.9846 61.9079C69.3744 63.6244 70.4904 64.3404 70.7431 66.5834C70.9958 68.8263 70.522 71.2167 71.2801 73.2069C72.0382 75.1971 73.4701 75.2393 74.4388 76.7767C75.597 78.5774 76.2498 80.3359 77.8186 81.9049C80.0928 84.19 83.9675 87.6861 87.5473 87.1701C88.2527 87.0648 90.9166 88.5811 91.5167 89.0339C92.3482 89.8154 93.058 90.717 93.6225 91.7086C94.2543 92.551 96.2548 92.0245 97.1287 92.4247C98.0026 92.8248 95.0966 98.7429 96.1495 100.259C97.2024 101.776 97.2971 103.892 99.0134 105.24C100.73 106.588 101.119 106.619 101.34 108.841C101.667 112.443 100.614 116.086 99.7504 119.445C99.2976 121.162 100.203 123.068 99.5293 124.711C98.6869 126.764 98.1184 128.533 98.8555 130.818C100.129 134.788 107.279 135.43 103.067 131.966C101.267 130.492 105.015 126.932 103.846 126.595C101.835 125.753 104.215 124.995 104.478 124.121C105.015 122.383 112.985 115.191 113.575 114.001C114.07 113.001 113.754 111.969 114.565 111.105C115.375 110.242 116.67 110.484 117.723 109.81C119.829 108.399 119.071 106.009 119.945 104.061C121.672 100.196 122.398 101.723 120.029 98.7007C119.134 97.6056 113.406 98.0057 113.249 94.8888Z",fill:"var(--button-bg)",fillOpacity:.16}),C.createElement("path",{d:"M70.6054 36.4156C72.0584 37.9319 73.5008 35.6258 73.7641 36.4156C74.0273 37.2053 74.0483 38.7217 75.7751 38.8376C77.5018 38.9534 74.1642 40.0801 75.2802 40.554C76.3963 41.0279 78.7863 42.5442 79.6602 41.9124C80.5341 41.2806 81.5765 40.7962 81.9661 41.2701C82.3556 41.7439 84.7562 41.1963 84.0719 40.396C83.3875 39.5957 81.566 37.7108 81.6397 36.6262C81.7134 35.5416 83.7455 32.751 81.4818 32.9932C80.9356 33.0619 80.438 33.3417 80.0956 33.7727C79.7532 34.2038 79.5931 34.7518 79.6497 35.2994C79.6497 36.0997 77.5439 34.1094 77.1017 34.141C76.6595 34.1726 75.1855 31.7191 74.6274 31.7191C74.0694 31.7191 70.3316 30.5186 70.6475 31.7191C70.9633 32.9195 69.1524 34.8992 70.6054 36.4156Z",fill:"var(--button-bg)",fillOpacity:.16}),C.createElement("path",{d:"M104.025 47.8094C102.898 47.1671 100.761 44.2291 99.8133 45.1769C98.8657 46.1246 100.055 48.336 100.866 49.2416C101.677 50.1472 105.015 52.2743 104.53 51.3476C104.046 50.421 106.236 49.0836 104.025 47.8094Z",fill:"var(--button-bg)",fillOpacity:.16}),C.createElement("path",{d:"M72.806 27.5488C73.3851 27.4961 74.2906 29.5074 75.1435 29.7286C75.9963 29.9497 76.4175 30.9501 76.7333 31.1817C77.0492 31.4134 80.6185 30.0445 81.4608 29.7286C82.3032 29.4127 80.408 27.4435 79.7025 26.064C78.9971 24.6846 79.5445 28.3491 78.5443 27.7489C77.544 27.1486 77.6914 26.3273 76.4385 26.3273C75.1856 26.3273 76.0594 23.8316 74.5222 24.3581C72.985 24.8846 72.2269 27.6014 72.806 27.5488Z",fill:"var(--button-bg)",fillOpacity:.16}),C.createElement("path",{d:"M85.6092 32.3296C84.5563 32.5402 84.7563 33.2246 84.1667 33.8143C83.8915 34.0957 83.7373 34.4737 83.7373 34.8674C83.7373 35.261 83.8915 35.639 84.1667 35.9204C84.7037 36.6048 85.546 37.8264 86.1882 36.6575C86.8305 35.4887 86.1882 34.5515 86.1882 33.7933C86.1882 33.0351 86.1251 32.2243 85.6092 32.3296Z",fill:"var(--button-bg)",fillOpacity:.16}),C.createElement("path",{d:"M87.726 36.0461C87.9892 36.6779 88.4736 34.9299 89.5054 34.0243C90.5372 33.1187 89 30.8652 88.0419 32.013C87.3996 32.8028 87.4628 35.4038 87.726 36.0461Z",fill:"var(--button-bg)",fillOpacity:.16}),C.createElement("path",{d:"M87.5367 36.8363C86.9892 37.6155 86.5469 39.7005 87.5367 39.869C87.7535 39.894 87.9729 39.8584 88.1707 39.7661C88.3685 39.6738 88.5367 39.5284 88.6568 39.3462C88.7768 39.1639 88.8439 38.9518 88.8507 38.7337C88.8574 38.5155 88.8034 38.2998 88.6948 38.1104C88.2315 37.3207 87.7683 36.5204 87.5367 36.8363Z",fill:"var(--button-bg)",fillOpacity:.16}),C.createElement("path",{d:"M91.5479 23.3994C90.6003 23.8311 92.937
17 24.6209 91.3373 25.0527C89.7369 25.4844 89.6948 26.8007 88.3155 25.6844C86.9362 24.5682 85.4306 26.0635 86.4729 26.7375C87.5153 27.4114 89.2631 29.0752 89.2104 29.9808C89.1578 30.8864 90.8635 31.3076 92.4534 31.2023C94.0433 31.097 95.9595 31.5709 96.0122 30.8864C96.0648 30.2019 96.2543 29.9071 96.0648 29.3911C95.7911 28.6435 95.1066 27.9063 93.4641 28.5487C91.8216 29.191 90.7477 28.8646 90.516 28.0643C90.2844 27.264 93.7379 25.7266 95.2646 26.7901C96.7913 27.8537 98.2443 26.211 97.1282 25.4633C96.0122 24.7157 96.7597 23.9259 97.5283 23.8206C98.0864 23.7469 98.5812 22.3358 99.0024 21.2407C96.6604 20.8618 94.2976 20.6262 91.9269 20.5352C91.9375 22.041 92.4955 22.9677 91.5479 23.3994Z",fill:"var(--button-bg)",fillOpacity:.16}),C.createElement("path",{d:"M77.4286 22.0725C78.4815 22.5253 80.2294 22.0725 79.903 21.2617C78.9448 21.4302 77.9867 21.6092 77.0391 21.8093C77.1444 21.9287 77.2785 22.0193 77.4286 22.0725Z",fill:"var(--button-bg)",fillOpacity:.16}),C.createElement("path",{d:"M78.081 22.9679C76.5859 22.1992 76.6702 24.0841 77.3545 24.8318C78.0389 25.5794 80.0184 23.9156 78.081 22.9679Z",fill:"var(--button-bg)",fillOpacity:.16}),C.createElement("path",{d:"M87.1787 20.5355C87.6381 20.6185 88.0676 20.8207 88.4243 21.122C88.7809 21.4232 89.0522 21.8129 89.2108 22.252C89.4108 22.9259 91.0218 21.4622 91.0428 20.5039H89.5056C88.7265 20.4934 87.9579 20.5039 87.1787 20.5355Z",fill:"var(--button-bg)",fillOpacity:.16}),C.createElement("path",{d:"M84.0189 22.7474C83.345 23.674 83.9241 24.7902 84.7243 23.8636C85.5245 22.9369 84.8822 20.5887 85.514 21.5996C86.1457 22.6105 87.325 24.2111 88.1146 24.2848C88.9043 24.3585 88.2199 23.3476 88.1146 22.5051C88.0094 21.6627 86.1247 20.8624 86.3353 20.5781C85.156 20.6413 83.9873 20.7361 82.8291 20.8624C83.6609 21.41 84.5348 22.084 84.0189 22.7474Z",fill:"var(--button-bg)",fillOpacity:.16}),C.createElement("path",{d:"M87.5363 30.7302C88.4734 31.1093 87.5363 28.8242 87.5363 28.8242C86.5571 29.4034 86.6098 30.3406 87.5363 30.7302Z",fill:"var(--button-bg)",fillOpacity:.16}),C.createElement("path",{d:"M84.1672 29.2868C84.3252 29.9292 85.3359 30.1398 85.8729 29.2868C86.4099 28.4339 85.8729 25.338 85.1148 26.3173C84.3567 27.2966 83.4828 26.8438 81.9561 26.3173C80.4294 25.7908 84.0198 28.6129 84.1672 29.2868Z",fill:"var(--button-bg)",fillOpacity:.16}),C.createElement("path",{d:"M94.5484 83.5378C95.854 83.3799 96.6542 84.9699 98.1282 84.8962C99.6023 84.8225 101.834 87.0549 103.108 85.7281C104.161 84.6751 98.5599 83.78 96.7911 82.8218C95.0222 81.8635 93.2533 83.6958 94.5484 83.5378Z",fill:"var(--button-bg)",fillOpacity:.16}),C.createElement("path",{d:"M101.055 23.6614C102.887 24.546 102.571 24.5144 101.455 25.3673C100.339 26.2203 100.739 28.0736 103.203 27.9473C105.667 27.8209 107.193 25.3673 108.309 28.8213C109.425 32.2752 108.625 36.045 110.057 37.1086C111.489 38.1721 110.299 38.8882 110.057 39.8781C109.815 40.8679 110.457 41.584 111.573 41.2681C112.689 40.9521 112.374 43.0266 111.573 43.9006C110.773 44.7746 109.826 46.4489 112.289 49.4817C114.753 52.5144 115.079 52.1037 115.869 53.1462C116.659 54.1887 117.312 52.7566 117.543 51.5561C117.775 50.3557 116.985 46.133 119.818 46.133C120.7 46.1235 121.555 45.8308 122.259 45.2981C122.962 44.7653 123.476 44.0208 123.724 43.174C124.04 42.458 126.272 42.5317 127.462 41.4997C128.651 40.4678 129.704 39.8043 129.736 36.2346C121.553 28.6393 111.379 23.5266 100.402 21.4922C100.139 22.3135 100.149 23.2402 101.055 23.6614Z",fill:"var(--button-bg)",fillOpacity:.16}),C.createElement("path",{d:"M142.451 38.2923C138.342 33.1335 133.362 28.4715 127.513 24.3033C122.837 21.2256 118.091 18.7411 113.278 16.8493C101.552 12.2416 89.4221 11.1511 76.9029 13.575M150.425 51.1571C152.788 56.2284 154.513 61.6648 155.598 67.468C156.902 74.488 157.146 81.3507 156.329 88.0551M101.705 146.163C87.0488 148.79 72.9854 146.894 59.5458 140.431C56.7297 139.077 53.9409 137.522 51.1799 135.766C43.8518 130.36 37.8926 124.268 33.2968 117.486M23.0099 92.2702C21.3844 83.519 21.4382 74.9345 23.1714 66.5165C24.9228 58.0096 28.3892 49.6728 33.5706 41.5062M146.678 44.2577C147.338 45.3128 147.967 46.3861 148.564 47.4775",stroke:"var(--center-c
1hannel-color)",strokeOpacity:.48,strokeWidth:1.5}),C.createElement("path",{d:"M78.288 131.22L62 147.306V64.4189C62 62.7621 63.3431 61.4189 65 61.4189H143.677C145.334 61.4189 146.677 62.7621 146.677 64.4189V127.355C146.677 129.011 145.334 130.355 143.677 130.355H80.396C79.6069 130.355 78.8495 130.666 78.288 131.22Z",fill:"var(--center-channel-color)",fillOpacity:.08}),C.createElement("path",{d:"M83.1266 128.801L66.8386 144.887V62C66.8386 60.3431 68.1818 59 69.8386 59H148.516C150.173 59 151.516 60.3431 151.516 62V124.936C151.516 126.593 150.173 127.936 148.516 127.936H85.2346C84.4455 127.936 83.6881 128.247 83.1266 128.801Z",fill:"var(--center-channel-bg)"}),C.createElement("path",{d:"M69.8386 59.75H148.516C149.759 59.7502 150.766 60.7575 150.766 62V124.936C150.766 126.178 149.759 127.185 148.516 127.186H85.2351C84.2487 127.186 83.3012 127.574 82.5994 128.268L67.5886 143.092V62C67.5886 60.7574 68.596 59.75 69.8386 59.75Z",stroke:"var(--center-channel-color)",strokeOpacity:.8,strokeWidth:1.5}),C.createElement("path",{d:"M90.2258 80.0834H109.581M128.936 80.0834H121.677M109.581 80.0834V71.7012M109.581 80.0834H121.677M121.677 80.0834C121.677 80.0834 119.258 93.2554 110.79 100.44C102.323 107.625 92.6452 111.217 92.6452 111.217",stroke:"var(--center-channel-color)",strokeWidth:1.5,strokeLinecap:"round",strokeLinejoin:"round"}),C.createElement("path",{d:"M125.71 111.218C125.71 111.218 118.25 106.456 111.193 100.503C104.137 94.5511 99.0967 86.2178 99.0967 86.2178",stroke:"var(--center-channel-color)",strokeWidth:1.5,strokeLinecap:"round",strokeLinejoin:"round"}),C.createElement("path",{d:"M68.4217 77.8334L84.7097 93.9193V11.0322C84.7097 9.37537 83.3666 8.03223 81.7097 8.03223H3.0323C1.37544 8.03223 0.0322952 9.37537 0.0322952 11.0322V73.9679C0.0322952 75.6248 1.37543 76.9679 3.03229 76.9679H66.3137C67.1029 76.9679 67.8602 77.2789 68.4217 77.8334Z",fill:"var(--center-channel-color)",fillOpacity:.08}),C.createElement("path",{d:"M68.3895 70.1889L84.6775 86.2748V3.3877C84.6775 1.73084 83.3343 0.387695 81.6775 0.387695H3.00007C1.34322 0.387695 6.86646e-05 1.73084 6.86646e-05 3.38769V66.3234C6.86646e-05 67.9802 1.34321 69.3234 3.00006 69.3234H66.2815C67.0706 69.3234 67.828 69.6343 68.3895 70.1889Z",fill:"var(--center-channel-bg)"}),C.createElement("path",{d:"M81.6775 1.1377H2.99976C1.75726 1.13786 0.749756 2.14516 0.749756 3.3877V66.3232C0.749756 67.5658 1.75726 68.5731 2.99976 68.5732H66.281C67.2675 68.5732 68.2149 68.9621 68.9167 69.6553L83.9275 84.4795V3.3877C83.9275 2.14505 82.9201 1.1377 81.6775 1.1377Z",stroke:"var(--center-channel-color)",strokeOpacity:.8,strokeWidth:1.5}),C.createElement("path",{d:"M26.6128 51.1938L31.2344 40.3067M57.258 51.1938L52.477 40.3067M52.477 40.3067L41.6757 15.71L34.1442 33.4519L31.2344 40.3067M52.477 40.3067H31.2344",stroke:"var(--center-channel-color)",strokeWidth:1.5,strokeLinecap:"round",strokeLinejoin:"round"})),Ml=(0,A.defineMessages)({title:{id:"admin.feature_flags.title",defaultMessage:"Feature Flags"}});var bl=a(87373),_l=a(75616),yl=(a(19540),a(48774));function vl(e){const{formatMessage:t}=(0,A.useIntl)();return C.createElement("span",e,C.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"},C.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 Sl=e=>{let{name:t,title:a,customID:s,isDisabled:n,showAtMention:i,onChange:r}=e;return C.createElement("div",{className:"group-profile form-horizontal",id:s},C.createElement("div",{className:"group-profile-field form-group mb-0"},C.createElement("label",{className:"control-label col-sm-4",htmlFor:s+"Input"},C.createElement(A.FormattedMessage,a)),C.createElement("div",{className:"col-sm-8"},C.createElement("div",{className:"icon-over-input"},i&&C.createElement(vl,{className:"icon icon__mentions","aria-hidden":"true"})),C.createElement("input",{id:s+"Input",type:"text",className:"form-control group-at-mention-input",value:t,disabled:n,onChange:r}))))},Cl=(0,C.memo)(Sl),Al=e=>{const{title:t,subTitle:a,singleLine:s,toggled:n,onToggle:i,children:r,offText:l,onText:o,disabled:d,last:c,id:m}=e;return C.createElement("div",null,C.createElement("div",{className:"line-switch d-flex flex-sm-column flex-md-row align-items-sm-start align-items-center"},C.createElement("label",{className:"line-switch__label"},t),C.createElement("div",{"data-testid":m,className:"line-switch__toggle"},C.createElement(te.A,{id:m,disabled:d,onToggle:i,toggled:n,onText:o,offText:l}))),C.createElement("div",{className:"row"},C.createElement("div",{className:"col-sm-10"},C.createElement("div",{className:"help-text-small help-text-no-padding "+(s?"help-text-single-line":"")},a))),r,!c&&C.createElement("div",{className:"section-separator"},C.createElement("hr",{className:"separator__hr"})))},Tl=e=>{let{subtitle:t,title:a,button:s,children:n,className:i="",id:r,onHeaderClick:l,subtitleValues:o}=e;return C.createElement("div",{className:"AdminPanel clearfix "+i,id:r},C.createElement("div",{className:"header",onClick:l},C.createElement("div",null,C.createElement("h3",null,C.createElement(A.FormattedMessage,a)),C.createElement("div",{className:"mt-2"},C.createElement(A.FormattedMessage,Object.assign({},t,{values:o})))),s&&C.createElement("div",{className:"button"},s)),n)},Nl=e=>{let{isDefault:t,allowReference:a,onToggle:s,isDisabled:n}=e;return C.createElement(Al,{id:"allowReferenceSwitch",disabled:n||t,toggled:a,last:!0,onToggle:()=>{t||s(!a)},singleLine:!1,title:C.createElement(A.FormattedMessage,{id:"admin.team_settings.team_details.groupDetail
1sToggle",defaultMessage:"Enable Group Mentions"}),subTitle:C.createElement(A.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."})})},kl=e=>{let{displayname:t,mentionname:a,allowReference:s,onToggle:n,onChange:i,readOnly:r}=e;return C.createElement(Tl,{id:"group_profile",title:(0,A.defineMessage)({id:"admin.group_settings.group_detail.groupProfileTitle",defaultMessage:"Group Profile"}),subtitle:(0,A.defineMessage)({id:"admin.group_settings.group_detail.groupProfileDescription",defaultMessage:"The name for this group."})},C.createElement(Cl,{name:t,title:(0,A.defineMessage)({id:"admin.group_settings.group_details.group_profile.name",defaultMessage:"Name:"}),customID:"groupDisplayName",isDisabled:!0,showAtMention:!1}),C.createElement("div",{className:"group-settings"},C.createElement("div",{className:"group-settings--body"},C.createElement("div",{className:"section-separator"},C.createElement("hr",{className:"separator__hr"})),C.createElement(Nl,{isDefault:!1,allowReference:s,onToggle:n,isDisabled:r}))),s&&C.createElement(Cl,{name:a,title:(0,A.defineMessage)({id:"admin.group_settings.group_details.group_mention.name",defaultMessage:"Group Mention:"}),customID:"groupMention",isDisabled:r,showAtMention:!0,onChange:i}))};var wl=a(3583),Il=a.n(wl),Rl=a(59181),Ll=a(74381);class xl extends C.PureComponent{constructor(e){super(e),this.state={showConfirmationModal:!1}}removeItem=()=>{this.props.onRemoveItem(this.props.id,this.props.type),this.setState({showConfirmationModal:!1})};changeRoles=()=>{this.props.onChangeRoles(this.props.id,this.props.type,!this.props.schemeAdmin)};toggleCollapse=()=>{this.props.onToggleCollapse(this.props.id)};
1displayAssignedRolesDropdown=()=>{const{schemeAdmin:e,name:t,isDisabled:a}=this.props,s=C.createElement(A.FormattedMessage,{id:"admin.group_teams_and_channels_row.channelAdmin",defaultMessage:"Channel Admin"}),n=C.createElement(A.FormattedMessage,{id:"admin.group_teams_and_channels_row.teamAdmin",defaultMessage:"Team Admin"}),i=C.createElement(A.FormattedMessage,{id:"admin.group_teams_and_channels_row.member",defaultMessage:"Member"});let r=null;if(!Il()(e)){let l=i,o=this.props.type.includes("team")?n:s;e&&(l=this.props.type.includes("team")?n:s,o=i),r=C.createElement("div",null,C.createElement(tr.A,{isDisabled:a},C.createElement("div",{"data-testid":`${t}_current_role`},C.createElement("a",null,C.createElement("span",null,l," "),C.createElement("span",{className:"caret"}))),C.createElement(er.A,{openLeft:!0,openUp:!0,ariaLabel:(0,L.Vw)({id:"admin.team_channel_settings.group_row.memberRole",defaultMessage:"Member Role"}),id:`${t}_change_role_options`},C.createElement(er.A.ItemAction,{testid:`${t}_role_to_be`,onClick:this.changeRoles,text:o}))))}return r};render=()=>{let e="",t=null;this.props.hasChildren&&(t=C.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 a=null,s=null;switch(this.props.type){case"public-team":s=C.createElement(A.FormattedMessage,{id:"admin.group_settings.group_details.group_teams_and_channels_row.publicTeam",defaultMessage:"Team"});break;case"private-team":s=C.createElement(A.FormattedMessage,{id:"admin.group_settings.group_details.group_teams_and_channels_row.privateTeam",defaultMessage:"Team (Private)"})}switch(this.props.type){case"public-channel":a=C.createElement("span",{className:"channel-icon"},C.createElement(Rl.A,{className:"icon icon__globe"})),s=C.createElement(A.FormattedMessage,{id:"admin.group_settings.group_details.group_teams_and_channels_row.publicChannel",defaultMessage:"Channel"});break;case"private-channel":a=C.createElement("span",{className:"channel-icon"},C.createElement(Ll.A,{className:"icon icon__lock"})),s=C.createElement(A.FormattedMessage,{id:"admin.group_settings.group_details.group_teams_and_channels_row.privateChannel",defaultMessage:"Channel (Private)"})}const n=this.props.type.split("-")[1];return C.createElement("tr",{className:"group-teams-and-channels-row"+e},C.createElement(Aa.A,{show:this.state.showConfirmationModal,title:C.createElement(A.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:n}}),message:C.createElement(A.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:n}}),confirmButtonText:C.createElement(A.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})}),C.createElement("td",null,C.createElement("span",{className:"arrow-icon"},t),a,C.createElement("span",{className:he()({"name-no-arrow":Il()(t)&&Il()(a)})},this.props.name)),C.createElement("td",{className:"type"}
1,s),C.createElement("td",null,this.displayAssignedRolesDropdown()),C.createElement("td",{className:"text-right"},C.createElement("button",{type:"button",className:"btn btn-tertiary",onClick:()=>this.setState({showConfirmationModal:!0}),"data-testid":`${this.props.name}_groupsyncable_remove`,disabled:this.props.isDisabled},C.createElement(A.FormattedMessage,{id:"admin.group_settings.group_details.group_teams_and_channels_row.remove",defaultMessage:"Remove"}))))}}class Dl extends C.PureComponent{constructor(e){super(e),this.state={collapsed:{}}}onToggleCollapse=e=>{const t={...this.state.collapsed};t[e]=!t[e],this.setState({collapsed:t})};onRemoveItem=(e,t)=>{this.props.onRemoveItem(e,t)};onChangeRoles=async(e,t,a)=>{this.props.onChangeRoles(e,t,a)};teamsAndChannelsToEntries=(e,t)=>{const a=[],s=new Set,n=[];e?.forEach((e=>{s.add(e.team_id),n.push({type:"O"===e.team_type?"public-team":"private-team",hasChildren: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 i={};return t?.forEach((e=>{i[e.team_id]=i[e.team_id]||[],i[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}),s.has(e.team_id)||(s.add(e.team_id),n.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}))})),n.sort(((e,t)=>e.name&&t.name?e.name.localeCompare(t.name):0)),n.forEach((e=>{if(a.push(e),e.hasChildren&&!e.collapsed){const t=i[e.id];t.sort(((e,t)=>e.name.localeCompare(t.name))),a.push(...t)}})),a};render=()=>{const e=this.teamsAndChannelsToEntries(this.props.teams,this.props.channels);return this.props.loading?C.createElement("div",{className:"group-teams-and-channels"},C.createElement("div",{className:"group-teams-and-channels-loading"},C.createElement("i",{className:"fa fa-spinner fa-pulse fa-2x"}))):0===e.length?C.createElement("div",{className:"group-teams-and-channels"},C.createElement("div",{className:"group-teams-and-channels-empty"},C.createElement(A.FormattedMessage,{id:"admin.group_settings.group_details.group_teams_and_channels.no-teams-or-channels-speicified",defaultMessage:"No teams or channels specified yet"}))):C.createElement("div",{className:"AdminPanel__content"},C.createElement("table",{id:"team_and_channel_membership_table",className:"AdminPanel__table group-teams-and-channels"},C.createElement("thead",{className:"group-teams-and-channels--header"},C.createElement("tr",null,C.createElement("th",{style:{width:"30%"}},C.createElement(A.FormattedMessage,{id:"admin.group_settings.group_profile.group_teams_and_channels.name",defaultMessage:"Name"})),C.createElement("th",{style:{width:"25%"}},C.createElement(A.FormattedMessage,{id:"admin.group_settings.group_profile.group_teams_and_channels.type",defaultMessage:"Type"})),C.createElement("th",{style:{width:"25%"}},C.createElement(A.FormattedMessage,{id:"admin.group_settings.group_profile.group_teams_and_channels.assignedRoles",defaultMessage:"Assigned Roles"})),C.createElement("th",{style:{width:"20%"}}))),C.createElement("tbody",{className:"group-teams-and-channels--body"},e.map((e=>C.createElement(xl,Object.assign({key:e.id,onRemoveItem:this.onRemoveItem,onChangeRoles:this.onChangeRoles,onToggleCollapse:this.onToggleCollapse,isDisabled:this.props.isDisabled},e)))))))}}var Pl=a(41468);const Ol=e=>{let{username:t,displayName:a,email:s,userId:n,lastPictureUpdate:i}=e;return C.createElement("div",{className:"group-users-row"},C.createElement(Pl.A,{username:t,url:I.mT.getProfilePictureUrl(n,i),size:"lg"}),C.createElement("div",{className:"user-data"},C.createElement("div",{className:"name-row"},C.createElement("span",{className:"username"},"@"+t),"-",C.createElement("span",{className:"display-name"},a)),C.createElement("div",null,C.createElement("span",{className:"email-label"},C.createElement(A.FormattedMessage,{id:"admin.group_settings.group_details.group_users.email",defaultMessage:"Email:"})),C.createElement("span",{className:"email"},s))))},Fl=C.memo(Ol),Ul=20;
1class Bl extends C.PureComponent{constructor(e){super(e),this.state={loading:!0,page:0}}componentDidMount(){this.props.getMembers(this.props.groupID,0,Ul).then((()=>{this.setState({loading:!1})}))}previousPage=()=>{const e=this.state.page<1?0:this.state.page-1;this.setState({page:e})};nextPage=async()=>{const{total:e,members:t,groupID:a,getMembers:s}=this.props,n=(this.state.page+1)*Ul>=e?this.state.page:this.state.page+1;if(n===this.state.page)return;const i=(n+1)*Ul>=e?e:(n+1)*Ul;t.length>=i?this.setState({page:n}):(this.setState({page:n,loading:!0}),await s(a,n,Ul),this.setState({loading:!1}))};renderRows=()=>0===this.props.members.length?C.createElement("div",{className:"group-users-empty"},C.createElement(A.FormattedMessage,{id:"admin.group_settings.group_details.group_users.no-users-found",defaultMessage:"No users found"})):this.props.members.slice(this.state.page*Ul,(this.state.page+1)*Ul).map((e=>C.createElement(Fl,{key:e.id,username:e.username,displayName:e.first_name+" "+e.last_name,email:e.email,userId:e.id,lastPictureUpdate:e.last_picture_update})));renderPagination=()=>{if(0===this.props.members.length)return C.createElement("div",{className:"group-users--footer empty"});const e=this.state.page*Ul+1;let t=this.state.page*Ul+Ul;const a=this.props.total;t>a&&(t=a);const s=t===a,n=0===this.state.page;return C.createElement("div",{className:"group-users--footer"},C.createElement("div",{className:"counter"},C.createElement(A.FormattedMessage,{id:"admin.group_settings.groups_list.paginatorCount",defaultMessage:"{startCount, number} - {endCount, number} of {total, number}",values:{startCount:e,endCount:t,total:a}})),C.createElement("button",{type:"button",className:"btn btn-tertiary prev "+(n?"disabled":""),onClick:this.previousPage,disabled:n},C.createElement(Ue.A,null)),C.createElement("button",{type:"button",className:"btn btn-tertiary next "+(s?"disabled":""),onClick:this.nextPage,disabled:s},C.createElement(Fe.A,null)))};renderHeader=()=>this.props.source===yl.hg.Ldap?C.createElement(A.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=>C.createElement(T.Link,{to:"/admin_console/authentication/ldap"},e)}}):this.props.source?.startsWith(yl.C0.Plugin)?C.createElement(A.FormattedMessage,{id:"admin.group_settings.group_profile.group_users.pluginGroupText",defaultMessage:"This group is managed by a plugin."}):null;render=()=>C.createElement("div",{className:"group-users"},C.createElement("div",{className:"group-users--header"},this.renderHeader()),C.createElement("div",{className:"group-users--body"},C.createElement("div",{className:"group-users-loading "+(this.state.loading?"active":"")},C.createElement("i",{className:"fa fa-spinner fa-pulse fa-2x"})),this.renderRows()),this.renderPagination())}class Hl extends C.PureComponent{static defaultProps={groupID:"",members:[],groupTeams:[],groupChannels:[],group:{name:"",allow_reference:!1},memberCount:0};constructor(e){super(e),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,yl.CL.Team),t.getGroupSyncables(e,yl.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,a=t.map((e=>e.channel_id));e=this.props.groupChannels.filter((e=>!a.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,a=t.map((e=>e.team_id));e=this.props.groupTeams.filter((e=>!a.includes(e.team_id))).concat(t)}else e=this.props.groupTeams;this.setState({groupTeams:e})}}openAddChannel=()=>{this.setState({addChannelOpen:!0})};closeAddChannel=()=>{this.setState({addChannelOpen:!1})};openAddTeam=()=>{this.setState({addTeamOpen:!0})};closeAddTeam=()=>{this.setState({addTeamOpen:!1})};addTeams=e=>{const{groupID:t}=this.props,{groupTeams:a=[]}=this.state,s=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:a.concat(s),teamsToAdd:s}),this.props.actions.setNavigationBlocked(!0)};addChannels=e=>{const{groupID:t}=this.props,{groupChannels:a=[]}=this.state,s=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:a.concat(s),channelsToAdd:s}),this.props.actions.setNavigationBlocked(!0)};onRemoveTeamOrChannel=(e,t)=>
1{const{groupTeams:a,groupChannels:s,itemsToRemove:n=[],channelsToAdd:i,teamsToAdd:r}=this.state,l={saveNeeded:!0,itemsToRemove:n,serverError:void 0},o=this.syncableTypeFromEntryType(t);let d=!0;o===yl.CL.Channel?(l.channelsToAdd=i?.filter((t=>t.channel_id!==e)),this.props.groupChannels.some((t=>t.channel_id===e))||(d=!1)):o===yl.CL.Team&&(l.teamsToAdd=r?.filter((t=>t.team_id!==e)),this.props.groupTeams.some((t=>t.team_id===e))||(d=!1)),d&&n.push({id:e,type:t}),this.syncableTypeFromEntryType(t)===yl.CL.Team?l.groupTeams=a?.filter((t=>t.team_id!==e)):l.groupChannels=s?.filter((t=>t.channel_id!==e)),this.setState(l),this.props.actions.setNavigationBlocked(!0)};syncableTypeFromEntryType=e=>{switch(e){case"public-team":case"private-team":return yl.CL.Team;case"public-channel":case"private-channel":return yl.CL.Channel;default:return null}};onChangeRoles=(e,t,a)=>{const{rolesToChange:s={},groupTeams:n=[],groupChannels:i=[]}=this.state;let r,l,o;s[`${e}/${t}`]=a,this.syncableTypeFromEntryType(t)===yl.CL.Team?(r=n,l=e=>e.team_id,o="groupTeams"):(r=i,l=e=>e.channel_id,o="groupChannels");const d=r.map((t=>(l(t)===e&&(t.scheme_admin=a),t)));this.setState({saveNeeded:!0,rolesToChange:s,[o]:d}),this.props.actions.setNavigationBlocked(!0)};onMentionToggle=e=>{const{group:t}=this.props,a=t.allow_reference,s=!0;let{groupMentionName:n}=this.state;a||!e||n||(n=t.display_name.toLowerCase().replace(/\s/g,"-")),this.setState({saveNeeded:s,allowReference:e,groupMentionName:n,hasAllowReferenceChanged:e!==a}),this.props.actions.setNavigationBlocked(s)};onMentionChange=e=>{const{group:t}=this.props,a=t.name,s=e.target.value,n=!0;this.setState({saveNeeded:n,groupMentionName:s,hasGroupMentionNameChanged:s!==a}),this.props.actions.setNavigationBlocked(n)};handleSubmit=async()=>{this.setState({saving:!0});const e=await this.handlePatchGroup(),t=await this.handleAddedTeamsAndChannels(),a=await this.handleRemovedTeamsAndChannels(),s=await this.handleRolesToUpdate();await Promise.all([this.props.actions.getGroupSyncables(this.props.groupID,yl.CL.Channel),this.props.actions.getGroupSyncables(this.props.groupID,yl.CL.Team)]);const n=e&&t&&a&&s;this.setState({saveNeeded:!n,saving:!1}),this.props.actions.setNavigationBlocked(!n)};roleChangeKey=e=>{let t=e.id;return t||(t=this.syncableTypeFromEntryType(e.type)===yl.CL.Team?e.team_id:e.channel_id),`${t}/${e.type}`};handlePatchGroup=async()=>{const{allowReference:e,groupMentionName:t,hasAllowReferenceChanged:a,hasGroupMentionNameChanged:s}=this.state;let n;const i=C.createElement(A.FormattedMessage,{id:"admin.group_settings.group_detail.duplicateMentionNameError",defaultMessage:"Group mention is already taken."});if(!t&&e)return n=C.createElement(A.FormattedMessage,{id:"admin.group_settings.need_groupname",defaultMessage:"You must specify a group mention."}),this.setState({allowReference:e,serverError:n}),!1;if(a||s){let r;e&&(r=t?.toLowerCase());const l=await this.props.actions.patchGroup(this.props.groupID,{allow_reference:Boolean(e),name:r});l.error&&(n="store.sql_group.unique_constraint"===l.error.server_error_id?i:"model.group.name.invalid_chars.app_error"===l.error.server_error_id?C.createElement(A.FormattedMessage,{id:"admin.group_settings.group_detail.invalidOrReservedMentionNameError",defaultMessage:"Only letters (a-z), numbers (0-9), periods, dashes and underscores are allowed."}):"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:"model.group.name.invalid_length.app_error"===l.error.server_error_id?C.createElement(A.FormattedMessage,{id:"admin.group_settings.group_detail.invalid_length",defaultMessage:"Name must be 1 to 64 lowercase alphanumeric characters."}):l.error?.message),this.setState({allowReference:e,groupMentionName:r,serverError:n,hasAllowReferenceChanged:!!l.error&&a,hasGroupMentionNameChanged:!!l.error&&s})}return!n};handleRolesToUpdate=async()=>{const{rolesToChange:e}=this.state,t=[];e&&Object.entries(e).forEach((e=>{let[a,s]=e;const[n,i]=a.split("/"),r=this.syncableTypeFromEntryType(i);r&&t.push(this.props.actions.patchGroupSyncable(this.props.groupID,n,r,{scheme_admin:s}))}));const a=(await Promise.all(t)).map((e=>e.error?.message)).filter((e=>e));return a.length?(this.setState({serverError:C.createElement(C.Fragment,null,a[0])}),!1):(this.setState({rolesToChange:{}}),!0)};handleAddedTeamsAndChannels=async()=>{const{teamsToAdd:e,channelsToAdd:t,rolesToChange:a}=this.state,s=[];e?.length&&e.forEach((e=>{const t=this.roleChangeKey(e);e.scheme_admin=a?.[t],delete a?.[t],s.push(this.props.actions.link(this.props.groupID,e.team_id,yl.CL.Team,{auto_add:!0,scheme_admin:Boolean(e.sc
1heme_admin)}))})),t?.length&&t.forEach((e=>{const t=this.roleChangeKey(e);e.scheme_admin=a?.[t],delete a?.[t],s.push(this.props.actions.link(this.props.groupID,e.channel_id,yl.CL.Channel,{auto_add:!0,scheme_admin:e.scheme_admin}))}));const n=(await Promise.all(s)).map((e=>e.error?.message)).filter((e=>e));return n.length?(this.setState({serverError:C.createElement(C.Fragment,null,n[0])}),!1):(this.setState({teamsToAdd:[],channelsToAdd:[]}),!0)};handleRemovedTeamsAndChannels=async()=>{const{itemsToRemove:e,rolesToChange:t}=this.state,a=[];e.length&&e.forEach((e=>{delete t[this.roleChangeKey(e)];const s=this.syncableTypeFromEntryType(e.type);s&&a.push(this.props.actions.unlink(this.props.groupID,e.id,s))}));const s=(await Promise.all(a)).map((e=>e.error?.message)).filter((e=>e));return s.length?(this.setState({serverError:C.createElement(C.Fragment,null,s[0])}),!1):(this.setState({itemsToRemove:[]}),!0)};render=()=>{const{group:e,members:t,memberCount:a,isDisabled:s}=this.props,{groupTeams:n,groupChannels:i}=this.state,{allowReference:r,groupMentionName:l,saving:o,saveNeeded:d,serverError:c}=this.state;return C.createElement("div",{className:"wrapper--fixed"},C.createElement(fe,{withBackButton:!0},C.createElement("div",null,C.createElement(me.A,{to:"/admin_console/user_management/groups",className:"fa fa-angle-left back"}),C.createElement(A.FormattedMessage,{id:"admin.group_settings.group_detail.group_configuration",defaultMessage:"Group Configuration"}))),C.createElement("div",{className:"admin-console__wrapper"},C.createElement("div",{className:"admin-console__content"},C.createElement("div",{className:"banner info"},C.createElement("div",{className:"banner__content"},C.createElement(A.FormattedMessage,{id:"admin.group_settings.group_detail.introBanner",defaultMessage:"Configure default teams and channels and view users belonging to this group."}))),C.createElement(kl,{displayname:e.display_name||"",mentionname:l,allowReference:r,onToggle:this.onMentionToggle,onChange:this.onMentionChange,readOnly:s}),C.createElement(Tl,{id:"group_teams_and_channels",title:(0,A.defineMessage)({id:"admin.group_settings.group_detail.groupTeamsAndChannelsTitle",defaultMessage:"Team and Channel Membership"}),subtitle:(0,A.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:C.createElement("div",{className:"group-profile-add-menu"},C.createElement(tr.A,{isDisabled:s},C.createElement("button",{type:"button",id:"add_team_or_channel",className:"btn btn-primary"},C.createElement(A.FormattedMessage,{id:"admin.group_settings.group_details.add_team_or_channel",defaultMessage:"Add Team or Channel"}),C.createElement("i",{className:"fa fa-caret-down"})),C.createElement(er.A,{ariaLabel:this.props.intl.formatMessage({id:"admin.group_settings.group_details.menuAriaLabel",defaultMessage:"Add Team or Channel Menu"})},C.createElement(er.A.ItemAction,{id:"add_team",onClick:this.openAddTeam,text:this.props.intl.formatMessage({id:"admin.group_settings.group_details.add_team",defaultMessage:"Add Team"})}),C.createElement(er.A.ItemAction,{id:"add_channel",onClick:this.openAddChannel,text:this.props.intl.formatMessage({id:"admin.group_settings.group_details.add_channel",defaultMessage:"Add Channel"})}))))},C.createElement(Dl,{id:this.props.groupID,teams:n,channels:i,loading:this.state.loadingTeamsAndChannels,onChangeRoles:this.onChangeRoles,onRemoveItem:this.onRemoveTeamOrChannel,isDisabled:s})),this.state.addTeamOpen&&C.createElement(Rr,{onModalDismissed:this.closeAddTeam,onTeamsSelected:this.addTeams,alreadySelected:this.props.groupTeams.map((e=>e.team_id))}),this.state.addChannelOpen&&C.createElement(Qs.A,{onModalDismissed:this.closeAddChannel,onChannelsSelected:this.addChannels,alreadySelected:this.props.groupChannels.map((e=>e.channel_id)),groupID:this.props.groupID}
1),C.createElement(Tl,{id:"group_users",title:(0,A.defineMessage)({id:"admin.group_settings.group_detail.groupUsersTitle",defaultMessage:"Users"}),subtitle:(0,A.defineMessage)({id:"admin.group_settings.group_detail.groupUsersDescription",defaultMessage:"Listing of users in Mattermost associated with this group."})},C.createElement(Bl,{members:t,total:a,groupID:this.props.groupID,getMembers:this.props.actions.getMembers,source:e.source})))),C.createElement(ge,{saving:o,cancelLink:"/admin_console/user_management/groups",saveNeeded:d,onClick:this.handleSubmit,serverError:c&&C.createElement(Ke.Ay,{iconClassName:"fa-exclamation-triangle",textClassName:"has-error",error:c})}))}}const Gl=(0,A.injectIntl)(Hl),Vl=(0,s.connect)((function(e,t){const a=t.match.params.group_id;return{groupID:a,group:(0,_l.Wx)(e,a),groupTeams:(0,_l.Cu)(e,a),groupChannels:(0,_l.er)(e,a),members:(0,g.dA)(e,a),memberCount:(0,_l.PY)(e,a)}}),(function(e){return{actions:(0,n.zH)({setNavigationBlocked:p.Jb,getGroup:bl.Wx,getMembers:ms.dA,getGroupStats:bl.f$,getGroupSyncables:bl.g8,link:bl.PY,unlink:bl.IC,patchGroupSyncable:bl.r2,patchGroup:bl.E7},e)}}))(Gl);var zl=a(90617);const jl=e=>{const[t,a]=(0,C.useState)(!1),{formatMessage:s}=(0,A.useIntl)(),n=async t=>{t.stopPropagation(),t.preventDefault(),e.readOnly||(a(!0),await e.actions.link(e.primary_key),a(!1))},i=async t=>{t.stopPropagation(),t.preventDefault(),e.readOnly||(a(!0),await e.actions.unlink(e.primary_key),a(!1))};return C.createElement("div",{id:`${e.name}_group`,className:"group "+(e.checked?"checked":""),onClick:()=>{e.readOnly||e.onCheckToggle(e.primary_key)}},C.createElement("div",{className:"group-row"},C.createElement("div",{className:"group-name"},C.createElement("div",{className:"group-check "+(e.checked?"checked":"")},e.checked&&C.createElement(zl.A,null)),C.createElement("span",null,e.name)),C.createElement("div",{className:"group-content"},C.createElement("span",{className:"group-description"},t?C.createElement("a",{href:"#"},C.createElement(Bn.A,{text:e.mattermost_group_id?s({id:"admin.group_settings.group_row.unlinking",defaultMessage:"Unlinking"}):s({id:"admin.group_settings.group_row.linking",defaultMessage:"Linking"})})):e.mattermost_group_id?e.failed?C.createElement("a",{href:"#",onClick:i,className:"warning"},C.createElement("i",{className:"icon fa fa-exclamation-triangle"}),C.createElement(A.FormattedMessage,{id:"admin.group_settings.group_row.unlink_failed",defaultMessage:"Unlink failed"})):C.createElement("a",{href:"#",onClick:i,className:e.readOnly?"disabled":""},C.createElement("i",{className:"icon fa fa-link"}),C.createElement(A.FormattedMessage,{id:"admin.group_settings.group_row.linked",defaultMessage:"Linked"})):e.failed?C.createElement("a",{href:"#",onClick:n,className:"warning"},C.createElement("i",{className:"icon fa fa-exclamation-triangle"}),C.createElement(A.FormattedMessage,{id:"admin.group_settings.group_row.link_failed",defaultMessage:"Link failed"})):C.createElement("a",{href:"#",onClick:n,className:e.readOnly?"disabled":""},C.createElement("i",{className:"icon fa fa-unlink"}),C.createElement(A.FormattedMessage,{id:"admin.group_settings.group_row.not_linked",defaultMessage:"Not Linked"}))),C.createElement("span",{className:"group-actions"},e.mattermost_group_id?e.has_syncables?C.createElement(T.Link,{to:"/admin_console/user_management/groups/"+e.mattermost_group_id,id:`${e.name}_edit`},C.createElement(A.FormattedMessage,{id:"admin.group_settings.group_row.edit",defaultMessage:"Edit"})):C.createElement(T.Link,{to:"/admin_console/user_management/groups/"+e.mattermost_group_id,id:`${e.name}_configure`},C.createElement(A.FormattedMessage,{id:"admin.group_settings.group_row.configure",defaultMessage:"Configure"})):null))))};var Wl=a(97314);const Yl=200,ql={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 Zl extends C.PureComponent{static defaultProps={groups:[]};constructor(e){super(e),this.state={checked:{},fetchError:!1,loading:!0,page:0,showFilters:!1,searchString:"",filterIsConfigured:!1,filterIsUnconfigured:!1,filterIsLinked:!1,filterIsUnlinked:!1}}closeFilters=()=>{this.setState({showFilters:!1})};componentDidMount(){this.props.actions.getLdapGroups(this.state.page,Yl).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={...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
1(!t.mattermost_group_id)return"link";e=!0}return e?"unlink":"disabled"}renderSelectionActionButton(){switch(this.selectionActionButtonType()){case"link":return C.createElement("button",{type:"button",className:"btn btn-primary",onClick:()=>this.linkSelectedGroups(),disabled:this.props.readOnly},C.createElement("i",{className:"icon fa fa-link"}),C.createElement(A.FormattedMessage,{id:"admin.group_settings.groups_list.link_selected",defaultMessage:"Link Selected Groups"}));case"unlink":return C.createElement("button",{type:"button",className:"btn btn-primary",onClick:()=>this.unlinkSelectedGroups(),disabled:this.props.readOnly},C.createElement("i",{className:"icon fa fa-unlink"}),C.createElement(A.FormattedMessage,{id:"admin.group_settings.groups_list.unlink_selected",defaultMessage:"Unlink Selected Groups"}));default:return C.createElement("button",{type:"button",className:"btn btn-primary",disabled:this.props.readOnly},C.createElement("i",{className:"icon icon-link-variant"}),C.createElement(A.FormattedMessage,{id:"admin.group_settings.groups_list.link_selected",defaultMessage:"Link Selected Groups"}))}}renderHeader=()=>0===this.props.groups.length?null:C.createElement("div",{className:"groups-list--header"},C.createElement("div",{className:"group-name"},C.createElement(A.FormattedMessage,{id:"admin.group_settings.groups_list.nameHeader",defaultMessage:"Name"})),C.createElement("div",{className:"group-content"},C.createElement("div",{className:"group-description"},C.createElement(A.FormattedMessage,{id:"admin.group_settings.groups_list.mappingHeader",defaultMessage:"Mattermost Linking"})),C.createElement("div",{className:"group-actions"})));renderRows(){return this.state.loading?C.createElement("div",{className:"groups-list-loading"},C.createElement("i",{className:"fa fa-spinner fa-pulse fa-2x"})):this.state.fetchError?C.createElement("div",{className:"groups-list-empty"},C.createElement(A.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?C.createElement("div",{className:"groups-list-empty"},C.createElement(A.FormattedMessage,{id:"admin.group_settings.groups_list.no_groups_found",defaultMessage:"No groups found"})):this.props.groups.map((e=>C.createElement(jl,{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(`(${e})`,"i")}searchGroups(e){let{searchString:t}=this.state;const a={...this.state};let s=t,n={q:""};Object.entries(ql).forEach((e=>{let[i,r]=e;const l=this.regex(r.filter);l.test(t)?(a[i]=!0,s=s.replace(l,""),n=Object.assign(n,r.option)):this.state[i]&&(t+=" "+r.filter)})),n.q=s.trim(),a.searchString=t,a.showFilters=!1,a.loading=!0,a.showFilters=!1,this.setState(a),this.props.actions.getLdapGroups(e,Yl,n).then(this.handleGetGroupsResponse)}handleGroupSearchKeyUp(e){const{key:t}=e,{searchString:a}=this.state;t===ve.YM.KeyCodes.ENTER[0]&&(this.setState({page:0}),this.searchGroups());const s={};Object.entries(ql).forEach((e=>{let[t,n]=e;this.regex(n.filter).test(a)||(s[t]=!1)})),this.setState(s)}newSearchString(e,t,a){let s=e;const{filter:n}=ql[t],i=this.regex(n),r=i.test(e);return r&&!a&&(s=e.replace(i,"").trim()),!r&&a&&(s+=" "+n),s.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 C.createElement("div",{id:"group-filters",className:"group-search-filters",onClick:e=>{e.nativeEvent.stopImmediatePropagation()}},C.createElement("div",{className:"filter-row"},C.createElement("span",{className:"filter-check "+(this.state.filterIsLinked?"checked":""),onClick:()=>this.handleFilterCheck([["filterIsLinked",!this.state.filterIsLinked],["filterIsUnlinked",!1]])},this.state.filterIsLinked&&C.createElement(zl.A,null)),C.createElement("span",null,C.createElement(A.FormattedMessage,{id:"admin.group_settings.filters.isLinked",defaultMessage:"Is Linked"}))),C.createElement("div",{className:"filter-row"},C.createElement("span",{className:"filter-check "+(this.state.filterIsUnlinked?"checked":""),onClick:()=>this.handleFilterCheck([["filterIsUnlinked",!this.state.filterIsUnlinked],["filterIsLinked",!1]])},this.state.filterIsUnlinked&&C.createElement(zl.A,null)),C.createElement("span",null,C.createElement(A.FormattedMessage,{id:"admin.group_settings.filters.isUnlinked",defaultMessage:"Is Not Linked"}))),C.createElement("div",{className:"filter-row"},C.createElement("span",{className:"filter-check "+(this.state.filterIsConfigured?"checked":""),onClick:()=>this.handleFilterCheck([["filterIsConfigured",!this.state.filterIsConfigured],["filterIsUnconfigured",!1]])},this.state.filterIsConfigured&&C.createElement(zl.A,null)),C.createElement("span",null,C.createElement(A.FormattedMessage,{id:"admin.group_settings.filters.isConfigured",defaultMessage:"Is Configured"}))),C.createElement("div",{className:"filter-row"},C.createElement("span",{className:"filter-check "+(this.state.filterIsUnconfigured?"checked":""),onClick:()=>this.handleFilterCheck([["filterIsUnconfigured",!this.state.filterIsUnconfigured],["filterIsConfigured",!1]])},this.state.filterIsUnconfigured&&C.createElement(zl.A,null)),C.createElement("span",null,C.createElement(A.FormattedMessage,{id:"admin.group_settings.filters.isUnconfigured",defaultMessage:"Is Not Configured"}))),C.createElement("a",{onClick:()=>{this.setState({page:0}),this.searchGroups(0)},className:"btn btn-primary search-groups-btn"},C.createElement(A.FormattedMessage,{id:"search_bar.search",defaultMessage:"Search"})))}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,Yl,{q:""}).then(this.handleGetGroupsResponse)};handleGetGroupsResponse=e=>{e?.error?this.setState({fetchError:!0}):this.setState({fetchError:!1}),this.setState({loading:!1})};render(){const e=this.state.page*Yl+1;let t=this.state.page*Yl+Yl;const a=this.props.total;t>a&&(t=a);const s=t===a,n=0===this.state.page;return C.createElement("div",{className:"groups-list"},C.createElement("div",{className:"groups-list--global-actions"},C.createElement("div",{className:"group-list-search"},C.createElement(Cn.A,{type:"text",placeholder:(0,A.defineMessage)({id:"search_bar.search",defaultMessage:"Search"}),onKeyUp:e=>this.handleGroupSearchKeyUp(e),onChange:e=>this.setState({searchString:e.target.value}),value:this.state.searchString}),C.createElement(Wl.A,{className:"search__icon","aria-hidden":"true"}),C.createElement("i",{className:"fa fa-times-circle group-filter-action "+(this.state.searchString.length?"":"hidden"),onClick:()=>this.resetFiltersAndSearch()}),C.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(),C.createElement("div",{className:"group-list-link-unlink"},this.renderSelectionActionButton())),this.renderHeader(),C.createElement("div",{id:"groups-list--body",className:"groups-list--body"},this.renderRows()),a>0&&C.createElement("div",{className:"groups-list--footer"},C.createElement("div",{className:"counter"},C.createElement(A.FormattedMessage,{id:"admin.group_settings.groups_list.paginatorCount",defaultMessage:"{startCount, number} - {endCount, number} of {total, number}",values:{startCount:e,endCount:t,total:a}})),C.createElement("button",{type:"button",className:"btn btn-tertiary prev "+(n?"disabled":""),onClick:e=>this.previousPage(e),disabled:n},C.createElement(Ue.A,null)),C.createElement("button",{type:"button",className:"btn btn-tertiary next "+(s?"disabled":""),onClick:e=>this.nextPage(e),disabled:s},C.createElement(Fe.A,null))))}}const Jl=(0,v.Mz)("getSortedListOfLdapGroups",d.si,(e=>{const t=Object.values(e);return t.sort(((e,t)=>e.name.localeCompare(t.name))),t})),Kl=(0,s.connect)((function(e){return{groups:Jl(e),total:(0,d.TR)(e)}}),(function(e){return{actions:(0,n.zH)({getLdapGroups:i.si,link:i.BD,unlink:i.Ag},e)}}))(Zl);var Ql=a(694);
1var Xl=a(92908),$l=a.n(Xl);function eo(e){let{onExited:t,onSave:a,existingRange:s,currentIP:n}=e;const{formatMessage:i}=(0,A.useIntl)(),[r,l]=(0,C.useState)(s?.description||""),[o,d]=(0,C.useState)(s?.cidr_block||""),[c,m]=(0,C.useState)(null);return C.createElement(Gn.Modal,{className:"IPFilteringAddOrEditModal",dialogClassName:"IPFilteringAddOrEditModal__dialog",show:!0,onExited:t,onHide:t},C.createElement(Gn.Modal.Header,{closeButton:!0},C.createElement("div",{className:"title"},i(s?.cidr_block?{id:"admin.ip_filtering.edit_ip_filter",defaultMessage:"Edit IP Filter"}:{id:"admin.ip_filtering.add_ip_filter",defaultMessage:"Add IP Filter"}))),C.createElement(Gn.Modal.Body,null,C.createElement("div",{className:"body"},C.createElement("div",{className:"current_ip_notice"},C.createElement("div",{className:"Content"},C.createElement("span",null,C.createElement(w.InformationOutlineIcon,null),i({id:"admin.ip_filtering.your_current_ip_is",defaultMessage:"Your current IP address is {ip}"},{ip:n})))),C.createElement("div",{className:"inputs"},C.createElement("div",null,i({id:"admin.ip_filtering.name",defaultMessage:"Name"}),C.createElement(Ri.A,{type:"text",name:"name",onChange:e=>l(e.target.value),value:r,placeholder:i({id:"admin.ip_filtering.rule_name_placeholder",defaultMessage:"Enter a name for this rule"}),required:!0,useLegend:!1})),C.createElement("div",null,i({id:"admin.ip_filtering.allow_following_range",defaultMessage:"Allow the following range of IP Addresses"}),C.createElement(Ri.A,{type:"text",name:"ip_address_range",onChange:e=>{const t=e.target.value;d(t),m(null)},onBlur:()=>{(function(e){try{$l().parseCIDR(e)}catch(e){return!1}return!0})(o)||m({type:"error",value:"Invalid CIDR address range"})},value:o,placeholder:"Enter IP Range",required:!0,useLegend:!1,customMessage:c})),C.createElement("p",null,C.createElement(A.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=>C.createElement(Ge.A,{href:"https://mattermost.com/pl/cloud-ip-filtering",location:"ip_filtering_add_edit_rule_modal"},e)}}))))),C.createElement(Gn.Modal.Footer,null,C.createElement("button",{type:"button",className:"btn btn-tertiary",onClick:t},i({id:"admin.ip_filtering.cancel",defaultMessage:"Cancel"})),C.createElement("button",{"data-testid":"save-add-edit-button",type:"button",className:"btn btn-primary",onClick:()=>{const e={cidr_block:o,description:r,enabled:!0,owner_id:""};s?a(e,s):a(e),t()},disabled:Boolean(c)||!o.length||!r.length},i(s?{id:"admin.ip_filtering.update_filter",defaultMessage:"Update filter"}:{id:"admin.ip_filtering.save",defaultMessage:"Save"}))))}function to(e){let{onExited:t,onConfirm:a,filterToDelete:s}=e;const{formatMessage:n}=(0,A.useIntl)();return C.createElement(Gn.Modal,{className:"DeleteConfirmationModal",dialogClassName:"DeleteConfirmationModal__dialog",show:!0,onExited:t,onHide:t},C.createElement(Gn.Modal.Header,{closeButton:!0},C.createElement("div",{className:"title"},n({id:"admin.ip_filtering.delete_confirmation_title",defaultMessage:"Delete IP Filter"}))),C.createElement(Gn.Modal.Body,null,n({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:C.createElement("strong",null,s?.description)})),C.createElement(Gn.Modal.Footer,null,C.createElement("button",{type:"button",className:"btn btn-tertiary",onClick:t},n({id:"admin.ip_filtering.cancel",defaultMessage:"Cancel"})),C.createElement("button",{type:"button",className:"btn btn-primary btn-danger",onClick:()=>a?.(s)},n({id:"admin.ip_filtering.delete_filter",defaultMessage:"Delete filter"}))))}const ao=e=>{let{allowedIPRange:t,index:a,handleRowMouseEnter:s,handleRowMouseLeave:n,setEditFilter:i,handleConfirmDeleteFilter:r,hoveredRow:l}=e;const{formatMessage:o}=(0,A.useIntl)();return C.createElement("div",{className:"Row",onMouseEnter:()=>s(a),onMouseLeave:n},C.createElement("div",{className:"FilterName"},t.description),C.createElement("div",{className:"IpAddressRange"},t.cidr_block),C.createElement("div",{className:"Actions"},l===a&&C.createElement(C.Fragment,null,C.createElement(Nt.A,{title:o({id:"admin.ip_filtering.edit",defaultMessage:"Edit"})},C.createElement("div",{className:"edit","aria-label":"Edit",role:"button",onClick:()=>i(t)},C.createElement(w.PencilOutlineIcon,{size:20}))),C.createElement(Nt.A,{title:o({id:"admin.ip_filtering.delete",defaultMessage:"Delete"})},C.createElement("div",{className:"delete","aria-label":"Delete",role:"button",onClick:()=>r(t)},C.createElement(w.TrashCanOutlineIcon,{size:20,color:"red"}))))))},so=e=>{let{currentUsersIP:t,setShowAddModal:a}=e;return C.createElement("div",{className:"NotInRangeErrorPanel"},C.createElement("div",{className:"Icon"},C.createElement(w.AlertOutlineIcon,{size:20})),C.createElement("div",{className:"Content"},C.createElement("div",{className:"Title"},C.createElement(A.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}})),C.createElement("div",{className:"Body"},C.createElement(A.FormattedMessage,{id:"admin.ip_filtering.include_your_ip",defaultMessage:"Include your IP address in at least one of the rules below to continue."}),C.createElement("div",{className:"btn btn-primary",onClick:()=>a(!0)},C.createElement(A.FormattedMessage,{id:"admin.ip_filtering.add_your_ip",defaultMessage:"Add your IP address"})))))},no=e=>{let{setShowAddModal:t,currentIPIsInRange:a,currentUsersIP:s}=e;return C.createElement("div",{className:"AllowedIPAddressesSection"},C.createElement("div",{className:"SectionHeaderContent"},C.createElement("div",{className:"HeaderContent"},C.createElement("div",{className:"TitleSubtitle"},C.createElement("div",{className:"Title"},C.createElement(A.FormattedMessage,{id:"admin.ip_filtering.allowed_ip_addresses",defaultMessage:"Allowed IP Addresses"})),C.createElement("div",{className:"Subtitle"},C.createElement(A.FormattedMessage,{id:"admin.ip_filtering.edit_section_description_line_1",defaultMessage:"Create rules to allow access to the workspace for specified IP addresses only."})),C.createElement("div",{className:"Subtitle"},C.createElement(A.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=>C.createElement("strong",null,e)}}))),C.createElement("div",{className:"AddIPFilterButton"},C.createElement("button",{className:"btn btn-primary",onClick:()=>{t(!0)},type:"button"},C.createElement(A.FormattedMessage,{id:"admin.ip_filtering.add_filter",defaultMessage:"Add Filter"})))),!a&&C.createElement(so,{setShowAddModal:t,currentUsersIP:s})))},io=e=>{let{width:t,height:a}=e;return C.createElement("svg",{width:t,height:a,viewBox:"0 0 132 90",fill:"none",xmlns:"http://www.w3.org/2000/svg"},C.createElement("rect",{y:"25",width:"132",height:"41",rx:"3.75",fill:"#3F4350",fillOpacity:"0.08"}),C.createElement("circle",{cx:"6.5",cy:"14",r:"2",transform:"rotate(-90 6.5 14)",fill:"#3F4350",fillOpacity:"0.32"}),C.createElement("circle",{cx:"6.5",cy:"8",r:"2",transform:"rotate(-90 6.5 8)",fill:"#3F4350",fillOpacity:"0.32"}),C.createElement("circle",{cx:"6.50049",cy:"2",r:"2",transform:"rotate(-90 6.50049 2)",fill:"#3F4350",fillOpacity:"0.32"}),C.createElement("path",{d:"M6.5 18.5V58.5H29M31 58.5H35M37 58.5H39",stroke:"#3F4350",strokeOpacity:"0.32",strokeLinecap:"round",strokeLinejoin:"round"}),C.createElement("circle",{cx:"66.7162",cy:"44.7162",r:"40.2162",fill:"white",stroke:"#3F4350"}),C.createElement("circle",{cx:"68",cy:"46",r:"38",fill:"#1C58D9",fillOpacity:"0.08"}),C.createElement("path",{d:"M68.9197 17.4431C71.4887 18.2645 71.3834 16.6428 73.0049 18.5313C73.9385 19.6194 75.6231 21.5991 77.6236 22.0905C77.9044 22.1607 78.5291 21.557 78.5291 21.0796C78.5291 20.6022 77.1252 19.5913 76.3531 19.3807C75.581 19.1701 76.6689 17.6818 75.609 17.2255C74.5491 16.7692 73.3769 15.0773 72.9558 13.7505C72.5346 12.4237 70.6675 13.5399 70.0287 13.2732C69.39 13.0064 68.6249 13.1679 67.9229 14.1788C67.221 15.1897 68.2598 17.2325 68.9197 17.4431Z",fill:"#1C58D9",fillOpacity:"0.16"}),C.createElement("path",{d:"M82.832 54.5925C82.832 54.0379 77.75 51.272 77.1324 51.2369C76.1216 51.1737 74.7458 50.6682 73.8192 51.2369C73.4279 51.459 73.0956 51.772 72.8506 52.1495C72.6751 52.4794 71.6854 51.8687 71.3063 52.0723C70.3938 52.5567 69.9024 50.9771 70.1341 50.3734C70.7728 48.8921 68.5196 49.8258 68.288 49.4186C68.5618 49.903 68.2108 45.2065 67.4246 47.8531C66.828 49.8609 64.4906 47.5653 64.7714 46.1051C65.2066 43.8516 68.6039 43.5217 69.3479 43.9218C69.727 44.1254 71.1098 46.1262 71.2853 46.07C
171.6643 45.9507 71.0606 43.7112 70.9834 43.4164C70.7167 42.3212 72.8085 41.9562 72.9559 40.8119C73.0822 39.8431 73.742 40.1801 74.3597 39.6676C75.3073 38.9164 74.5633 37.5124 75.7636 36.7963C76.1777 36.5506 77.729 36.3751 77.9326 35.9399C78.1361 35.5046 76.627 34.4586 77.9326 34.1497C79.0837 33.8689 80.2559 34.3673 80.5718 32.7036C80.8526 31.1942 79.1679 30.8502 78.6836 29.6779C78.5292 29.3269 78.3397 27.305 77.6237 27.6771C76.7463 28.1404 76.2199 29.2567 75.4758 27.9298C74.1772 25.536 70.9624 24.504 72.4715 28.2668C73.2436 30.2114 70.3657 36.1294 69.9235 30.6607C69.7761 28.7582 64.0905 28.1896 65.9997 26.0835C67.909 23.9775 70.5833 23.8792 71.2993 20.6008C72.2961 16.0517 69.1444 19.8987 67.5369 19.0423C65.1363 17.7295 67.1719 18.4385 65.9295 20.1374C65.4592 20.7833 63.915 19.7303 63.2271 19.8356C62.5392 19.9409 60.9598 21.3379 60.5176 20.4604C59.7174 18.8527 54.081 17.8629 52.5578 18.4315C49.378 19.625 48.276 18.0103 45.1033 17.3855C44.0012 17.1679 38.5893 17.0134 38.9403 18.8878C39.1931 19.5748 39.4885 20.2454 39.8247 20.8956C40.1687 21.9276 38.6174 21.1343 38.2595 21.38C38.8914 21.9405 39.5521 22.4677 40.2389 22.9595C40.7583 23.4931 38.2524 24.1389 37.9997 25.0235C37.5014 26.8206 41.4462 26.3082 40.7232 28.4704C40.4986 29.1233 38.2454 30.1974 38.0278 32.4087C37.9857 32.8299 40.8355 29.6709 42.6746 30.3027C44.296 30.8924 44.1557 26.4837 46.1842 26.4837C49.9466 26.4837 50.6766 30.1482 52.656 32.6053C53.5826 33.7496 54.3266 34.227 54.4951 35.7223C54.6636 37.2176 54.3477 38.8111 54.8531 40.1379C55.3585 41.4648 56.3131 41.4928 56.9589 42.5178C57.731 43.7182 58.1662 44.8906 59.2121 45.9366C60.7282 47.46 63.3113 49.7907 65.6979 49.4467C66.1682 49.3765 67.9441 50.3874 68.3442 50.6893C68.8985 51.2103 69.3717 51.8113 69.748 52.4724C70.1692 53.034 71.5029 52.683 72.0855 52.9498C72.6681 53.2165 70.7308 57.1619 71.4327 58.1728C72.1346 59.1837 72.1978 60.5948 73.3419 61.4934C74.4861 62.3919 74.7458 62.413 74.8932 63.8943C75.1108 66.2952 74.4089 68.7241 73.8333 70.9636C73.5314 72.1079 74.1351 73.3785 73.6858 74.4737C73.1243 75.8426 72.7453 77.022 73.2366 78.5454C74.086 81.192 78.8521 81.6202 76.0444 79.3106C74.8441 78.3278 77.3429 75.9549 76.5638 75.7303C75.2231 75.1687 76.8094 74.6632 76.9849 74.0806C77.3429 72.9222 82.6565 68.1274 83.0496 67.3342C83.3795 66.6672 83.1689 65.9793 83.7094 65.4036C84.2499 64.828 85.1133 64.9894 85.8152 64.5401C87.2191 63.5994 86.7137 62.0058 87.2963 60.7071C88.4474 58.1307 88.9318 59.1486 87.3525 57.1338C86.7558 56.4037 82.9373 56.6705 82.832 54.5925Z",fill:"#1C58D9",fillOpacity:"0.16"}),C.createElement("path",{d:"M54.4039 15.6117C55.3726 16.6226 56.3342 15.0852 56.5097 15.6117C56.6852 16.1382 56.6992 17.1491 57.8504 17.2263C59.0015 17.3036 56.7764 18.0547 57.5205 18.3706C58.2645 18.6865 59.8579 19.6974 60.4405 19.2762C61.0231 18.855 61.718 18.5321 61.9777 18.848C62.2374 19.1639 63.8378 18.7989 63.3816 18.2653C62.9253 17.7318 61.711 16.4752 61.7601 15.7521C61.8092 15.029 63.164 13.1687 61.6549 13.3301C61.2907 13.3759 60.959 13.5624 60.7307 13.8498C60.5025 14.1371 60.3957 14.5025 60.4335 14.8675C60.4335 15.4011 59.0296 14.0743 58.7348 14.0953C58.44 14.1164 57.4573 12.4807 57.0853 12.4807C56.7133 12.4807 54.2214 11.6804 54.432 12.4807C54.6425 13.281 53.4352 14.6008 54.4039 15.6117Z",fill:"#1C58D9",fillOpacity:"0.16"}),C.createElement("path",{d:"M76.6831 23.2076C75.932 22.7794 74.5071 20.8207 73.8754 21.4525C73.2436 22.0844 74.0368 23.5586 74.5773 24.1623C75.1178 24.7661 77.3429 26.1842 77.02 25.5664C76.6971 24.9486 78.1571 24.057 76.6831 23.2076Z",fill:"#1C58D9",fillOpacity:"0.16"}),C.createElement("path",{d:"M55.8707 9.6992C56.2567 9.66409 56.8604 11.005 57.429 11.1524C57.9975 11.2998 58.2783 11.9667 58.4889 12.1211C58.6995 12.2756 61.079 11.363 61.6406 11.1524C62.2021 10.9418 60.9386 9.62899 60.4683 8.70935C59.9981 7.7897 60.363 10.2327 59.6962 9.83258C59.0294 9.43243 59.1276 8.88485 58.2923 8.88485C57.457 8.88485 58.0396 7.22107 57.0148 7.57208C55.99 7.92309 55.4846 9.7343 55.8707 9.6992Z",fill:"#1C58D9",fillOpacity:"0.16"}),C.createElement("path",{d:"M64.4061 12.887C63.7042 13.0274 63.8376 13.4837 63.4445 13.8769C63.261 14.0645 63.1582 14.3165 63.1582 14.5789C63.1582 14.8413 63.261 15.0933 63.4445 15.2809C63.8025 15.7372 64.364 16.5516 64.7922 15.7723C65.2203 14.9931 64.7922 14.3683 64.7922 13.8628C64.7922 13.3574 64.7501 12.8168 64.4061 12.887
1Z",fill:"#1C58D9",fillOpacity:"0.16"}),C.createElement("path",{d:"M65.8175 15.3641C65.993 15.7853 66.3159 14.6199 67.0038 14.0162C67.6917 13.4125 66.6668 11.9101 66.0281 12.6753C65.5999 13.2019 65.642 14.9359 65.8175 15.3641Z",fill:"#1C58D9",fillOpacity:"0.16"}),C.createElement("path",{d:"M65.6908 15.8909C65.3258 16.4103 65.031 17.8003 65.6908 17.9126C65.8353 17.9293 65.9816 17.9056 66.1135 17.8441C66.2453 17.7825 66.3575 17.6856 66.4375 17.5641C66.5176 17.4426 66.5623 17.3012 66.5668 17.1558C66.5713 17.0103 66.5353 16.8665 66.4629 16.7403C66.154 16.2138 65.8452 15.6802 65.6908 15.8909Z",fill:"#1C58D9",fillOpacity:"0.16"}),C.createElement("path",{d:"M68.3649 6.93293C67.7332 7.22076 69.2915 7.74728 68.2246 8.0351C67.1576 8.32293 67.1295 9.20044 66.21 8.4563C65.2905 7.71216 64.2867 8.70903 64.9816 9.15832C65.6765 9.60761 66.8417 10.7168 66.8066 11.3205C66.7715 11.9243 67.9087 12.2051 68.9686 12.1349C70.0285 12.0647 71.306 12.3806 71.3411 11.9243C71.3762 11.468 71.5026 11.2714 71.3762 10.9274C71.1937 10.429 70.7374 9.93756 69.6424 10.3658C68.5474 10.794 67.8314 10.5
1764 67.677 10.0429C67.5226 9.50933 69.8249 8.48439 70.8427 9.19343C71.8605 9.90247 72.8292 8.80731 72.0852 8.30888C71.3411 7.81045 71.8395 7.28394 72.3519 7.21373C72.7239 7.16459 73.0538 6.22388 73.3346 5.49378C71.7733 5.24122 70.1981 5.08416 68.6176 5.02344C68.6246 6.02732 68.9967 6.6451 68.3649 6.93293Z",fill:"#1C58D9",fillOpacity:"0.16"}),C.createElement("path",{d:"M58.9521 6.04835C59.654 6.35022 60.8193 6.04836 60.6017 5.50781C59.9629 5.62013 59.3241 5.73947 58.6924 5.87285C58.7626 5.95248 58.852 6.01288 58.9521 6.04835Z",fill:"#1C58D9",fillOpacity:"0.16"}),C.createElement("path",{d:"M59.3875 6.64593C58.3908 6.13346 58.4469 7.39006 58.9032 7.8885C59.3594 8.38693 60.6791 7.27775 59.3875 6.64593Z",fill:"#1C58D9",fillOpacity:"0.16"}),C.createElement("path",{d:"M65.4521 5.02369C65.7584 5.07898 66.0448 5.21381 66.2825 5.41464C66.5203 5.61547 66.7011 5.87526 66.8069 6.16799C66.9402 6.61728 68.0142 5.64147 68.0282 5.00263H67.0034C66.484 4.99561 65.9716 5.00263 65.4521 5.02369Z",fill:"#1C58D9",fillOpacity:"0.16"}),C.createElement("path",{d:"M63.3459 6.49694C62.8967 7.11471 63.2827 7.85885 63.8162 7.24107C64.3497 6.6233 63.9215 5.0578 64.3426 5.73174C64.7638 6.40568 65.55 7.47273 66.0764 7.52188C66.6029 7.57102 66.1466 6.89708 66.0764 6.33546C66.0062 5.77385 64.7498 5.24033 64.8902 5.05078C64.104 5.0929 63.3249 5.15608 62.5527 5.24032C63.1073 5.60537 63.6899 6.05466 63.3459 6.49694Z",fill:"#1C58D9",fillOpacity:"0.16"}),C.createElement("path",{d:"M65.6909 11.8195C66.3156 12.0722 65.6909 10.5488 65.6909 10.5488C65.0381 10.9349 65.0732 11.5597 65.6909 11.8195Z",fill:"#1C58D9",fillOpacity:"0.16"}),C.createElement("path",{d:"M63.4448 10.8579C63.5501 11.2861 64.224 11.4265 64.5819 10.8579C64.9399 10.2893 64.5819 8.22532 64.0765 8.8782C63.5711 9.53107 62.9885 9.2292 61.9707 8.8782C60.9529 8.52719 63.3466 10.4086 63.4448 10.8579Z",fill:"#1C58D9",fillOpacity:"0.16"}),C.createElement("path",{d:"M70.3657 47.0246C71.2361 46.9193 71.7696 47.9793 72.7523 47.9302C73.735 47.881 75.2231 49.3693 76.0724 48.4848C76.7744 47.7827 73.0401 47.186 71.8609 46.5472C70.6816 45.9084 69.5024 47.1299 70.3657 47.0246Z",fill:"#1C58D9",fillOpacity:"0.16"}),C.createElement("path",{d:"M74.7036 7.10827C75.925 7.69796 75.7144 7.6769 74.9703 8.24553C74.2263 8.81417 74.493 10.0497 76.1355 9.96549C77.778 9.88125 78.7959 8.24553 79.5399 10.5482C80.2839 12.8508 79.7505 15.364 80.7051 16.073C81.6597 16.7821 80.8665 17.2595 80.7051 17.9194C80.5436 18.5792 80.9718 19.0566 81.7159 18.846C82.4599 18.6354 82.2493 20.0184 81.7159 20.6011C81.1824 21.1837 80.5507 22.2999 82.1932 24.3218C83.8357 26.3436 84.0533 26.0698 84.5798 26.7648C85.1062 27.4598 85.5414 26.505 85.6958 25.7047C85.8503 24.9044 85.3238 22.0893 87.212 22.0893C87.8001 22.083 88.3706 21.8879 88.8395 21.5327C89.3083 21.1775 89.6507 20.6812 89.8162 20.1167C90.0268 19.6393 91.5148 19.6884 92.308 19.0005C93.1012 18.3125 93.8031 17.8702 93.8242 15.4904C88.3687 10.4269 81.5866 7.01838 74.2684 5.66211C74.0929 6.20968 74.0999 6.82746 74.7036 7.10827Z",fill:"#1C58D9",fillOpacity:"0.16"}),C.createElement("path",{d:"M107.091 59L124 59L124 72",stroke:"#3F4350",strokeLinecap:"round",strokeLinejoin:"round"}),C.createElement("path",{d:"M102.864 59L98.6365 59",stroke:"#3F4350",strokeLinecap:"round",strokeLinejoin:"round"}),C.createElement("path",{d:"M95.8184 59L93.0002 59",stroke:"#3F4350",strokeLinecap:"round",strokeLinejoin:"round"}),C.createElement("path",{d:"M58.6019 0.383106C66.948 -1.2328 75.0348 -0.505835 82.8517 2.566C86.0609 3.82715 89.2246 5.48354 92.3421 7.5353C96.241 10.3141 99.561 13.4221 102.301 16.8613M75.1367 88.7753C65.3658 90.5265 55.9902 89.2627 47.0305 84.9538C45.1531 84.0509 43.2939 83.0144 41.4532 81.8438C36.5678 78.2399 32.595 74.1786 29.5312 69.6573M22.6732 52.8466C21.5895 47.0125 21.6254 41.2894 22.7809 35.6774C23.9485 30.0062 26.2594 24.4483 29.7137 19.0039M107.617 25.4379C109.192 28.8187 110.342 32.443 111.065 36.3118C111.935 40.9918 112.097 45.5669 111.552 50.0365M105.118 20.8383C105.559 21.5417 105.978 22.2572 106.376 22.9848",stroke:"#3F4350",strokeOpacity:"0.48"}))},ro=e=>{let{setShowAddModal:t}=e;return C.createElement("div",{className:"NoFilters"},C.createElement("div",{className:"Illustration"},C.createElement(io,{width:132,height:90})),C.createElement("div",{className:"Title"},C.createElement(A.FormattedMessage,{id:"admin.ip_filtering.no_filters",defaultMessage:"No IP filtering rules added"})),C.createElement("div",{className:"Subtitle"},C.createElement(A.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=>C.createElement("div",{onClick:()=>t(!0),className:"btn btn-primary"},e)}})))},lo=e=>{let{ipFilters:t,currentUsersIP:a,setShowAddModal:s,setEditFilter:n,handleConfirmDeleteFilter:i,currentIPIsInRange:r}=e;const{formatMessage:l}=(0,A.useIntl)(),[o,d]=(0,C.useState)(null);return C.createElement("div",{className:"EditSection"},C.createElement(no,{setShowAddModal:s,currentIPIsInRange:r,currentUsersIP:a}),Boolean(t?.length)&&C.createElement("div",{className:"TableSectionContent"},C.createElement("div",{className:"Table"},C.createElement("div",{className:"HeaderRow"},C.createElement("div",{className:"FilterName"},l({id:"admin.ip_filtering.filter_name",defaultMessage:"Filter Name"})),C.createElement("div",{className:"IpAddressRange"},l({id:"admin.ip_filtering.ip_address_range",defaultMessage:"IP Address Range"}))),t?.map(((e,t)=>C.createElement(ao,{key:e.cidr_block,allowedIPRange:e,index:t,handleRowMouseEnter:e=>d(e),handleRowMouseLeave:()=>d(null),setEditFilter:n,handleConfirmDeleteFilter:i,hoveredRow:o}))))),0===t?.length&&C.createElement(ro,{setShowAddModal:s}))},oo=e=>{let{filterToggle:t,setFilterToggle:a}=e;const{formatMessage:s}=(0,A.useIntl)();return C.createElement("div",{className:"EnableSectionContent"},C.createElement("div",{className:"TitleSubtitleContent"},C.createElement("div",{className:"TitleSubtitle"},C.createElement("div",{className:"Title"},s({id:"admin.ip_filtering.enable_ip_filtering",defaultMessage:"Enable IP Filtering"})),C.createElement("div",{className:"Subtitle"},C.createElement(A.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=>C.createElement(Ge.A,{href:"https://mattermost.com/pl/cloud-ip-filter
1ing",location:"ip_filtering_enable_section"},e)}}))),C.createElement("div",{className:"SwitchSelector"},C.createElement(te.A,{size:"btn-md",id:"filterToggle",disabled:!1,onToggle:()=>a(!t),toggled:t,toggleClassName:"btn-toggle-primary"}))))};function co(e){let{onExited:t,onConfirm:a,title:s,subtitle:n,includeDisclaimer:i,buttonText:r}=e;const{formatMessage:l}=(0,A.useIntl)();return C.createElement(Gn.Modal,{className:"SaveConfirmationModal",dialogClassName:"SaveConfirmationModal__dialog",show:!0,onExited:t,onHide:t},C.createElement(Gn.Modal.Header,{closeButton:!0},C.createElement("div",{className:"title"},s)),C.createElement(Gn.Modal.Body,null,n,i&&C.createElement("div",{className:"disclaimer"},C.createElement("div",{className:"Icon"},C.createElement(w.InformationOutlineIcon,null)),C.createElement("div",{className:"Body"},C.createElement("div",{className:"Title"},l({id:"admin.ip_filtering.save_disclaimer_title",defaultMessage:"Using the Customer Portal to restore access"})),C.createElement("div",{className:"Subtitle"},C.createElement(A.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=>C.createElement(Ge.A,{location:"save_confirmation_modal",href:"https://customers.mattermost.com/console/ip_filtering"},e)}}))))),C.createElement(Gn.Modal.Footer,null,C.createElement("button",{type:"button",className:"btn btn-tertiary",onClick:t},l({id:"admin.ip_filtering.cancel",defaultMessage:"Cancel"})),C.createElement("button",{"data-testid":"save-confirmation-button",type:"button",className:"btn btn-primary btn-danger",onClick:()=>a?.()},r)))}const mo=e=>{let{baseText:t,baseIsMarkdown:a,baseTextValues:s,hoverText:n}=e;return C.createElement(C.Fragment,null,C.createElement(mt,{isMarkdown:a,text:t,textValues:s})," ",C.createElement(Nt.A,{className:"ldap-help-text-hover-tooltip",title:C.createElement(mt,{text:n})},C.createElement("button",{type:"button",className:"ldap-help-text-more-info"},C.createElement(A.FormattedMessage,{id:"admin.ldap.more_info",defaultMessage:"More Info"}))))},uo=(e,t,a)=>{if(!t||"banner"===e.type||!e.help_text)return C.createElement("span",null,"");let s,n,i;return"disabled_help_text"in e&&e.disabled_help_text&&a?(s=e.disabled_help_text,n=e.disabled_help_text_markdown,i=e.disabled_help_text_values):(s=e.help_text,n=e.help_text_markdown,i=e.help_text_values),e.help_text_more_info?C.createElement(mo,{baseText:s,baseIsMarkdown:n,baseTextValues:i,hoverText:e.help_text_more_info}):C.createElement(mt,{isMarkdown:n,text:s,textValues:i})},go=e=>{const t=(0,A.useIntl)();if(!e.schema||!e.setting.key||"bool"!==e.setting.type)return null;const a=Ft(e.setting,e.schema,t),s=uo(e.setting,e.schema,Boolean(e.disabled));return C.createElement(F,{key:e.schema.id+"_bool_"+e.setting.key,id:e.setting.key,label:a,helpText:s,value:e.value,disabled:e.disabled,setByEnv:e.setByEnv,onChange:e.onChange})},po=(0,A.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."}}),ho=e=>{const t=(0,A.useIntl)();if(!e.schema||"button"!==e.setting.type)return null;const a=Ut(e.setting,e.schema,Boolean(e.disabled)),s=Ft(e.setting,e.schema,t);return C.createElement(lt,{id:e.setting.key,key:e.schema.id+"_text_"+e.setting.key,requestAction:(a,s)=>{e.setting.skipSaveNeeded||!1===e.saveNeeded?e.setting.action((n=>{const i="LdapSettings.TestAttributes"===e.setting.key,r="LdapSettings.TestFilters"===e.setting.key,l="LdapSettings.TestGroupAttributes"===e.setting.key;if((r||i||l)&&e.onFilterTestResults&&n)if(e.onFilterTestResults(n),Array.isArray(n)&&n.every((e=>""===e.error)))a?.();else{const e=n.filter((e=>""!==e.error)).length,a=n.length;let r;r=l?po.testGroupAttributesPartialFailure:i?po.testAttributesPartialFailure:po.testFiltersPartialFailure,s({message:t.formatMessage(r,{failedCount:e,totalCount:a})})}else a?.()}),s,e.ldapSettingsState):s({message:t.formatMessage({id:"admin_settings.save_unsaved_changes",defaultMessage:"Please save unsaved changes first"})})},helpText:a,loadingText:Pt(e.setting.loading,t),buttonText:C.createElement("span",null,s),showSuccessMessage:Boolean(e.setting.success_message),disabled:e.disabled,errorMessage:e.setting.error_message,successMessage:e.setting.success_message,flushLeft:!0,buttonType:"primary"})},fo=e=>{const t=(0,A.useIntl)();if(!e.schema||"custom"!==e.setting.type)return null;const a=Ft(e.setting,e.schema,t),s=Ut(e.setting,e.schema,Boolean(e.disabled)),n=e.setting.component,i=C.createElement(n,{key:e.schema.id+"_custom_"+e.setting.key,id:e.setting.key,label:a,helpText:s,value:e.value,disabled:e.disabled,config:e.config,license:e.license,setByEnv:e.setByEnv,onChange:e.onChange,registerSaveAction:e.registerSaveAction,setSaveNeeded:e.setS
1aveNeeded,unRegisterSaveAction:e.unRegisterSaveAction,cancelSubmit:e.cancelSubmit,showConfirm:e.showConfirmId===e.setting.key});return e.setting.showTitle?C.createElement(Ae,{label:a,inputId:e.setting.key,helpText:s},i):i},Eo=e=>{const t=(0,A.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 s=a.map((e=>({value:e.value,text:Pt(e.display_name,t)}))),n=e.state[e.setting.key]??s[0].value;let i=null;for(const e of a)if(e.help_text&&e.value===n){i=e;break}let r=!1;e.setting.isHelpHidden&&(r="function"==typeof e.setting.isHelpHidden?e.setting.isHelpHidden(e.config,e.state,e.license,e.enterpriseReady):e.setting.isHelpHidden);const l=Ft(e.setting,e.schema,t);let o="";return r||(o=i?Ht(i):Ut(e.setting,e.schema,Boolean(e.disabled))),C.createElement(we,{key:e.schema.id+"_dropdown_"+e.setting.key,id:e.setting.key,values:s,label:l,helpText:o,value:n,disabled:e.disabled,setByEnv:e.setByEnv,onChange:e.onChange})},Mo=e=>{const t=(0,A.useIntl)(),[a,s]=(0,C.useState)(!1);if(!e.schema||!e.setting.key||e.setting.type!==ve.v5.TYPE_EXPANDABLE_SETTING)return C.createElement(C.Fragment,null);const n=e.setting.settings||[],i=Ft(e.setting,e.schema,t),r=`ldap-expandable-content-${e.setting.key}`;return C.createElement("div",{className:"ldap-expandable-section"},C.createElement("div",{className:"ldap-expandable-section-header"},C.createElement("button",{"data-testid":`${e.setting.key}button`,className:"ldap-expandable-section-toggle",onClick:e=>{e.preventDefault(),e.stopPropagation(),s(!a)},"aria-expanded":a,"aria-controls":r},i),C.createElement("i",{className:"fa fa-caret-right ldap-expandable-arrow "+(a?"open":"")})),C.createElement("div",{id:r,className:"ldap-expandable-section-content "+(a?"expanded":"")},n.map(((t,a)=>C.createElement("div",{key:t.key||`setting-${a}`},e.buildSettingFunction(t))))))},bo=e=>{const t=(0,A.useIntl)();if(!e.schema||"fileupload"!==e.setting.type||!e.setting.key)return null;if(e.value){const a=(t,a)=>{e.setting.remove_action((()=>{e.onChange(t,""),e.fileUploadSetstate(e.setting.key,null,null)}),(t=>{a(),e.fileUploadSetstate(e.setting.key,null,t.message)}))},s=Ft(e.setting,e.schema,t),n=uo(e.setting,e.schema,Boolean(e.disabled));return C.createElement(st,{id:e.schema.id,key:e.schema.id+"_fileupload_"+e.setting.key,label:s,helpText:n,removeButtonText:Pt(e.setting.remove_button_text,t),removingText:Pt(e.setting.removing_text,t),fileName:e.value,onSubmit:a,disabled:e.disabled,setByEnv:e.setByEnv})}const a=Ft(e.setting,e.schema,t),s=uo(e.setting,e.schema,Boolean(e.disabled));return C.createElement(Re,{id:e.setting.key,key:e.schema.id+"_fileupload_"+e.setting.key,label:a,helpText:s,uploadingText:Pt(e.setting.uploading_text,t),disabled:e.disabled,fileType:e.setting.fileType,onSubmit:(t,a,s)=>{e.setting.upload_action(a,(a=>{e.onChange(t,a),e.fileUploadSetstate(e.setting.key,a,null),s?.()}),(e=>{s?.(e.message)}))},error:e.error})},_o=e=>{const t=(0,A.useIntl)();if(!e.schema||"jobstable"!==e.setting.type)return null;const a=Ut(e.setting,e.schema,Boolean(e.disabled));return C.createElement(Ze,{key:e.schema.id+"_jobstable_"+e.setting.key,jobType:e.setting.job_type,getExtraInfoText:e.setting.render_job,disabled:e.disabled,createJobButtonText:Pt(e.setting.label,t),createJobHelpText:a})};function yo(e){return null==e||Number.isNaN(e)?"":String(e)}const vo=(0,A.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 {}}"}}),So=e=>{const t=(0,A.useIntl)();if(!e.schema||!e.setting.key||"text"!==e.setting.type&&"longtext"!==e.setting.type&&"number"!==e.setting.type)return null;let a,s="text";if(e.setting.type===ve.Ay.SettingsTypes.TYPE_NUMBER?s="number":e.setting.type===ve.Ay.SettingsTypes.TYPE_LONG_TEXT&&(s="textarea"),e.setting.dynamic_value){const t=e.state[e.setting.key]??(e.setting.default||""),s=e.setting.dynamic_value(t,e.config,e.state);a=yo(s)}else if(e.setting.multiple){const t=e.state[e.setting.key]?e.state[e.setting.key].join(","):"";a=yo(t)}else{const t=e.state[e.setting.key]??(e.setting.default||"");a=yo(t)}let n=null;if(e.setting.validate){const s=e.setting.validate(a).error(t);n=s?C.createElement(Ke.Ay,{type:Ke.Nq,error:s}):n}const i=Ft(e.setting,e.schema,t),r=uo(e.setting,e.schema,Boolean(e.disabled)),l=null!=e.f
1ilterResult&&(""!==e.filterResult.test_value||""!==e.filterResult?.error),o=function(e){if(!e)return!1;return new Set(["BaseDN","UserFilter","GroupFilter","GuestFilter","AdminFilter"]).has(e.test_name)}(e.filterResult),d=function(e){if(!e)return!1;return new Set(["GroupDisplayNameAttribute","GroupIdAttribute"]).has(e.test_name)}(e.filterResult),c=(o?e.filterResult?.total_count:e.filterResult?.entries_with_value)||0,m=""===e.filterResult?.error&&c>0,u=""===e.filterResult?.error&&0===c,g=m?"icon icon-check-circle":"icon icon-alert-outline",p=m?"success":u?"warning":"error";return C.createElement("div",{className:"ldap-text-setting"},C.createElement(ht,{key:e.schema.id+"_text_"+e.setting.key,id:e.setting.key,multiple:e.setting.multiple,type:s,label:i,helpText:r,placeholder:e.setting.placeholder,value:a,disabled:e.disabled,setByEnv:e.setByEnv,onChange:e.onChange,maxLength:e.setting.max_length,footer:n}),l&&C.createElement(Nt.A,{title:(()=>{if(!e.filterResult)return"";const s=e.filterResult.total_count||0,n=l&&(""===a||"UserFilter"===e.filterResult.test_name||"GroupFilter"===e.filterResult.test_name),i=n?e.filterResult.test_value:"",r=n;if(m){let e;return e=o?vo.filterTestSuccess:d?vo.groupAttributeTestSuccess:vo.attributeTestSuccess,t.formatMessage(e,{countReturned:c,totalCount:s,testValue:i,showTestValue:r})}if(u){let e;return e=o?vo.filterTestWarning:d?vo.groupAttributeTestWarning:vo.attributeTestWarning,t.formatMessage(e,{totalCount:s,testValue:i,showTestValue:r})}let g;g=o?vo.filterTestFailed:d?vo.groupAttributeTestFailed:vo.attributeTestFailed;const p=e.filterResult.error||"",h=Boolean(e.filterResult.error);return t.formatMessage(g,{testValue:i,showTestValue:r,error:p,showError:h})})(),forcedPlacement:"top"},C.createElement("i",{className:`${g} filter-icon ${p}`})))},Co=/^\*+$/,Ao={id:"LdapSettings",name:(0,A.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,A.defineMessage)({id:"admin.ldap.enableTitle",defaultMessage:"Enable sign-in with AD/LDAP:"}),help_text:(0,A.defineMessage)({id:"admin.ldap.enableDesc",defaultMessage:"When true, Mattermost allows login using AD/LDAP"}),isDisabled:Jt(ga(_.AUTHENTICATION.LDAP))},{type:"bool",key:"LdapSettings.EnableSync",label:(0,A.defineMessage)({id:"admin.ldap.enableSyncTitle",defaultMessage:"Enable Synchronization with AD/LDAP:"}),help_text:(0,A.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:Jt(ga(_.AUTHENTICATION.LDAP))},{type:"text",key:"LdapSettings.LoginFieldName",label:(0,A.defineMessage)({id:"admin.ldap.loginNameTitle",defaultMessage:"Login Field Name:"}),placeholder:(0,A.defineMessage)({id:"admin.ldap.loginNameEx",defaultMessage:'E.g.: "AD/LDAP Username"'}),help_text:(0,A.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:Qt(Jt(ga(_.AUTHENTICATION.LDAP)),Kt(ta("LdapSettings.Enable"),ta("LdapSettings.EnableSync")))},{type:"text",key:"LdapSettings.LdapServer",label:(0,A.defineMessage)({id:"admin.ldap.serverTitle",defaultMessage:"AD/LDAP Server:"}),help_text:(0,A.defineMessage)({id:"admin.ldap.serverDesc",defaultMessage:"The domain or IP address of AD/LDAP server."}),placeholder:(0,A.defineMessage)({id:"admin.ldap.serverEx",defaultMessage:'E.g.: "10.0.0.23"'}),isDisabled:Qt(Jt(ga(_.AUTHENTICATION.LDAP)),Kt(ta("LdapSettings.Enable"),ta("LdapSettings.EnableSync")))},{type:"number",key:"LdapSettings.LdapPort",label:(0,A.defineMessage)({id:"admin.ldap.portTitle",defaultMessage:"AD/LDAP Port:"}),help_text:(0,A.defineMessage)({id:"admin.ldap.portDesc",defaultMessage:"The port Mattermost will use to connect to the AD/LDAP server. Default is 389."}),placeholder:(0,A.defineMessage)({id:"admin.ldap.portEx",defaultMessage:'E.g.: "389"'}),isDisabled:Qt(Jt(ga(_.AUTHENTICATION.LDAP)),Kt(ta("LdapSettings.Enable"),ta("LdapSettings.EnableSync")))},{type:"text",key:"LdapSettings.BindUsername",label:(0,A.defineMessage)({id:"admin.ldap.bindUserTitle",defaultMessage:"Bind Username:"}
1),help_text:(0,A.defineMessage)({id:"admin.ldap.bindUserDesc",defaultMessage:"The username used to perform the AD/LDAP search."}),help_text_more_info:(0,A.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:Qt(Jt(ga(_.AUTHENTICATION.LDAP)),Kt(ta("LdapSettings.Enable"),ta("LdapSettings.EnableSync")))},{type:"text",key:"LdapSettings.BindPassword",label:(0,A.defineMessage)({id:"admin.ldap.bindPwdTitle",defaultMessage:"Bind Password:"}),help_text:(0,A.defineMessage)({id:"admin.ldap.bindPwdDesc",defaultMessage:'Password of the user given in "Bind Username".'}),onConfigSave:e=>{if("string"!=typeof e||!Co.test(e))return e},isDisabled:Qt(Jt(ga(_.AUTHENTICATION.LDAP)),Kt(ta("LdapSettings.Enable"),ta("LdapSettings.EnableSync")))},{type:"dropdown",key:"LdapSettings.ConnectionSecurity",label:(0,A.defineMessage)({id:"admin.connectionSecurityTitle",defaultMessage:"Connection Security:"}),help_text:bn,options:[{value:"",display_name:(0,A.defineMessage)({id:"admin.connectionSecurityNone",defaultMessage:"None"})},{value:"TLS",display_name:(0,A.defineMessage)({id:"admin.connectionSecurityTls",defaultMessage:"TLS (Recommended)"})},{value:"STARTTLS",display_name:(0,A.defineMessage)({id:"admin.connectionSecurityStart",defaultMessage:"STARTTLS"})}],isDisabled:Qt(Jt(ga(_.AUTHENTICATION.LDAP)),Kt(ta("LdapSettings.Enable"),ta("LdapSettings.EnableSync")))},{type:"bool",key:"LdapSettings.SkipCertificateVerification",label:(0,A.defineMessage)({id:"admin.ldap.skipCertificateVerification",defaultMessage:"Skip Certificate Verification:"}),help_text:(0,A.defineMessage)({id:"admin.ldap.skipCertificateVerificationDesc",defaultMessage:"Skips the certificate verification step for TLS or STARTTLS connections."}),help_text_more_info:(0,A.defineMessage)({id:"admin.ldap.skipCertificateVerificationDescHover",defaultMessage:"Skipping certificate verification is not recommended for production environments where TLS is required."}),isDisabled:Qt(Jt(ga(_.AUTHENTICATION.LDAP)),ta("LdapSettings.ConnectionSecurity"))},{type:"fileupload",key:"LdapSettings.PrivateKeyFile",label:(0,A.defineMessage)({id:"admin.ldap.privateKeyFileTitle",defaultMessage:"Private Key:"}),help_text:(0,A.defineMessage)({id:"admin.ldap.privateKeyFileFileDesc",defaultMessage:"The private key file for TLS Certificate."}),help_text_more_info:(0,A.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,A.defineMessage)({id:"admin.ldap.privateKeyFileFileRemoveDesc",defaultMessage:"Remove the private key file for TLS Certificate."}),remove_button_text:(0,A.defineMessage)({id:"admin.ldap.remove.privKey",defaultMessage:"Remove TLS Certificate Private Key"}),removing_text:(0,A.defineMessage)({id:"admin.ldap.removing.privKey",defaultMessage:"Removing Private Key..."}),uploading_text:(0,A.defineMessage)({id:"admin.ldap.uploading.privateKey",defaultMessage:"Uploading Private Key..."}),isDisabled:Qt(Jt(ga(_.AUTHENTICATION.LDAP)),Kt(ta("LdapSettings.Enable"),ta("LdapSettings.EnableSync"))),fileType:".key",upload_action:p.rh,remove_action:p.U3},{type:"fileupload",key:"LdapSettings.PublicCertificateFile",label:(0,A.defineMessage)({id:"admin.ldap.publicCertificateFileTitle",defaultMessage:"Public Certificate:"}),help_text:(0,A.defineMessage)({id:"admin.ldap.publicCertificateFileDesc",defaultMessage:"The public certificate file for TLS Certificate."}),help_text_more_info:(0,A.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,A.defineMessage)({id:"admin.ldap.publicCertificateFileRemoveDesc",defaultMessage:"Remove the public certificate file for TLS Certificate."}),remove_button_text:(0,A.defineMessage)({id:"admin.ldap.remove.sp_certificate",defaultMessage:"Remove Service Provider Certificate"}),removing_text:(0,A.defineMessage)({id:"admin.ldap.removing.certificate",defaultMessage:"Removing Certificate..."}),uploading_text:(0,A.defineMessage)({id:"admin.ldap.uploading.certificate",defaultMessage:"Uploading Certificate..."}),isDisabled:Qt(Jt(ga(_.AUTHENTICATION.LDAP)),Kt(ta("LdapSettings.Enable"),ta("LdapSettings.EnableSync"))),fileType:".crt,.cer",upload_action:p.bW,remove_action:p.o5},{type:"number",key:"LdapSettings.MaximumLoginAttempts",label:(0,A.defineMessage)({id:"admin.ldap.maximumLoginAttemptsTitle",defaultMessage:"Maximum Login Attempts:"}),help_text:(0,A.defineMessage)({id:"admin.ldap.maximumLoginAttemptsDesc",defaultMessage:"The maximum number of login attempts before the Mattermost account is locked."}),help_text_more_info:(0,A.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:Qt(Jt(ga(_.AUTHENTICATION.LDAP)),Kt(ta("LdapSettings.Enable"),ta("LdapSettings.EnableSync")))},{type:"button",action:p.oJ,key:"LdapSettings.TestConnection",isDisabled:Qt(Jt(ga(_.AUTHENTICATION.LDAP)),Kt(ta("LdapSettings.Enable"),ta("LdapSettings.EnableSync"))),label:(0,A.defineMessage)({id:"admin.ldap.testConnectionTitle",defaultMessage:"Test Connection"}),help_text:(0,A.defineMessage)({id:"admin.ldap.testHelpText",defaultMessage:'Tests if the Mattermost server can connect to the AD/LDAP server specified. Please review "System Console >
1 Logs" and <link>documentation</link> to troubleshoot errors.'}),help_text_values:{link:e=>C.createElement(Ge.A,{location:"admin_console",href:ve.Uk.CONFIGURE_AD_LDAP_QUERY_TIMEOUT},e)},help_text_markdown:!1,error_message:(0,A.defineMessage)({id:"admin.ldap.testConnectionFailure",defaultMessage:"Test Connection Failure: {error}"}),success_message:(0,A.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,A.defineMessage)({id:"admin.ldap.baseTitle",defaultMessage:"Base DN:"}),help_text:(0,A.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,A.defineMessage)({id:"admin.ldap.baseEx",defaultMessage:'E.g.: "ou=Unit Name,dc=corp,dc=example,dc=com"'}),isDisabled:Qt(Jt(ga(_.AUTHENTICATION.LDAP)),Kt(ta("LdapSettings.Enable"),ta("LdapSettings.EnableSync")))},{type:"text",key:"LdapSettings.UserFilter",label:(0,A.defineMessage)({id:"admin.ldap.userFilterTitle",defaultMessage:"User Filter:"}),help_text:(0,A.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,A.defineMessage)({id:"admin.ldap.userFilterDiscHover",defaultMessage:"Only the users selected by the query will be able to access Mattermost."}),placeholder:(0,A.defineMessage)({id:"admin.ldap.userFilterEx",defaultMessage:'Ex. "(objectClass=user)"'}),isDisabled:Qt(Jt(ga(_.AUTHENTICATION.LDAP)),Kt(ta("LdapSettings.Enable"),ta("LdapSettings.EnableSync")))},{type:"expandable_setting",key:"LdapSettings.AdditionalFilters",label:(0,A.defineMessage)({id:"admin.ldap.configure_additional_filters",defaultMessage:"Configure additional filters"}),settings:[{type:"text",key:"LdapSettings.GroupFilter",label:(0,A.defineMessage)({id:"admin.ldap.groupFilterTitle",defaultMessage:"Group Filter:"}),help_text:(0,A.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,Cs.vV)()},help_text_more_info:(0,A.defineMessage)({id:"admin.ldap.groupFilterFilterDescHover",defaultMessage:"Only the groups selected by the query will be available to Mattermost."}),placeholder:(0,A.defineMessage)({id:"admin.ldap.groupFilterEx",defaultMessage:'E.g.: "(objectClass=group)"'}),isHidden:Jt(la("LDAPGroups")),isDisabled:Qt(Jt(ga(_.AUTHENTICATION.LDAP)),ta("LdapSettings.EnableSync"))},{type:"bool",key:"LdapSettings.EnableAdminFilter",label:(0,A.defineMessage)({id:"admin.ldap.enableAdminFilterTitle",defaultMessage:"Enable Admin Filter:"}),isDisabled:Qt(Jt(pa),Kt(ta("LdapSettings.Enable"),ta("LdapSettings.EnableSync")))},{type:"text",key:"LdapSettings.AdminFilter",label:(0,A.defineMessage)({id:"admin.ldap.adminFilterTitle",defaultMessage:"Admin Filter:"}),help_text:(0,A.defineMessage)({id:"admin.ldap.adminFilterFilterDesc",defaultMessage:"(Optional) Enter an AD/LDAP filter to use for designating System Admins."}),help_text_more_info:(0,A.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,A.defineMessage)({id:"admin.ldap.adminFilterEx",defaultMessage:'E.g.: "(objectClass=user)"'}),isDisabled:Qt(Jt(pa),ta("LdapSettings.EnableAdminFilter"),Kt(ta("LdapSettings.Enable"),ta("LdapSettings.EnableSync")))},{type:"text",key:"LdapSettings.GuestFilter",label:(0,A.defineMessage)({id:"admin.ldap.guestFilterTitle",defaultMessage:"Guest Filter:"}),help_text:(0,A.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,A.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,A.defineMessage)({id:"admin.ldap.guestFilterEx",defaultMessage:'E.g.: "(objectClass=user)"'}),isDisabled:Qt(Jt(ga(_.AUTHENTICATION.LDAP)),sa("GuestAccountsSett
1ings","Enable"),Kt(ta("LdapSettings.Enable"),ta("LdapSettings.EnableSync")))}]},{type:"button",action:p.HG,key:"LdapSettings.TestFilters",isDisabled:Qt(Jt(ga(_.AUTHENTICATION.LDAP)),Kt(ta("LdapSettings.Enable"),ta("LdapSettings.EnableSync"))),label:(0,A.defineMessage)({id:"admin.ldap.testFiltersTitle",defaultMessage:"Test Filters"}),help_text:(0,A.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,A.defineMessage)({id:"admin.ldap.testFiltersFailure",defaultMessage:"We failed to apply some filters: {error}"}),success_message:(0,A.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,A.defineMessage)({id:"admin.ldap.idAttrTitle",defaultMessage:"ID Attribute: "}),placeholder:(0,A.defineMessage)({id:"admin.ldap.idAttrEx",defaultMessage:'E.g.: "objectGUID" or "uid"'}),help_text:(0,A.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,A.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=>C.createElement(Ge.A,{location:"admin_console",href:"https://docs.mattermost.com/manage/command-line-tools.html#mattermost-ldap-idmigrate"},e)},isDisabled:Qt(Jt(ga(_.AUTHENTICATION.LDAP)),Kt($t("LdapSettings.Enable",!1),$t("LdapSettings.EnableSync",!1)))},{type:"text",key:"LdapSettings.LoginIdAttribute",label:(0,A.defineMessage)({id:"admin.ldap.loginAttrTitle",defaultMessage:"Login ID Attribute: "}),placeholder:(0,A.defineMessage)({id:"admin.ldap.loginIdAttrEx",defaultMessage:'E.g.: "sAMAccountName"'}),help_text:(0,A.defineMessage)({id:"admin.ldap.loginAttrDesc",defaultMessage:"The attribute in the AD/LDAP server used to log in to Mattermost."}),help_text_more_info:(0,A.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:Qt(Jt(ga(_.AUTHENTICATION.LDAP)),Kt(ta("LdapSettings.Enable"),ta("LdapSettings.EnableSync")))},{type:"text",key:"LdapSettings.UsernameAttribute",label:(0,A.defineMessage)({id:"admin.ldap.usernameAttrTitle",defaultMessage:"Username Attribute:"}),placeholder:(0,A.defineMessage)({id:"admin.ldap.usernameAttrEx",defaultMessage:'E.g.: "sAMAccountName"'}),help_text:(0,A.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,A.defineMessage)({id:"admin.ldap.usernameAttrDescHover",defaultMessage:"This may be the same as the Login ID Attribute."}),isDisabled:Qt(Jt(ga(_.AUTHENTICATION.LDAP)),Kt(ta("LdapSettings.Enable"),ta("LdapSettings.EnableSync")))},{type:"text",key:"LdapSettings.EmailAttribute",label:(0,A.defineMessage)({id:"admin.ldap.emailAttrTitle",defaultMessage:"Email Attribute:"}),placeholder:(0,A.defineMessage)({id:"admin.ldap.emailAttrEx",defaultMessage:'E.g.: "mail" or "userPrincipalName"'}),help_text:(0,A.defineMessage)({id:"admin.ldap.emailAttrDesc",defaultMessage:"The attribute in the AD/LDAP server used to populate the email address field in Mattermost."}),isDisabled:Qt(Jt(ga(_.AUTHENTICATION.LDAP)),Kt(ta("LdapSettings.Enable"),ta("LdapSettings.EnableSync")))},{type:"text",key:"LdapSettings.FirstNameAttribute",label:(0,A.defineMessage)({id:"admin.ldap.firstnameAttrTitle",defaultMessage:"First Name Attribute:"}),placeholder:(0,A.defineMessage)({id:"admin.ldap.firstnameAttrEx",defaultMessage:'E.g.: "givenName"'}
1),help_text:(0,A.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,A.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:Qt(Jt(ga(_.AUTHENTICATION.LDAP)),Kt(ta("LdapSettings.Enable"),ta("LdapSettings.EnableSync")))},{type:"text",key:"LdapSettings.LastNameAttribute",label:(0,A.defineMessage)({id:"admin.ldap.lastnameAttrTitle",defaultMessage:"Last Name Attribute:"}),placeholder:(0,A.defineMessage)({id:"admin.ldap.lastnameAttrEx",defaultMessage:'E.g.: "sn"'}),help_text:(0,A.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,A.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:Qt(Jt(ga(_.AUTHENTICATION.LDAP)),Kt(ta("LdapSettings.Enable"),ta("LdapSettings.EnableSync")))},{type:"text",key:"LdapSettings.NicknameAttribute",label:(0,A.defineMessage)({id:"admin.ldap.nicknameAttrTitle",defaultMessage:"Nickname Attribute:"}),placeholder:(0,A.defineMessage)({id:"admin.ldap.nicknameAttrEx",defaultMessage:'E.g.: "nickname"'}),help_text:(0,A.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,A.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:Qt(Jt(ga(_.AUTHENTICATION.LDAP)),Kt(ta("LdapSettings.Enable"),ta("LdapSettings.EnableSync")))},{type:"text",key:"LdapSettings.PositionAttribute",label:(0,A.defineMessage)({id:"admin.ldap.positionAttrTitle",defaultMessage:"Position Attribute:"}),placeholder:(0,A.defineMessage)({id:"admin.ldap.positionAttrEx",defaultMessage:'E.g.: "title"'}),help_text:(0,A.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,A.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:Qt(Jt(ga(_.AUTHENTICATION.LDAP)),Kt(ta("LdapSettings.Enable"),ta("LdapSettings.EnableSync")))},{type:"text",key:"LdapSettings.PictureAttribute",label:(0,A.defineMessage)({id:"admin.ldap.pictureAttrTitle",defaultMessage:"Profile Picture Attribute:"}),placeholder:(0,A.defineMessage)({id:"admin.ldap.pictureAttrEx",defaultMessage:'E.g.: "thumbnailPhoto" or "jpegPhoto"'}),help_text:(0,A.defineMessage)({id:"admin.ldap.pictureAttrDesc",defaultMessage:"(Optional) The attribute in the AD/LDAP server used to populate the profile picture in Mattermost."}),isDisabled:Qt(Jt(ga(_.AUTHENTICATION.LDAP)),Kt(ta("LdapSettings.Enable"),ta("LdapSettings.EnableSync")))},{type:"button",action:p.zV,key:"LdapSettings.TestAttributes",label:(0,A.defineMessage)({id:"admin.ldap.testAttributesTitle",defaultMessage:"Test Attributes"}),help_text:(0,A.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:Qt(Jt(ga(_.AUTHENTICATION.LDAP)),Kt(ta("LdapSettings.Enable"),ta("LdapSettings.EnableSync"))),error_message:(0,A.defineMessage)({id:"admin.ldap.testAttributesFailure",defaultMessage:"We failed to find some attributes: {error}"}),success_message:(0,A.defineMessage)({id:"admin.ldap.testAttributesSuccess",defaultMessage:"Test Successful"})},{type:"custom",key:"LdapSettings.CustomProfileAttributes",component:Sa,isHidden:Jt(Kt(da(ve.gS.Enterprise),aa("FeatureFlags","CustomProfileAttributes")))}]},{key:"admin.authentication.ldap.group_synchronization",title:"Group Synchronization",settings:[{type:"text",key:"LdapSettings.GroupDisplayNameAttribute",label:(0,A.defineMessage)({id:"admin.ldap.groupDisplayNameAttributeTitle",defaultMessage:"Group Dis
1play Name Attribute:"}),help_text:(0,A.defineMessage)({id:"admin.ldap.groupDisplayNameAttributeDesc",defaultMessage:"The attribute in the AD/LDAP server used to populate the group display names."}),placeholder:(0,A.defineMessage)({id:"admin.ldap.groupDisplayNameAttributeEx",defaultMessage:'E.g.: "cn"'}),isHidden:Jt(la("LDAPGroups")),isDisabled:Qt(Jt(ga(_.AUTHENTICATION.LDAP)),ta("LdapSettings.EnableSync"))},{type:"text",key:"LdapSettings.GroupIdAttribute",label:(0,A.defineMessage)({id:"admin.ldap.groupIdAttributeTitle",defaultMessage:"Group ID Attribute:"}),help_text:(0,A.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,A.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,A.defineMessage)({id:"admin.ldap.groupIdAttributeEx",defaultMessage:'E.g.: "objectGUID" or "entryUUID"'}),isHidden:Jt(la("LDAPGroups")),isDisabled:Qt(Jt(ga(_.AUTHENTICATION.LDAP)),ta("LdapSettings.EnableSync"))},{type:"button",action:p.c,key:"LdapSettings.TestGroupAttributes",label:(0,A.defineMessage)({id:"admin.ldap.testGroupAttributesTitle",defaultMessage:"Test Group Attributes"}),help_text:(0,A.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:Qt(Jt(ga(_.AUTHENTICATION.LDAP)),Kt(ta("LdapSettings.Enable"),ta("LdapSettings.EnableSync"))),error_message:(0,A.defineMessage)({id:"admin.ldap.testGroupAttributesFailure",defaultMessage:"We failed to find some attributes: {error}"}),success_message:(0,A.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,A.defineMessage)({id:"admin.ldap.syncIntervalTitle",defaultMessage:"Synchronization Interval (minutes):"}),help_text:(0,A.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:Qt(Jt(ga(_.AUTHENTICATION.LDAP)),Kt(ta("LdapSettings.Enable"),ta("LdapSettings.EnableSync")))},{type:"number",key:"LdapSettings.MaxPageSize",label:(0,A.defineMessage)({id:"admin.ldap.maxPageSizeTitle",defaultMessage:"Maximum Page Size:"}),placeholder:(0,A.defineMessage)({id:"admin.ldap.maxPageSizeEx",defaultMessage:'E.g.: "2000"'}),help_text:(0,A.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:Qt(Jt(ga(_.AUTHENTICATION.LDAP)),Kt(ta("LdapSettings.Enable"),ta("LdapSettings.EnableSync")))},{type:"number",key:"LdapSettings.QueryTimeout",label:(0,A.defineMessage)({id:"admin.ldap.queryTitle",defaultMessage:"Query Timeout (seconds):"}),placeholder:(0,A.defineMessage)({id:"admin.ldap.queryEx",defaultMessage:'E.g.: "60"'}),help_text:(0,A.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:Qt(Jt(ga(_.AUTHENTICATION.LDAP)),Kt(ta("LdapSettings.Enable"),ta("LdapSettings.EnableSync")))}]},{key:"admin.authentication.ldap.synchronization_history",title:"Synchronize users to the system",subt
1itle:"See the table below for the status of each synchronization",sectionTitle:"Sync History",settings:[{type:"jobstable",job_type:ve.Ay.JobTypes.LDAP_SYNC,label:(0,A.defineMessage)({id:"admin.ldap.sync_button",defaultMessage:"AD/LDAP Synchronize Now"}),help_text:(0,A.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=>C.createElement(Ge.A,{location:"admin_console",href:ve.Uk.SETUP_LDAP},e)},isDisabled:Qt(Jt(ga(_.AUTHENTICATION.LDAP)),ta("LdapSettings.EnableSync")),render_job:e=>{if("pending"===e.status)return C.createElement("span",null,"--");let t,a=0,s=0,n=0,i=0,r=0,l=0,o=0;return e&&e.data&&(e.data.ldap_users_count&&e.data.ldap_users_count.length>0&&(a=e.data.ldap_users_count),e.data.delete_count&&e.data.delete_count.length>0&&(s=e.data.delete_count),e.data.update_count&&e.data.update_count.length>0&&(n=e.data.update_count),e.data.ldap_groups_count&&(t=e.data.ldap_groups_count),e.data.total_ldap_groups_count&&(i=e.data.total_ldap_groups_count),e.data.group_delete_count&&(r=e.data.group_delete_count),e.data.group_member_delete_count&&(l=e.data.group_member_delete_count),e.data.group_member_add_count&&(o=e.data.group_member_add_count)),C.createElement("span",null,C.createElement(A.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:a,ldapGroups:t||i}}),C.createElement("ul",null,n>0&&C.createElement("li",null,C.createElement(A.FormattedMessage,{id:"admin.ldap.jobExtraInfo.updatedUsers",defaultMessage:"Updated {updateCount, number} users.",values:{updateCount:n}})),s>0&&C.createElement("li",null,C.createElement(A.FormattedMessage,{id:"admin.ldap.jobExtraInfo.deactivatedUsers",defaultMessage:"Deactivated {deleteCount, number} users.",values:{deleteCount:s}})),r>0&&C.createElement("li",null,C.createElement(A.FormattedMessage,{id:"admin.ldap.jobExtraInfo.deletedGroups",defaultMessage:"Deleted {groupDeleteCount, number} groups.",values:{groupDeleteCount:r}})),l>0&&C.createElement("li",null,C.createElement(A.FormattedMessage,{id:"admin.ldap.jobExtraInfo.deletedGroupMembers",defaultMessage:"Deleted {groupMemberDeleteCount, number} group members.",values:{groupMemberDeleteCount:l}})),o>0&&C.createElement("li",null,C.createElement(A.FormattedMessage,{id:"admin.ldap.jobExtraInfo.addedGroupMembers",defaultMessage:"Added {groupMemberAddCount, number} group members.",values:{groupMemberAddCount:o}}))))}}]}]},To={root:null,rootMargin:"-40% 0px -40% 0px",threshold:.01},No={"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"},ko=new Set(["BaseDN","UserFilter","GroupFilter","GuestFilter","AdminFilter"]),wo=new Set(["IdAttribute","LoginIdAttribute","UsernameAttribute","EmailAttribute","FirstNameAttribute","LastNameAttribute","NicknameAttribute","PositionAttribute","PictureAttribute"]),Io=new Set(["GroupDisplayNameAttribute","GroupIdAttribute"]),Ro=e=>ko.has(e),Lo=e=>wo.has(e),xo=e=>Io.has(e),Do=e=>{const t=Ao,[a,s]=(0,C.useState)({saveNeeded:!1,saving:!1,serverError:null,confirmNeededId:"",showConfirmId:"",clientWarning:""});C.useEffect((()=>
1{if(e.config&&t){const a=Ot.getStateFromConfig(e.config,t,e.roles);s((e=>({...e,...a,prevSchemaId:t.id})))}}),[e.config,e.roles,t]);const[n,i]=(0,C.useState)([]),[r,l]=(0,C.useState)(null),o=(0,C.useCallback)((e=>{const t=No[e];return t&&r&&r.find((e=>e.test_name===t))||null}),[r]),d=(0,C.useCallback)(((e,t)=>{const a=e.filter((e=>""!==e.test_value||""!==e?.error));l((e=>{const s={filter:Ro,attribute:Lo,groupAttribute:xo}[t]||(()=>!1);return[...e?e.filter((e=>!s(e.test_name))):[],...a]}))}),[]),c=(0,C.useMemo)((()=>t&&"sections"in t&&t.sections?t.sections:[]),[t]),m=(0,C.useMemo)((()=>c.map((e=>e.key))),[c]),{activeSectionKey:u,sectionRefs:g}=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const[a,s]=(0,C.useState)(e.length>0?e[0]:null),[n,i]=(0,C.useState)(new Set),r=(0,C.useRef)({});return(0,C.useEffect)((()=>{if(0===e.length)return;const a=new IntersectionObserver((e=>{i((t=>{const a=new Set(t);return e.forEach((e=>{const t=e.target.dataset.sectionKey;t&&(e.isIntersecting?a.add(t):a.delete(t))})),a}))}),t);return e.forEach((e=>{const t=r.current[e];t&&a.observe(t)})),()=>{a.disconnect()}}),[e,t]),(0,C.useEffect)((()=>{let t=null;if(n.size>0)for(const a of e)if(n.has(a)){t=a;break}(t&&t!==a||!a&&t&&e.length>0)&&s(t)}),[n,e,a]),{activeSectionKey:a,setActiveSectionKey:s,sectionRefs:r}}(m,To),p=s=>{const n=o(s.key||"");return C.createElement(So,{config:e.config,key:t.id+"_text_"+s.key,state:a,onChange:y,schema:t,disabled:M(s),setByEnv:Bt(s.key,e.environmentConfig),setting:s,filterResult:n})},h=(e,t,a)=>{s((s=>({...s,[e]:t,[e+"Error"]:a})))},f=()=>null,E={[ve.Ay.SettingsTypes.TYPE_TEXT]:p,[ve.Ay.SettingsTypes.TYPE_LONG_TEXT]:p,[ve.Ay.SettingsTypes.TYPE_NUMBER]:p,[ve.Ay.SettingsTypes.TYPE_BOOL]:s=>C.createElement(go,{key:t.id+"_bool_"+s.key,value:a[s.key]||!1,onChange:y,schema:t,disabled:M(s),setByEnv:Bt(s.key,e.environmentConfig),setting:s}),[ve.Ay.SettingsTypes.TYPE_DROPDOWN]:s=>C.createElement(Eo,{config:e.config,license:e.license,enterpriseReady:e.enterpriseReady,key:t.id+"_dropdown_"+s.key,state:a,onChange:y,schema:t,disabled:M(s),setByEnv:Bt(s.key,e.environmentConfig),setting:s}),[ve.Ay.SettingsTypes.TYPE_BUTTON]:s=>{let n=JSON.parse(JSON.stringify(e.config));var i;return n=Vt(n,a,t,M),"LdapSettings.TestFilters"===s.key?i=e=>d(e,"filter"):"LdapSettings.TestAttributes"===s.key?i=e=>d(e,"attribute"):"LdapSettings.TestGroupAttributes"===s.key&&(i=e=>d(e,"groupAttribute")),C.createElement(ho,{key:t.id+"_button_"+s.key,saveNeeded:!1,schema:t,disabled:M(s),setting:s,ldapSettingsState:n.LdapSettings,onFilterTestResults:i})},[ve.Ay.SettingsTypes.TYPE_JOBSTABLE]:e=>C.createElement(_o,{key:t.id+"_jobstable_"+e.key,schema:t,disabled:M(e),setting:e}),[ve.Ay.SettingsTypes.TYPE_FILE_UPLOAD]:s=>C.createElement(bo,{key:t.id+"_fileupload_"+s.key,value:a[s.key],onChange:y,fileUploadSetstate:h,schema:t,disabled:M(s),setByEnv:Bt(s.key,e.environmentConfig),setting:s}),[ve.Ay.SettingsTypes.TYPE_CUSTOM]:s=>C.createElement(fo,{config:e.config,license:e.license,key:t.id+"_custom_"+s.key,schema:t,setting:s,value:a[s.key],disabled:M(s),setByEnv:Bt(s.key,e.environmentConfig),onChange:y,registerSaveAction:T,setSaveNeeded:N,unRegisterSaveAction:S,cancelSubmit:k,showConfirmId:a.showConfirmId}),[ve.Ay.SettingsTypes.TYPE_EXPANDABLE_SETTING]:e=>C.createElement(Mo,{key:t.id+"_expandable_"+e.key,schema:t,setting:e,buildSettingFunction:e=>E[e.type]&&!b(e)?E[e.type](e):null}),[ve.Ay.SettingsTypes.TYPE_COLOR]:f,[ve.Ay.SettingsTypes.TYPE_PERMISSION]:f,[ve.Ay.SettingsTypes.TYPE_RADIO]:f,[ve.Ay.SettingsTypes.TYPE_BANNER]:f,[ve.Ay.SettingsTypes.TYPE_GENERATED]:f,[ve.Ay.SettingsTypes.TYPE_USERNAME]:f,[ve.Ay.SettingsTypes.TYPE_LANGUAGE]:f,[ve.Ay.SettingsTypes.TYPE_ROLES]:f},M=t=>"function"==typeof t.isDisabled?t.isDisabled(e.config,a,e.license,e.enterpriseReady,e.consoleAccess,e.cloud,e.isCurrentUserSystemAdmin):Boolean(t.isDisabled),b=t=>"function"==typeof t.isHidden?t.isHidden(e.config,a,e.license):Boolean(t.isHidden),_=async i=>{if(!t)return;let r=JSON.parse(JSON.stringify(e.config));r=Vt(r,a,t,M);const{error:l}=await e.patchConfig(r);s(l?e=>({...e,serverError:l.message,serverErrorId:l.id}):e=>({...e,...i(r,t)}));const o=[];for(const e of n)o.push(e());const d=await Promise.all(o).then((e=>e.some((e=>e.error&&e.error.message))));l||d?s((e=>({...e,saving:!1}))):(s((e=>({...e,saving:!1,saveNeeded:!1,confirmNeededId:"",showConfirmId:"",clientWarning:"",serverError:null}))),e.setNavigationBlocked(!1))},y=function(t,n){let i=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"===n&&c&&(d=!1);const m=!1===o?a.clientWarning:o;let u=i?t:a.confirmNeededId;if(t!==a.confirmNeededId||i||(u=""),s((e=>({...e,saveNeeded:d,confirmNeededId:u,clientWarning:m,[t]:n}))),t in No){const e=No[t];l((t=>t?t.filter((t=>t.test_name!==e)):null))}r&&_(Ot.getStateFromConfig),e.setNavigationBlocked(!0)},v=async t=>{t.preventDefault(),a.confirmNeededId?s((e=>({...e,showConfirmId:e.confirmNeededId}))):(s((e=>({...e,saving:!0,serverError:null}))),"both"===a.saveNeeded||"config"===a.saveNeeded?_(Ot.getStateFromConfig):(s((e=>({...e,saving:!1,saveNeeded:!1,serverError:null}))),e.setNavigationBlocked(!1)))},S=(0,C.useCallback)((e=>{i((t=>t.filter((t=>t!==e))))}),[]),T=(0,C.useCallback)((e=>{i((t=>[...t,e]))}),[]),N=()=>{s((e=>({...e,saveNeeded:"config"}))),e.setNavigationBlocked(!0)},k=()=>{s((e=>({...e,showConfirmId:""})))},w=()=>
1{if(!t||!("settings"in t)||!t.settings)return!0;for(const s of t.settings)if("key"in s&&s.key&&!Bt(s.key,e.environmentConfig)&&"validate"in s&&s.validate){if("isHidden"in s){let t=!1;if(t="function"==typeof s.isHidden?s.isHidden?.(e.config,a,e.license,e.enterpriseReady,e.consoleAccess,e.cloud,e.isCurrentUserSystemAdmin):Boolean(s.isHidden),t)continue}if(!s.validate(a[s.key]).isValid())return!1}return!0};return C.createElement("div",{className:"wrapper--fixed ldap-wizard-wrapper","data-testid":`sysconsole_section_${t?.id}`},(()=>{if(!t)return"";let e=t.id;return"name"in t&&(e=t.name),"string"==typeof e?C.createElement(fe,null,e):C.createElement(fe,null,C.createElement(A.FormattedMessage,e))})(),C.createElement("div",{className:"ldap-wizard-content-wrapper"},C.createElement("div",{className:"ldap-wizard-sidebar"},C.createElement("div",{className:"ldap-wizard-sidebar-header"},C.createElement("i",{className:"icon icon-text-box-outline"}),C.createElement(A.FormattedMessage,{id:"admin.ldap_wizard.sections_header",defaultMessage:"Sections"})),c.map((e=>{const t=e.sectionTitle||e.title;return C.createElement("button",{key:e.key+"-sidebar-item",className:"ldap-wizard-sidebar-item "+(e.key===u?"ldap-wizard-sidebar-item--active":""),onClick:()=>{const t=g.current[e.key];t&&t.scrollIntoView({behavior:"smooth",block:"start"})}},(0,Ms.Zk)(t)?C.createElement(A.FormattedMessage,t):t)}))),C.createElement("div",{className:"admin-console__wrapper"},C.createElement("div",{className:"admin-console__content"},C.createElement("form",{className:"form-horizontal",onSubmit:v},(()=>{const e=c.map((e=>{const t=[];if(e.settings&&e.settings.forEach((e=>{E[e.type]&&!b(e)&&t.push(E[e.type](e))})),e.component){const a=e.component;return C.createElement(a,{settingsList:t,key:e.key})}let a,s;return e.header&&(a=C.createElement("div",{className:"banner"},C.createElement(mt,{text:e.header,isMarkdown:!0}))),e.footer&&(s=C.createElement("div",{className:"banner"},C.createElement(mt,{text:e.footer,isMarkdown:!0}))),C.createElement("div",{className:"config-section",key:e.key,"data-section-key":e.key,ref:t=>{g.current&&(g.current[e.key]=t)}},C.createElement(gt,{show:!0,title:e.title,subtitle:e.subtitle},C.createElement("div",{className:"section-body"},a,t,s)))}
1));return C.createElement("div",null,e)})()),(()=>{if(t&&"component"in t&&t.component){const a=t.component;return C.createElement(a,Object.assign({},e,{disabled:e.isDisabled}))}return null})()))),C.createElement("div",{className:"admin-console-save"},C.createElement(ue.A,{saving:a.saving,disabled:!a.saveNeeded||w&&!w(),onClick:v,savingMessage:e.intl.formatMessage({id:"admin.saving",defaultMessage:"Saving Config..."})}),C.createElement(Nt.A,{title:a?.serverError??""},C.createElement("div",{className:"error-message","data-testid":"errorMessage"},C.createElement(Ke.Ay,{iconClassName:"fa-exclamation-triangle",textClassName:"has-warning",error:a.clientWarning}),C.createElement(Ke.Ay,{error:a.serverError})))))};var Po=a(84013),Oo=a(83021),Fo=a(9003),Uo=a.n(Fo),Bo=a(45222),Ho=a(82833);const Go=(0,A.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"}}),Vo=e=>{let{openEELicenseModal:t,upgradedFromTE:a,license:n,isTrialLicense:i,handleRemove:r,isDisabled:l,removing:o,fileInputRef:d,handleChange:m,statsActiveUsers:u,isLicenseSetByEnvVar:g}=e;const{formatMessage:p}=(0,A.useIntl)(),[h,f]=(0,C.useState)(n),{openPricingModal:E,isAirGapped:M}=(0,ri.A)(),[b]=(0,ai.A)(),_=(0,Bo.A)("EnableMattermostEntry");(0,C.useEffect)((()=>{!async function(){try{const e=await I.mT.getClientLicenseOld();f(e)}catch{}}()}),[n]);const y=(0,s.useSelector)(Pa.Mz),v=(0,s.useSelector)(c.zj),S="true"===v?.EnableGuestAccounts,T=S?y?.singleChannelGuestCount??0:0,N=S?y?.singleChannelGuestLimit??0:0,k=(0,Ho.t)(h.SkuShortName,"true"===h.IsGovSku),w=(0,L.RF)(parseInt(h.ExpiresAt,10)),R=h.SkuShortName===ve.gS.Entry,x=M?null:C.createElement("button",{id:"enterprise_edition_view_plans",onClick:E,className:"btn btn-tertiary btn-sm PlanDetails__viewPlansButton"},p({id:"workspace_limits.menu_limit.view_plans",defaultMessage:"View plans"}));return R?C.createElement("div",{className:"EnterpriseEditionLeftPanel","data-testid":"EnterpriseEditionLeftPanel"},C.createElement("div",{className:"EnterpriseEditionLeftPanel__Header"},C.createElement("div",null,C.createElement("div",{className:"EnterpriseEditionLeftPanel__Title"},`Mattermost ${(0,Ho.t)(h.SkuShortName,"true"===h.IsGovSku)}`)),x),C.createElement("div",{className:"EnterpriseEditionLeftPanel__Subtitle"},C.createElement(A.FormattedMessage,{id:"admin.license.entryEdition.subtitle",defaultMessage:"Entry offers Enterprise Advanced capabilities {limitsLink} designed to support evaluation.",values:{limitsLink:C.createElement(Ge.A,{href:ve.vx.ENTRY_LIMITS_INFO,location:"enterprise_edition_left_panel_entry"},C.createElement(A.FormattedMessage,{id:"admin.license.entryEdition.limits",defaultMessage:"with limits"}))}})),C.createElement("div",{className:"have-license-section"},C.createElement("h4",{className:"have-license-title"},C.createElement(A.FormattedMessage,{id:"admin.license.haveALicense",defaultMessage:"Have a license?"})),C.createElement("p",{className:"have-license-description"},C.createElement(A.FormattedMessage,{id:"admin.license.uploadLicenseToUnlock",defaultMessage:"Upload your license here to unlock licensed features"})),C.createElement("div",{className:"upload-license-button-container"},C.createElement(Nt.A,{title:(0,A.defineMessage)({id:"admin.license.setByEnvVar",defaultMessage:"License location is set by environment variable"}),disabled:!g},C.createElement("button",{className:"btn btn-primary upload-license-btn",onClick:()=>d.current?.click(),disabled:g},C.createElement("i",{className:"icon icon-upload-outline"}),C.createElement(A.FormattedMessage,{id:"admin.license.uploadLicense",defaultMessage:"Upload license"}))),C.createElement("input",{ref:d,type:"file",accept:ve.a0.LICENSE_EXTENSION,onChange:m,style:{display:"none"}}))),C.createElement("div",{className:"license-notices"},C.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."))):C.createElement("div",{className:"EnterpriseEditionLeftPanel","data-testid":"EnterpriseEditionLeftPanel"},C.createElement("div",{className:"EnterpriseEditionLeftPanel__Header"},C.createElement("div",null,C.createElement("div",{className:"EnterpriseEditionLeftPanel__Title"},`Mattermost ${k}`,i&&C.createElement(At.A,{text:p({id:"admin.license.Trial",defaultMessage:"Trial"}),variant:"success",uppercase:!0,size:"sm"}))),x),C.createElement("div",{className:"licenseInformation"},C.createElement("div",{className:"licenseInformation__Header"},C.createElement("span",{className:"licenseInformation__Title"},"License details"),C.createElement("button",{className:"btn btn-primary btn-sm add-seats-button ",onClick:b},C.createElement(A.FormattedMessage,{id:"admin.license.enterpriseEdition.add.seats",defaultMessage:"+ Add seats"}))),zo(h,i,r,l,o,k,d,m,y?.activeUserCount??u,w,g,_,T,N)),C.createElement("div",{className:"license-notices"},a?C.createElement(C.Fragment,null,C.createElement("p",null,"When using Mattermost Enterprise Edition, the softw
1are is offered under a commercial license. See ",C.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.")):C.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.")))},zo=(e,t,a,s,n,i,r,l,o,d,c,m,u,g)=>{const p=e.SkuShortName?C.createElement(C.Fragment,null,`Mattermost ${(0,L.Sn)(i)}${t?" License Trial":""}`):null,h=C.createElement(A.FormattedNumber,{value:parseInt(e.Users,10)}),f=C.createElement(A.FormattedNumber,{value:o}),E=C.createElement(A.FormattedNumber,{value:u}),M=[{legend:"START DATE:",value:C.createElement(A.FormattedDate,{value:new Date(parseInt(e.StartsAt,10))})},{legend:"EXPIRES:",value:C.createElement(A.FormattedDate,{value:new Date(parseInt(e.ExpiresAt,10))})},{legend:"LICENSED SEATS:",value:h},{legend:"ACTIVE USERS:",value:f},...g>0?[{legend:"SINGLE-CHANNEL GUESTS:",value:E}]:[],{legend:"EDITION:",value:p},{legend:"LICENSE ISSUED:",value:C.createElement(C.Fragment,null,C.createElement(A.FormattedDate,{value:new Date(parseInt(e.IssuedAt,10))})," ",C.createElement(A.FormattedTime,{value:new Date(parseInt(e.IssuedAt,10))}))},{legend:"NAME:",value:e.Name},{legend:"COMPANY / ORG:",value:e.Company}];return C.createElement("div",{className:"licenseElements"},M.map(((e,t,a,s,n)=>(i,r)=>{let{legend:l,value:o}=i;if("SINGLE-CHANNEL GUESTS:"===l){const e=n>0&&s>n,t=e?C.createElement(Nt.A,{title:(0,A.defineMessage)({id:"admin.license.singleChannelGuests.limitReached.tooltip.title",defaultMessage:"Limit reached for single-channel guests"}),hint:(0,A.defineMessage)({id:"admin.license.singleChannelGuests.limitReached.tooltip.hint",defaultMessage:"The number of single-channel guests cannot exceed the total number of licensed seats"}),className:"single-channel-guest-license-tooltip"},C.createElement("span",{className:"single-channel-guest-limit-reached"},C.createElement(A.FormattedMessage,{id:"admin.license.singleChannelGuests.limitReached",defaultMessage:"(Limit reached)"}),C.createElement(Uo(),{size:16}))):null;return C.createElement("div",{className:"item-element",key:"single-channel-guests-"+r.toString()},C.createElement("span",{className:he()({legend:!0,"legend--over-seats-purchased":e})},l),C.createElement("span",{className:he()({value:!0,"value--over-seats-purchased":e})},o,t))}if("ACTIVE USERS:"===l){const{isBetween5PercerntAnd10PercentPurchasedSeats:a,isOver10PercerntPurchasedSeats:s}=(0,ja.A)({activeUsers:e,seatsPurchased:t});return C.createElement("div",{className:"item-element",key:o+r.toString()},C.createElement("span",{className:he()({legend:!0,"legend--warning-over-seats-purchased":a,"legend--over-seats-purchased":s})},l),C.createElement("span",{className:he()({value:!0,"value--warning-over-seats-purchased":a,"value--over-seats-purchased":s})},o))}return"EXPIRES:"===l?C.createElement("div",{className:"item-element",key:o+r.toString()},C.createElement("span",{className:"legend"},l),C.createElement("span",{className:"value"},o),a<=30&&C.createElement("span",{className:he()("expiration-days",{"expiration-days-warning":a<=30,"expiration-days-danger":a<=5})},`Expires in ${a} day${a>1?"s":""}`)):C.createElement("div",{className:"item-element",key:o+r.toString()},C.createElement("span",{className:"legend"},l),C.createElement("span",{className:"value"},o))})(o,parseInt(e.Users,10),d,u,g)),C.createElement("hr",null),jo(r,l,c),Wo(a,s,n,m))},jo=(e,t,a)=>C.createElement(C.Fragment,null,C.createElement(Nt.A,{title:(0,A.defineMessage)({id:"admin.license.setByEnvVar",defaultMessage:"License location is set by environment variable"}),disabled:!a},C.createElement("button",{className:"btn btn-secondary",onClick:()=>e.current?.click(),disabled:a},C.createElement(A.FormattedMessage,{id:"admin.license.keyAddNew",defaultMessage:"Add a new license"}))),C.createElement("input",{ref:e,type:"file",accept:ve.a0.LICENSE_EXTENSION,onChange:t,style:{display:"none"}})),Wo=(e,t,a,s)=>{const n="true"===s;let i;return i=a?C.createElement(A.FormattedMessage,{id:"admin.license.removing",defaultMessage:"Removing License..."}):n?C.createElement(A.FormattedMessage,Go.keyRemoveEntry):C.createElement(A.FormattedMessage,Go.keyRemove),C.createElement(C.Fragment,null,C.createElement("div",{className:"remove-button"},C.createElement("button",{type:"button",className:"btn btn-danger",onClick:e,disabled:t,id:"remove-button","data-testid":"remove-button"},i)))},Yo=C.memo(Vo),qo=e=>{const[t]=(0,ai.A)();return C.createElement("button",{className:`btn contact-us ${e.customClass||"btn-tertiary"}`,onClick:e=>(async e=>{e.preventDefault(),t()})(e)},e.buttonTextElement||C.createElement(A.FormattedMessage,{id:"admin.license.trialCard.contactSales",defaultMessage:"Contact Sales"}))},Zo=e=>C.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"},C.createElement("rect",{x:"6",y:"22",width:"181",height:"78",rx:"5.625",fill:"var(--button-bg)",fillOpacity:"0.12"}),C.createElement("path",{d:"M14.255 11L19.755 16.5V70.5H40.755",stroke:"var(--center-c
1hannel-color)",strokeOpacity:"0.24",strokeLinecap:"round"}),C.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"}),C.createElement("path",{d:"M7.255 35L12.755 40.5V79.5H177.755V108.5",stroke:"var(--center-channel-color)",strokeOpacity:"0.24",strokeLinecap:"round"}),C.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"}),C.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"}),C.createElement("path",{opacity:"0.32",d:"M62.1304 22H129.87L134 115H58L62.1304 22Z",fill:"#BABEC9"}),C.createElement("rect",{opacity:"0.32",width:"92",height:"5",transform:"matrix(1 0 0 -1 50 120)",fill:"var(--center-channel-color)"}),C.createElement("rect",{x:"30",y:"16",width:"131",height:"86",rx:"4",fill:"var(--center-channel-bg)",stroke:"var(--center-channel-color)",strokeWidth:"4"}),C.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)"}),C.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"}),C.createElement("path",{d:"M72.3077 32.4158H94.7884",stroke:"#1B1D22",strokeLinecap:"round"}),C.createElement("path",{d:"M97.1984 32.4158H106.833",stroke:"#1B1D22",strokeLinecap:"round"}),C.createElement("path",{d:"M109.239 32.4158H113.254",stroke:"#1B1D22",strokeLinecap:"round"}),C.createElement("path",{opacity:"0.5",d:"M123.242 35.226H72.3077V41.3016H123.242V35.226Z",fill:"#BABEC9"}),C.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)"}),C.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"}),C.createElement("path",{d:"M72.3077 55.6848H94.7884",stroke:"#1B1D22",strokeLinecap:"round"}),C.createElement("path",{d:"M97.1984 55.6848H106.833",stroke:"#1B1D22",strokeLinecap:"round"}),C.createElement("path",{d:"M109.239 55.6848H113.254",stroke:"#1B1D22",strokeLinecap:"round"}),C.createElement("path",{opacity:"0.5",d:"M139.242 58.495H72.3077V64.5706H139.242V58.495Z",fill:"#BABEC9"}),C.createElement("rect",{x:"110.255",width:"83",height:"50",rx:"4",fill:"var(--indigo-400)"}),C.createElement("path",{d:"M152.255 10H166.736",stroke:"var(--neutral-0)",strokeOpacity:"0.48",strokeLinecap:"round"}),C.createElement("path",{d:"M152.255 16H175.255",stroke:"var(--neutral-0)",strokeOpacity:"0.48",strokeLinecap:"round"}),C.createElement("path",{d:"M152.255 22H182.255",stroke:"var(--neutral-0)",strokeOpacity:"0.48",strokeLinecap:"round"}),C.createElement("path",{d:"M152.255 28H182.255",stroke:"var(--neutral-0)",strokeOpacity:"0.48",strokeLinecap:"round"}),C.createElement("path",{d:"M169.146 10H178.78",stroke:"var(--neutral-0)",strokeOpacity:"0.48",strokeLinecap:"round"}),C.createElement("path",{d:"M181.187 10H184.201",stroke:"var(--neutral-0)",strokeOpacity:"0.48",strokeLinecap:"round"}),C.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"}),C.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"}),C.createElement("rect",{x:"54.755",y:"79.4823",width:"84",height:"11.0354",fill:"var(--center-c
1hannel-bg)",stroke:"#1B1D22"}),C.createElement("rect",{opacity:"0.3",x:"57.2648",y:"81.9911",width:"78.9823",height:"6.0177",fill:"#BABEC9"}),C.createElement("rect",{x:"57.2648",y:"81.9911",width:"52.6549",height:"6.0177",fill:"#BABEC9"}),C.createElement("path",{d:"M150.255 108.5H122.755",stroke:"var(--center-channel-color)",strokeLinecap:"round",strokeLinejoin:"round"}),C.createElement("path",{d:"M119.255 108.5H113.255",stroke:"var(--center-channel-color)",strokeLinecap:"round"}),C.createElement("path",{d:"M110.255 108.5H104.255",stroke:"var(--center-channel-color)",strokeLinecap:"round"})),Jo=e=>{let{isTrialLicense:t,license:a}=e;const s=(0,A.useIntl)(),[n]=(0,ai.A)(),i=[s.formatMessage({id:"admin.license.upgradeAdvantage.adLdapSync",defaultMessage:"AD/LDAP Group sync"}),s.formatMessage({id:"admin.license.upgradeAdvantage.highAvailability",defaultMessage:"High Availability"}),s.formatMessage({id:"admin.license.upgradeAdvantage.advancedCompliance",defaultMessage:"Advanced compliance"}),s.formatMessage({id:"admin.license.upgradeAdvantage.advancedRoles",defaultMessage:"Advanced roles and permissions"}),s.formatMessage({id:"admin.license.upgradeAdvantage.andMore",defaultMessage:"And more..."})],r=[s.formatMessage({id:"admin.license.enterpriseToAdvancedAdvantage.dynamicAttributeBasedAccessControls",defaultMessage:"Dynamic attribute-based access controls"}),s.formatMessage({id:"admin.license.enterpriseToAdvancedAdvantage.dataSpillageHandling",defaultMessage:"Data spillage handling"}),s.formatMessage({id:"admin.license.enterpriseToAdvancedAdvantage.burnOnReadMessages",defaultMessage:"Burn-on-read messages"}),s.formatMessage({id:"admin.license.enterpriseToAdvancedAdvantage.mobileBiometricsAndAdvancedSecurity",defaultMessage:"Mobile biometrics & advanced security"}),s.formatMessage({id:"admin.license.enterpriseToAdvancedAdvantage.automaticChannelTranslations",defaultMessage:"Automatic channel translations"}),s.formatMessage({id:"admin.license.enterpriseToAdvancedAdvantage.channelBanners",defaultMessage:"Channel banners"}),s.formatMessage({id:"admin.license.upgradeAdvantage.andMore",defaultMessage:"And more..."})],l=a?.SkuShortName===ve.gS.EnterpriseAdvanced,o=a?.SkuShortName===ve.gS.Enterprise,d=(ve.gS.Professional,a?.SkuShortName===ve.gS.Entry),c=C.createElement("div",{className:"purchase-card"},C.createElement(qo,null)),m=()=>t?C.createElement(A.FormattedMessage,{id:"admin.license.purchaseEnterprisePlanTitle",defaultMessage:"Purchase Enterprise Advanced"}):d?C.createElement(A.FormattedMessage,{id:"admin.license.entryPlanTitle",defaultMessage:"Get access to full message history, AI-
1powered coordination, and secure workflow continuity"}):l?C.createElement(A.FormattedMessage,{id:"admin.license.enterprisePlanTitle",defaultMessage:"Need to increase your headcount?"}):o?C.createElement(A.FormattedMessage,{id:"admin.license.upgradeToEnterpriseAdvanced",defaultMessage:"Upgrade to Enterprise Advanced"}):C.createElement(A.FormattedMessage,{id:"admin.license.upgradeToEnterprise",defaultMessage:"Upgrade to Enterprise"}),u=()=>l?null:C.createElement(Zo,{width:197,height:120}),g=()=>{if(t)return C.createElement(A.FormattedMessage,{id:"admin.license.purchaseEnterprisePlanSubtitle",defaultMessage:"Continue your access to Enterprise Advanced features by purchasing a license."});if(d)return C.createElement(A.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=>C.createElement(Ge.A,{location:"entry_trial_license",href:ve.vx.TRIAL_INFO_LINK},e)}});if(l)return C.createElement(A.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=o?r:i;return C.createElement("div",{className:"advantages-list"},e.map(((e,t)=>C.createElement("div",{className:"item",key:t.toString()},C.createElement("i",{className:"fa fa-lock"}),e))))};return d?C.createElement("div",{className:"EnterpriseEditionRightPannel entry"},C.createElement("div",{className:"svg-image"},u()),C.createElement("div",{className:"upgrade-title"},m()),C.createElement("div",{className:"upgrade-subtitle"},g()),C.createElement("div",{className:"purchase_buttons"},C.createElement("button",{className:"btn btn-primary",onClick:n},C.createElement(A.FormattedMessage,{id:"admin.license.contactSales",defaultMessage:"Questions? Contact sales"})))):C.createElement("div",{className:"EnterpriseEditionRightPannel"},C.createElement("div",{className:"svg-image"},u()),C.createElement("div",{className:"upgrade-title"},m()),C.createElement("div",{className:"upgrade-subtitle"},g()),C.createElement("div",{className:"purchase_buttons"},c))},Ko=(0,C.memo)(Jo);var Qo=a(85507);const Xo=e=>{const t=(0,s.useDispatch)(),a=(0,s.useSelector)((e=>(0,Vn.o)(e,ve.IQ.CONFIRM_LICENSE_REMOVAL)));if(!a)return null;const n=()=>{e.onExited&&e.onExited(),t((0,Hn.O)(ve.IQ.CONFIRM_LICENSE_REMOVAL))};return C.createElement(ks.zW,{compassDesign:!0,className:"ConfirmLicenseRemovalModal",show:a,id:"ConfirmLicenseRemovalModal",onExited:n},C.createElement(C.Fragment,null,C.createElement("div",{className:"content-body"},C.createElement("div",{className:"alert-svg"},C.createElement(Qo.A,{width:130.5,height:103.5})),C.createElement("div",{className:"title"},C.createElement(A.FormattedMessage,{id:"admin.license.confirm-license-removal.title",defaultMessage:"Are you sure?"})),C.createElement("div",{className:"subtitle"},C.createElement(A.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}}))),C.createElement("div",{className:"content-footer"},C.createElement("button",{onClick:n,className:"btn btn-tertiary",id:"cancel-removal"},C.createElement(A.FormattedMessage,{id:"admin.license.confirm-license-removal.cancel",defaultMessage:"Cancel"})),C.createElement("button",{onClick:a=>{e.handleRemove&&e.handleRemove(a),t((0,Hn.O)(ve.IQ.CONFIRM_LICENSE_REMOVAL))},className:"btn btn-primary",id:"confirm-removal"},C.createElement(A.FormattedMessage,{id:"admin.license.confirm-license-removal.confirm",defaultMessage:"Confirm"})))))},$o=e=>{const t=(0,s.useDispatch)(),a=(0,s.useSelector)((e=>(0,Vn.o)(e,ve.IQ.ENTERPRISE_EDITION_LICENSE)));if(!a)return null;const n=()=>{e.onClose&&e.onClose(),t((0,Hn.O)(ve.IQ.ENTERPRISE_EDITION_LICENSE))};return C.createElement(ks.zW,{compassDesign:!0,className:"EELicenseModal",show:a,id:"EELicenseModal",onExited:n},C.createElement(C.Fragment,null,C.createElement("div",{className:"title"},"Enterprise Edition License:"),C.createElement("div",{className:"enterprise-license-text"},C.createElement("div",null,C.createElement("p",null,"The Mattermost Enterprise Edition (EE) license (the âEE Licenseâ)"),C.createElement("p",null,"Copyright (c) 2016-present Mattermost, Inc."),C.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
1several 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.'),C.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.'))),C.createElement("div",{className:"content-footer"},C.createElement("button",{onClick:n,className:"btn btn-primary"},"Close"))))},ed=e=>C.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"},C.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"}));var td=a(21608);const ad=e=>C.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"},C.createElement("rect",{x:"0.000976562",y:"9",width:"84",height:"24",rx:"3.75",fill:"var(--button-bg)",fillOpacity:"0.12"}),C.createElement("rect",{x:"14.001",y:"36",width:"87",height:"25",rx:"3.75",fill:"var(--button-bg)",fillOpacity:"0.12"}),C.createElement("rect",{x:"28.0286",y:"9.33704",width:"48.1218",height:"58.8953",rx:"2",fill:"var(--indigo-400)"}),C.createElement("rect",{x:"23.001",width:"50.505",height:"65.3594",rx:"2",fill:"var(--center-c
1hannel-bg)"}),C.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"}),C.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)"}),C.createElement("path",{d:"M29 7H37.6188",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeLinecap:"round"}),C.createElement("path",{d:"M29 54H57.0112",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeLinecap:"round"}),C.createElement("path",{d:"M29 11H44.8012",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeLinecap:"round"}),C.createElement("path",{d:"M29 58H65.63",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeLinecap:"round"}),C.createElement("path",{d:"M38 15H44.4641",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeLinecap:"round"}),C.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"})),sd=e=>{const t=(0,s.useDispatch)(),[a,n]=C.useState(e.fileObjFromProps),[r,l]=C.useState(!1),[o,d]=C.useState(null),[m,u]=C.useState(!1),g=(0,C.useRef)(null),p=(0,s.useSelector)(c.Ay),h=(0,s.useSelector)(gs.k),f=(0,s.useSelector)((e=>(0,Vn.o)(e,ve.IQ.UPLOAD_LICENSE)));if(!f)return null;const E=()=>{r||(e.onExited&&e.onExited(),t((0,Hn.O)(ve.IQ.UPLOAD_LICENSE)))};let M=C.createElement(C.Fragment,null,C.createElement("div",{className:"content-body"},C.createElement("div",{className:"svg-image"},C.createElement(ad,{width:151,height:103})),C.createElement("div",{className:"title"},C.createElement(A.FormattedMessage,{id:"admin.license.upload-modal.title",defaultMessage:"Upload a License Key"})),C.createElement("div",{className:"subtitle"},C.createElement(A.FormattedMessage,{id:"admin.license.upload-modal.subtitle",defaultMessage:"Upload a license key for Mattermost Enterprise Edition to upgrade this server. "})),C.createElement("div",{className:"file-upload"},C.createElement("div",{className:"file-upload__titleSection"},C.createElement(A.FormattedMessage,{id:"admin.license.upload-modal.file",defaultMessage:"File"})),C.createElement("div",{className:"file-upload__inputSection"},C.createElement("div",{className:"help-text file-name-section"},a?.name&&a?.size?C.createElement(C.Fragment,null,C.createElement(ed,{width:20,height:20}),C.createElement("span",{className:"file-name"},(e=>{const t=ve.a0.LICENSE_EXTENSION.length;let a=e.split(ve.a0.LICENSE_EXTENSION)[0];return a=a.length<40-t?a:`${a.substr(0,37-t)}...`,`${a}${ve.a0.LICENSE_EXTENSION}`})(a.name)),C.createElement("span",{className:"file-size"},(0,L.O1)(a.size))):C.createElement(A.FormattedMessage,{id:"admin.license.no-file-selected",defaultMessage:"No file selected"})),C.createElement("div",{className:"file__upload"},a?.name?C.createElement("a",{onClick:()=>{n(null)}},C.createElement(A.FormattedMessage,{id:"admin.license.remove",defaultMessage:"Remove"})):C.createElement(C.Fragment,null,C.createElement("input",{ref:g,type:"file",accept:ve.a0.LICENSE_EXTENSION,onChange:()=>{const e=g.current;null!==e&&null!==e.files&&0!==e.files.length&&0!==e.files[0].size&&(n(e.files[0]),d(null))}}),C.createElement("a",{className:"btn-select"},C.createElement(A.FormattedMessage,{id:"admin.license.choose",defaultMessage:"Choose File"})))))),o&&C.createElement("div",{className:"serverError"},C.createElement("i",{className:"icon icon-alert-outline"}),C.createElement("span",{className:"server-error-text",dangerouslySetInnerHTML:{__html:dt()(o)}}))),C.createElement("div",{className:"content-footer"},C.createElement("div",{className:"btn-upload-wrapper"},C.createElement("button",{className:`btn ${a?.name&&a?.name.length>0&&"btn-primary"}`,disabled:!(a?.name&&a?.name.length>0),onClick:async e=>{if(e.preventDefault(),null===a)return;l(!0);const{error:s}=await t((0,i.Nf)(a));if(s)return n(null),d(s.message),void l(!1);await t((0,Po.uU)()),n(null),d(null),l(!1),u(!0)},id:"upload-button"},C.createElement(rt.A,{loading:Boolean(r),text:(0,A.defineMessage)({id:"admin.license.modal.uploading",defaultMessage:"Uploading"})},C.createElement(A.FormattedMessage,{id:"admin.license.modal.upload",defaultMessage:"Upload"}))))));if(m){const e=C.createElement(A.FormattedDate,{value:new Date(parseInt(p.StartsAt,10)),day:"2-digit",month:(0,Ms.FS)(h),year:"numeric"}),t=C.createElement(A.FormattedDate,{value:new Date(parseInt(p.ExpiresAt,10)),day:"2-digit",month:(0,Ms.FS)(h),year:"numeric"}),a=p.Users,s=(0,Ho.t)(p.SkuShortName,"true"===p.IsGovSku);M=C.createElement(C.Fragment,null,C.createElement("div",{className:"content-body"},C.createElement("div",{className:"svg-image hands-svg"},C.createElement(td.A,{width:162,height:103.5})),C.createElement("div",{className:"title"},C.createElement(A.FormattedMessage,{id:"admin.license.upload-modal.successfulUpgrade",defaultMessage:"Successful Upgrade!"})),C.createElement("div",{className:"subtitle"},C.createElement(A.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}
1. ",values:{expiresAt:t,startsAt:e,licensedUsersNum:a,skuName:s}}))),C.createElement("div",{className:"content-footer"},C.createElement("div",{className:"btn-upload-wrapper"},C.createElement("button",{className:"btn btn-primary",onClick:E,id:"done-button"},C.createElement(A.FormattedMessage,{id:"admin.license.modal.done",defaultMessage:"Done"})))))}return C.createElement(ks.zW,{className:"UploadLicenseModal",show:f,id:"UploadLicenseModal",compassDesign:!0,onExited:E},M)},nd=e=>{let{license:t,totalUsers:a,isLicenseExpired:s}=e,n="info";const i=ei().utc(new Date(parseInt(t?.ExpiresAt,10))),r=(0,L.RF)(parseInt(t?.ExpiresAt,10)),l=C.createElement("div",{className:"purchase-card"},C.createElement(qo,{customClass:"btn-primary"}));let o=C.createElement(A.FormattedMessage,{id:"admin.license.renewalCard.licenseExpiring",defaultMessage:"License expires in {days} days on {date, date, long}.",values:{date:i.toDate(),days:r}});s&&(n="danger",o=C.createElement(A.FormattedMessage,{id:"admin.license.renewalCard.licenseExpired",defaultMessage:"License expired on {date, date, long}.",values:{date:i.toDate()}}));const d=C.createElement("div",{className:"RenewLicenseCard__text"},C.createElement("div",{className:"RenewLicenseCard__text-description bolder"},C.createElement(A.FormattedMessage,{id:"admin.license.renewalCard.description.contact_sales",defaultMessage:"Renew your {licenseSku} license by contacting sales to avoid any disruption.",values:{licenseSku:(0,Ho.t)(t.SkuShortName,"true"===t.IsGovSku)}})),C.createElement("div",{className:"RenewLicenseCard__text-description"},C.createElement(A.FormattedMessage,{id:"admin.license.renewalCard.reviewNumbers",defaultMessage:"Review your numbers below to ensure you renew for the right number of users."})),C.createElement("div",{className:"RenewLicenseCard__licensedUsersNum"},C.createElement("strong",null,C.createElement(A.FormattedMessage,{id:"admin.license.renewalCard.usersNumbers_licensed",defaultMessage:"Licensed Users: "})),t.Users),C.createElement("div",{className:"RenewLicenseCard__activeUsersNum"},C.createElement("strong",null,C.createElement(A.FormattedMessage,{id:"admin.license.renewalCard.usersNumbers_active",defaultMessage:"Active Users: "})),a),C.createElement("div",{className:"RenewLicenseCard__buttons"},l));return C.createElement(Ha.A,{mode:n,title:o,message:d})},id=(0,A.defineMessages)({key:{id:"admin.license.key",defaultMessage:"License Key: "}}),rd=e=>{let{openEELicenseModal:t,currentPlan:a,upgradedFromTE:s,fileInputRef:n,handleChange:i}=e;const{openPricingModal:r,isAirGapped:l}=(0,ri.A)(),o=(0,A.useIntl)(),d=l?null:C.createElement("button",{id:"starter_edition_view_plans",onClick:r,className:"btn btn-tertiary btn-sm PlanDetails__viewPlansButton"},o.formatMessage({id:"workspace_limits.menu_limit.view_plans",defaultMessage:"View plans"}));return C.createElement("div",{className:"StarterLeftPanel"},d,C.createElement("div",{className:"title"},C.createElement(A.FormattedMessage,{id:"admin.license.freeEdition.title",defaultMessage:"Free"})),C.createElement("div",{className:"currentPlanLegend"},a),C.createElement("div",{className:"subtitle"},C.createElement(A.FormattedMessage,{id:"admin.license.freeEdition.subtitle",defaultMessage:"Purchase Professional or Enterprise to unlock enterprise features."})),C.createElement("hr",null),C.createElement("div",{className:"content"},s?C.createElement(C.Fragment,null,C.createElement("p",null,"When using Mattermost Enterprise Edition, the software is offered under a commercial license. See ",C.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.")):C.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.")),C.createElement("div",{className:"licenseInformation"},C.createElement("div",{className:"licenseKeyTitle"}
1,C.createElement(A.FormattedMessage,id.key)),C.createElement("div",{className:"uploadButtons"},C.createElement("button",{className:"btn btn-primary",onClick:()=>n.current?.click(),id:"open-modal"},C.createElement(A.FormattedMessage,{id:"admin.license.uploadFile",defaultMessage:"Upload File"})),C.createElement("input",{ref:n,type:"file",accept:ve.a0.LICENSE_EXTENSION,onChange:i,style:{display:"none"}}))))},ld=C.memo(rd),od=()=>{const e=(0,A.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 C.createElement("div",{className:"StarterEditionRightPannel"},C.createElement("div",{className:"svg-image"},C.createElement(Zo,{width:197,height:120})),C.createElement("div",{className:"upgrade-title"},C.createElement(A.FormattedMessage,{id:"admin.license.upgradeTitle",defaultMessage:"Purchase one of our plans to unlock more features"})),C.createElement("div",{className:"advantages-list"},t.map(((e,t)=>C.createElement("div",{className:"item",key:t.toString()},C.createElement("i",{className:"fa fa-lock"}),e)))),C.createElement("div",{className:"purchase_buttons"},C.createElement(qo,{customClass:"btn-tertiary btn-full"})))},dd=(0,C.memo)(od),cd=e=>{let{openEELicenseModal:t}=e;return C.createElement("div",{className:"TeamEditionLeftPanel"},C.createElement("div",{className:"TeamEditionLeftPanel__Header"},C.createElement("div",{className:"TeamEditionLeftPanel__Title"},"Team Edition")),C.createElement("div",{className:"TeamEditionLeftPanel__LicenseNotices"},C.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."),C.createElement("p",null,"When using Mattermost Enterprise Edition, the software is offered under a commercial license. See ",C.createElement("a",{role:"button",onClick:t,className:"openEELicenseModal"},"here")," for âEnterprise Edition Licenseâ for details."),C.createElement("p",null,"See NOTICE.txt for information about open source software used in the system.")))},md=e=>{let{upgradingPercentage:t,handleUpgrade:a,upgradeError:s,restartError:n,handleRestart:i,restarting:r,openEEModal:l,setClickNormalUpgradeBtn:o,upgradeDisabled:d}=e,c=null;const m=(0,A.useIntl)();return d?c=C.createElement("div",null,C.createElement("p",null,C.createElement(Ge.A,{href:ve.vx.UNSUPPORTED_UPGRADE_LINK,location:"team_edition_right_panel",className:"btn btn-tertiary",role:"button"},C.createElement(A.FormattedMessage,{id:"admin.licenseSettings.teamEdition.teamEditionRightPanel.learnMore",defaultMessage:"Learn more"})))):100!==t?c=C.createElement("div",null,C.createElement("p",null,C.createElement("button",{type:"button",onClick:e=>{a&&(o(),a(e))},className:"btn btn-primary"},C.createElement(rt.A,{loading:t>0,text:C.createElement(A.FormattedMessage,{id:"admin.license.enterprise.upgrading",defaultMessage:"Upgrading {percentage}%",values:{percentage:t}})},C.createElement(A.FormattedMessage,{id:"admin.license.enterprise.upgrade",defaultMessage:"Upgrade to Enterprise Edition"})))),C.createElement("p",{className:"upgrade-legal-terms"},C.createElement(A.FormattedMessage,{id:"admin.licenseSettings.teamEdition.teamEditionRightPanel.acceptTermsInitial",defaultMessage:"By clicking <b>Upgrade</b>, I agree to the terms of the Mattermost ",values:{b:e=>C.createElement("b",null,e)}}),C.createElement("a",{role:"button",onClick:l},C.createElement(A.FormattedMessage,{id:"admin.licenseSettings.teamEdition.teamEditionRightPanel.eeLicenseLink",defaultMessage:"Enterprise Edition License"})),C.createElement(A.FormattedMessage,{id:"admin.licenseSettings.teamEdition.teamEditionRightPanel.acceptTermsFinal",defaultMessage:". Upgrading will download the binary and update your team edition."})),s&&C.createElement("div",{className:"upgrade-error"},C.createElement("div",{className:"form-group has-error"},C.createElement("div",{className:"as-bs-label control-label",dangerouslySetInnerHTML:{__html:(0,el.GP)(s)}})))):100===t&&(c=C.createElement("div",null,C.createElement("p",null,C.createElement(A.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:"})),C.createElement("p",null,C.createElement("button",{type:"button",onClick:i,className:"btn btn-primary"},C.createElement(rt.A,{loading:r,text:m.formatMessage({id:"admin.licenseSettings.teamEdition.teamEditionRightPanel.restarting",defaultMessage:"Restarting"})},C.createElement(A.FormattedMessage,{id:"admin.licenseSettings.teamEdition.teamEditionRightPanel.restart",defaultMessage:"Restart Server"})))),n&&C.createElement("div",{className:"upgrade-error"},C.createElement("div",{className:"form-group has-error"},C.createElement("div",{className:"as-bs-label control-label"},n))))),C.createElement("div",{className:"TeamEditionRightPanel"},C.createElement("div",{className:"svg-image"},C.createElement(Zo,{width:197,height:120})),C.createElement("div",{className:"upgrade-title"},C.createElement(A.FormattedMessage,{id:"admin.license.enterprise.upgrade",defaultMessage:"Upgrade to Enterprise Edition"})),C.createElement("div",{className:"upgrade-subtitle"},C.createElement(A.FormattedMessage,{id:"admin.license.enterprise.license_required_upgrade",defaultMessage:"A license is required to unlock enterprise features"})),C.createElement("div",{className:"advantages-list"},["AD/LDAP Group Sync","High Availability","Advanced compliance","And more..."].map(((e,t)=>C.createElement("div",{className:"item",key:t.toString()},C.createElement("i",{className:"fa fa-lock"}),e)))),c)},ud=C.memo(md),gd=e=>{let{license:t}=e;const a=new Date,s=new Date(parseInt(t?.ExpiresAt,10)),n=(0,qt.vj)(t),i=C.createElement("div",{className:"RenewLicenseCard TrialLicense"},C.createElement("div",{className:"RenewLicenseCard__text RenewLicenseCard__text-description"},a.toDateString()===s.toDateString()?C.createElement(A.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=>C.createElement("b",null,e),time:ei()(s).endOf("day").format("h:mm a ")+ei()().tz((0,ni.C7)()).format("z")}}):C.createElement(A.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=>C.createElement("b",null,e),daysCount:n}}
1))),r=C.createElement(Ge.A,{href:ve.vx.CONTACT_SALES,location:"license_settings_user_seat_alert",className:"style-button AlertBanner__buttonLeft"},C.createElement(A.FormattedMessage,{id:"admin.license.trialCard.contactSales",defaultMessage:"Contact Sales"})),l=C.createElement(A.FormattedMessage,{id:"admin.license.trialCard.licenseExpiring",defaultMessage:"Youâre currently on a free trial of our Mattermost {licenseType}.",values:{licenseType:(0,Ho.t)(t.SkuShortName,"true"===t.IsGovSku)}});return C.createElement(Ha.A,{mode:"info",title:l,message:i,actionButtonLeft:r})},pd=(0,A.defineMessages)({title:{id:"admin.license.title",defaultMessage:"Edition and License"}}),hd=[id.key,Go.keyRemove,pd.title];class fd extends C.PureComponent{constructor(e){super(e),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=C.createRef()}componentDidMount(){this.props.enterpriseReady?this.props.actions.getPrevTrialLicense():this.props.actions.isAllowedToUpgradeToEnterprise().then((e=>{let{error:t}=e;this.setState({upgradeDisabled:Boolean(t?.message),upgradeError:t?.message}),t?.message||this.reloadPercentage()})),this.props.actions.getLicenseConfig(),this.props.actions.getFilteredUsersStats({include_bots:!1,include_deleted:!1}),this.props.actions.getServerLimits()}componentDidUpdate(e,t){t.fileSelected!==this.state.fileSelected&&this.state.fileSelected&&this.props.actions.openModal({modalId:ve.IQ.UPLOAD_LICENSE,dialogType:sd,dialogProps:{fileObjFromProps:this.state.file}}),this.setState({fileSelected:!1,file:null})}componentWillUnmount(){this.interval&&clearInterval(this.interval)}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})};handleChange=()=>{const e=this.fileInputRef.current;e?.files?.length&&this.setState({fileSelected:!0,file:e.files[0]})};openEELicenseModal=async()=>{this.props.actions.openModal({modalId:ve.IQ.ENTERPRISE_EDITION_LICENSE,dialogType:$o})};confirmLicenseRemoval=async()=>{this.props.actions.openModal({modalId:ve.IQ.CONFIRM_LICENSE_REMOVAL,dialogType:Xo,dialogProps:{handleRemove:this.handleRemove,currentLicenseSKU:(0,qt.Zg)(this.props.license)}})};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}))};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})}};checkRestarted=()=>{this.props.actions.ping().then((()=>{window.location.reload()})).catch((()=>{setTimeout(this.checkRestarted,1e3)}))};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)};setClickNormalUpgradeBtn=()=>{this.setState({clickNormalUpgradeBtn:!0})};currentPlan=C.createElement("div",{className:"current-plan-legend"},C.createElement("i",{className:"icon-check-circle"}),"Current Plan");createLink=(e,t)=>C.createElement(Ge.A,{location:"license_settings",id:"privacyLink",href:e},t);termsAndPolicy=C.createElement("div",{className:"terms-and-policy"},"See also ",this.createLink(ve.L0.TERMS_OF_SERVICE,"Enterprise Edition Terms of Use")," and ",this.createLink(ve.L0.PRIVACY_POLICY,"Privacy Policy"));comparePlans=this.props.license.SkuShortName===ve.gS.Entry?null:C.createElement("div",{className:"compare-plans-text"},"Curious about upgrading? ",this.createLink(ve.Lu.PRICING,"Compare Plans"));render(){const{license:e,upgradedFromTE:t,isDisabled:a}=this.props;let s=null,n=null;return this.props.enterpriseReady?"true"===e.IsLicensed?(s=C.createElement(Yo,{openEELicenseModal:this.openEELicenseModal,upgradedFromTE:t,license:e,isTrialLicense:(0,qt.Ue)(e),handleRemove:this.confirmLicenseRemoval,isDisabled:a,removing:this.state.removing,fileInputRef:this.fileInputRef,handleChange:this.handleChange,statsActiveUsers:this.props.totalUsers||0,isLicenseSetByEnvVar:Boolean(this.props.environmentConfig?.ServiceSettings?.LicenseFileLocation)}),n=C.createElement(Ko,{isTrialLicense:(0,qt.Ue)(e),license:e})):(s=C.createElement(ld,{openEELicenseModal:this.openEELicenseModal,currentPlan:this.currentPlan,upgradedFromTE:this.props.upgradedFromTE,fileInputRef:this.fileInputRef,handleChange:this.handleChange}),n=C.createElement(dd,null)):(s=C.createElement(cd,{openEELicenseModal:this.openEELicenseModal}),n=C.createElement(ud,{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})),C.createElement("div",{className:"wrapper--fixed"},C.createElement(fe,null,C.createElement(A.FormattedMessage,pd.title)),C.createElement("div",{className:"admin-console__wrapper"},C.createElement("div",{className:"admin-console__content"},C.createElement("div",{className:"admin-console__banner_section"},C.createElement(Ga,{license:e,totalUsers:this.props.totalUsers,location:"license_settings"}),!this.state.clickNormalUpgradeBtn&&"true"!==e.IsLicensed&&"true"!==this.props.prevTrialLicense?.IsLicensed&&C.createElement(sl,{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()),C.createElement("div",{className:"top-wrapper"},C.createElement("div",{className:"left-panel"},C.createElement("div",{className:"panel-card"},s),!(0,qt.Ue)(e)&&this.termsAndPolicy),C.createElement("div",{className:"right-panel"},C.createElement("div",{className:he()("panel-card",{entry:e.SkuShortName===ve.gS.Entry})},n),!(0,qt.PL)(e)&&this.comparePlans)))))}renewLicenseCard=()=>(0,qt.Ue)(this.props.license)?C.createElement(gd,{license:this.props.license}):(0,qt.bT)(this.props.license)||(0,qt.oT)(this.props.license)?C.createElement(nd,{license:this.props.license,isLicenseExpired:(0,qt.bT)(this.props.license),totalUsers:this.props.totalUsers}):null}const Ed=(0,s.connect)((function(e){const t=(0,c.zj)(e);return{totalUsers:(0,Pa.Mz)(e)?.activeUserCount??(0,g.$c)(e)?.total_users_count??0,upgradedFromTE:"true"===t.UpgradedFromTE,prevTrialLicense:e.entities.admin.prevTrialLicense}}),(function(e){return{actions:(0,n.zH)({getLicenseConfig:Po.uU,uploadLicense:i.Nf,removeLicense:i.E5,getPrevTrialLicense:i.fr,upgradeToE0:p.v0,upgradeToE0Status:p.LP,restartServer:p.z_,ping:p.hU,requestTrialLicense:p.Fk,openModal:Hn.q,getFilteredUsersStats:ms.$c,getServerLimits:Oo.M,isAllowedToUpgradeToEnterprise:p.gV},e)}}
1))(fd),Md=e=>{let{featureName:t,title:a,description:s,learnMoreURL:n,svgImage:i}=e;return C.createElement("div",{className:"InlineSectionFeatureDiscovery"},C.createElement("div",{className:"InlineSectionFeatureDiscovery__content"},C.createElement("div",{className:"InlineSectionFeatureDiscovery__badge"},C.createElement(St,{sku:ve.gS.EnterpriseAdvanced})),C.createElement("h4",{className:"InlineSectionFeatureDiscovery__title"},C.createElement(A.FormattedMessage,a)),C.createElement("p",{className:"InlineSectionFeatureDiscovery__description"},C.createElement(A.FormattedMessage,s)),C.createElement("div",{className:"InlineSectionFeatureDiscovery__actions"},C.createElement("button",{className:"btn btn-primary",onClick:e=>{e.preventDefault(),(0,ll.gc)("","","","",t,"in-product")}},C.createElement(A.FormattedMessage,{id:"admin.feature_discovery.contact_sales",defaultMessage:"Contact sales"})),C.createElement("button",{className:"btn btn-tertiary",onClick:e=>{e.preventDefault(),window.open(n,"_blank","noopener,noreferrer")}},C.createElement(A.FormattedMessage,{id:"admin.feature_discovery.learn_more",defaultMessage:"Learn more"})))),i&&C.createElement("div",{className:"InlineSectionFeatureDiscovery__image"},C.createElement(i,{width:270,height:164})))},bd=(0,s.connect)((function(e){return{license:(0,c.Ay)(e)}}))((e=>{let{settingsList:t,requiredSku:a,sectionTitle:s,sectionDescription:n,featureDiscoveryConfig:i,license:r}=e;const l=r?.SkuShortName===ve.gS.Entry,o=!!r&&(0,qt.$X)(r);return l||o?C.createElement(Ct,{title:s,description:n,licenseSku:l?a:void 0},t):C.createElement(Md,{featureName:i.featureName,title:i.title,description:i.description,learnMoreURL:i.learnMoreURL,svgImage:i.svgImage})}));var _d=a(57019),yd=a(48595),vd=a(43018);function Sd(e){const t=e.value,a=function(){const e=(0,s.useDispatch)(),t=(0,s.useSelector)(vd.M4);return(0,C.useEffect)((()=>{e((0,yd.M4)())}),[e]),t}(),[n,i]=(0,C.useState)({LLMServiceID:t.Agents?.LLMServiceID||""}),r=(0,C.useCallback)(((t,a)=>{const s={...n,[t]:a};i(s),e.onChange("Agents",s)}),[e,n]),l=(0,C.useMemo)((()=>(a||[]).map((e=>({value:e.id,text:e.name})))),[a]),o=l.length>0;return(0,C.useEffect)((()=>{!n.LLMServiceID&&o&&r("LLMServiceID",l[0].value)}),[n.LLMServiceID,o,l,r]),C.createElement(we,{id:"LLMServiceID",label:C.createElement(A.FormattedMessage,{id:"admin.site.localization.autoTranslationLLMServiceTitle",defaultMessage:"AI Service"}),values:o?l:[{value:"",text:""}],helpText:C.createElement("div",{className:"ai-service-help-text"},C.createElement(A.FormattedMessage,{id:"admin.site.localization.autoTranslationLLMConfigNote",defaultMessage:"LLMs must first be configured in the Agents plugin."}),C.createElement(T.Link,{to:"/admin_console/plugins/plugin_mattermost-ai",className:"agents-config-link"},C.createElement(A.FormattedMessage,{id:"admin.site.localization.goToAgentsConfig",defaultMessage:"Go to Agents plugin config"}),C.createElement("i",{className:"icon icon-chevron-right"}))),value:n.LLMServiceID,disabled:e.disabled||e.setByEnv||!o,setByEnv:e.setByEnv,onChange:r})}const Cd=()=>C.createElement("div",{className:"autoTranslationInfo"},C.createElement(Xs.A,{title:C.createElement(A.FormattedMessage,{id:"admin.site.localization.autoTranslationInfo",defaultMessage:"Channel admins must also enable auto-translation for each channel where they want to use it."}),type:"info"})),Ad=C.memo(Cd);function Td(e){const t=e.value,[a,s]=(0,C.useState)(t.LibreTranslate),n=(0,C.useCallback)(((t,n)=>{const i={...a,[t]:n};s(i),e.onChange("LibreTranslate",i)}),[e,a]);return C.createElement(C.Fragment,null,C.createElement(ht,{id:"URL",label:C.createElement(A.FormattedMessage,{id:"admin.site.localization.autoTranslationProviderLibreTranslateURLTitle",defaultMessage:"LibreTranslate API Endpoint:"}),placeholder:(0,A.defineMessage)({id:"admin.site.localization.autoTranslationProviderLibreTranslateURLExample",defaultMessage:'e.g.: "https://libretranslate.yourdomain.com"'}),type:"url",value:a.URL,setByEnv:!1,onChange:n,disabled:e.disabled}),C.createElement(ht,{id:"APIKey",label:C.createElement(A.FormattedMessage,{id:"admin.site.localization.autoTranslationProviderLibreTranslateAPIKeyTitle",defaultMessage:"LibreTranslate API Key:"}),placeholder:(0,A.defineMessage)({id:"admin.site.localization.autoTranslationProviderLibreTranslateAPIKeyExample",defaultMessage:"Enter LibreTranslate API Key"}),helpText:C.createElement(A.FormattedMessage,{id:"admin.site.localization.autoTranslationProviderLibreTranslateAPIKeyDescription",defaultMessage:"If your LibreTranslate server requires an API key, enter it here. Otherwise, leave this field blank. View <link>LibreTranslate docs</link> for API Key management.",values:{link:e=>C.createElement(Ge.A,{location:"admin_console",href:"https://docs.libretranslate.com/guides/manage_api_keys/"},e)}}),type:"password",value:a.APIKey,setByEnv:!1,onChange:n,disabled:e.disabled}))}
1const Nd=kt.No(),kd=(0,A.defineMessages)({enableAutoTranslationTitle:{id:"admin.site.localization.enableAutoTranslationTitle",defaultMessage:"Auto-translation"},enableAutoTranslationDescription:{id:"admin.site.localization.enableAutoTranslationDescription",defaultMessage:"Configure auto-translation for channels and direct messages"}}),wd=Object.values(kd),Id=kt.No(),Rd=R.default.section.attrs({className:"AdminPanel"}).withConfig({displayName:"AdminSection"})(["&&{overflow:visible;margin-top:0;}"]),Ld=(0,A.defineMessages)({langTitle:{id:"admin.site.localization.languages.title",defaultMessage:"Languages"},langDescription:{id:"admin.site.localization.languages.description",defaultMessage:"Choose which languages should be the defaults"},serverLocaleTitle:{id:"admin.general.localization.serverLocaleTitle",defaultMessage:"Default Server Language:"},serverLocaleDescription:{id:"admin.general.localization.serverLocaleDescription",defaultMessage:"Default language for system messages."},clientLocaleTitle:{id:"admin.general.localization.clientLocaleTitle",defaultMessage:"Default Client Language:"},clientLocaleDescription:{id:"admin.general.localization.clientLocaleDescription",defaultMessage:"Default language for newly created users and pages where the user hasn't logged in."},availableLocalesTitle:{id:"admin.general.localization.availableLocalesTitle",defaultMessage:"Available Languages:"},availableLocalesDescription:{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."},availableLocalesNoResults:{id:"admin.general.localization.availableLocalesNoResults",defaultMessage:"No results found"},enableExperimentalLocalesTitle:{id:"admin.general.localization.enableExperimentalLocalesTitle",defaultMessage:"Enable Experimental Locales:"},enableExperimentalLocalesDescription:{id:"admin.general.localization.enableExperimentalLocalesDescription",defaultMessage:"When true, it allows users to select experimental (e.g., in progress) languages."}}),xd=Object.values(Ld),Dd=(0,A.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."}}),Pd=[Dd.exportFormat_description_intro,Dd.exportFormat_description_details,Dd.complianceExportTitle,Dd.complianceExportDe
1sc,Dd.exportJobStartTime_title,Dd.exportJobStartTime_description,Dd.exportFormat_title,Dd.createJob_title,Dd.createJob_help,Dd.globalRelayCustomerType_title,Dd.globalRelayCustomerType_description,Dd.globalRelaySMTPUsername_title,Dd.globalRelaySMTPUsername_description,Dd.globalRelaySMTPPassword_title,Dd.globalRelaySMTPPassword_description,Dd.globalRelayEmailAddress_title,Dd.globalRelayEmailAddress_description],Od=(0,A.injectIntl)(class extends Na{getConfigFromState=e=>(e.MessageExportSettings.EnableExport=this.state.enableComplianceExport,e.MessageExportSettings.ExportFormat=this.state.exportFormat,e.MessageExportSettings.DailyRunTime=this.state.exportJobStartTime,this.state.exportFormat===ve.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);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}getJobDetails=e=>{if(e.data){const t=[];return e.data.messages_exported&&t.push(C.createElement(A.FormattedMessage,{id:"admin.complianceExport.messagesExportedCount",defaultMessage:"{count} messages exported.",values:{count:e.data.messages_exported}})),e.data.warning_count>0&&(e.data.export_type===ve.Fu.EXPORT_FORMAT_GLOBALRELAY?t.push(C.createElement("div",null,C.createElement(A.FormattedMessage,{id:"admin.complianceExport.warningCount.globalrelay",defaultMessage:"{count} warning(s) encountered, see log for details",values:{count:e.data.warning_count}}))):t.push(C.createElement("div",null,C.createElement(A.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(C.createElement("div",null,e.data.progress_message)),t}return null};renderTitle(){return C.createElement(A.FormattedMessage,{id:"admin.complianceExport.title",defaultMessage:"Compliance Export"})}renderSettings=()=>{const e=[{value:ve.Fu.EXPORT_FORMAT_ACTIANCE,text:this.props.intl.formatMessage({id:"admin.complianceExport.exportFormat.actiance",defaultMessage:"Actiance XML"})},{value:ve.Fu.EXPORT_FORMAT_CSV,text:this.props.intl.formatMessage({id:"admin.complianceExport.exportFormat.csv",defaultMessage:"CSV"})},{value:ve.Fu.EXPORT_FORMAT_GLOBALRELAY,text:this.props.intl.formatMessage({id:"admin.complianceExport.exportFormat.globalrelay",defaultMessage:"Global Relay EML"})}];let t;if(this.state.exportFormat===ve.Fu.EXPORT_FORMAT_GLOBALRELAY){const e=C.createElement(tt,{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:C.createElement(A.FormattedMessage,Dd.globalRelayCustomerType_title),helpText:C.createElement(A.FormattedMessage,Dd.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}),a=C.createElement(ht,{id:"globalRelaySMTPUsername",label:C.createElement(A.FormattedMessage,Dd.globalRelaySMTPUsername_title),placeholder:(0,A.defineMessage)({id:"admin.complianceExport.globalRelaySMTPUsername.example",defaultMessage:'E.g.: "globalRelayUser"'}),helpText:C.createElement(A.FormattedMessage,Dd.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}),s=C.createElement(ht,{id:"globalRelaySMTPPassword",label:C.createElement(A.FormattedMessage,Dd.globalRelaySMTPPassword_title),placeholder:(0,A.defineMessage)({id:"admin.complianceExport.globalRelaySMTPPassword.example",defaultMessage:'E.g.: "globalRelayPassword"'}),helpText:C.createElement(A.FormattedMessage,Dd.globalRelaySMTPPassword_description),value:this.state.globalRelaySMTPPassword?this.state.globalRelaySMTPPassword:"",onCh
1ange:this.handleChange,setByEnv:this.isSetByEnv("DataRetentionSettings.GlobalRelaySettings.SMTPPassword"),disabled:this.props.isDisabled||!this.state.enableComplianceExport}),n=C.createElement(ht,{id:"globalRelayEmailAddress",label:C.createElement(A.FormattedMessage,Dd.globalRelayEmailAddress_title),placeholder:(0,A.defineMessage)({id:"admin.complianceExport.globalRelayEmailAddress.example",defaultMessage:'E.g.: "[email protected]"'}),helpText:C.createElement(A.FormattedMessage,Dd.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}),i=C.createElement(ht,{id:"globalRelayCustomSMTPServerName",label:C.createElement(A.FormattedMessage,{id:"admin.complianceExport.globalRelayCustomSMTPServerName.title",defaultMessage:"SMTP Server Name:"}),placeholder:(0,A.defineMessage)({id:"admin.complianceExport.globalRelayCustomSMTPServerName.example",defaultMessage:'E.g.: "feeds.globalrelay.com"'}),helpText:C.createElement(A.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=C.createElement(ht,{id:"globalRelayCustomSMTPPort",label:C.createElement(A.FormattedMessage,{id:"admin.complianceExport.globalRelayCustomSMTPPort.title",defaultMessage:"SMTP Server Port:"}),placeholder:(0,A.defineMessage)({id:"admin.complianceExport.globalRelayCustomSMTPPort.example",defaultMessage:'E.g.: "25"'}),helpText:C.createElement(A.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=C.createElement(gt,{id:"globalRelaySettings"},e,a,s,n,"CUSTOM"===this.state.globalRelayCustomerType&&i,"CUSTOM"===this.state.globalRelayCustomerType&&r)}const a=C.createElement(C.Fragment,null,C.createElement("p",null,C.createElement(A.FormattedMessage,Dd.exportFormat_description_intro)),C.createElement("p",null,C.createElement(A.FormattedMessage,Object.assign({},Dd.exportFormat_description_details,{values:{a:e=>C.createElement(T.Link,{to:"/admin_console/environment/file_storage"},e)}}))));return C.createElement(gt,null,C.createElement(F,{id:"enableComplianceExport",label:C.createElement(A.FormattedMessage,Dd.complianceExportTitle),helpText:C.createElement(A.FormattedMessage,Object.assign({},Dd.complianceExportDesc,{values:{link:e=>C.createElement(Ge.A,{href:ve.Uk.COMPILANCE_EXPORT,location:"message_export_settings"},e)}})),value:this.state.enableComplianceExport,onChange:this.handleChange,setByEnv:this.isSetByEnv("DataRetentionSettings.EnableExport"),disabled:this.props.isDisabled}),C.createElement(ht,{id:"exportJobStartTime",label:C.createElement(A.FormattedMessage,Dd.exportJobStartTime_title),placeholder:(0,A.defineMessage)({id:"admin.complianceExport.exportJobStartTime.example",defaultMessage:'E.g.: "02:00"'}),helpText:C.createElement(A.FormattedMessage,Dd.exportJobStartTime_description),value:this.state.exportJobStartTime,onChange:this.handleChange,setByEnv:this.isSetByEnv("DataRetentionSettings.DailyRunTime"),disabled:this.props.isDisabled||!this.state.enableComplianceExport}),C.createElement(we,{id:"exportFormat",values:e,label:C.createElement(A.FormattedMessage,Dd.exportFormat_title),helpText:a,value:this.state.exportFormat,onChange:this.handleChange,setByEnv:this.isSetByEnv("DataRetentionSettings.ExportFormat"),disabled:this.props.isDisabled||!this.state.enableComplianceExport}),t,C.createElement(Ze,{jobType:ve.jj.MESSAGE_EXPORT,createJobButtonText:C.createElement(A.FormattedMessage,Dd.createJob_title),createJobHelpText:C.createElement(A.FormattedMessage,Dd.createJob_help),getExtraInfoText:this.getJobDetails,disabled:this.props.isDisabled||!this.state.enableComplianceExport}))}}),Fd=a.p+"files/5f87fb0335aa3115cc71.svg",Ud=e=>{let{disabled:t,actions:a,config:s}=e;const[n,i]=(0,C.useState)(void 0);return C.createElement("div",{className:"OpenIdConvert"},C.createElement("div",{className:"OpenIdConvert_imageWrapper"},C.createElement("img",{className:"OpenIdConvert_image",src:Fd,alt:"OpenId Convert Image"})),C.createElement("div",{className:"OpenIdConvert_copyWrapper"},C.createElement("p",null,C.createElement(A.FormattedMessage,{id:"admin.openIdConvert.message",defaultMessage:"You can now convert your OAuth2.0 configuration to OpenID Connect."})),C.createElement("div",{className:"OpenIdConvert_actionWrapper"},C.createElement("button",{className:"btn","data-testid":"openIdConvert",disabled:t,onClick:async e=>{e.preventDefault();const t=JSON.parse(JSON.stringify(s));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=ve.YM.OPENID_SCOPES,t[e].UserAPIEndpoint="",t[e].AuthEndpoint="",t[e].TokenEndpoint=""}));const{error:n}=await a.patchConfig(t);n?i(n.message):(0,en.J)().push("/admin_console/authentication/openid")}},C.createElement(A.FormattedMessage,{id:"admin.openIdConvert.text",defaultMessage:"Convert to OpenID Connect"})),C.createElement(Ge.A,{className:"btn-secondary",location:"openid_convert",href:"https://www.mattermost.com/default-openid-docs","data-testid":"openIdLearnMore"},C.createElement(A.FormattedMessage,{id:"admin.openIdConvert.help",defaultMessage:"Learn more"})),C.createElement("div",{className:"error-message","data-testid":"errorMessage"},C.createElement(Ke.Ay,{error:n})))))},Bd=(0,C.memo)(Ud),Hd=(0,s.connect)(null,(function(e){return{actions:(0,n.zH)({patchConfig:i.tn},e)}}
1))(Bd);var Gd=a(79135);const Vd=(0,A.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:"}}),zd=[[Vd.minimumLength,{max:"",min:""}],[Vd.minimumLengthDescription,{max:"",min:""}],Vd.passwordMinLength,Vd.password,Vd.passwordRequirements,Vd.lowercase,Vd.uppercase,Vd.number,Vd.symbol,Vd.preview,Vd.attemptTitle,Vd.attemptDescription];
1function jd(e,t,a,s){let n="passwordError";return e&&(n+="Lowercase"),t&&(n+="Uppercase"),a&&(n+="Number"),s&&(n+="Symbol"),Gd.b[n]}a(22269);var Wd=a(70669);const Yd={system_guest:"Guest users",system_user:"Members and system administrators",system_admin:"System administrators"},qd={download_file_attachment:"Download Files",upload_file_attachment:"Upload Files"};function Zd(e){const t=e.rules?.flatMap((e=>e.actions||[]))||[];return[...new Set(t)].map((e=>qd[e]||e)).join(", ")||"None"}function Jd(e){const t=e.roles?.[0];return t?Yd[t]||t:"None"}const Kd=(0,s.connect)(null,(e=>({actions:(0,n.zH)({searchPolicies:As.a2,deletePolicy:As.fQ},e)})))((function(e){const[t,a]=(0,C.useState)([]),[s,n]=(0,C.useState)(0),[i,r]=(0,C.useState)(""),[l,o]=(0,C.useState)(!1),[d,c]=(0,C.useState)(""),[m,u]=(0,C.useState)(!1),[g,p]=(0,C.useState)([]),[h,f]=(0,C.useState)(0),E=(0,A.useIntl)(),M=(0,C.useMemo)((()=>(0,en.J)()),[]);(0,C.useEffect)((()=>{b()}),[]);const b=async function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];o(!0);try{const l=await e.actions.searchPolicies(t,s,11);if(!l?.data)return o(!1),void u(!0);const d=l.data.policies||[],c=l.data.total||0,m=d.length>10?d.slice(0,10):d,g=m.length>0?m[m.length-1].id:"";i?(a(m),o(!1),r(g),f(c),n(0),p([])):(a(m),o(!1),r(g),f(c))}catch{o(!1),u(!0)}},_=t.map((t=>({cells:{name:C.createElement("div",{className:"policy-name"},t.name),role:C.createElement("div",{className:"policy-resources"},Jd(t)),policyActions:C.createElement("div",{className:"policy-resources"},Zd(t)),actions:C.createElement("div",{className:"policy-actions"},C.createElement(Wd.mc,{menuButton:{id:`policy-menu-${t.id}`,class:"policy-menu-button",children:C.createElement("i",{className:"icon icon-dots-vertical"})},menu:{id:`policy-menu-dropdown-${t.id}`,"aria-label":E.formatMessage({id:"admin.permission_policies.menu.aria_label",defaultMessage:"Policy actions menu"})}},C.createElement(Wd.q7,{id:`policy-menu-edit-${t.id}`,onClick:()=>{M.push(`/admin_console/system_attributes/permission_policies/edit_policy/${t.id}`)},leadingElement:C.createElement("i",{className:"icon icon-pencil-outline"}),labels:C.createElement(A.FormattedMessage,{id:"admin.permission_policies.edit",defaultMessage:"Edit"})}),C.createElement(Wd.q7,{id:`policy-menu-delete-${t.id}`,onClick:()=>(async t=>{await e.actions.deletePolicy(t),n(0),p([]),b(d,"",!0)})(t.id),leadingElement:C.createElement("i",{className:"icon icon-trash-can-outline"}),labels:C.createElement(A.FormattedMessage,{id:"admin.permission_policies.delete",defaultMessage:"Delete"}),isDestructive:!0})))},onClick:()=>{M.push(`/admin_console/system_attributes/permission_policies/edit_policy/${t.id}`)}}))),y=[{name:C.createElement(A.FormattedMessage,{id:"admin.permission_policies.name",defaultMessage:"Name"}),field:"name",width:4},{name:C.createElement(A.FormattedMessage,{id:"admin.permission_policies.role",defaultMessage:"Role"}),field:"role",width:2},{name:C.createElement(A.FormattedMessage,{id:"admin.permission_policies.policy_actions",defaultMessage:"Permissions"}),field:"policyActions",width:3},{name:C.createElement("span",null),field:"actions",className:"actions-column",width:1}],{startCount:v,endCount:S}=(()=>{const e=10*s+1;return{startCount:e,endCount:e+t.length-1,total:h}})();let T=C.createElement(A.FormattedMessage,{id:"admin.permission_policies.no_policies_found",defaultMessage:"No permission policies found"});m&&(T=C.createElement(A.FormattedMessage,{id:"admin.permission_policies.search_errored",defaultMessage:"Something went wrong. Try again"}));const N={minHeight:40*_.length+"px"};return C.createElement("div",{className:"PolicyTable"},C.createElement("div",{className:"policy-header"},C.createElement("div",{className:"policy-header-text"},C.createElement("h1",null,C.createElement(A.FormattedMessage,{id:"admin.permission_policies.title",defaultMessage:"Permission Policies"})),C.createElement("p",null,C.createElement(A.FormattedMessage,{id:"admin.permission_policies.description",defaultMessage:"Create policies to control file upload and download permissions based on user attributes."}))),C.createElement("button",{className:"btn btn-primary",onClick:()=>{M.push("/admin_console/system_attributes/permission_policies/edit_policy")}},C.createElement("i",{className:"icon icon-plus"}),C.createElement("span",null,C.createElement(A.FormattedMessage,{id:"admin.permission_policies.add_policy",defaultMessage:"Add policy"}
1)))),C.createElement(ee.A,{columns:y,rows:_,loading:l,startCount:v,endCount:S,total:h,onSearch:async e=>{if(0===e.length)return n(0),r(""),p([]),o(!1),u(!1),c(""),void b();o(!0),c(e),await b(e,"",!0)},term:d,placeholderEmpty:T,rowsContainerStyles:N,nextPage:async()=>{const e=[...g,i];o(!0),n(s+1),p(e),await b(d,i)},previousPage:async()=>{if(0===g.length)return;const e=[...g];e.pop();const t=e.length>0?e[e.length-1]:"";o(!0),n(s-1),p(e),await b(d,t)}}))})),Qd=(0,A.defineMessages)({guestLabel:{id:"admin.permission_policies.role.system_guest.label",defaultMessage:"Guest users"},guestDescription:{id:"admin.permission_policies.role.system_guest.description",defaultMessage:"Applies only to guest users"},memberLabel:{id:"admin.permission_policies.role.system_user.label",defaultMessage:"Members and system administrators"},memberDescription:{id:"admin.permission_policies.role.system_user.description",defaultMessage:"Applies to regular members and administrators"},adminLabel:{id:"admin.permission_policies.role.system_admin.label",defaultMessage:"System administrators"},adminDescription:{id:"admin.permission_policies.role.system_admin.description",defaultMessage:"Applies only to system administrators"},selectRole:{id:"admin.permission_policies.role.select",defaultMessage:"Select a role"}}),Xd=[{value:"system_guest",label:Qd.guestLabel,description:Qd.guestDescription},{value:"system_user",label:Qd.memberLabel,description:Qd.memberDescription},{value:"system_admin",label:Qd.adminLabel,description:Qd.adminDescription}],$d=(0,A.defineMessages)({downloadLabel:{id:"admin.permission_policies.permission.download_file.label",defaultMessage:"Download Files"},downloadDescription:{id:"admin.permission_policies.permission.download_file.description",defaultMessage:"Allow users to download files to their device"},uploadLabel:{id:"admin.permission_policies.permission.upload_file.label",defaultMessage:"Upload Files"},uploadDescription:{id:"admin.permission_policies.permission.upload_file.description",defaultMessage:"Allow users to upload files while sending a message"}}),ec=[{value:"download_file_attachment",label:$d.downloadLabel,description:$d.downloadDescription},{value:"upload_file_attachment",label:$d.uploadLabel,description:$d.uploadDescription}];function tc(e){const t=e.flatMap((e=>e.actions||[]));return[...new Set(t)]}function ac(e,t){return e.trim()&&0!==t.length?[{actions:t,expression:e.trim()}]:[]}const sc=(0,s.connect)((function(e,t){const a=t.match.params.policy_id;return{policy:(0,Ws.Ar)(e,a),policyId:a,accessControlSettings:(0,Ws.Nh)(e)}}),(function(e){return{actions:(0,n.zH)({fetchPolicy:As.Ar,createPolicy:As.IS,deletePolicy:As.fQ,setNavigationBlocked:p.Jb},e)}}))((function(e){let{policy:t,policyId:a,actions:s,accessControlSettings:n}=e;const[i,r]=(0,C.useState)(t?.name||""),[l,o]=(0,C.useState)(t?.rules?.[0]?.expression||""),[d,c]=(0,C.useState)(t?.roles?.[0]||"system_user"),[m,u]=(0,C.useState)(tc(t?.rules||[])),[g,p]=(0,C.useState)(void 0),[h,f]=(0,C.useState)("table"),[E,M]=(0,C.useState)(!1),[b,_]=(0,C.useState)(!1),[y,v]=(0,C.useState)([]),[S,T]=(0,C.useState)(!1),[N,k]=(0,C.useState)(!1),[w,I]=(0,C.useState)(!1),{formatMessage:R}=(0,A.useIntl)(),L=(0,$s.V)(),x=S&&!(0,dn.OT)(y,n.EnableUserManagedAttributes);(0,C.useEffect)((()=>{P().finally((()=>I(!0)))}),[a]);const D=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\(['"][^'"]*['"].*?\)$/)})),P=async()=>{const e=L.getAccessControlFields("",100).then((e=>{e.data&&v(e.data),T(!0)}));if(a){const t=s.fetchPolicy(a).then((e=>{if(e.error)return void p(e.error.message||R({id:"admin.permission_policies.edit.error.load",defaultMessage:"Failed to load policy"}));const t=e.data?.rules?.[0]?.expression||"";r(e.data?.name||""),o(t),c(e.data?.roles?.[0]||"system_user"),u(tc(e.data?.rules||[])),f(D(t)?"table":"cel")}));await Promise.all([e,t])}else await e},O=(0,C.useCallback)((()=>{M(!0),s.setNavigationBlocked(!0)}),[s]),F=ec.filter((e=>!m.includes(e.value))),U=(0,C.useMemo)((()=>y.filter((e=>{if(n.EnableUserManagedAttributes)return!0;const t=e.attrs?.ldap||e.attrs?.saml,a="admin"===e.attrs?.managed,s=e.attrs?.protected;return t||a||s}))),[y,n.EnableUserManagedAttributes]);return C.createElement("div",{className:"wrapper--fixed PermissionPolicySettings"},C.createElement(fe,{withBackButton:!0},C.createElement("div",null,C.createElement(me.A,{to:"/admin_console/system_attributes/permission_policies",className:"fa fa-angle-left back"}),C.createElement(A.FormattedMessage,{id:"admin.permission_policies.edit.title",defaultMessage:"Attribute Based Permission Policy"}
1))),w?C.createElement(C.Fragment,null,C.createElement("div",{className:"admin-console__wrapper"},C.createElement("div",{className:"admin-console__content"},C.createElement("div",{className:"admin-console__setting-group"},C.createElement(pt.A,{id:"admin.permission_policies.edit.policyName",label:C.createElement(A.FormattedMessage,{id:"admin.permission_policies.edit.policyName.label",defaultMessage:"Access policy name:"}),value:i,placeholder:R({id:"admin.permission_policies.edit.policyName.placeholder",defaultMessage:"Add a unique policy name"}),onChange:(e,t)=>{r(t),O()},labelClassName:"col-sm-4 vertically-centered-label",inputClassName:"col-sm-8",autoFocus:void 0===a})),C.createElement("div",{className:"pp-info-banner"},C.createElement("i",{className:"icon icon-information-outline"}),C.createElement("div",{className:"pp-info-banner-content"},C.createElement("span",{className:"pp-info-banner-title"},C.createElement(A.FormattedMessage,{id:"admin.permission_policies.edit.info_banner.title",defaultMessage:"The permissions defined in this policy override the {link} when its conditions are met",values:{link:C.createElement(me.A,{to:"/admin_console/user_management/permissions",className:"pp-info-banner-link"},C.createElement(A.FormattedMessage,{id:"admin.permission_policies.edit.info_banner.link",defaultMessage:"system permission schemes"}))}})),C.createElement("span",{className:"pp-info-banner-subtitle"},C.createElement(A.FormattedMessage,{id:"admin.permission_policies.edit.info_banner.evaluation_order",defaultMessage:"Permissions evaluation order: Permission policies (evaluated first) â System scheme / Team override scheme (fallback when no policy applies)."})))),x&&C.createElement("div",{className:"admin-console__warning-notice"},C.createElement(Xs.A,{type:"warning",title:C.createElement(A.FormattedMessage,{id:"admin.permission_policies.edit.notice.title",defaultMessage:"Please add user attributes and values to use Attribute-Based Access Control"}),text:R({id:"admin.permission_policies.edit.notice.text",defaultMessage:"You haven't 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."}),primaryButton:{text:R({id:"admin.permission_policies.edit.notice.button",defaultMessage:"Configure user attributes"}),onClick:()=>{(0,en.J)().push("/admin_console/system_attributes/user_attributes")}}})),C.createElement(Js,{expanded:!0,className:"console"},C.createElement(Js.Header,null,C.createElement(Ks,{title:C.createElement(A.FormattedMessage,{id:"admin.permission_policies.edit.who.title",defaultMessage:"Who this policy applies to"}),subtitle:C.createElement(A.FormattedMessage,{id:"admin.permission_policies.edit.who.subtitle",defaultMessage:"Define rules based on user attributes and values"})})),C.createElement(Js.Body,null,C.createElement("div",{className:"pp-role-selector"},C.createElement("span",{className:"pp-role-selector-label"},C.createElement(A.FormattedMessage,{id:"admin.permission_policies.edit.who.role_label",defaultMessage:"Select a role from the predefined list of system roles"})),C.createElement(Wd.mc,{menuButton:{id:"pp-role-selector-btn",class:"pp-role-dropdown-button",children:C.createElement(C.Fragment,null,C.createElement("span",null,(()=>{const e=Xd.find((e=>e.value===d));return R(e?e.label:Qd.selectRole)})()),C.createElement("i",{className:"icon icon-chevron-down"}))},menu:{id:"pp-role-selector-menu","aria-label":R({id:"admin.permission_policies.edit.who.role_menu_aria",defaultMessage:"Role selection menu"})}},Xd.map((e=>C.createElement(Wd.q7,{key:e.value,id:`pp-role-option-${e.value}`,onClick:()=>{c(e.value),O()},labels:C.createElement(C.Fragment,null,C.createElement("span",null,R(e.label)),C.createElement("span",null,R(e.description))),trailingElements:d===e.value?C.createElement("i",{className:"icon icon-check"}):void 0}))))))),C.createElement(Js,{expanded:!0,className:"console"},C.createElement(Js.Header,null,C.createElement(Ks,{title:C.createElement(A.FormattedMessage,{id:"admin.permission_policies.edit.who.attributes_title",defaultMessage:"User attribute requirements"}),subtitle:C.createElement(A.FormattedMessage,{id:"admin.permission_policies.edit.who.attributes_subt
1itle",defaultMessage:"Select attributes and values that users must have for this policy"}),buttonText:"table"===h?C.createElement(A.FormattedMessage,{id:"admin.permission_policies.edit.switch_to_advanced",defaultMessage:"Switch to Advanced Mode"}):C.createElement(A.FormattedMessage,{id:"admin.permission_policies.edit.switch_to_simple",defaultMessage:"Switch to Simple Mode"}),onClick:()=>f("table"===h?"cel":"table"),isDisabled:x||"cel"===h&&!D(l),tooltipText:x?R({id:"admin.permission_policies.edit.no_usable_attributes_tooltip",defaultMessage:"Please configure user attributes to use the editor."}):"cel"!==h||D(l)?void 0:R({id:"admin.permission_policies.edit.complex_expression_tooltip",defaultMessage:"Complex expression detected. Simple expressions editor is not available at the moment."})})),C.createElement(Js.Body,null,"cel"===h?C.createElement(mn,{value:l,onChange:e=>{o(e),O()},onValidate:()=>{},disabled:x,userAttributes:U.map((e=>({attribute:e.name,values:[]})))}):C.createElement(un.Ay,{value:l,onChange:e=>{o(e),O()},onValidate:()=>{},disabled:x,userAttributes:y,onParseError:()=>{f("cel")},enableUserManagedAttributes:n.EnableUserManagedAttributes,actions:L}))),C.createElement(Js,{expanded:!0,className:"console"},C.createElement(Js.Header,null,C.createElement(Ks,{title:C.createElement(A.FormattedMessage,{id:"admin.permission_policies.edit.permissions.title",defaultMessage:"What permissions are modified"}),subtitle:C.createElement(A.FormattedMessage,{id:"admin.permission_policies.edit.permissions.subtitle",defaultMessage:"These permissions override the default system permission scheme when policy conditions are met"})})),C.createElement(Js.Body,null,C.createElement("div",{className:"pp-permissions-table"},C.createElement("div",{className:"pp-permissions-table-header"},C.createElement(A.FormattedMessage,{id:"admin.permission_policies.edit.permissions.column_header",defaultMessage:"Permission"})),0===m.length?C.createElement("div",{className:"pp-permissions-table-empty"},C.createElement(A.FormattedMessage,{id:"admin.permission_policies.edit.permissions.empty",defaultMessage:"Add a permission to this policy"})):m.map((e=>{const t=ec.find((t=>t.value===e));return C.createElement("div",{key:e,className:"pp-permissions-table-row"},C.createElement("span",{className:"pp-permission-label"},t?R(t.label):e),C.createElement("button",{className:"pp-permission-remove",onClick:()=>(e=>{u((t=>t.filter((t=>t!==e)))),O()})(e),"aria-label":R({id:"admin.permission_policies.edit.permissions.remove_aria",defaultMessage:"Remove permission"})},C.createElement("i",{className:"icon icon-trash-can-outline"})))}))),F.length>0&&C.createElement(Wd.mc,{menuButton:{id:"pp-add-permission-btn",class:"pp-add-permission-button",children:C.createElement(C.Fragment,null,C.createElement("i",{className:"icon icon-plus"}),C.createElement(A.FormattedMessage,{id:"admin.permission_policies.edit.permissions.add",defaultMessage:"Add permission"}))},menu:{id:"pp-add-permission-menu","aria-label":R({id:"admin.permission_policies.edit.permissions.menu_aria",defaultMessage:"Add permission menu"})}},F.map((e=>C.createElement(Wd.q7,{key:e.value,id:`pp-add-permission-${e.value}`,onClick:()=>{return t=e.value,void(m.includes(t)||(u((e=>[...e,t])),O()));var t},labels:C.createElement(C.Fragment,null,C.createElement("span",null,R(e.label)),C.createElement("span",null,R(e.description)))})))))),a&&C.createElement(Js,{expanded:!0,className:"console delete-policy"},C.createElement(Js.Header,null,C.createElement(Ks,{title:C.createElement(A.FormattedMessage,{id:"admin.permission_policies.edit.delete.title",defaultMessage:"Delete policy"}),subtitle:C.createElement(A.FormattedMessage,{id:"admin.permission_policies.edit.delete.subtitle",defaultMessage:"This policy will be deleted and cannot be recovered."}),buttonText:C.createElement(A.FormattedMessage,{id:"admin.permission_policies.edit.delete.button",defaultMessage:"Delete"}),onClick:()=>k(!0)}))))),N&&C.createElement(ks.zW,{onExited:()=>k(!1),handleConfirm:async()=>{if(a)try{const e=await s.deletePolicy(a);if(e.error)return void p(R({id:"admin.permission_policies.edit.error.delete",defaultMessage:"Error deleting policy: {error}"},{error:String(e.error.message||e.error)}));s.setNavigationBlocked(!1),(0,en.J)().push("/admin_console/system_attributes/permission_policies")}catch(e){p(R({id:"admin.permission_policies.edit.error.delete",defaultMessage:"Error deleting policy: {error}"},{error:e.message}))}},handleCancel:()=>k(!1),modalHeaderText:C.createElement(A.FormattedMessage,{id:"admin.permission_policies.edit.delete_confirmation.title",defaultMessage:"Confirm Policy Deletion"}),confirmButtonText:C.createElement(A.FormattedMessage,{id:"admin.permission_policies.edit.delete_confirmation.confirm",defaultMessage:"Delete Policy"}),confirmButtonClassName:"btn btn-danger",isDeleteModal:!0,compassDesign:!0},C.createElement(A.FormattedMessage,{id:"admin.permission_policies.edit.delete_confirmation.message",defaultMessage:"Are you sure you want to delete this policy? This action cannot be undone."})),C.createElement("div",{className:"admin-console-save"},C.createElement(ue.A,{disabled:!E,saving:b,onClick:async()=>
1{if(0===i.trim().length?(p(R({id:"admin.permission_policies.edit.error.name_required",defaultMessage:"Please add a name to the policy"})),0):0===l.trim().length?(p(R({id:"admin.permission_policies.edit.error.expression_required",defaultMessage:"Please add an expression to the policy"})),0):d?0!==m.length||(p(R({id:"admin.permission_policies.edit.error.permissions_required",defaultMessage:"Please select at least one permission"})),0):(p(R({id:"admin.permission_policies.edit.error.role_required",defaultMessage:"Please select a role"})),0)){_(!0);try{const e=await s.createPolicy({id:a||"",name:i,rules:ac(l,m),roles:[d],type:"permission"});if(e.error)return void("app.pap.save_policy.name_exists.app_error"===e.error.server_error_id?p(R({id:"admin.permission_policies.edit.name_exists",defaultMessage:"A policy with this name already exists. Please choose a different name."})):p(e.error.message));M(!1),s.setNavigationBlocked(!1),(0,en.J)().push("/admin_console/system_attributes/permission_policies")}finally{_(!1)}}},defaultMessage:C.createElement(A.FormattedMessage,{id:"admin.permission_policies.edit.save",defaultMessage:"Save"})}),C.createElement(me.A,{className:"btn btn-quaternary",to:"/admin_console/system_attributes/permission_policies"},C.createElement(A.FormattedMessage,{id:"admin.permission_policies.edit.cancel",defaultMessage:"Cancel"})),g&&C.createElement("span",{className:"pp-error"},C.createElement("i",{className:"icon icon-alert-outline"}),C.createElement(A.FormattedMessage,{id:"admin.permission_policies.edit.serverError",defaultMessage:"There are errors in the form above: {serverError}",values:{serverError:g}})))):C.createElement("div",{className:"admin-console__wrapper"},C.createElement("div",{className:"admin-console__content"})))}));var nc=a(23877),ic=a(1418);function rc(e){return(0,sn.n4)({clientFunc:I.mT.getScheme,onSuccess:[nc.pV.RECEIVED_SCHEME],params:[e]})}function lc(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:o.Bz.PAGE_SIZE_DEFAULT;return(0,sn.n4)({clientFunc:I.mT.getSchemes,onSuccess:[nc.pV.RECEIVED_SCHEMES],params:[e,t,a]})}function oc(e){return(0,sn.n4)({clientFunc:I.mT.createScheme,onSuccess:[nc.pV.CREATED_SCHEME],params:[e]})}function dc(e){return async(t,a)=>{let s=null;try{s=await I.mT.deleteScheme(e)}catch(e){return(0,sn.UP)(e,t,a),t((0,ic.vV)(e)),{error:e}}return t({type:nc.pV.DELETED_SCHEME,data:{schemeId:e}}),{data:s}}}function cc(e,t){return(0,sn.n4)({clientFunc:I.mT.patchScheme,onSuccess:[nc.pV.PATCHED_SCHEME],params:[e,t]})}function mc(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:o.Bz.PAGE_SIZE_DEFAULT;return(0,sn.n4)({clientFunc:I.mT.getSchemeTeams,onSuccess:[nc.pV.RECEIVED_SCHEME_TEAMS],params:[e,t,a]})}function uc(e){return e.entities.schemes.schemes}function gc(e,t){return uc(e)[t]}function pc(){return(0,v.Mz)("makeGetSchemeTeams",u.ZN,((e,t)=>gc(e,t.schemeId)),((e,t)=>{if(!t)return[];if("channel"===t.scope){const e=`Error: scheme '${t.id}' is channel-scoped but 'getSchemeChannels' only accepts team-scoped schemes.`;return console.log(e),[]}const a=[];return Object.entries(e).forEach((e=>{const[,s]=e;s.scheme_id===t.id&&a.push(s)})),a}))}const hc=e=>{let{className:t="",linkText:a,subtitle:s,title:n,url:i,children:r,disabled:l,id:o,subtitleValues:d}=e;const c=C.createElement(T.Link,{"data-testid":`${o}-link`,className:he()(["btn","btn-primary",{disabled:l}]),to:i,onClick:l?e=>e.preventDefault():()=>null},C.createElement(A.FormattedMessage,a));return C.createElement(Tl,{className:"AdminPanelWithLink "+t,id:o,"data-testid":o,title:n,subtitle:s,subtitleValues:d,button:c},r)};class fc extends C.PureComponent{constructor(e){super(e),this.state={showConfirmModal:!1,deleting:!1,serverError:void 0}}renderConfirmModal=()=>{const e=C.createElement(A.FormattedMessage,{id:"admin.permissions.permissionsSchemeSummary.deleteSchemeTitle",defaultMessage:"Delete {scheme} scheme?",values:{scheme:this.props.scheme.display_name}});let t=null;this.state.serverError&&(t=C.createElement("div",{className:"permission-scheme-summary-error-message"},C.createElement("i",{className:"fa fa-exclamation-circle"})," ",this.state.serverError));const a=C.createElement("div",null,C.createElement("p",null,C.createElement(A.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),s=C.createElement(rt.A,{loading:this.state.deleting,text:(0,A.defineMessage)({id:"admin.permissions.permissionsSchemeSummary.deleting",defaultMessage:"Deleting..."})},C.createElement(A.FormattedMessage,{id:"admin.permissions.permissionsSchemeSummary.deleteConfirmButton",defaultMessage:"Yes, Delete"}));return C.createElement(Aa.A,{show:this.state.showConfirmModal,title:e,message:a,confirmButtonText:s,onConfirm:this.handleDeleteConfirmed,onCancel:this.handleDeleteC
1anceled})};stopPropagation=e=>{e.stopPropagation()};handleDeleteCanceled=()=>{this.setState({showConfirmModal:!1})};handleDeleteConfirmed=async()=>{this.setState({deleting:!0,serverError:void 0});const e=await(this.props.actions?.deleteScheme(this.props.scheme.id));e?.error?this.setState({deleting:!1,serverError:e.error.message}):this.setState({deleting:!1,showConfirmModal:!1})};delete=e=>{e.stopPropagation(),this.props.isDisabled||this.setState({showConfirmModal:!0,serverError:void 0})};goToEdit=()=>{this.props.history.push("/admin_console/user_management/permissions/team_override_scheme/"+this.props.scheme.id)};render=()=>{const{scheme:e,isDisabled:t}=this.props;let a=this.props.teams?this.props.teams.map((e=>C.createElement("span",{className:"team",key:e.id},e.display_name))):[],s=null;a.length>8&&(s=C.createElement(Nt.A,{title:this.props?.teams?.slice(8).map((e=>e.display_name)).join(", ")??""},C.createElement("span",{className:"team",key:"extra-teams"},C.createElement(A.FormattedMessage,{id:"admin.permissions.permissionsSchemeSummary.moreTeams",defaultMessage:"+{number} more",values:{number:a.length-8}}))),a=a.slice(0,8));const n=this.renderConfirmModal();return C.createElement("div",{className:"permissions-scheme-summary","data-testid":"permissions-scheme-summary",onClick:this.goToEdit},C.createElement("div",{onClick:this.stopPropagation},n),C.createElement("div",{className:"permissions-scheme-summary--header"},C.createElement("div",{className:"title"},e.display_name),C.createElement("div",{className:"actions"},C.createElement(T.Link,{"data-testid":`${e.display_name}-edit`,className:"edit-button",to:"/admin_console/user_management/permissions/team_override_scheme/"+e.id},C.createElement(A.FormattedMessage,{id:"admin.permissions.permissionsSchemeSummary.edit",defaultMessage:"Edit"})),"-",C.createElement("a",{"data-testid":`${e.display_name}-delete`,className:t?"delete-button disabled":"delete-button",onClick:this.delete},C.createElement(A.FormattedMessage,{id:"admin.permissions.permissionsSchemeSummary.delete",defaultMessage:"Delete"})))),C.createElement("div",{className:"permissions-scheme-summary--description"},e.description),C.createElement("div",{className:"permissions-scheme-summary--teams"},a,s))}}const Ec=(0,s.connect)((function(){const e=pc();return function(t,a){return{teams:e(t,{schemeId:a.scheme.id})}}}),(function(e){return{actions:(0,n.zH)({deleteScheme:dc},e)}}))(fc),Mc=(0,A.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"}}),bc=[Mc.teamOverrideSchemesNoSchemes,Mc.loadMoreSchemes,Mc.introBanner,Mc.systemSchemeBannerTitle,Mc.systemSchemeBannerText,Mc.systemSchemeBannerButton,Mc.teamOverrideSchemesTitle,Mc.teamOverrideSchemesBannerText,Mc.teamOverrideSchemesNewButton];class _c extends C.PureComponent{constructor(e){super(e),this.state={loading:!0,loadingMore:!1,page:0,phase2MigrationIsComplete:!1}}static defaultProps={schemes:{}};componentDidMount(){let e=!0;this.props.actions.loadSchemes("team",0,30).then((t=>{501===t.error.status_code&&(e=!1);const a=[];for(const e of t.data)a.push(this.props.actions.loadSchemeTeams(e.id));Promise.all(a).then((()=>this.setState({loading:!1,phase2MigrationIsComplete:e})))})).catch((()=>{this.setState({loading:!1,phase2MigrationIsComplete:e})}))}loadMoreSchemes=()=>{this.setState({loadingMore:!0}),this.props.actions.loadSchemes("team",this.state.page+1,30).then((e=>{const t=[];for(const a of e.data)t.push(this.props.actions.loadSchemeTeams(a.id));Promise.all(t).then((()=>this.setState({loadingMore:!1,page:this.state.page+1})))}
1))};teamOverrideSchemesMigrationView=()=>this.state.phase2MigrationIsComplete?null:this.props.jobsAreEnabled&&!this.props.clusterIsEnabled?this.teamOverrideUnavalableView((0,A.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,A.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>."}));teamOverrideUnavalableView=e=>C.createElement("div",{className:"team-override-unavailable"},C.createElement("div",{className:"team-override-unavailable__inner"},C.createElement(A.FormattedMessage,Object.assign({},e,{values:{link:e=>C.createElement(Ge.A,{href:"https://docs.mattermost.com/administration/config-settings.html#jobs",location:"permission_scheme_settings"},e)}}))));renderTeamOverrideSchemes=()=>{const e=Object.values(this.props.schemes).map((e=>C.createElement(Ec,{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===ve.gS.Professional,a=this.teamOverrideSchemesMigrationView();return!!t&&C.createElement(hc,{id:"team-override-schemes",className:"permissions-block",title:Mc.teamOverrideSchemesTitle,subtitle:Mc.teamOverrideSchemesBannerText,subtitleValues:{link:e=>C.createElement(Ge.A,{href:ve.Uk.ONBOARD_ADVANCED_PERMISSIONS,location:"permission_scheme_settings"},e)},url:"/admin_console/user_management/permissions/team_override_scheme",disabled:null!==a||this.props.isDisabled,linkText:Mc.teamOverrideSchemesNewButton},0===e.length&&null===a&&C.createElement("div",{className:"no-team-schemes"},C.createElement(A.FormattedMessage,Mc.teamOverrideSchemesNoSchemes)),a,e.length>0&&e,e.length===30*(this.state.page+1)&&C.createElement("button",{type:"button",className:"more-schemes theme style--none color--link",onClick:this.loadMoreSchemes,disabled:this.props.isDisabled||this.state.loadingMore},C.createElement(rt.A,{loading:this.state.loadingMore,text:(0,A.defineMessage)({id:"admin.permissions.loadingMoreSchemes",defaultMessage:"Loading..."})},C.createElement(A.FormattedMessage,Mc.loadMoreSchemes))))};render=()=>{if(this.state.loading)return C.createElement(Ta.A,null);const e=this.teamOverrideSchemesMigrationView();return C.createElement("div",{className:"wrapper--fixed"},C.createElement(fe,null,C.createElement(A.FormattedMessage,{id:"admin.permissions.permissionSchemes",defaultMessage:"Permission Schemes"})),C.createElement("div",{className:"admin-console__wrapper"},C.createElement("div",{className:"admin-console__content"},C.createElement("div",{className:"banner info"},C.createElement("div",{className:"banner__content"},C.createElement("span",null,C.createElement(A.FormattedMessage,Object.assign({},Mc.introBanner,{values:{link:e=>C.createElement(Ge.A,{href:ve.Uk.ONBOARD_ADVANCED_PERMISSIONS,location:"permission_scheme_settings"},e)}}))))),C.createElement(hc,{id:"systemScheme",title:Mc.systemSchemeBannerTitle,subtitle:Mc.systemSchemeBannerText,subtitleValues:{link:e=>C.createElement(Ge.A,{href:ve.Uk.ONBOARD_ADVANCED_PERMISSIONS,location:"permission_scheme_settings"},e)},url:"/admin_console/user_management/permissions/system_scheme",disabled:null!==e,linkText:Mc.systemSchemeBannerButton}),this.renderTeamOverrideSchemes())))}}const yc=(0,s.connect)((function(e){const t=uc(e),a=(0,c.zj)(e);return{schemes:t,jobsAreEnabled:"true"===a.RunJobs,clusterIsEnabled:"true"===a.EnableCluster}}),(function(e){return{actions:(0,n.zH)({loadSchemes:lc,loadSchemeTeams:mc},e)}}))(_c);a(5673),a(30164),a(21279);var vc=a(45655);function Sc(e){return C.createElement("span",e,C.createElement("svg",{width:"30px",height:"30px",viewBox:"0 0 30 30"},C.createElement("g",{id:"Developer-Export",stroke:"none",strokeWidth:"1",fill:"none",fillRule:"evenodd"},C.createElement("g",{transform:"translate(-995.000000, -1372.000000)",id:"All-Team-Members"},C.createElement("g",{transform:"translate(245.000000, 698.000000)"},C.createElement("g",{id:"Team-Administrators",transform:"translate(0.000000, 651.000000)"},C.createElement("g",{id:"accordion-header"},C.createElement("g",{id:"accordion---expanded",transform:"translate(750.000000, 23.000000)"},C.createElement("path",{d:"M23.1484532,13.3124932 C23.3437659,13.1171805 23.3437659,12.7968676 23.1484532,12.601
15549 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"}),C.createElement("circle",{id:"Oval-2",stroke:"#989898",strokeWidth:"2",cx:"15",cy:"15",r:"14"})))))))))}const Cc=e=>{let{className:t="",open:a=!0,subtitle:s,title:n,children:i,id:r,onToggle:l}=e;return C.createElement(Tl,{className:"AdminPanelTogglable "+t+(a?"":" closed"),id:r,title:n,subtitle:s,onHeaderClick:l,button:C.createElement(Sc,null)},C.createElement("div",{className:"AdminPanelTogglableContent"},C.createElement("div",{className:"AdminPanelTogglableContentInner"},i)))},Ac=(0,s.connect)((function(e){const{PostEditTimeLimit:t}=(0,c.zj)(e);return{timeLimit:t?parseInt(t,10):ve.YM.UNSET_POST_EDIT_TIME_LIMIT}}))((function(e){return C.createElement("button",{type:"button",className:"edit-post-time-limit-button",onClick:e.onClick,disabled:e.isDisabled},C.createElement("i",{className:"fa fa-gear"}),e.timeLimit===ve.YM.UNSET_POST_EDIT_TIME_LIMIT?C.createElement(A.FormattedMessage,{id:"edit_post.time_limit_button.no_limit",defaultMessage:"Anytime"}):C.createElement(A.FormattedMessage,{id:"edit_post.time_limit_button.for_n_seconds",defaultMessage:"For {n} seconds",values:{n:e.timeLimit}}))})),Tc=2147483647,Nc=(0,s.connect)((function(e){return{config:(0,d.zj)(e)}}),(function(e){return{actions:(0,n.zH)({patchConfig:i.tn},e)}}))((function(e){const{ServiceSettings:t}=e.config,a=(0,A.useIntl)(),[s,n]=(0,C.useState)(!1),[i,r]=(0,C.useState)(""),[l,o]=(0,C.useState)(t?.PostEditTimeLimit||ve.YM.UNSET_POST_EDIT_TIME_LIMIT),[d,c]=(0,C.useState)(l<0),m=e=>{let{currentTarget:t}=e;c(t.value===ve.YM.ALLOW_EDIT_POST_ALWAYS)};return C.createElement(Gn.Modal,{dialogClassName:"a11y__modal admin-modal edit-post-time-limit-modal",show:e.show,role:"none","aria-labelledby":"editPostTimeModalLabel",onHide:e.onClose},C.createElement(Gn.Modal.Header,{closeButton:!0},C.createElement(Gn.Modal.Title,{componentClass:"h1",id:"editPostTimeModalLabel"},C.createElement(A.FormattedMessage,{id:"edit_post.time_limit_modal.title",defaultMessage:"Configure Global Edit Post Time Limit"}))),C.createElement(Gn.Modal.Body,null,C.createElement(A.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=>C.createElement("b",null,e)}}),C.createElement("div",{className:"pt-3"},C.createElement("div",{className:"pt-3"},C.createElement("input",{id:"anytime",type:"radio",name:"limit",value:ve.YM.ALLOW_EDIT_POST_ALWAYS,checked:d,onChange:m}),C.createElement("label",{htmlFor:"anytime"},C.createElement(A.FormattedMessage,{id:"edit_post.time_limit_modal.option_label_anytime",defaultMessage:"Anytime"}))),C.createElement("div",{className:"pt-2"},C.createElement("input",{id:"timelimit",type:"radio",name:"limit",value:ve.YM.ALLOW_EDIT_POST_TIME_LIMIT,checked:!d,onChange:m}),C.createElement("label",{htmlFor:"timelimit"},C.createElement(A.FormattedMessage,{id:"edit_post.time_limit_modal.option_label_time_limit.preinput",defaultMessage:"Can edit for"})),C.createElement("input",{type:"number",className:"form-control inline",min:"0",step:"1",max:Tc,id:"editPostTimeLimit",readOnly:d,onChange:e=>{let{currentTarget:t}=e;return o(parseInt(t.value,10))},value:d?"":l}),C.createElement("label",{htmlFor:"timelimit"},C.createElement(A.FormattedMessage,{id:"edit_post.time_limit_modal.option_label_time_limit.postinput",defaultMessage:"seconds after posting"}))),C.createElement("div",{className:"pt-3 light"},C.createElement(A.FormattedMessage,{id:"edit_post.time_limit_modal.subscript",defaultMessage:"Set the length of time users have to edit their messages after posting."})),C.createElement("div",{className:"edit-post-time-limit-modal__error"},i))),C.createElement(Gn.Modal.Footer,null,C.createElement("button",{type:"button",className:"btn btn-tertiary",onClick:e.onClose},C.createElement(A.FormattedMessage,{id:"confirm_modal.cancel",defaultMessage:"Cancel"})),C.createElement("button",{id:"linkModalCloseButton",type:"button",className:"btn btn-primary",onClick:async()=>
1{if(n(!0),r(""),isNaN(l)||l<0||l>Tc)return r(a.formatMessage({id:"edit_post.time_limit_modal.invalid_time_limit",defaultMessage:"Invalid time limit"})),n(!1),o(0),!1;const t=JSON.parse(JSON.stringify(e.config));t.ServiceSettings.PostEditTimeLimit=d?ve.YM.UNSET_POST_EDIT_TIME_LIMIT:l;const{error:s}=await e.actions.patchConfig(t);return s?(r(s.message),n(!1)):(n(!1),e.onClose()),!0},disabled:s},s?C.createElement(A.FormattedMessage,{id:"save_button.saving",defaultMessage:"Saving"}):C.createElement(A.FormattedMessage,{id:"edit_post.time_limit_modal.save_button",defaultMessage:"Save Edit Time"}))))})),kc=()=>C.createElement("svg",{width:"18px",height:"18px",viewBox:"0 0 18 18"},C.createElement("g",{id:"Developer-Export",stroke:"none",strokeWidth:"1",fillRule:"evenodd"},C.createElement("g",{transform:"translate(-298.000000, -1273.000000)",id:"All-Team-Members"},C.createElement("g",{transform:"translate(245.000000, 698.000000)"},C.createElement("g",{id:"Channel-Administrators",transform:"translate(0.000000, 106.000000)"},C.createElement("g",{id:"data-table/column-1",transform:"translate(11.000000, 86.000000)"},C.createElement("g",{id:"row-checkbox---@all-@channel-Mentions",transform:"translate(0.000000, 375.000000)"},C.createElement("g",{id:"Stacked-Group"},C.createElement("g",{id:"data-table/1st/row-checkbox-label-base",transform:"translate(25.
1000000, 5.000000)"},C.createElement("g",{id:"check-on-copy-11",transform:"translate(14.000000, 0.000000)"},C.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"}))))))))))),wc=(0,C.memo)(kc),Ic=e=>{let{value:t="",id:a=""}=e,s=null,n="";return"checked"===t?(s=C.createElement(zl.A,null),n="checked"):"intermediate"===t&&(s=C.createElement(wc,null),n="intermediate"),C.createElement("div",{className:"permission-check "+n,"data-testid":a},s)},Rc=(0,A.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"}}),Lc=e=>{let{id:t,selectRow:a,description:s,additionalValues:n,inherited:i}=e;const{formatMessage:r}=(0,A.useIntl)();let l="";if(i&&i.name){const e=r(Rc[i.name]);l=C.createElement("span",{className:"inherit-link-wrapper"},C.createElement(A.FormattedMessage,{id:"admin.permissions.inherited_from",defaultMessage:"Inherited from <link>{name}</link>.",values:{name:e,link:e=>C.createElement("a",null,e)}}))}else l=s;let o=!0;return!i&&n&&(o=!1),C.createElement(Nt.A,{title:l,disabled:!o},C.createElement("span",{className:"permission-description",onClick:e=>{const s=e.target.parentElement,n="inherit-link-wrapper"===s?.parentElement?.className;"permission-description"===s?.className||n?n&&(a(t),e.stopPropagation()):e.stopPropagation()}},l))},xc={assign_system_admin_role:(0,A.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,A.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,A.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"}}),manage_own_agent:(0,A.defineMessages)({name:{id:"admin.permissions.permission.manage_own_agent.name",defaultMessage:"Manage own AI agents"},description:{id:"admin.permissions.permission.manage_own_agent.description",defaultMessage:"Create and manage your own AI agents."}}),manage_others_agent:(0,A.defineMessages)({name:{id:"admin.permissions.permission.manage_others_agent.name",defaultMessage:"Manage others' AI agents"},description:{id:"admin.permissions.permission.manage_others_agent.description",defaultMessage:"Create and manage AI agents for other users."}}),create_direct_channel:(0,A.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,A.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,A.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,A.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,A.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,A.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,A.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,A.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,A.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,A.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,A.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,A.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,A.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,A.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,A.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,A.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,A.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,A.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,A.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,A.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,A.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,A.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,A.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,A.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_public_channel_auto_translation:(0,A.defineMessages)({name:{id:"admin.permissions.permission.manage_public_channel_auto_translation.name",defaultMessage:"Manage Channel Auto Translation"},description:{id:"admin.permissions.permission.manage_public_channel_auto_translation.description",defaultMessage:"Enable or disable auto translations for public channels."}}),manage_private_channel_auto_translation:(0,A.defineMessages)({name:{id:"admin.permissions.permission.manage_private_channel_auto_translation.name",defaultMessage:"Manage Channel Auto Translation"},description:{id:"admin.permissions.permission.manage_private_channel_auto_translation.description",defaultMessage:"Enable or disable auto translations for private channels."}}),manage_roles:(0,A.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,A.defineMessages)({name:{id:"admin.permissions.permission.manage_slash_commands.name",defaultMessage:"Manage Others'"},description:{id:"admin.permissions.permission.manage_slash_commands.description",defaultMessage:"Create, edit and delete slash commands owned by other users."}}),manage_own_slash_commands:(0,A.defineMessages)({name:{id:"admin.permissions.permission.manage_own_slash_commands.name",defaultMessage:"Manage Own"},description:{id:"admin.permissions.permission.manage_own_slash_commands.description",defaultMessage:"Create, edit and delete your own slash commands."}}),manage_others_slash_commands:(0,A.defineMessages)({name:{id:"admin.permissions.permission.manage_others_slash_commands.name",defaultMessage:"Manage Others'"},description:{id:"admin.permissions.permission.manage_others_slash_commands.description",defaultMessage:"Create, edit and delete slash commands owned by other users."}}),manage_system:(0,A.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,A.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,A.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,A.defineMessages)({name:{id:"admin.permissions.permission.manage_incoming_webhooks.name",defaultMessage:"Manage Others'"},description:{id:"admin.permissions.permission.manage_incoming_webhooks.description",defaultMessage:"Create, edit, and delete incoming webhooks owned by other users."}}),manage_own_incoming_webhooks:(0,A.defineMessages)({name:{id:"admin.permissions.permission.manage_own_incoming_webhooks.name",defaultMessage:"Manage Own"},description:{id:"admin.permissions.permission.manage_own_incoming_webhooks.description",defaultMessage:"Create, edit, and delete your own incoming webhooks."}}
1),manage_others_incoming_webhooks:(0,A.defineMessages)({name:{id:"admin.permissions.permission.manage_others_incoming_webhooks.name",defaultMessage:"Manage Others'"},description:{id:"admin.permissions.permission.manage_others_incoming_webhooks.description",defaultMessage:"Create, edit, and delete incoming webhooks owned by other users."}}),bypass_incoming_webhook_channel_lock:(0,A.defineMessages)({name:{id:"admin.permissions.permission.bypass_incoming_webhook_channel_lock.name",defaultMessage:"Bypass Channel Lock"},description:{id:"admin.permissions.permission.bypass_incoming_webhook_channel_lock.description",defaultMessage:"Allow incoming webhooks to post to any channel without requiring a locked default channel."}}),manage_outgoing_webhooks:(0,A.defineMessages)({name:{id:"admin.permissions.permission.manage_outgoing_webhooks.name",defaultMessage:"Manage Others'"},description:{id:"admin.permissions.permission.manage_outgoing_webhooks.description",defaultMessage:"Create, edit, and delete outgoing webhooks owned by other users."}}),manage_own_outgoing_webhooks:(0,A.defineMessages)({name:{id:"admin.permissions.permission.manage_own_outgoing_webhooks.name",defaultMessage:"Manage Own"},description:{id:"admin.permissions.permission.manage_own_outgoing_webhooks.description",defaultMessage:"Create, edit, and delete your own outgoing webhooks."}}),manage_others_outgoing_webhooks:(0,A.defineMessages)({name:{id:"admin.permissions.permission.manage_others_outgoing_webhooks.name",defaultMessage:"Manage Others'"},description:{id:"admin.permissions.permission.manage_others_outgoing_webhooks.description",defaultMessage:"Create, edit, and delete outgoing webhooks owned by other users."}}),permanent_delete_user:(0,A.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,A.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,A.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,A.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,A.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,A.defineMessages)({name:{id:"admin.permissions.permission.upload_file.name",defaultMessage:"Upload file"},description:{id:"admin.permissions.permission.upload_file.description",defaultMessage:"Upload file"}}),edit_file_attachment:(0,A.defineMessages)({name:{id:"admin.permissions.permission.edit_file_attachment.name",defaultMessage:"Edit Attachments"},description:{id:"admin.permissions.permission.edit_file_attachment.description",defaultMessage:"Allow users to add or remove file attachments when editing posts."}}),use_channel_mentions:(0,A.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,A.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,A.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,A.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,A.defineMessages)({name:{id:"admin.permissions.permission.invite_guest.
1name",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,A.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,A.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,A.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,A.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,A.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,A.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,A.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,A.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,A.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,A.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,A.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,A.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,A.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,A.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,A.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,A.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,A.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,A.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,A.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,A.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."}}),manage_team_access_rules:(0,A.defineMessages)({name:{id:"admin.permissions.permission.manage_team_access_rules.name",defaultMessage:"Manage channel membership policies"},description:{id:"admin.permissions.permission.manage_team_access_rules.description",defaultMessage:"Manage attribute based membership policies for channels in the team."}})},Dc=e=>{let{additionalValues:t,id:a,onChange:s,selectRow:n,uniqId:i,value:r,inherited:l,readOnly:o,selected:d}=e;const c=(0,C.useCallback)((()=>{o||s(a)}
1),[o,s,a]),m=xc[a]?C.createElement(A.FormattedMessage,xc[a].name):a;let u="";return xc[a]&&(u=C.createElement(A.FormattedMessage,Object.assign({},xc[a].description,{values:t}))),C.createElement("div",{className:he()("permission-row",{"read-only":o,selected:d===a}),onClick:c,id:i},C.createElement(Ic,{value:r,id:`${i}-checkbox`}),C.createElement("span",{className:"permission-name"},m),C.createElement(Lc,{inherited:l,id:a,selectRow:n,description:u,additionalValues:t}))},Pc={delete_posts:(0,A.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,A.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,A.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,A.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,A.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,A.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,A.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,A.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,A.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,A.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."}}),manage_incoming_webhooks_group:(0,A.defineMessages)({name:{id:"admin.permissions.group.manage_incoming_webhooks.name",defaultMessage:"Manage Incoming Webhooks"},description:{id:"admin.permissions.group.manage_incoming_webhooks.description",defaultMessage:"Manage own and others' incoming webhooks."}}),manage_outgoing_webhooks_group:(0,A.defineMessages)({name:{id:"admin.permissions.group.manage_outgoing_webhooks.name",defaultMessage:"Manage Outgoing Webhooks"},description:{id:"admin.permissions.group.manage_outgoing_webhooks.description",defaultMessage:"Manage own and others' outgoing webhooks."}}),manage_agents_group:(0,A.defineMessages)({name:{id:"admin.permissions.group.manage_agents.name",defaultMessage:"Manage AI Agents"},description:{id:"admin.permissions.group.manage_agents.description",defaultMessage:"Manage own and others' AI agents."}}),manage_slash_commands_group:(0,A.defineMessages)({name:{id:"admin.permissions.group.manage_slash_commands.name",defaultMessage:"Manage Slash Commands"},description:{id:"admin.permissions.group.manage_slash_commands.description",defaultMessage:"Manage own and others' slash commands."}}),manage_oauth_group:(0,A.defineMessages)({name:{id:"admin.permissions.group.manage_oauth.name",defaultMessage:"Manage OAuth Applications"},description:{id:"admin.permissions.group.manage_oauth.description",defaultMessage:"Manage own and others' OAuth 2.0 applications."}}),teams_team_scope:(0,A.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,A.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_edit_file_attachment:(0,A.defineMessages)({name:{id:"admin.permissions.group.guest_edit_file_attachment.name",defaultMessage:"Edit Attachments"},description:{id:"admin.permissions.group.guest_edit_file_attachment.description",defaultMessage:"Allow users to add or remove file attachments when editing posts."}}),guest_create_post:(0,A.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,A.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,A.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,A.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,A.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,A.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,A.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,A.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,A.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,A.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,A.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,A.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,A.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,A.defineMessages)({name:{id:"admin.permissions.group.runs.name",defaultMessage:"Manage Runs"},description:{id:"admin.permissions.group.runs.description",defaultMessage:"Manage runs."}}),custom_groups:(0,A.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,A.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,A.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"}})},Oc=e=>{let t=[];for(const a of e)"string"==typeof a?t.push(a):t=t.concat(Oc(a.permissions));return t};
1class Fc extends C.PureComponent{constructor(e){super(e),this.state={expanded:!0,prevPermissions:[],selected:e.selected}}static getDerivedStateFromProps(e,t){return e.selected!==t.selected?-1!==Oc(e.permissions).indexOf(e.selected?e.selected:"")?{expanded:!0,selected:e.selected}:{selected:e.selected}:null}toggleExpanded=e=>{e.stopPropagation(),this.setState({expanded:!this.state.expanded})};toggleSelectRow=e=>{this.props.readOnly||this.props.onChange([e])};toggleSelectSubGroup=e=>{this.props.readOnly||this.props.onChange(e)};toggleSelectGroup=()=>{const{readOnly:e,permissions:t,role:a,onChange:s}=this.props;if(!e&&a)if("checked"===this.getStatus(t)){const e=[];for(const a of Oc(t))this.fromParent(a)||e.push(a);this.setState({expanded:!0}),s(e)}else if(""===this.getStatus(t)){const e=[];let a=!0;if(0===this.state.prevPermissions.length)for(const s of Oc(t))this.fromParent(s)||(e.push(s),a=!1);else for(const a of Oc(t))-1===this.state.prevPermissions.indexOf(a)||this.fromParent(a)||e.push(a);s(e),this.setState({prevPermissions:[],expanded:a})}else{const e=[];for(const s of Oc(t))-1!==a.permissions?.indexOf(s)||this.fromParent(s)||e.push(s);this.setState({prevPermissions:a.permissions||[],expanded:!1}),s(e)}};isInScope=e=>!("channel_scope"===this.props.scope&&"channel_scope"!==ve.PZ[e]||"team_scope"===this.props.scope&&"system_scope"===ve.PZ[e]);renderPermission=(e,t)=>{if(!this.isInScope(e))return null;const a=this.fromParent(e),s=a||-1!==this.props.role?.permissions?.indexOf(e),n=a?this.props.parentRole:void 0;return C.createElement(Dc,{key:e,id:e,uniqId:this.props.uniqId+"-"+e,selected:this.props.selected,selectRow:this.props.selectRow,readOnly:this.props.readOnly||a,inherited:n,value:s?"checked":"",onChange:this.toggleSelectRow,additionalValues:t})};renderGroup=e=>C.createElement(Fc,{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});fromParent=e=>this.props.parentRole&&-1!==this.props.parentRole.permissions?.indexOf(e);getStatus=e=>{let t=!1,a=!1;for(const s of e)if("string"==typeof s){if(!this.isInScope(s))continue;t=t||this.fromParent(s)||-1!==this.props.role?.permissions?.indexOf(s),a=a||!this.fromParent(s)&&-1===this.props.role?.permissions?.indexOf(s)}else{const e=this.getStatus(s.permissions);if("intermediate"===e)return"intermediate";"checked"===e&&(t=!0),""===e&&(a=!0)}return t&&a?"intermediate":t&&!a?"checked":""};hasPermissionsOnScope=()=>Oc(this.props.permissions).some((e=>this.isInScope(e)));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};render=()=>{const{id:e,uniqId:t,permissions:a,readOnly:s,combined:n,root:i,selected:r,additionalValues:l}=this.props;if(!this.hasPermissionsOnScope())return null;const o=a.map((e=>{if("string"==typeof e){const t=l&&l[e]?l[e]:{};return this.renderPermission(e,t)}return this.renderGroup(e)}));if(i)return C.createElement("div",{className:"permission-group-permissions "+(this.state.expanded?"open":"")},o);let d;this.allPermissionsFromParent(this.props.permissions)&&this.props.combined&&(d=this.props.parentRole);let c="";r===e&&(c+=" selected"),(s||this.allPermissionsFromParent(this.props.permissions))&&(c+=" read-only"),n&&(c+=" combined");const m=l?.[e]?l[e]:void 0,u=Pc[e]?C.createElement(A.FormattedMessage,Pc[e].name):e;let g="";return Pc[e]&&(g=C.createElement(A.FormattedMessage,{id:Pc[e].description.id,defaultMessage:Pc[e].description.defaultMessage,values:m})),C.createElement("div",{className:"permission-group"},!i&&C.createElement("div",{className:"permission-group-row "+c,onClick:this.toggleSelectGroup,id:t},!n&&C.createElement("div",{className:"fa fa-caret-right permission-arrow "+(this.state.expanded?"open":""),onClick:this.toggleExpanded}),C.createElement(Ic,{value:this.getStatus(this.props.permissions),id:`${t}-checkbox`}),C.createElement("span",{className:"permission-name"},u),C.createElement(Lc,{additionalValues:m,inherited:d,id:e,selectRow:this.props.selectRow,description:g})),!n&&C.createElement("div",{className:"permission-group-permissions "+(this.state.expanded?"open":"")},o))}}const Uc=[b.A.CREATE_PRIVATE_CHANNEL,b.A.EDIT_POST,b.A.DELETE_POST,b.A.ADD_REACTION,b.A.REMOVE_REACTION,b.A.READ_CHANNEL,b.A.UPLOAD_FILE,b.A.EDIT_FILE_ATTACHMENT,b.A.USE_CHANNEL_MENTIONS,b.A.USE_GROUP_MENTIONS,b.A.CREATE_POST],Bc=(0,s.connect)((function(e){return{license:(0,c.Ay)(e)}}))((e=>{let{license:t,onToggle:a,readOnly:s,scope:n,selectRow:i,parentRole:r,selected:l,role:o={permissions:[]}}=e;const[d,c]=C.useState(!1),m=(0,C.useMemo)((()=>{const e=[b.A.CREATE_PRIVATE_CHANNEL,b.A.EDIT_POST,b.A.EDIT_FILE_ATTACHMENT,b.A.DELETE_POST,{id:"guest_"+b.A.CREATE_POST,comb
1ined:!0,permissions:[b.A.CREATE_POST,b.A.UPLOAD_FILE]},{id:"guest_reactions",combined:!0,permissions:[b.A.ADD_REACTION,b.A.REMOVE_REACTION]},b.A.USE_CHANNEL_MENTIONS];return(0,qt.be)(t)&&e.push(b.A.USE_GROUP_MENTIONS),e.map((e=>"string"==typeof e?{id:`guest_${e}`,combined:!0,permissions:[e]}:e))}),[t]),u=(0,C.useCallback)((()=>{c(!0)}),[]),g=(0,C.useCallback)((()=>{c(!1)}),[]),p=(0,C.useCallback)((e=>{s||a(o.name,e)}),[a,s,o.name]),h=(0,C.useMemo)((()=>({guest_edit_post:{editTimeLimitButton:C.createElement(Ac,{onClick:u,isDisabled:s})}})),[u,s]);return C.createElement("div",{className:"permissions-tree guest"},C.createElement("div",{className:"permissions-tree--header"},C.createElement("div",{className:"permission-name"},C.createElement(A.FormattedMessage,{id:"admin.permissions.permissionsTree.permission",defaultMessage:"Permission"})),C.createElement("div",{className:"permission-description"},C.createElement(A.FormattedMessage,{id:"admin.permissions.permissionsTree.description",defaultMessage:"Description"}))),C.createElement("div",{className:"permissions-tree--body"},C.createElement(Fc,{key:"all",id:"all",uniqId:o.name,selected:l,selectRow:i,readOnly:s,permissions:m,additionalValues:h,role:o,parentRole:r,scope:n,combined:!1,onChange:p,root:!0})),C.createElement(Nc,{onClose:g,show:d}))}));class Hc extends C.PureComponent{static defaultProps={role:{permissions:[]}};constructor(e){super(e),this.state={editTimeLimitModalIsVisible:!1},this.ADDITIONAL_VALUES={edit_post:{editTimeLimitButton:C.createElement(Ac,{onClick:this.openPostTimeLimitModal,isDisabled:this.props.readOnly})}},this.groups=[{id:"teams",permissions:[{id:"send_invites",combined:!0,permissions:[b.A.INVITE_USER,b.A.GET_PUBLIC_LINK,b.A.ADD_USER_TO_TEAM]},b.A.CREATE_TEAM]},{id:"public_channel",permissions:[b.A.CREATE_PUBLIC_CHANNEL,b.A.MANAGE_PUBLIC_CHANNEL_PROPERTIES,{id:"manage_public_channel_members_and_read_groups",combined:!0,permissions:[b.A.MANAGE_PUBLIC_CHANNEL_MEMBERS,b.A.READ_PUBLIC_CHANNEL_GROUPS]},b.A.DELETE_PUBLIC_CHANNEL,b.A.CONVERT_PUBLIC_CHANNEL_TO_PRIVATE]},{id:"private_channel",permissions:[b.A.CREATE_PRIVATE_CHANNEL,b.A.MANAGE_PRIVATE_CHANNEL_PROPERTIES,{id:"manage_private_channel_members_and_read_groups",combined:!0,permissions:[b.A.MANAGE_PRIVATE_CHANNEL_MEMBERS,b.A.READ_PRIVATE_CHANNEL_GROUPS]},b.A.DELETE_PRIVATE_CHANNEL]},{id:"playbook_public",permissions:[b.A.PLAYBOOK_PUBLIC_CREATE,b.A.PLAYBOOK_PUBLIC_MANAGE_PROPERTIES,b.A.PLAYBOOK_PUBLIC_MANAGE_MEMBERS],isVisible:qt.sk},{id:"playbook_public",permissions:[b.A.PLAYBOOK_PUBLIC_CREATE,b.A.PLAYBOOK_PUBLIC_MANAGE_PROPERTIES,b.A.PLAYBOOK_PUBLIC_MANAGE_MEMBERS,b.A.PLAYBOOK_PUBLIC_MAKE_PRIVATE],isVisible:qt.PL},{id:"playbook_private",permissions:[b.A.PLAYBOOK_PRIVATE_CREATE,b.A.PLAYBOOK_PRIVATE_MANAGE_PROPERTIES,b.A.PLAYBOOK_PRIVATE_MANAGE_MEMBERS,b.A.PLAYBOOK_PRIVATE_MAKE_PUBLIC],isVisible:qt.PL},{id:"runs",permissions:[b.A.RUN_CREATE]},{id:"posts",permissions:[{id:"edit_posts",permissions:[b.A.EDIT_POST,b.A.EDIT_OTHERS_POSTS]},b.A.EDIT_FILE_ATTACHMENT,{id:"delete_posts",permissions:[b.A.DELETE_POST,b.A.DELETE_OTHERS_POSTS]},{id:"reactions",combined:!0,permissions:[b.A.ADD_REACTION,b.A.REMOVE_REACTION]},b.A.USE_CHANNEL_MENTIONS]},{id:"integrations",permissions:[]},{id:"manage_shared_channels",permissions:[]},{id:"custom_groups",permissions:[b.A.CREATE_CUSTOM_GROUP,b.A.MANAGE_CUSTOM_GROUP_MEMBERS,b.A.EDIT_CUSTOM_GROUP,b.A.DELETE_CUSTOM_GROUP,b.A.RESTORE_CUSTOM_GROUP]}],this.updateGroups()}updateGroups=()=>{const{config:e,scope:t,license:a,role:s}=this.props,n=this.groups[0],i=this.groups[1],r=this.groups[2],l=this.groups[7],o=this.groups[8],d=this.groups[9],c=this.groups[10];if("true"===e.EnableIncomingWebhooks){const e={id:"manage_incoming_webhooks_group",permissions:[b.A.MANAGE_OWN_INCOMING_WEBHOOKS,b.A.MANAGE_OTHERS_INCOMING_WEBHOOKS,b.A.BYPASS_INCOMING_WEBHOOK_CHANNEL_LOCK]};o.permissions.some((e=>"manage_incoming_webhooks_group"===e.id))||o.permissions.push(e)}if("true"===e.EnableOutgoingWebhooks){const e={id:"manage_outgoing_webhooks_group",permissions:[b.A.MANAGE_OWN_OUTGOING_WEBHOOKS,b.A.MANAGE_OTHERS_OUTGOING_WEBHOOKS]};o.permissions.some((e=>"manage_outgoing_webhooks_group"===e.id))||o.permissions.push(e)}const m={id:"manage_agents_group",permissions:[b.A.MANAGE_OWN_AGENT,b.A.MANAGE_OTHERS_AGENT]};if(o.permissions.some((e=>"manage_agents_group"===e.id))||o.permissions.push(m),"true"!==e.EnableOAuthServiceProvider||o.permissions.includes(b.A.MANAGE_OAUTH)||o.permissions.push(b.A.MANAGE_OAUTH),"true"!==e.EnableOutgoingOAuthConnections||o.permissions.includes(b.A.MANAGE_OUTGOING_OAUTH_CONNECTIONS)||o.permissions.push(b.A.MANAGE_OUTGOING_OAUTH_CONNECTIONS),"true"===e.EnableCommands){const e={id:"manage_slash_commands_group",permissions:[b.A.MANAGE_OWN_SLASH_COMMANDS,b.A.MANAGE_OTHERS_SLASH_COMMANDS]};o.permissions.some((e=>"manage_slash_commands_group"===e.id))||o.permissions.push(e)}"true"!==e.EnableCustomEmoji||o.permissions.includes(b.A.CREATE_EMOJIS)||o.permissions.push(b.A.CREATE_EMOJIS),"true"!==e.EnableCustomEmoji||o.permissions.includes(b.A.DELETE_EMOJIS)||o.permissions.push(b.A.DELETE_EMOJIS),"true"!==e.EnableCustomEmoji||o.permissions.includes(b.A.DELETE_OTHERS_EMOJIS)||o.permissions.push(b.A.DELETE_OTHERS_EMOJIS),"true"!==e.EnableGuestAccounts||n.permissions.includes(b.A.INVITE_GUEST)||n.permissions.push(b.A.INVITE_GUEST),"team_scope"===t&&"teams_team_scope"!==this.groups[0].id&&(this.groups[0].id="teams_team_scope"),"true"!==a?.IsLicensed||"true"!==a?.LDAPGroups&&"true"!==e.EnableCustomGroups||l.permissions.includes(b.A.USE_GROUP_MENTIONS)||l.permissions.push(b.A.USE_GROUP_MENTIONS),l.permissions.push({id:b.A.CREATE_POST,comb
1ined:!0,permissions:[b.A.CREATE_POST,b.A.UPLOAD_FILE]}),"true"===e.ExperimentalSharedChannels&&(d.permissions.push(b.A.MANAGE_SHARED_CHANNELS),d.permissions.push(b.A.MANAGE_SECURE_CONNECTIONS)),this.props.customGroupsEnabled||c?.permissions.pop(),[vc.A.TEAM_ADMIN_ROLE,vc.A.SYSTEM_ADMIN_ROLE].includes(s.name||"")&&r.permissions.push(b.A.CONVERT_PRIVATE_CHANNEL_TO_PUBLIC),"true"===a?.IsLicensed&&(i.permissions.push({id:"manage_public_channel_bookmarks",combined:!0,permissions:[b.A.ADD_BOOKMARK_PUBLIC_CHANNEL,b.A.EDIT_BOOKMARK_PUBLIC_CHANNEL,b.A.DELETE_BOOKMARK_PUBLIC_CHANNEL,b.A.ORDER_BOOKMARK_PUBLIC_CHANNEL]}),r.permissions.push({id:"manage_private_channel_bookmarks",combined:!0,permissions:[b.A.ADD_BOOKMARK_PRIVATE_CHANNEL,b.A.EDIT_BOOKMARK_PRIVATE_CHANNEL,b.A.DELETE_BOOKMARK_PRIVATE_CHANNEL,b.A.ORDER_BOOKMARK_PRIVATE_CHANNEL]})),(0,qt.$X)(a)&&(i.permissions.push(b.A.MANAGE_PUBLIC_CHANNEL_BANNER),i.permissions.push(b.A.MANAGE_PUBLIC_CHANNEL_AUTO_TRANSLATION),r.permissions.push(b.A.MANAGE_PRIVATE_CHANNEL_BANNER),r.permissions.push(b.A.MANAGE_PRIVATE_CHANNEL_AUTO_TRANSLATION),r.permissions.push(b.A.MANAGE_CHANNEL_ACCESS_RULES),n.permissions.push(b.A.MANAGE_TEAM_ACCESS_RULES)),this.groups=this.groups.filter((e=>!e.isVisible||e.isVisible(this.props.license)))};openPostTimeLimitModal=()=>{this.setState({editTimeLimitModalIsVisible:!0})};closePostTimeLimitModal=()=>{this.setState({editTimeLimitModalIsVisible:!1})};componentDidUpdate(e){this.props.config===e.config&&this.props.license===e.license||this.updateGroups()}toggleGroup=e=>{this.props.readOnly||this.props.onToggle(this.props.role.name,e)};render=()=>C.createElement("div",{className:"permissions-tree"},C.createElement("div",{className:"permissions-tree--header"},C.createElement("div",{className:"permission-name"},C.createElement(A.FormattedMessage,{id:"admin.permissions.permissionsTree.permission",defaultMessage:"Permission"})),C.createElement("div",{className:"permission-description"},C.createElement(A.FormattedMessage,{id:"admin.permissions.permissionsTree.description",defaultMessage:"Description"}))),C.createElement("div",{className:"permissions-tree--body"},C.createElement(Fc,{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})),C.createElement(Nc,{onClose:this.closePostTimeLimitModal,show:this.state.editTimeLimitModalIsVisible}))}const Gc=[b.A.VIEW_MEMBERS,b.A.JOIN_PUBLIC_TEAMS,b.A.LIST_PUBLIC_TEAMS,b.A.JOIN_PRIVATE_TEAMS,b.A.LIST_PRIVATE_TEAMS,b.A.PLAYBOOK_PUBLIC_VIEW,b.A.PLAYBOOK_PRIVATE_VIEW],Vc=(0,s.connect)((function(e){return{config:(0,c.zj)(e),license:(0,c.Ay)(e),customGroupsEnabled:(0,Ba.h7)(e)}}))(Hc),zc=[{id:"playbook_public",permissions:[b.A.PLAYBOOK_PUBLIC_MANAGE_PROPERTIES,b.A.PLAYBOOK_PUBLIC_MANAGE_MEMBERS],isVisible:qt.sk},{id:"playbook_public",permissions:[b.A.PLAYBOOK_PUBLIC_MANAGE_PROPERTIES,b.A.PLAYBOOK_PUBLIC_MANAGE_MEMBERS,b.A.PLAYBOOK_PUBLIC_MAKE_PRIVATE],isVisible:qt.PL},{id:"playbook_private",permissions:[b.A.PLAYBOOK_PRIVATE_MANAGE_PROPERTIES,b.A.PLAYBOOK_PRIVATE_MANAGE_MEMBERS,b.A.PLAYBOOK_PRIVATE_MAKE_PUBLIC],isVisible:qt.PL},{id:"runs",permissions:[b.A.RUN_CREATE]}],jc=e=>{const t=zc.filter((t=>!t.isVisible||t.isVisible(e.license)));return C.createElement("div",{className:"permissions-tree"},C.createElement("div",{className:"permissions-tree--header"},C.createElement("div",{className:"permission-name"},C.createElement(A.FormattedMessage,{id:"admin.permissions.permissionsTree.permission",defaultMessage:"Permission"})),C.createElement("div",{className:"permission-description"},C.createElement(A.FormattedMessage,{id:"admin.permissions.permissionsTree.description",defaultMessage:"Description"}))),C.createElement("div",{className:"permissions-tree--body"},C.createElement(Fc,{key:"all",id:"all",parentRole:e.parentRole,uniqId:e.role?.name,selectRow:e.selectRow,readOnly:e.readOnly,permissions:t,role:e.role,scope:e.scope,comb
1ined:!1,onChange:t=>{e.readOnly||e.onToggle(e.role?.name||"",t)},root:!0})))};class Wc extends C.PureComponent{constructor(e){super(e),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=[vc.A.SYSTEM_ADMIN_ROLE,vc.A.SYSTEM_USER_ROLE,vc.A.TEAM_ADMIN_ROLE,vc.A.TEAM_USER_ROLE,vc.A.CHANNEL_ADMIN_ROLE,vc.A.CHANNEL_USER_ROLE,vc.A.PLAYBOOK_ADMIN_ROLE,vc.A.PLAYBOOK_MEMBER_ROLE,vc.A.RUN_ADMIN_ROLE,vc.A.RUN_MEMBER_ROLE,vc.A.SYSTEM_GUEST_ROLE,vc.A.TEAM_GUEST_ROLE,vc.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)}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)};selectRow=e=>{this.setState({selectedPermission:e}),setTimeout(this.goToSelectedRow),setTimeout((()=>{this.setState({selectedPermission:void 0})}),3e3)};loadRolesIntoState(e){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:e.roles.system_user.permissions?.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:e.roles.system_guest.permissions?.concat(e.roles.team_guest.permissions).concat(e.roles.channel_guest.permissions)}}})}deriveRolesFromAllUsers=e=>({system_user:{...this.props.roles.system_user,permissions:e.permissions?.filter((e=>"system_scope"===ve.PZ[e]))},team_user:{...this.props.roles.team_user,permissions:e.permissions?.filter((e=>"team_scope"===ve.PZ[e]))},channel_user:{...this.props.roles.channel_user,permissions:e.permissions?.filter((e=>"channel_scope"===ve.PZ[e]))},playbook_member:{...this.props.roles.playbook_member,permissions:e.permissions?.filter((e=>"playbook_scope"===ve.PZ[e]))},run_member:{...this.props.roles.run_member,permissions:e.permissions?.filter((e=>"run_scope"===ve.PZ[e]))}});deriveRolesFromGuests=e=>({system_guest:{...this.props.roles.system_guest,permissions:e.permissions?.filter((e=>"system_scope"===ve.PZ[e]))},team_guest:{...this.props.roles.team_guest,permissions:e.permissions?.filter((e=>"team_scope"===ve.PZ[e]))},channel_guest:{...this.props.roles.channel_guest,permissions:e.permissions?.filter((e=>"channel_scope"===ve.PZ[e]))}});restoreExcludedPermissions=e=>{for(const t of this.props.roles.system_user.permissions)Gc.includes(t)&&e.system_user.permissions?.push(t);for(const t of this.props.roles.team_user.permissions)Gc.includes(t)&&e.team_user.permissions?.push(t);for(const t of this.props.roles.channel_user.permissions)Gc.includes(t)&&e.channel_user.permissions?.push(t);for(const t of this.props.roles.playbook_member.permissions)Gc.includes(t)&&e.playbook_member.permissions?.push(t);return e};restoreGuestPermissions=e=>{for(const t of this.props.roles.system_guest.permissions)Uc.includes(t)||e.system_guest.permissions?.push(t);for(const t of this.props.roles.team_guest.permissions)Uc.includes(t)||e.team_guest.permissions?.push(t);for(const t of this.props.roles.channel_guest.permissions)Uc.includes(t)||e.channel_guest.permissions?.push(t);return e};handleSubmit=async()=>{const e=this.props.actions.editRole(this.state.roles.team_admin),t=this.props.actions.editRole(this.state.roles.channel_admin),a=this.props.actions.editRole(this.state.roles.playbook_admin),s=this.restoreExcludedPermissions(this.deriveRolesFromAllUsers(this.state.roles.all_users)),n=[e,t,this.props.actions.editRole(s.system_user),this.props.actions.editRole(s.team_user),this.props.actions.editRole(s.channel_user),a,this.props.actions.editRole(s.playbook_member),this.props.actions.editRole(s.run_member)];if(this.haveGuestAccountsPermissions()){const e=this.restoreGuestPermissions(this.deriveRolesFromGuests(this.state.roles.guests)),t=this.props.actions.editRole(e.system_guest),a=this.props.actions.editRole(e.team_guest),s=this.props.actions.editRole(e.channel_guest);n.push(t,a,s)}this.setState({saving:!0});const i=await Promise.all(n);let r=null,l=!1;for(const e of i)if(e.error){r=e.error.message,l=!0;break}this.setState({serverError:r,saving:!1,saveNeeded:l}),this.props.actions.setNavigationBlocked(l)};toggleRole=e=>{const t={...this.state.openRoles};t[e]=!t[e],this.setState({openRoles:t})};togglePermission=(e,t)=>{const a={...this.state.roles},s={...a[e]},n=[...s.permissions];for(const e of t)-1===n.indexOf(e)?n.push(e):n.splice(n.indexOf(e),1);if(s.permissions=n,a[e]=s,"all_users"===e){const e={...a.channel_admin},n=[...e.permissions],i={...a.team_admin},r=[...i.permissions];for(const e of t)-1!==ve.Sw.indexOf(e)&&-1!==s.permissions.indexOf(e)&&(-1===n.indexOf(e)&&n.push(e),-1===r.indexOf(e)&&r.push(e));e.permissions=n,a.channel_admin=e,i.permissions=r,a.team_admin=i}this.setState({roles:a,saveNeeded:!0}),this.props.actions.setNavigationBlocked(!0)};resetDefaults=()=>{const e=JSON.parse(JSON.stringify({...this.state.roles}));
1Object.entries(ve.YC).forEach((t=>{let[a,s]=t;e[a].permissions=s})),this.setState({roles:e,saveNeeded:!0}),this.props.actions.setNavigationBlocked(!0)};haveGuestAccountsPermissions=()=>"true"===this.props.license.GuestAccountsPermissions;render=()=>{if(!this.state.loaded)return C.createElement(Ta.A,null);const e="true"===this.props.license?.IsLicensed;return C.createElement("div",{className:"wrapper--fixed"},C.createElement(fe,{withBackButton:!0},C.createElement("div",null,C.createElement(me.A,{to:"/admin_console/user_management/permissions",className:"fa fa-angle-left back"}),C.createElement(A.FormattedMessage,{id:"admin.permissions.systemScheme",defaultMessage:"System Scheme"}))),C.createElement("div",{className:"admin-console__wrapper"},C.createElement("div",{className:"admin-console__content"},C.createElement("div",{className:"banner info"},C.createElement("div",{className:"banner__content"},C.createElement("span",null,C.createElement(A.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=>C.createElement(Ge.A,{href:ve.Uk.ONBOARD_ADVANCED_PERMISSIONS,location:"permission_system_scheme_settings"},e)}})))),e&&"true"===this.props.config.EnableGuestAccounts&&C.createElement(Cc,{className:"permissions-block",open:this.state.openRoles.guests,id:"all_users",onToggle:()=>this.toggleRole("guests"),title:(0,A.defineMessage)({id:"admin.permissions.systemScheme.GuestsTitle",defaultMessage:"Guests"}),subtitle:(0,A.defineMessage)({id:"admin.permissions.systemScheme.GuestsDescription",defaultMessage:"Permissions granted to guest users."})},C.createElement(Bc,{selected:this.state.selectedPermission,role:this.state.roles.guests,scope:"system_scope",onToggle:this.togglePermission,selectRow:this.selectRow,readOnly:this.props.isDisabled||!this.haveGuestAccountsPermissions()})),C.createElement(Cc,{className:"permissions-block",open:this.state.openRoles.all_users,id:"all_users",onToggle:()=>this.toggleRole("all_users"),title:(0,A.defineMessage)({id:"admin.permissions.systemScheme.allMembersTitle",defaultMessage:"All Members"}),subtitle:(0,A.defineMessage)({id:"admin.permissions.systemScheme.allMembersDescription",defaultMessage:"Permissions granted to all members, including administrators and newly created users."})},C.createElement(Vc,{selected:this.state.selectedPermission,role:this.state.roles.all_users,scope:"system_scope",onToggle:this.togglePermission,selectRow:this.selectRow,readOnly:this.props.isDisabled})),C.createElement(Cc,{className:"permissions-block",open:this.state.openRoles.channel_admin,onToggle:()=>this.toggleRole("channel_admin"),title:(0,A.defineMessage)({id:"admin.permissions.systemScheme.channelAdminsTitle",defaultMessage:"Channel Administrators"}),subtitle:(0,A.defineMessage)({id:"admin.permissions.systemScheme.channelAdminsDescription",defaultMessage:"Permissions granted to channel creators and any users promoted to Channel Administrator."})},C.createElement(Vc,{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})),C.createElement(Cc,{className:"permissions-block",open:this.state.openRoles.playbook_admin,onToggle:()=>this.toggleRole("playbook_admin"),title:(0,A.defineMessage)({id:"admin.permissions.systemScheme.playbookAdmin",defaultMessage:"Playbook Administrator"}),subtitle:(0,A.defineMessage)({id:"admin.permissions.systemScheme.playbookAdminSubtitle",defaultMessage:"Permissions granted to administrators of a playbook."})},C.createElement(jc,{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})),C.createElement(Cc,{className:"permissions-block",open:this.state.openRoles.team_admin,onToggle:()=>this.toggleRole("team_admin"),title:(0,A.defineMessage)({id:"admin.permissions.systemScheme.teamAdminsTitle",defaultMessage:"Team Administrators"}),subtitle:(0,A.defineMessage)({id:"admin.permissions.systemScheme.teamAdminsDescription",defaultMessage:"Permissions granted to team creators and any users promoted to Team Administrator."})},C.createElement(Vc,{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})),C.createElement(Cc,{className:"permissions-block",open:this.state.openRoles.system_admin,onToggle:()=>this.toggleRole("system_admin"),title:(0,A.defineMessage)({id:"admin.permissions.systemScheme.systemAdminsTitle",defaultMessage:"System Administrators"}),subtitle:(0,A.defineMessage)({id:"admin.permissions.systemScheme.systemAdminsDescription",defaultMessage:"Full permissions granted to System Administrators."})},C.createElement(Vc,{readOnly:!0,role:this.state.roles.system_admin,scope:"system_scope",onToggle:this.togglePermission,selectRow:this.selectRow})))),C.createElement("div",{className:"admin-console-save"},C.createElement(ue.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..."})}),C.createElement(me.A,{className:"btn btn-tertiary",to:"/admin_console/user_management/permissions","data-testid":"permission-scheme-cancel-button"},C.createElement(A.FormattedMessage,{id:"admin.permissions.permissionSchemes.cancel",defaultMessage:"Cancel"})),C.createElement("a",{"data-testid":"resetPermissionsToDefault",onClick:()=>this.setState({showResetDefaultModal:!0}),className:"btn btn-quaternary"},C.createElement(A.FormattedMessage,{id:"admin.permissions.systemScheme.resetDefaultsButton",defaultMessage:"Reset to Defaults"})),C.createElement("div",{className:"error-message"},C.createElement(Ke.Ay,{error:this.state.serverError}))),C.createElement(Aa.A,{show:this.state.showResetDefaultModal,title:C.createElement(A.FormattedMessage,{id:"admin.permissions.systemScheme.resetDefaultsButtonModalTitle",defaultMessage:"Reset to Default?"}),message:C.createElement(A.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:C.createElement(A.FormattedMessage,{id:"admin.permissions.systemScheme.resetDefaultsConfirmationButton",defaultMessage:"Yes, Reset"}),onConfirm:()=>{this.resetDefaults(),this.setState({showResetDefaultModal:!1})},onCancel:()=>this.setState({showResetDefaultModal:!1})}))}}const Yc=(0,A.injectIntl)(Wc),qc=(0,s.connect)((function(e){return{config:(0,c.zj)(e),license:(0,c.Ay)(e),roles:(0,m.O0)(e)}}),(function(e){return{actions:(0,n.zH)({loadRolesIfNeeded:r.cF,editRole:r.D3,setNavigationBlocked:p.Jb},e)}}))(Yc);var Zc=a(5986);const Jc=e=>
1{let t,{className:a="",subtitle:s,title:n,buttonText:i,children:r,disabled:l,id:o,onButtonClick:d}=e;if(d&&i){const e=(i.defaultMessage||"").split(" ").join("-").toLowerCase();t=C.createElement("a",{className:he()("btn","btn-primary",{disabled:l}),onClick:l?e=>e.preventDefault():d,"data-testid":e},C.createElement(A.FormattedMessage,i))}return C.createElement(Tl,{className:"AdminPanelWithButton "+a,id:o,title:n,subtitle:s,button:t},r)},Kc=e=>{let{team:t,isDisabled:a,onRemoveTeam:s}=e;const n=(0,C.useCallback)((()=>{a||s(t.id)}),[a,t.id,s]);return C.createElement("div",{className:"team",key:t.id},C.createElement("div",{className:"team-info-block"},C.createElement(ae.A,{content:t.display_name,url:(0,L.lt)(t)}),C.createElement("div",{className:"team-data"},C.createElement("div",{className:"title"},t.display_name))),C.createElement("a",{className:he()("remove",{disabled:a}),onClick:n},C.createElement(A.FormattedMessage,{id:"admin.permissions.teamScheme.removeTeam",defaultMessage:"Remove"})))},Qc=(0,C.memo)(Kc),Xc=(0,s.connect)((function(e){return{stats:(0,u.ls)(e)}}),(function(e){return{actions:(0,n.zH)({loadTeamStats:l.ls},e)}}))(Qc);class $c extends C.PureComponent{constructor(e){super(e),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}}static defaultProps={scheme:null};componentDidMount(){const e=[vc.A.TEAM_GUEST_ROLE,vc.A.TEAM_USER_ROLE,vc.A.TEAM_ADMIN_ROLE,vc.A.CHANNEL_GUEST_ROLE,vc.A.CHANNEL_USER_ROLE,vc.A.CHANNEL_ADMIN_ROLE,vc.A.PLAYBOOK_ADMIN_ROLE,vc.A.PLAYBOOK_MEMBER_ROLE,vc.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)}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);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)};selectRow=e=>{this.setState({selectedPermission:e}),setTimeout(this.goToSelectedRow),setTimeout((()=>{this.setState({selectedPermission:void 0})}),3e3)};getStateRoles=()=>{if(null!==this.state.roles)return this.state.roles;let e,t,a,s,n,i,r,l,o;if(this.props.schemeId&&this.props.scheme)this.isLoaded(this.props)&&(e=this.props.roles[this.props.scheme.default_team_guest_role],t=this.props.roles[this.props.scheme.default_team_user_role],a=this.props.roles[this.props.scheme.default_team_admin_role],s=this.props.roles[this.props.scheme.default_channel_guest_role],n=this.props.roles[this.props.scheme.default_channel_user_role],i=this.props.roles[this.props.scheme.default_channel_admin_role],r=this.props.roles[this.props.scheme.default_playbook_admin_role],l=this.props.roles[this.props.scheme.default_playbook_member_role],o=this.props.roles[this.props.scheme.default_run_member_role]);else{if(!this.isLoaded(this.props))return null;e=this.props.roles.team_guest,t=this.props.roles.team_user,a=this.props.roles.team_admin,s=this.props.roles.channel_guest,n=this.props.roles.channel_user,i=this.props.roles.channel_admin,r=this.props.roles.playbook_admin,l=this.props.roles.playbook_member,o=this.props.roles.run_member}return{team_admin:a,channel_admin:i,playbook_admin:r,playbook_member:l,run_member:o,team_guest:e,team_user:t,channel_guest:s,channel_user:n,all_users:{name:"all_users",displayName:"All members",permissions:[...t?.permissions||[],...n?.permissions||[],...l?.permissions||[],...o?.permissions||[]]},guests:{name:"guests",displayName:"Guests",permissions:e?.permissions.concat(s?.permissions||[])}}};deriveRolesFromGuests=(e,t,a)=>({team_guest:{...e,permissions:a.permissions.filter((e=>"team_scope"===ve.PZ[e]))},channel_guest:{...t,permissions:a.permissions.filter((e=>"channel_scope"===ve.PZ[e]))}});restoreGuestPermissions=(e,t,a)=>{for(const t of e.permissions)Uc.includes(t)||a.team_guest.permissions.push(t);for(const e of t.permissions)Uc.includes(e)||a.channel_guest.permissions.push(e);return a};deriveRolesFromAllUsers=(e,t,a,s,n)=>({team_user:{...e,permissions:n.permissions.filter((e=>"team_scope"===ve.PZ[e]))},channel_user:{...t,permissions:n.permissions.filter((e=>"channel_scope"===ve.PZ[e]))},playbook_member:{...a,permissions:n.permissions?.filter((e=>"playbook_scope"===ve.PZ[e]))},run_member:{...s,permissions:n.permissions?.filter((e=>"run_scope"===ve.PZ[e]))}});restoreExcludedPermissions=(e,t,a)=>{for(const t of e.permissions)Gc.includes(t)&&a.team_user.permissions.push(t);for(const e of t.permissions)Gc.includes(e)&&a.channel_user.permissions.push(e);return a};handleNameChange=e=>{this.setState({schemeName:e.target.value,saveNeeded:!0}),this.props.actions.setNavigationBlocked(!0)};handleDescriptionChange=e=>{this.setState({schemeDescription:e.target.value,saveNeeded:!0}),this.props.actions.setNavigationBlocked(!0)};handleSubmit=async()=>{const e=this.getStateRoles();let t=e?.team_admin,a=e?.channel_admin,s=e?.playbook_admin,n=e?.playbook_member,i=e?.run_member;const r=e?.all_users,l=e?.guests,o=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,g=null,p=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,n=t.playbook_member,i=t.run_member}if(e&&e.team_guest&&e.channel_guest&&l){let t=this.deriveRolesFromGuests(e.team_guest,e.channel_guest,l);t=this.restoreGuestPermissions(e.team_guest,e.channel_guest,t),u=t.team_guest,g=t.channel_guest}if(this.props.schemeId)await this.props.actions.patchScheme(this.props.schemeId,{display_name:o,description:d}),p=this.props.schemeId;else{const e=await this.props.actions.createScheme({display_name:o,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;p=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={...u,id:this.props.roles[r.default_team_guest_role].id},c={...c,id:this.props.roles[r.default_team_user_role].id},t={...t,id:this.props.roles[r.default_team_admin_role].id},g={...g,id:this.props.roles[r.default_channel_guest_role].id},m={...m,id:this.props.roles[r.default_channel_user_role].id},a={...a,id:this.props.roles[r.default_channel_admin_role].id},s={...s,id:this.props.roles[r.default_playbook_admin_role].id},n={...n,id:this.props.roles[r.default_playbook_member_role].id},i={...i,id:this.props.roles[r.default_run_member_role].id}}const h=[this.props.actions.editRole(t),this.props.actions.editRole(a),this.props.actions.editRole(s),this.props.actions.editRole(n),this.props.actions.editRole(i)],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(g);h.push(e,t)}const M=new Set((this.state.teams||this.props.teams||[]).map((e=>e.id))),b=new Set((this.props.teams||[]).map((e=>e.id))),_=new Set([...M].filter((e=>!b.has(e)))),y=new Set([...b].filter((e=>!M.has(e))));for(const e of _)h.push(this.props.actions.updateTeamScheme(e,p));for(const e of y)h.push(this.props.actions.updateTeamScheme(e,""));const v=await Promise.all(h);let S=null,C=!1;for(const e of v)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")};toggleRole=e=>{const t={...this.state.openRoles};t[e]=!t[e],this.setState({openRoles:t})};togglePermission=(e,t)=>
1{const a={...this.getStateRoles()},s=Object.keys(a).find((t=>a[t].name===e));if(!s)return;const n={...a[s]},i=[...n.permissions];for(const e of t)-1===i.indexOf(e)?i.push(e):i.splice(i.indexOf(e),1);if(n.permissions=i,a[s]=n,"all_users"===e){const e={...a.channel_admin},s=[...e.permissions],i={...a.team_admin},r=[...i.permissions];for(const e of t)-1!==ve.Sw.indexOf(e)&&-1!==n.permissions.indexOf(e)&&(-1===s.indexOf(e)&&s.push(e),-1===r.indexOf(e)&&r.push(e));e.permissions=s,a.channel_admin=e,i.permissions=r,a.team_admin=i}this.setState({roles:a,saveNeeded:!0}),this.props.actions.setNavigationBlocked(!0)};openAddTeam=()=>{this.setState({addTeamOpen:!0})};removeTeam=e=>{const t=(this.state.teams||this.props.teams)?.filter((t=>t.id!==e))??null;this.setState({teams:t,saveNeeded:!0}),this.props.actions.setNavigationBlocked(!0)};addTeams=e=>{const t=this.state.teams||this.props.teams||[];this.setState({teams:[...t,...e],saveNeeded:!0}),this.props.actions.setNavigationBlocked(!0)};closeAddTeam=()=>{this.setState({addTeamOpen:!1})};haveGuestAccountsPermissions=()=>"true"===this.props.license.GuestAccountsPermissions;render=()=>{if(!this.isLoaded(this.props))return C.createElement(Ta.A,null);const e=this.getStateRoles(),t=this.state.teams||this.props.teams||[],a=this.state.schemeName||this.props.scheme&&this.props.scheme.display_name||"",s=this.state.schemeDescription||this.props.scheme&&this.props.scheme.description||"";return C.createElement("div",{className:"wrapper--fixed"},this.state.addTeamOpen&&C.createElement(Rr,{modalID:ve.IQ.ADD_TEAMS_TO_SCHEME,onModalDismissed:this.closeAddTeam,onTeamsSelected:this.addTeams,alreadySelected:t.map((e=>e.id))}),C.createElement(fe,{withBackButton:!0},C.createElement("div",null,C.createElement(me.A,{to:"/admin_console/user_management/permissions",className:"fa fa-angle-left back"}),C.createElement(A.FormattedMessage,{id:"admin.permissions.teamScheme",defaultMessage:"Team Scheme"}))),C.createElement("div",{className:"admin-console__wrapper"},C.createElement("div",{className:"admin-console__content"},C.createElement("div",{className:"banner info"},C.createElement("div",{className:"banner__content"},C.createElement("span",null,C.createElement(A.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=>C.createElement(Ge.A,{href:ve.Uk.ONBOARD_ADVANCED_PERMISSIONS,location:"permission_team_scheme_settings"},e),linkSystemScheme:e=>C.createElement(Ge.A,{href:ve.Uk.ONBOARD_ADVANCED_PERMISSIONS,location:"permission_team_scheme_settings"},e)}})))),C.createElement(Tl,{title:(0,A.defineMessage)({id:"admin.permissions.teamScheme.schemeDetailsTitle",defaultMessage:"Scheme Details"}),subtitle:(0,A.defineMessage)({id:"admin.permissions.teamScheme.schemeDetailsDescription",defaultMessage:"Set the name and description for this scheme."})},C.createElement("div",{className:"team-scheme-details"},C.createElement("div",{className:"form-group"},C.createElement("label",{className:"control-label",htmlFor:"scheme-name"},C.createElement(A.FormattedMessage,{id:"admin.permissions.teamScheme.schemeNameLabel",defaultMessage:"Scheme Name:"})),C.createElement(Cn.A,{className:"form-control",disabled:this.props.isDisabled,id:"scheme-name",placeholder:(0,A.defineMessage)({id:"admin.permissions.teamScheme.schemeNamePlaceholder",defaultMessage:"Scheme Name"}),type:"text",value:a,onChange:this.handleNameChange})),C.createElement("div",{className:"form-group"},C.createElement("label",{className:"control-label",htmlFor:"scheme-description"},C.createElement(A.FormattedMessage,{id:"admin.permissions.teamScheme.schemeDescriptionLabel",defaultMessage:"Scheme Description:"})),C.createElement(Zc.A,{id:"scheme-description",className:"form-control",rows:5,value:s,placeholder:(0,A.defineMessage)({id:"admin.permissions.teamScheme.schemeDescriptionPlaceholder",defaultMessage:"Scheme Description"}),onChange:this.handleDescriptionChange,disabled:this.props.isDisabled})))),C.createElement(Jc,{className:"permissions-block",title:(0,A.defineMessage)({id:"admin.permissions.teamScheme.selectTeamsTitle",defaultMessage:"Select teams to override permissions"}),subtitle:(0,A.defineMessage)({id:"admin.permissions.teamScheme.selectTeamsDescription",defaultMessage:"Select teams where permission exceptions are required."}),onButtonClick:this.openAddTeam,buttonText:(0,A.defineMessage)({id:"admin.permissions.teamScheme.addTeams",defaultMessage:"Add Teams"}),disabled:this.props.isDisabled},C.createElement("div",{className:"teams-list"},0===t.length&&C.createElement("div",{className:"no-team-schemes"},C.createElement(A.FormattedMessage,{id:"admin.permissions.teamScheme.noTeams",defaultMessage:"No team selected. Please add teams to this list."})),t.map((e=>C.createElement(Xc,{key:e.id,team:e,onRemoveTeam:this.removeTeam,isDisabled:this.props.isDisabled}))))),this.props.license&&"true"===this.props.config.EnableGuestAccounts&&C.createElement(Cc,{className:"permissions-block",open:this.state.openRoles.guests,id:"guests",onToggle:()=>this.toggleRole("guests"),title:(0,A.defineMessage)({id:"admin.permissions.systemScheme.GuestsTitle",defaultMessage:"Guests"}),subtitle:(0,A.defineMessage)({id:"admin.permissions.systemScheme.GuestsDescription",defaultMessage:"Permissions granted to guest users."})},C.createElement(Bc,{selected:this.state.selectedPermission,role:e?.guests,scope:"team_scope",onToggle:this.togglePermission,selectRow:this.selectRow,readOnly:this.props.isDisabled||!this.haveGuestAccountsPermissions()})),C.createElement(Cc,{className:"permissions-block all_users",open:this.state.openRoles.all_users,id:"all_users",onToggle:()=>this.toggleRole("all_users"),title:(0,A.defineMessage)({id:"admin.permissions.systemScheme.allMembersTitle",defaultMessage:"All Members"}),subtitle:(0,A.defineMessage)({id:"admin.permissions.systemScheme.allMembersDescription",defaultMessage:"Permissions granted to all members, including administrators and newly created users."})},C.createElement(Vc,{selected:this.state.selectedPermission,role:e?.all_users,scope:"team_scope",onToggle:this.togglePermission,selectRow:this.selectRow,readOnly:this.props.isDisabled})),C.createElement(Cc,{className:"permissions-block channel_admin",open:this.state.openRoles.channel_admin,onToggle:()=>this.toggleRole("channel_admin"),title:(0,A.defineMessage)({id:"admin.permissions.systemScheme.channelAdminsTitle",defaultMessage:"Channel Administrators"}),subtitle:(0,A.defineMessage)({id:"admin.permissions.systemScheme.channelAdminsDescription",defaultMessage:"Permissions granted to channel creators and any users promoted to Channel Administrator."})},C.createElement(Vc,{parentRole:e?.all_users,role:e?.channel_admin,scope:"channel_scope",onToggle:this.togglePermission,selectRow:this.selectRow,readOnly:this.props.isDisabled})),C.createElement(Cc,{className:"permissions-block",open:this.state.openRoles.playbook_admin,onToggle:()=>this.toggleRole("playbook_admin"),title:(0,A.defineMessage)({id:"admin.permissions.systemScheme.playbookAdmin",defaultMessage:"Playbook Administrator"}),subtitle:(0,A.defineMessage)({id:"admin.permissions.systemScheme.playbookAdminSubtitle",defaultMessage:"Permissions granted to administrators of a playbook."})},C.createElement(jc,{parentRole:e?.all_users,role:e?.playbook_admin,scope:"playbook_scope",onToggle:this.togglePermission,selectRow:this.selectRow,readOnly:this.props.isDisabled,license:this.props.license})),C.createElement(Cc,{className:"permissions-block team_admin",open:this.state.openRoles.team_admin,onToggle:()=>this.toggleRole("team_admin"),title:(0,A.defineMessage)({id:"admin.permissions.systemScheme.teamAdminsTitle",defaultMessage:"Team Administrators"}),subtitle:(0,A.defineMessage)({id:"admin.permissions.systemScheme.teamAdminsDescription",defaultMessage:"Permissions granted to team creators and any users promoted to Team Administrator."})},C.createElement(Vc,{parentRole:e?.all_users,role:e?.team_admin,scope:"team_scope",onToggle:this.togglePermission,selectRow:this.selectRow,readOnly:this.props.isDisabled})))),C.createElement("div",{className:"admin-console-save"},C.createElement(ue.A,{saving:this.state.saving,disabled:this.props.isDisabled||!this.state.saveNeeded,onClick:this.handleSubmit,savingMessage:C.createElement(A.FormattedMessage,{id:"admin.saving",defaultMessage:"Saving Config..."})}),C.createElement(me.A,{className:"btn btn-tertiary",to:"/admin_console/user_management/permissions","data-testid":"permission-scheme-cancel-button"},C.createElement(A.FormattedMessage,{id:"admin.permissions.permissionSchemes.cancel",defaultMessage:"Cancel"})),C.createElement("div",{className:"error-message"},C.createElement(Ke.Ay,{error:this.state.serverError}))))}}
1const em=(0,s.connect)((function(){const e=pc();return(t,a)=>{const s=a.match.params.scheme_id;return{config:(0,c.zj)(t),license:(0,c.Ay)(t),schemeId:s,scheme:s?gc(t,s):null,teams:s?e(t,{schemeId:s}):null,roles:(0,m.O0)(t)}}}),(function(e){return{actions:(0,n.zH)({loadRolesIfNeeded:r.cF,loadScheme:rc,loadSchemeTeams:mc,editRole:r.D3,patchScheme:cc,updateTeamScheme:l.yv,createScheme:oc,setNavigationBlocked:p.Jb},e)}}))($c),tm="off",am="mhpns",sm="mtpns",nm="custom",im="global",rm="us",lm="de",om="jp",dm={[im]:ve.YM.MHPNS_GLOBAL,[rm]:ve.YM.MHPNS_US,[lm]:ve.YM.MHPNS_DE,[om]:ve.YM.MHPNS_JP},cm="pushNotificationServerType",mm="pushNotificationServerLocation",um=(0,A.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:"}}),gm=[um.pushNotificationServer,um.pushTitle,um.pushServerTitle],pm=(0,A.injectIntl)(class extends Na{canSave=()=>this.state.pushNotificationServerType!==am||this.state.agree;handleAgreeChange=e=>{this.setState({agree:e.target.checked})};handleDropdownChange=(e,t)=>
1{e===cm&&(this.setState({agree:!1}),t===am?this.setState({pushNotificationServer:dm[this.state.pushNotificationServerLocation]}):t===sm?this.setState({pushNotificationServer:ve.YM.MTPNS}):t!==nm||this.state.pushNotificationServerType!==sm&&this.state.pushNotificationServerType!==am||this.setState({pushNotificationServer:""})),e===mm&&this.setState({pushNotificationServer:dm[t],pushNotificationServerLocation:t}),this.handleChange(e,t)};getConfigFromState=e=>(e.EmailSettings.SendPushNotifications=this.state.pushNotificationServerType!==tm,e.EmailSettings.PushNotificationServer=this.state.pushNotificationServer.trim(),e.TeamSettings.MaxNotificationsPerChannel=this.state.maxNotificationsPerChannel,e);getStateFromConfig(e){let t=nm,a=!1,s=im;e.EmailSettings.SendPushNotifications?e.EmailSettings.PushNotificationServer===ve.YM.MHPNS_GLOBAL&&"true"===this.props.license.IsLicensed&&"true"===this.props.license.MHPNS?(t=am,s=im,a=!0):e.EmailSettings.PushNotificationServer!==ve.YM.MHPNS_US&&e.EmailSettings.PushNotificationServer!==ve.YM.MHPNS_LEGACY_US||"true"!==this.props.license.IsLicensed||"true"!==this.props.license.MHPNS?e.EmailSettings.PushNotificationServer!==ve.YM.MHPNS_DE&&e.EmailSettings.PushNotificationServer!==ve.YM.MHPNS_LEGACY_DE||"true"!==this.props.license.IsLicensed||"true"!==this.props.license.MHPNS?e.EmailSettings.PushNotificationServer===ve.YM.MHPNS_JP&&"true"===this.props.license.IsLicensed&&"true"===this.props.license.MHPNS?(t=am,s=om,a=!0):e.EmailSettings.PushNotificationServer===ve.YM.MTPNS&&(t=sm):(t=am,s=lm,a=!0):(t=am,s=rm,a=!0):t=tm;let n=e.EmailSettings.PushNotificationServer;return t===sm?n=ve.YM.MTPNS:t===am&&(n=dm[s]),{pushNotificationServerType:t,pushNotificationServerLocation:s,pushNotificationServer:n,maxNotificationsPerChannel:e.TeamSettings.MaxNotificationsPerChannel,agree:a}}isPushNotificationServerSetByEnv=()=>this.isSetByEnv("EmailSettings.SendPushNotifications")||this.isSetByEnv("EmailSettings.PushNotificationServer");renderTitle(){return C.createElement(A.FormattedMessage,um.pushNotificationServer)}renderSettings=()=>{const e=[];e.push({value:tm,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:am,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:sm,text:this.props.intl.formatMessage({id:"admin.email.mtpns",defaultMessage:"Use TPNS connection to send notifications to iOS and Android apps"})}),e.push({value:nm,text:this.props.intl.formatMessage({id:"admin.email.selfPush",defaultMessage:"Manually enter Push Notification Service location"})});let t,a,s=null,n=null;if(this.state.pushNotificationServerType===tm?s=C.createElement(A.FormattedMessage,{id:"admin.email.pushOffHelp",defaultMessage:"Please see <link>documentation on push notifications</link> to learn more about setup options.",values:{link:e=>C.createElement(Ge.A,{href:ve.Uk.SETUP_PUSH_NOTIFICATIONS,location:"push_settings"},e)}}):n=this.state.pushNotificationServerType===am?C.createElement(A.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=>C.createElement(Ge.A,{href:"https://mattermost.com/pl/ios-app/",location:"push_settings"},e),linkAndroid:e=>C.createElement(Ge.A,{href:"https://mattermost.com/pl/android-app/",location:"push_settings"},e),linkHPNS:e=>C.createElement(Ge.A,{href:ve.Uk.SETUP_PUSH_NOTIFICATIONS,location:"push_settings"},e)}}):this.state.pushNotificationServerType===sm?C.createElement(A.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=>C.createElement(Ge.A,{href:"https://mattermost.com/pl/ios-app/",location:"push_settings"},e),linkAndroid:e=>C.createElement(Ge.A,{href:"https://mattermost.com/pl/android-app/",location:"push_settings"},e),linkHPNS:e=>C.createElement(Ge.A,{href:ve.Uk.SETUP_PUSH_NOTIFICATIONS,location:"push_settings"},e)}}):C.createElement(A.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=>C.createElement(Ge.A,{href:"https://docs.mattermost.com/",location:"push_settings"},e)}}),this.state.pushNotificationServerType===am&&(t=C.createElement("div",{className:"form-group"},C.createElement("div",{className:"col-sm-4"}),C.createElement("div",{className:"col-sm-8"},C.createElement("input",{type:"checkbox",checked:this.state.agree,onChange:this.handleAgreeChange,disabled:this.props.isDisabled}),C.createElement(A.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=>C.createElement(Ge.A,{href:"https://mattermost.com/hpns-terms/",location:"push_settings"},e),linkPrivacy:e=>C.createElement(Ge.A,{href:"https://mattermost.com/data-processing-addendum/",location:"push_settings"},e)}})))),this.state.pushNotificationServerType===am){const e=[{value:im,text:this.props.intl.formatMessage({id:"admin.email.pushServerLocationGlobal",defaultMessage:"Global"})},{value:rm,text:this.props.intl.formatMessage({id:"admin.email.pushServerLocationUS",defaultMessage:"US"})},{value:lm,text:this.props.intl.formatMessage({id:"admin.email.pushServerLocationDE",defaultMessage:"Germany"})},{value:om,text:this.props.intl.formatMessage({id:"admin.email.pushServerLocationJP",defaultMessage:"Japan"})}];a=C.createElement(we,{id:mm,values:e,label:C.createElement(A.FormattedMessage,{id:"admin.email.pushServerLocationTitle",defaultMessage:"Push Notification Server location:"}),helpText:C.createElement(A.FormattedMessage,{id:"admin.email.pushServerLocationHelp",defaultMessage:"Location of the push notification server. Global uses geobalancing to route requests to the nearest server for optimal performance."}),value:this.state.pushNotificationServerLocation,onChange:this.handleDropdownChange,setByEnv:this.isPushNotificationServerSetByEnv(),disabled:this.props.isDisabled})}return C.createElement(gt,null,C.createElement(we,{id:cm,values:e,label:C.createElement(A.FormattedMessage,um.pushTitle),value:this.state.pushNotificationServerType,onCh
1ange:this.handleDropdownChange,helpText:s,setByEnv:this.isPushNotificationServerSetByEnv(),disabled:this.props.isDisabled}),a,t,C.createElement(ht,{id:"pushNotificationServer",label:C.createElement(A.FormattedMessage,um.pushServerTitle),placeholder:(0,A.defineMessage)({id:"admin.email.pushServerEx",defaultMessage:'E.g.: "https://push-test.mattermost.com"'}),helpText:n,value:this.state.pushNotificationServer,onChange:this.handleChange,disabled:this.props.isDisabled||this.state.pushNotificationServerType!==nm,setByEnv:this.isSetByEnv("EmailSettings.PushNotificationServer")}),C.createElement(ht,{id:"maxNotificationsPerChannel",type:"number",label:C.createElement(A.FormattedMessage,{id:"admin.team.maxNotificationsPerChannelTitle",defaultMessage:"Large Channel Notification Threshold:"}),placeholder:(0,A.defineMessage)({id:"admin.team.maxNotificationsPerChannelExample",defaultMessage:'E.g.: "1000"'}),helpText:C.createElement(A.FormattedMessage,{id:"admin.team.maxNotificationsPerChannelDescription",defaultMessage:"The maximum number of users that can be mentioned using @here, @all, or @channel. Above this limit, mentions and typing indicators are disabled, and users will see a system message if they try to use them."}),value:this.state.maxNotificationsPerChannel,onChange:this.handleChange,setByEnv:this.isSetByEnv("TeamSettings.MaxNotificationsPerChannel"),disabled:this.props.isDisabled}))}}),hm=function(){return C.createElement("svg",{width:"136",height:"105",viewBox:"0 0 136 105",fill:"none",xmlns:"http://www.w3.org/2000/svg"},C.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M106.534 105C119.472 94.0855 127.691 77.7525 127.691 59.5C127.691 26.6391 101.052 0 68.1909 0C35.33 0 8.69092 26.6391 8.69092 59.5C8.69092 77.7525 16.9097 94.0855 29.8483 105H106.534Z",fill:"var(--center-channel-color)",fillOpacity:"0.08"}),C.createElement("path",{d:"M133.265 57L133.265 48.2903L22.4626 48.2903L22.4625 38.5L6.26504 38.5",stroke:"var(--center-channel-color)",strokeOpacity:"0.24",strokeLinecap:"round"}),C.createElement("path",{d:"M77.7324 19.9756L77.7324 36.0406L61.9649 36.0406",stroke:"var(--center-channel-color)",strokeOpacity:"0.24",strokeLinecap:"round"}),C.createElement("ellipse",{cx:"1.4875",cy:"1.4875",rx:"1.4875",ry:"1.4875",transform:"matrix(-1 -1.74846e-07 -1.74846e-07 1 134.83 56)",fill:"var(--center-channel-color)",fillOpacity:"0.48"}),C.createElement("ellipse",{cx:"1.4875",cy:"1.4875",rx:"1.4875",ry:"1.4875",transform:"matrix(-1 -1.74846e-07 -1.74846e-07 1 79.2202 17)",fill:"var(--center-channel-color)",fillOpacity:"0.48"}),C.createElement("ellipse",{cx:"1.4875",cy:"1.4875",rx:"1.4875",ry:"1.4875",transform:"matrix(-1 -1.74846e-07 -1.74846e-07 1 7.74023 37)",fill:"var(--center-channel-color)",fillOpacity:"0.48"}),C.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M18.7651 66H35.7651V105H22.7651H18.7651H15.7651H12.7651H5.76514V75.9574H15.7651V84.2553H18.7651V66ZM115.765 66H98.7651V105H110.765H115.765H118.765H121.765H129.765V86.7447H121.765V76.7872H115.765V66Z",fill:"var(--center-channel-bg)"}),C.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M18.7651 66H35.7651V105H22.7651H18.7651H15.7651H12.7651H5.76514V75.9574H15.7651V84.2553H18.7651V66ZM115.765 66H98.7651V105H110.765H115.765H118.765H121.765H129.765V86.7447H121.765V76.7872H115.765V66Z",fill:"var(--center-channel-color)",fillOpacity:"0.24"}),C.createElement("rect",{x:"34.2651",y:"31.5",width:"36",height:"71",fill:"var(--center-channel-bg)",stroke:"var(--center-channel-color)",strokeLinejoin:"round"}),C.createElement("rect",{x:"31.7651",y:"102",width:"72",height:"3",fill:"var(--center-channel-bg)"}),C.createElement("rect",{x:"32.2651",y:"102.5",width:"71",height:"2",fill:"var(--center-channel-color)",fillOpacity:"0.16",stroke:"var(--center-channel-color)"}),C.createElement("rect",{x:"32.2651",y:"28.5",width:"40",height:"3",fill:"var(--center-channel-bg)",stroke:"var(--center-channel-color)",strokeLinejoin:"round"}),C.createElement("rect",{x:"32.2651",y:"28.5",width:"40",height:"3",fill:"var(--center-channel-color)",fillOpacity:"0.32",stroke:"var(--center-c
1hannel-color)",strokeLinejoin:"round"}),C.createElement("rect",{x:"39.2651",y:"25.5",width:"25",height:"3",fill:"var(--center-channel-bg)",stroke:"var(--center-channel-color)",strokeLinejoin:"round"}),C.createElement("rect",{x:"39.2651",y:"25.5",width:"25",height:"3",fill:"var(--center-channel-color)",fillOpacity:"0.32",stroke:"var(--center-channel-color)",strokeLinejoin:"round"}),C.createElement("rect",{x:"39.7651",y:"37",width:"25",height:"7",fill:"var(--center-channel-color)",fillOpacity:"0.16"}),C.createElement("rect",{x:"39.7651",y:"48",width:"25",height:"7",fill:"var(--center-channel-color)",fillOpacity:"0.16"}),C.createElement("rect",{x:"39.7651",y:"59",width:"25",height:"7",fill:"var(--center-channel-color)",fillOpacity:"0.16"}),C.createElement("rect",{x:"53.7651",y:"43",width:"5",height:"59",fill:"var(--center-channel-color)",fillOpacity:"0.16"}),C.createElement("rect",{x:"39.7651",y:"70",width:"25",height:"7",fill:"var(--center-channel-color)",fillOpacity:"0.16"}),C.createElement("rect",{x:"39.7651",y:"81",width:"25",height:"7",fill:"var(--center-channel-color)",fillOpacity:"0.16"}),C.createElement("rect",{x:"47.7651",y:"94",width:"9",height:"8",fill:"var(--center-channel-color)",fillOpacity:"0.16"}),C.createElement("rect",{x:"57.2651",y:"43.5",width:"47",height:"61",fill:"var(--center-channel-bg)",stroke:"var(--center-channel-color)",strokeLinejoin:"round"}),C.createElement("rect",{x:"57.2651",y:"43.5",width:"47",height:"61",stroke:"var(--center-channel-color)",strokeLinejoin:"round"}),C.createElement("rect",{x:"61.7651",y:"48",width:"7",height:"8",fill:"var(--center-channel-color)",fillOpacity:"0.16"}),C.createElement("rect",{x:"81.7651",y:"48",width:"7",height:"8",fill:"var(--center-channel-color)",fillOpacity:"0.16"}),C.createElement("rect",{x:"91.7651",y:"48",width:"7",height:"8",fill:"var(--center-channel-color)",fillOpacity:"0.16"}),C.createElement("rect",{x:"71.7651",y:"48",width:"7",height:"8",fill:"var(--center-channel-color)",fillOpacity:"0.16"}),C.createElement("rect",{x:"61.7651",y:"59",width:"7",height:"8",fill:"var(--center-channel-color)",fillOpacity:"0.16"}),C.createElement("rect",{x:"81.7651",y:"59",width:"7",height:"8",fill:"var(--center-channel-color)",fillOpacity:"0.16"}),C.createElement("rect",{x:"91.7651",y:"59",width:"7",height:"8",fill:"var(--center-channel-color)",fillOpacity:"0.16"}),C.createElement("rect",{x:"71.7651",y:"59",width:"7",height:"8",fill:"var(--center-channel-color)",fillOpacity:"0.16"}),C.createElement("rect",{x:"61.7651",y:"70",width:"7",height:"8",fill:"var(--center-channel-color)",fillOpacity:"0.16"}),C.createElement("rect",{x:"81.7651",y:"70",width:"7",height:"8",fill:"var(--center-channel-color)",fillOpacity:"0.16"}),C.createElement("rect",{x:"91.7651",y:"70",width:"7",height:"8",fill:"var(--center-channel-color)",fillOpacity:"0.16"}),C.createElement("rect",{x:"71.7651",y:"70",width:"7",height:"8",fill:"var(--center-channel-color)",fillOpacity:"0.16"}),C.createElement("rect",{x:"61.7651",y:"81",width:"7",height:"8",fill:"var(--center-channel-color)",fillOpacity:"0.16"}),C.createElement("rect",{x:"81.7651",y:"81",width:"7",height:"8",fill:"var(--center-channel-color)",fillOpacity:"0.16"}),C.createElement("rect",{x:"91.7651",y:"81",width:"7",height:"8",fill:"var(--center-channel-color)",fillOpacity:"0.16"}),C.createElement("rect",{x:"71.7651",y:"81",width:"7",height:"8",fill:"var(--center-channel-color)",fillOpacity:"0.16"}),C.createElement("rect",{x:"81.7651",y:"35",width:"12",height:"6",fill:"var(--center-channel-color)",fillOpacity:"0.32"}),C.createElement("line",{x1:"5.76514",y1:"104.5",x2:"129.765",y2:"104.5",stroke:"var(--center-channel-color)"}),C.createElement("rect",{x:"54.2651",y:"40.5",width:"53",height:"3",fill:"var(--center-channel-bg)",stroke:"var(--center-channel-color)",strokeLinejoin:"round"}),C.createElement("rect",{x:"54.2651",y:"40.5",width:"53",height:"3",fill:"var(--center-channel-color)",fillOpacity:"0.32",stroke:"var(--center-channel-color)",strokeLinejoin:"round"}),C.createElement("rect",{x:"77.2651",y:"92.5",width:"7",height:"12",fill:"var(--center-c
1hannel-color)",fillOpacity:"0.16",stroke:"var(--center-channel-color)"}),C.createElement("rect",{x:"55.7651",y:"102",width:"51",height:"3",fill:"var(--center-channel-bg)"}),C.createElement("rect",{x:"56.2651",y:"102.5",width:"50",height:"2",fill:"var(--center-channel-color)",fillOpacity:"0.16",stroke:"var(--center-channel-color)"}),C.createElement("rect",{x:"70.7651",y:"100",width:"21",height:"3",fill:"var(--center-channel-bg)"}),C.createElement("rect",{x:"71.2651",y:"100.5",width:"20",height:"2",fill:"var(--center-channel-color)",fillOpacity:"0.16",stroke:"var(--center-channel-color)"}))};var fm=a(77828),Em=a(22204),Mm=a(54222);const bm=(e,t,a)=>({...e,display_name:t.display_name,team_display_name:a?.display_name??""}),_m=()=>{const e=(0,s.useSelector)(u.vZ),t=(0,C.useMemo)((()=>e.reduce(((e,t)=>({...e,[t.id]:t})),{})),[e]);return t},ym=e=>({pathname:`/admin_console/site_config/secure_connections/${e.remote_id}`,state:e}),vm=e=>!0===e,Sm=e=>e instanceof Error,Cm=R.default.h3.withConfig({displayName:"SectionHeading"})(["&&&{margin-bottom:8px;}"]),Am=R.default.label.withConfig({displayName:"FormFieldLabel"})(["width:100%;.DropdownInput.Input_container{margin-top:0;}& + &{margin-top:30px;}"]),Tm=R.default.div.attrs({className:"header"}).withConfig({displayName:"SectionHeader"})(["&&&{padding:24px 32px;","}"],(e=>{let{$borderless:t}=e;return!t&&(0,R.css)(["border-bottom:1px solid var(--center-channel-color-12,rgba(63,67,80,0.12));"])})),Nm=R.default.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"})),km=R.default.div.withConfig({displayName:"ModalBody"})(["padding:0 32px;display:flex;flex-direction:column;gap:20px;"]),wm=R.default.section.attrs({className:"AdminPanel"}).withConfig({displayName:"AdminSection"})(["&&{overflow:visible;}"]),Im=R.default.h4.withConfig({displayName:"PlaceholderHeading"})(["&&{font-size:20px;font-family:'Metropolis',sans-serif;font-weight:600;line-height:28px;margin-bottom:4px;margin-top:0;}"]),Rm=R.default.p.withConfig({displayName:"PlaceholderParagraph"})(["&&{font-size:14px;}"]),Lm=R.default.p.withConfig({displayName:"ModalParagraph"})(["&&{font-size:12px;line-height:16px;font-weight:400;color:rgba(var(--center-channel-color-rgb),0.72);}"]),xm=R.default.div.withConfig({displayName:"PlaceholderContainer"})(["display:flex;place-items:center;flex-direction:column;gap:24px;hgroup{text-align:center;p{color:rgba(var(--center-channel-color-rgb),0.75);margin-bottom:0;}}"]),Dm=e=>C.createElement("div",{className:"admin-console__wrapper"},C.createElement("div",{className:"admin-console__content"},e.children)),Pm=R.default.strong.withConfig({displayName:"InnerLabel"})(["font-size:14px;line-height:18px;display:inline-block;margin-bottom:10px;"]),Om=R.default.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;"]),Fm=R.default.input.attrs({className:"form-control secure-connections-input"}).withConfig({displayName:"Input"})(["font-weight:normal;"]),Um=e=>{let{label:t,children:a,helpText:s}=e;return C.createElement(Am,null,t&&C.createElement(Pm,null,t),a,s&&C.createElement(Om,null,s))},Bm=R.default.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;}"]),Hm=R.default.legend.withConfig({displayName:"ModalLegend"})(["font-size:16px;font-weight:600;line-height:18px;border-bottom:none;"]),Gm=e=>C.createElement(Bm,null,e.legend&&C.createElement(Hm,null,e.legend),e.children),Vm=R.default.div.withConfig({displayName:"ModalNoticeWrapper"})(["margin:15px 0 25px 0;"]),zm=R.default.button.attrs({className:"btn btn-secondary"}).withConfig({displayName:"Button"})(["margin:-1px -2px;"]),jm=R.default.button.attrs({className:"btn btn-link"}).withConfig({displayName:"LinkButton"})(["font-weight:normal;",";"],(e=>{let{$destructive:t}=e;return t&&(0,R.css)(["&&{color:#D24B4E;}"])})),Wm=e=>{let{rc:t}=e;if(!(0,Mm.qA)(t))return C.createElement(A.FormattedMessage,{tagName:Km,id:"admin.secure_connections.status_pending",defaultMessage:"Connection Pending"});const a=(0,Mm.ah)(t)?C.createElement(A.FormattedMessage,{tagName:Jm,id:"admin.secure_connections.status_connected",defaultMessage:"Connected"}):C.createElement(A.FormattedMessage,{tagName:Qm,id:"admin.secure_connections.status_offline",defaultMessage:"Offline"});return t.last_ping_at?C.createElement(Nt.A,{title:C.createElement(C.Fragment,null,C.createElement(A.FormattedMessage,{id:"admin.secure_connections.status_tooltip",defaultMessage:"Last ping: {timestamp}",values:{timestamp:C.createElement(fm.Ay,{value:t.last_ping_at,ranges:qm})}}),C.createElement("br",null),C.createElement(Ym,null,t.site_url))},C.createElement("div",null,a)):a},Ym=R.default.div.withConfig({displayName:"UrlWrapper"})(["white-space:break-spaces;word-wrap:none;"]),qm=[fm.hp._W.second,fm.hp._W.minute,fm.hp._W.hour],Zm=(0,R.css)(["font-size:12px;color:white;border-radius:4px;padding:2px 4px;
1"]),Jm=R.default.strong.withConfig({displayName:"ConnectedLabel"})(["",";background-color:#3DB887;"],Zm),Km=R.default.strong.withConfig({displayName:"PendingConnectionLabel"})(["",";background-color:#F5AB00;"],Zm),Qm=R.default.strong.withConfig({displayName:"OfflineConnectionLabel"})(["",";background-color:#C43133;"],Zm);a(44069),a(82712),a(64337),a(25958),a(49659);const Xm=e=>{const t=e.teamsById[e.value],{locale:a}=(0,A.useIntl)(),s=(0,C.useCallback)((t=>{const a=t.value;e.onChange(a)}),[]),n=Object.values(e.teamsById).map((e=>({value:e.id,label:e.display_name}))).sort(((e,t)=>e.label.localeCompare(t.label,a)));return C.createElement(Ii.A,{className:"team_selector",testId:e.testId,required:!0,onChange:s,value:t?{label:t.display_name,value:t.id}:void 0,options:n,name:"team_selector",legend:e.legend})},$m=()=>{},eu=function(e){let{onExited:t,onCancel:a,onConfirm:s,onHide:n}=e;const{formatMessage:i}=(0,A.useIntl)(),[r,l]=(0,C.useState)(""),[o,d]=(0,C.useState)(""),[c,m]=(0,C.useState)(""),[u,g]=(0,C.useState)(""),[p,h]=(0,C.useState)(!1),f=_m(),E={displayName:!r,defaultTeamId:!o,inviteCode:!c,password:!u},M=Object.values(E).every((e=>!e)),b=async()=>{h(!0);try{await s({display_name:r,default_team_id:o,invite:c,password:u}),h(!1),n()}catch(e){h(e)}},_=i({id:"admin.secure_connections.accept_invite.share_title",defaultMessage:"Accept a connection invite"}),y=i({id:"admin.secure_connections.accept_invite.confirm.done.button",defaultMessage:"Accept"});return C.createElement(ks.zW,{confirmButtonText:y,isConfirmDisabled:!M||vm(p),handleCancel:a??$m,handleConfirm:b,handleEnterKeyPress:b,modalHeaderText:_,onExited:t,compassDesign:!0,bodyOverflowVisible:!0,autoCloseOnConfirmButton:!1,errorText:Sm(p)&&C.createElement(A.FormattedMessage,{id:"admin.secure_connections.accept_invite.saving_changes_error",defaultMessage:"There was an error while accepting the invite."})},vm(p)?C.createElement(Ta.A,null):C.createElement(C.Fragment,null,C.createElement(A.FormattedMessage,{id:"admin.secure_connections.accept_invite.prompt",defaultMessage:"Accept a secure connection from another server",tagName:Lm}),C.createElement(Gm,null,C.createElement(Ri.A,{type:"text",name:"display-name",containerClassName:"secure-connections-modal-input",placeholder:i({id:"admin.secure_connections.accept_invite.organization_name",defaultMessage:"Organization name"}),value:r,onChange:e=>{l(e.target.value)},"data-testid":"display-name"}),C.createElement(A.FormattedMessage,{id:"admin.secure_connections.accept_invite.select_team",defaultMessage:"Please select the destination team where channels will be placed.",tagName:Lm}),C.createElement(Xm,{testId:"destination-team-input",value:o,teamsById:f,onChange:d,legend:i({id:"admin.secure_connections.accept_invite.select_team.legend",defaultMessage:"Select a team"})}),C.createElement(A.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:Lm}),C.createElement(Ri.A,{type:"text",name:"invite-code",containerClassName:"secure-connections-modal-input",placeholder:i({id:"admin.secure_connections.accept_invite.invite_code",defaultMessage:"Encrypted invitation code"}),value:c,onChange:e=>{m(e.target.value)},"data-testid":"invite-code"}),C.createElement(Ri.A,{type:"text",name:"password",containerClassName:"secure-connections-modal-input",placeholder:i({id:"admin.secure_connections.accept_invite.password",defaultMessage:"Password"}),value:u,onChange:e=>{g(e.target.value)},"data-testid":"password"}))))};var tu=a(61293);const au=()=>{},su=C.createElement(C.Fragment,null,C.createElement(w.ContentCopyIcon,{size:18}),C.createElement(A.FormattedMessage,tu.D.copy)),nu=C.createElement(C.Fragment,null,C.createElement(w.CheckIcon,{size:18}),C.createElement(A.FormattedMessage,tu.D.copied)),iu=function(e){let{creating:t,onExited:a,onCancel:s,onConfirm:n}=e;const{formatMessage:i}=(0,A.useIntl)(),[r,l]=(0,C.useState)(""),[o,d]=(0,C.useState)(""),[c,m]=(0,C.useState)(!1),{copiedRecently:u,onClick:g}=(0,tu.A)({text:r}),{copiedRecently:p,onClick:h}=(0,tu.A)({text:o});(0,C.useEffect)((()=>{E()}),[]);const f=Boolean(r&&o),E=async()=>
1{if(f)return;m(!0);const e=await n();if(m(!1),e){const{share:t}=e;l(t.invite),d(t.password)}};let M=i({id:"admin.secure_connections.create_invite.share_title",defaultMessage:"Invitation code"});t&&(M=i(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 b=C.createElement(A.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:Lm}),_=i(f?{id:"admin.secure_connections.create_invite.confirm.done.button",defaultMessage:"Done"}:{id:"admin.secure_connections.create_invite.confirm.save.button",defaultMessage:"Save"}),y=f?C.createElement(Vm,null,C.createElement(Xs.A,{title:i({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 C.createElement(ks.zW,{confirmButtonText:_,isConfirmDisabled:!f,handleCancel:s??au,handleConfirm:E,handleEnterKeyPress:E,modalHeaderText:M,onExited:a,compassDesign:!0,autoCloseOnConfirmButton:f,backdrop:"static"},c?C.createElement(Ta.A,null):C.createElement(C.Fragment,null,b,y,C.createElement(Gm,{legend:f?i({id:"admin.secure_connections.create_invite.share.label",defaultMessage:"Share this code and password"}):void 0},r&&C.createElement(Ri.A,{type:"text",name:"invite-code",containerClassName:"secure-connections-modal-input",placeholder:i({id:"admin.secure_connections.create_invite.share.invite_code",defaultMessage:"Encrypted invitation code"}),value:r,"data-testid":"invite-code",readOnly:!0,addon:C.createElement(zm,{onClick:g},u?nu:su)}),C.createElement(Ri.A,{type:"text",name:"password",containerClassName:"secure-connections-modal-input",placeholder:i({id:"admin.secure_connections.create_invite.share.password",defaultMessage:"Password"}),value:o,onChange:e=>{d(e.target.value)},"data-testid":"password",readOnly:f,addon:f?C.createElement(zm,{onClick:h},p?nu:su):void 0}))))},ru=()=>{},lu=function(e){let{displayName:t,onExited:a,onCancel:s,onConfirm:n}=e;const{formatMessage:i}=(0,A.useIntl)(),r=i({id:"admin.secure_connections.confirm.delete.title",defaultMessage:"Delete secure connection"}),l=i({id:"admin.secure_connections.confirm.delete.button",defaultMessage:"Yes, delete"}),o=C.createElement(A.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=>C.createElement("strong",null,e),displayName:t}});return C.createElement(ks.zW,{confirmButtonText:l,handleCancel:s??ru,handleConfirm:n,modalHeaderText:r,onExited:a,compassDesign:!0,isDeleteModal:!0},o)};a(86409);var ou=a(34005);const du=()=>{},cu=e=>{const t=(0,s.useSelector)((t=>(0,Is.c)(t,e.id))),a=t?C.createElement(uu,{bold:!0,channel:t}):e.id;let n=C.createElement(A.FormattedMessage,{id:"admin.secure_connections.shared_channels.add.error.inviting_remote_to_channel",defaultMessage:"{channel} could not be added to this connection.",values:{channel:a}});return"api.command_share.channel_invite_not_home.error"===e.err.server_error_id&&(n=C.createElement(A.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:a}})),C.createElement(Xs.A,{title:n,type:"danger"})},mu=R.default.span.withConfig({displayName:"ChannelLabelWrapper"})(["text-overflow:ellipsis;white-space:nowrap;overflow:hidden;align-items:center;display:flex;svg{vertical-align:middle;margin-left:8px;margin-right:6px;width:16px;}.channels-input__multi-value__label &{font-weight:600;}"]),uu=e=>{let{channel:t,bold:a}=e;const s=a?"strong":"span";return C.createElement(mu,null,C.createElement(gu,{channel:t,size:20,color:"rgba(var(--center-channel-color-rgb), 0.64)"}),C.createElement(s,null,t?.display_name))},gu=e=>{let{channel:t,size:a=16,...s}=e;const n=(0,Ds.gU)(t);return C.createElement(n,Object.assign({size:a},s))},pu=R.default.span.withConfig({displayName:"SecondaryTextRight"}
1)(["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;}"]),hu=function(e){let{onExited:t,onCancel:a,onConfirm:n,onHide:i,remoteId:r}=e;const{formatMessage:l}=(0,A.useIntl)(),o=(0,s.useDispatch)(),[d]=(e=>{const[t,a]=(0,C.useState)(),[s,n]=(0,C.useState)(!0),i=vm(s),r=!i&&s,l=async()=>{n(!0);try{const t=await I.mT.getSharedChannelRemotes(e,{include_deleted:!0,include_unconfirmed:!0});a(t?.reduce(((e,t)=>(e[t.channel_id]=t,e)),{})),n(!1)}catch(e){n(e)}};return(0,C.useEffect)((()=>{l()}),[e]),[t,{loading:i,error:r,fetch:l}]})(r),[c,m]=(0,C.useState)(""),[u,g]=(0,C.useState)([]),[p,h]=(0,C.useState)(),[f,E]=(0,C.useState)(!1),M=(0,C.useCallback)((e=>{h((t=>{if(t&&e?.length)return e.reduce(((e,a)=>{let{id:s}=a;return t[s]?{...e,[s]:t[s]}:e}),{})})),g(e??[]),E(!1)}),[]),b=Eu((async(e,t)=>{if(!t)return[];const{data:a}=await o((0,ws.Q1)(t,{page:0,per_page:20,exclude_remote:!0,signal:e}));return a?a.channels.filter((e=>{let{id:t}=e;const a=d?.[t];return!(a&&0===a.delete_at||(a&&a.delete_at,0))})):[]}),[ws.Q1,d],{delay:fu});return C.createElement(ks.zW,{modalHeaderText:C.createElement(A.FormattedMessage,{id:"admin.secure_connections.shared_channels.add.title",defaultMessage:"Select channels"}),modalSubheaderText:C.createElement(A.FormattedMessage,{tagName:Lm,id:"admin.secure_connections.shared_channels.add.message",defaultMessage:"Please select a team and channels to share"}),confirmButtonText:f?C.createElement(A.FormattedMessage,{id:"admin.secure_connections.shared_channels.add.close.button",defaultMessage:"Close"}):C.createElement(A.FormattedMessage,{id:"admin.secure_connections.shared_channels.add.confirm.button",defaultMessage:"Share"}),handleCancel:a??du,handleConfirm:async()=>{if(f)return void i();const{errors:e}=await n(u);Object.keys(e).length?(h(e),E(!0)):i()},autoCloseOnConfirmButton:!1,onExited:t,compassDesign:!0,bodyPadding:!1,bodyOverflowVisible:!0,isConfirmDisabled:!u.length},C.createElement(km,null,C.createElement(ou.A,{placeholder:C.createElement(A.FormattedMessage,{id:"admin.secure_connections.shared_channels.add.input_placeholder",defaultMessage:"e.g. {channel_name}",values:{channel_name:ve.Ay.DEFAULT_CHANNEL_UI_NAME}}),ariaLabel:l({id:"admin.secure_connections.shared_channels.add.input_label",defaultMessage:"Search and add channels"}),channelsLoader:b,inputValue:c,onInputChange:m,value:u,onChange:M,autoFocus:!0,formatOptionLabel:e=>C.createElement(C.Fragment,null,C.createElement(uu,{channel:e}),C.createElement(pu,{className:"selected-hidden"},"~",e.name),C.createElement(pu,{className:"selected-hidden"},e.team_display_name))}),p&&Object.entries(p).map((e=>{let[t,a]=e;return C.createElement(cu,{key:t,id:t,err:a})}))))},fu=250,Eu=(e,t,a)=>{const s=(0,C.useRef)(),n=(0,C.useCallback)((()=>(s.current={controller:new AbortController},s.current)),[]),i=(0,C.useCallback)((()=>{if(!s.current)return;const{controller:e,handler:t}=s.current;e.abort(new DOMException("stale request")),t&&clearTimeout(t),s.current=void 0}),[]);return(0,C.useEffect)((()=>i),[i]),(0,C.useCallback)((async function(){for(var t=arguments.length,s=new Array(t),r=0;r<t;r++)s[r]=arguments[r];i();const l=n();return new Promise(((t,n)=>{l.handler=setTimeout((async()=>{e(l.controller.signal,...s).then(t,n)}),a?.delay||fu)}))}),[n,i,...t])},Mu=()=>{},bu=function(e){let{onExited:t,onCancel:a,onConfirm:s}=e;return C.createElement(ks.zW,{modalHeaderText:C.createElement(A.FormattedMessage,{id:"admin.secure_connections.shared_channels.confirm.remove.title",defaultMessage:"Remove channel"}),modalSubheaderText:C.createElement(A.FormattedMessage,{tagName:Lm,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."}),handleCancel:a??Mu,handleConfirm:()=>{s()},confirmButtonText:C.createElement(A.FormattedMessage,{id:"admin.secure_connections.shared_channels.confirm.remove.button",defaultMessage:"Remove"}),onExited:t,compassDesign:!0,isDeleteModal:!0,bodyPadding:!1},C.createElement(km,null))};function _u(e){const{remoteCluster:t}=e,a=`${t.remote_id}-title`;return C.createElement(Su,{to:ym(t),"aria-labelledby":a},C.createElement(Cu,{id:a},t.display_name),C.createElement(Au,null,C.createElement(Wm,{rc:t}),C.createElement(vu,e)))}const yu="secure_connection_row_menu",vu=e=>{let{remoteCluster:t,onDeleteSuccess:a,disabled:n}=e;const{formatMessage:i}=(0,A.useIntl)(),r=(0,T.useHistory)(),{promptDelete:l}=(e=>{const t=(0,s.useDispatch)();return{promptDelete:()=>new Promise(((a,s)=>
1{t((0,Hn.q)({modalId:ve.IQ.SECURE_CONNECTION_DELETE,dialogType:lu,dialogProps:{displayName:e.display_name,onConfirm:()=>I.mT.deleteRemoteCluster(e.remote_id).then(a,s)}}))}))}})(t),{promptCreateInvite:o}=(e=>{const t=(0,s.useDispatch)(),[a,n]=(0,C.useState)(!1);return{promptCreateInvite:()=>new Promise(((a,s)=>{t((0,Hn.q)({modalId:ve.IQ.SECURE_CONNECTION_CREATE_INVITE,dialogType:iu,dialogProps:{onConfirm:async()=>{try{const t=Array.from(window.crypto.getRandomValues(new Uint32Array(16))).map((e=>"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz~_!@-#$^"[e%70])).join("");n(!0);const s=await I.mT.generateInviteRemoteCluster(e.remote_id,{password:t});return n(!1),a(e),{remoteCluster:e,share:{invite:s,password:t}}}catch(e){s(e)}n(!1)}}}))})),saving:a}})(t);return C.createElement(Wd.mc,{menuButton:{id:`${yu}-button-${t.remote_id}`,class:he()("btn btn-tertiary btn-sm connection-row-menu-button",{disabled:n}),disabled:n,children:!n&&C.createElement(w.DotsHorizontalIcon,{size:16}),"aria-label":i({id:"admin.secure_connection_row.menu-button.aria_label",defaultMessage:"Connection options for {connection}"},{connection:t.display_name})},menu:{id:yu,"aria-label":i({id:"admin.secure_connection_row.menu.aria_label",defaultMessage:"secure connection row menu"})}},!(0,Mm.qA)(t)&&C.createElement(Wd.q7,{id:`${yu}-generate_invite`,leadingElement:C.createElement(w.CodeTagsIcon,{size:18}),labels:C.createElement(A.FormattedMessage,{id:"admin.secure_connection_row.menu.share",defaultMessage:"Generate invitation code"}),onClick:()=>{o()}}),C.createElement(Wd.q7,{id:`${yu}-edit`,leadingElement:C.createElement(w.PencilOutlineIcon,{size:18}),labels:C.createElement(A.FormattedMessage,{id:"admin.secure_connection_row.menu.edit",defaultMessage:"Edit"}),onClick:()=>{r.push(ym(t))}}),C.createElement(Wd.q7,{id:`${yu}-delete`,isDestructive:!0,leadingElement:C.createElement(w.TrashCanOutlineIcon,{size:18}),labels:C.createElement(A.FormattedMessage,{id:"admin.secure_connection_row.menu.delete",defaultMessage:"Delete"}),onClick:()=>{l().then(a)}}))},Su=(0,R.default)(T.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;}"]),Cu=R.default.strong.withConfig({displayName:"Title"})(["font-size:14px;"]),Au=R.default.div.withConfig({displayName:"Detail"})(["display:flex;gap:20px;align-items:center;"]),Tu=e=>C.createElement("div",{className:"admin-console__wrapper"},C.createElement("div",{className:"admin-console__content"},e.children)),Nu=e=>{let{disabled:t,serviceNotRunning:a}=e;return C.createElement(Nm,null,a&&C.createElement(Xs.A,{type:"danger",title:C.createElement(A.FormattedMessage,Iu.serviceNotRunning)}),C.createElement(xm,null,C.createElement(hm,null),C.createElement("hgroup",null,C.createElement(A.FormattedMessage,Object.assign({tagName:Im},Iu.placeholderTitle)),C.createElement(A.FormattedMessage,Object.assign({tagName:"p"},Iu.placeholderSubtitle))),C.createElement(wu,{buttonClassNames:"btn-tertiary",disabled:t})))},ku="secure_connections_add_menu",wu=e=>{let{buttonClassNames:t,disabled:a}=e;const{formatMessage:n}=(0,A.useIntl)(),i=(0,T.useHistory)(),{promptAcceptInvite:r}=(()=>{const e=(0,s.useDispatch)(),[t,a]=(0,C.useState)(!1);return{promptAcceptInvite:()=>new Promise(((t,s)=>{e((0,Hn.q)({modalId:ve.IQ.SECURE_CONNECTION_ACCEPT_INVITE,dialogType:eu,dialogProps:{onConfirm:async e=>{try{a(!0);const s=await I.mT.acceptInviteRemoteCluster({...e,name:(0,Cs.aM)(e.display_name)});return a(!1),t(s),s}catch(e){throw s(e),a(e),e}}}}))})),saving:t}})();return C.createElement(Wd.mc,{menuButton:{id:`${ku}-button`,class:he()("btn",t??"btn-primary",{disabled:a}),disabled:a,children:C.createElement(C.Fragment,null,C.createElement(A.FormattedMessage,Iu.addConnection),!a&&C.createElement("i",{"aria-hidden":"true",className:"icon icon-chevron-down"}))},menu:{id:ku,"aria-label":n(Iu.menuAriaLabel)}}
1,C.createElement(Wd.q7,{id:`${ku}-add_connection`,labels:C.createElement(A.FormattedMessage,Iu.createConnection),onClick:()=>{i.push({pathname:"/admin_console/site_config/secure_connections/create"})}}),C.createElement(Wd.q7,{id:`${ku}-accept_invitation`,labels:C.createElement(A.FormattedMessage,Iu.acceptInvitation),onClick:async()=>{const e=await r();e&&i.push(ym(e))}}))},Iu=(0,A.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."}}),Ru=Object.values(Iu);var Lu=a(16666),xu=a(67796);const Du=function(){return C.createElement("svg",{width:"125",height:"97",viewBox:"0 0 125 97",fill:"none",xmlns:"http://www.w3.org/2000/svg"},C.createElement("rect",{opacity:"0.08",width:"50",height:"50",rx:"2",fill:"var(--button-bg)"}),C.createElement("rect",{opacity:"0.12",x:"30",y:"50",width:"95",height:"28",rx:"2",fill:"var(--button-bg)"}),C.createElement("circle",{cx:"95.5",cy:"32.5",r:"2.5",fill:"var(--center-channel-color)",fillOpacity:"0.48"}),C.createElement("circle",{cx:"109",cy:"32.5",r:"2.5",fill:"var(--center-channel-color)",fillOpacity:"0.48"}),C.createElement("circle",{cx:"122.5",cy:"32.5",r:"2.5",fill:"var(--center-channel-color)",fillOpacity:"0.48"}),C.createElement("path",{d:"M95.0443 87.1199L105 97V46C105 44.8954 104.105 44 103 44H55C53.8954 44 53 44.8954 53 46V84.5395C53 85.644 53.8954 86.5395 55 86.5395H93.6355C94.1633 86.5395 94.6697 86.7481 95.0443 87.1199Z",fill:"var(--indigo-400)"}),C.createElement("path",{d:"M67 65H97",stroke:"var(--center-channel-bg)",strokeLinecap:"round"}),C.createElement("path",{d:"M67 72H86",stroke:"var(--center-channel-bg)",strokeLinecap:"round"}),C.createElement("path",{d:"M67 59H77",stroke:"var(--center-channel-bg)",strokeLinecap:"round"}),C.createElement("path",{d:"M80 59H93",stroke:"var(--center-channel-bg)",strokeLinecap:"round"}),C.createElement("path",{d:"M27.605 69.5638L14 83V14C14 12.8954 14.8954 12 16 12H82C83.1046 12 84 12.8954 84 14V66.9868C84 68.0914 83.1046 68.9868 82 68.9868H29.0103C28.4842 68.9868 27.9793 69.1941 27.605 69.5638Z",fill:"var(--center-channel-bg)"}),C.createElement("path",{d:"M16 12.5H82C82.8284 12.5 83.5 13.1716 83.5 14V66.9873C83.4998 67.8155 82.8283 68.4873 82 68.4873H29.0107C28.3532 68.4873 27.7218 68.746 27.2539 69.208L14.5 81.8027V14C14.5 13.1716 15.1716 12.5 16 12.5Z",stroke:"var(--center-channel-color)",strokeOpacity:"0.8"}),C.createElement("circle",{cx:"32",cy:"31",r:"9",fill:"var(--center-channel-color)",fillOpacity:"0.32"}),C.createElement("path",{d:"M47 27H63",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeLinecap:"round"}),C.createElement("path",{d:"M24 51H74",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeLinecap:"round"}),C.createElement("path",{d:"M24 58H46",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeLinecap:"round"}),C.createElement("path",{d:"M47 33H72",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeLinecap:"round"}),C.createElement("path",{d:"M24 45H41",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeLinecap:"round"}
1),C.createElement("path",{d:"M45 45H63",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeLinecap:"round"}),C.createElement("path",{d:"M9 39.5L9 58L19.5 58",stroke:"var(--center-channel-color)",strokeOpacity:"0.8",strokeLinecap:"round",strokeLinejoin:"round"}),C.createElement("path",{d:"M9 36.5L9 30.5",stroke:"var(--center-channel-color)",strokeOpacity:"0.8",strokeLinecap:"round",strokeLinejoin:"round"}),C.createElement("path",{d:"M9 27.5L9 25.5",stroke:"var(--center-channel-color)",strokeOpacity:"0.8",strokeLinecap:"round",strokeLinejoin:"round"}))};var Pu=a(46378);function Ou(e){const[t,a]=(0,C.useState)(),[n,{loading:i,fetch:r}]=((e,t)=>{const[a,n]=(0,C.useState)(),[i,r]=(0,C.useState)(!0),l=(0,s.useDispatch)(),o=vm(i),d=!o&&i,c=(0,C.useCallback)((async()=>{void 0!==t.filter&&(r(!0),l((async(a,s)=>{const i={},l=[];try{const o=await I.mT.getSharedChannelRemotes(e,{include_unconfirmed:!0,exclude_remote:"home"===t.filter,exclude_home:"remote"===t.filter});let d=s(),c=async e=>{const t=await I.mT.getAllTeamsChannels();return a({type:nc.rb.RECEIVED_ALL_CHANNELS,data:t}),d=s(),c=void 0,(0,Is.c)(d,e.channel_id)};for(const e of o){const t=(0,Is.c)(d,e.channel_id)??await(c?.(e));if(!t){l?.push(e);continue}const a=(0,u.Uo)(d,t.team_id);i[e.id]=bm(e,t,a)}if(l.length){await Promise.allSettled(l.map((e=>a((0,ws.c)(e.channel_id))))),d=s();for(const e of l){const t=(0,Is.c)(d,e.channel_id);if(!t)continue;const a=(0,u.Uo)(d,t.team_id);i[e.id]=bm(e,t,a)}}const m=Object.values(i);n(m.length?m:void 0),r(!1)}catch(e){return r(e),{error:e}}return{data:i}})))}),[e,t.filter]);return(0,C.useEffect)((()=>{c()}),[e,t.filter]),[a,{loading:o,error:d,fetch:c}]})(e.remoteId,{filter:t}),{promptAdd:l}=(e=>{const t=(0,s.useDispatch)();return{promptAdd:()=>new Promise((a=>{t((0,Hn.q)({modalId:ve.IQ.SHARED_CHANNEL_REMOTE_INVITE,dialogType:hu,dialogProps:{remoteId:e,onConfirm:async t=>{const s={data:{},errors:{}},{data:n,errors:i}=s,r=t.map((t=>{let{id:a}=t;return I.mT.sharedChannelRemoteInvite(e,a)}));return(await Promise.allSettled(r)).forEach(((e,a)=>{"rejected"===e.status&&e.reason.server_error_id?i[t[a].id]=e.reason:"fulfilled"===e.status&&(n[t[a].id]=e)})),a(s),s}}}))}))}})(e.remoteId),o=e.rc?(0,Mm.qA)(e.rc):void 0,d=!!o||!(!1===o&&"home"===t&&!n);(0,C.useEffect)((()=>{o?a("remote"):!1===o&&a("home")}),[o]);const c=(0,C.useCallback)((e=>{a(e)}),[]);let m;return m=i||!e.rc?C.createElement(Ta.A,null):n?C.createElement(ju,{data:n,filter:t??"home",fetch:r}):C.createElement(Fu,{filter:t??"home",rc:e.rc}),C.createElement(C.Fragment,null,C.createElement(Tm,{$borderless:!0},C.createElement("hgroup",null,C.createElement(A.FormattedMessage,{tagName:Cm,id:"admin.secure_connections.details.shared_channels.title",defaultMessage:"Shared Channels"}),C.createElement(A.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."})),C.createElement(Uu,{onClick:async()=>{await l(),setTimeout((()=>{"remote"===t?a("home"):r()}),500)}},C.createElement(w.PlusIcon,{size:18}),C.createElement(A.FormattedMessage,{id:"admin.secure_connections.details.shared_channels.add_channels.button",defaultMessage:"Add channels"}))),C.createElement(Bu,null,d&&C.createElement(Gn.Tabs,{id:"shared-channels",className:"tabs",defaultActiveKey:"remote",activeKey:t,onSelect:c,unmountOnExit:!0},C.createElement(Gn.Tab,{eventKey:"remote",title:e.rc?.display_name}),C.createElement(Gn.Tab,{eventKey:"home",title:C.createElement(A.FormattedMessage,{id:"admin.secure_connections.details.shared_channels.tabs.home",defaultMessage:"Your channels"})})),C.createElement(Nm,{$compact:Boolean(n)},m)))}const Fu=e=>C.createElement(xm,null,C.createElement(Du,null),C.createElement("hgroup",null,"home"===e.filter?C.createElement(C.Fragment,null,C.createElement(A.FormattedMessage,{tagName:Im,id:"admin.secure_connection_detail.shared_channels.placeholder.title_home",defaultMessage:"You haven't shared any channels"}),C.createElement(A.FormattedMessage,{tagName:Rm,id:"admin.secure_connection_detail.shared_channels.placeholder.subtitle",defaultMessage:"Please add channels to start sharing"})):C.createElement(A.FormattedMessage,{tagName:Im,id:"admin.secure_connection_detail.shared_channels.placeholder.title_remote",defaultMessage:"{remote} hasn't shared any channels",values:{remote:e.rc.display_name}}))),Uu=R.default.button.attrs({className:"btn btn-primary"}).withConfig({displayName:"AddChannelsButton"})(["padding-left:15px;"]),Bu=R.default.div.withConfig({displayName:"TabsWrapper"})([".tabs{display:flex;width:100%;flex-direction:column;
1.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;}}}"]),Hu=e=>{let{channelId:t}=e;const a=(0,s.useSelector)((e=>(0,Is.c)(e,t))),n=(0,Ds.gU)(a);return C.createElement(Gu,null,C.createElement(n,{size:16}))},Gu=R.default.span.withConfig({displayName:"ChannelIconWrapper"})(["vertical-align:middle;margin-right:5px;"]),Vu=R.default.span.withConfig({displayName:"ChannelName"})(["font-size:14px;font-weight:600;line-height:20px;"]),zu=R.default.span.withConfig({displayName:"TeamName"})(["font-size:14px;font-weight:400;line-height:20px;color:rgba(var(--center-channel-color-rgb),0.72);"]);function ju(e){const t=(0,Lu.FB)(),a=(0,C.useMemo)((()=>[t.accessor("display_name",{header:()=>C.createElement(A.FormattedMessage,{id:"admin.secure_connection_detail.shared_channels.table.name",defaultMessage:"Name"}),cell:e=>{let{row:t,getValue:a}=e;return C.createElement(C.Fragment,null,C.createElement(Hu,{channelId:t.original.channel_id}),C.createElement(Vu,null,a()))},enableHiding:!1,enableSorting:!0}),t.accessor("team_display_name",{header:()=>"home"===e.filter?C.createElement(A.FormattedMessage,{id:"admin.secure_connection_detail.shared_channels.table.team_home",defaultMessage:"Current Team"}):C.createElement(A.FormattedMessage,{id:"admin.secure_connection_detail.shared_channels.table.team_remote",defaultMessage:"Destination Team"}),cell:e=>{let{getValue:t}=e;return C.createElement(zu,null,t())},enableHiding:!1,enableSorting:!0}),t.display({id:"actions",cell:t=>{let{row:a}=t;return C.createElement(Yu,{remote:a.original,fetch:e.fetch})},enableHiding:!1,enableSorting:!1})]),[e.data,e.filter,e.fetch]),s=(0,xu.N4)({data:e.data,columns:a,initialState:{sorting:[{id:"display_name",desc:!1}]},getCoreRowModel:(0,Lu.HT)(),getSortedRowModel:(0,Lu.h5)(),enableSortingRemoval:!1,enableMultiSort:!1,renderFallbackValue:"",meta:{tableId:"sharedChannelRemotes",disablePaginationControls:!0},manualPagination:!0});return C.createElement(Wu,null,C.createElement(Pu.z4,{table:s}))}const Wu=R.default.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;}"]),Yu=e=>{let{remote:t,fetch:a}=e;const{promptRemove:n}=(e=>{const t=(0,s.useDispatch)();return{promptRemove:a=>new Promise(((s,n)=>{t((0,Hn.q)({modalId:ve.IQ.SHARED_CHANNEL_REMOTE_UNINVITE,dialogType:bu,dialogProps:{onConfirm:()=>I.mT.sharedChannelRemoteUninvite(e,a).then(s,n)}}))}))}})(t.remote_id);return C.createElement(qu,null,C.createElement(jm,{onClick:()=>{n(t.channel_id).then(a)},$destructive:!0},C.createElement(A.FormattedMessage,{id:"admin.secure_connection_detail.shared_channels.table.remote_actions.remove",defaultMessage:"Remove"})))},qu=R.default.div.withConfig({displayName:"RemoteActionsRoot"})(["text-align:right;"]),Zu=e=>{let{log:t,show:a,onModalDismissed:s}=e;const[n,i]=(0,C.useState)(!1),r=()=>{i(!0),setTimeout((()=>{i(!1)}),3e3)},l=(0,C.useCallback)((()=>{navigator.clipboard.writeText(JSON.stringify(t,void 0,2)),r()}),[t,r]);return C.createElement(Gn.Modal,{show:a,onHide:s,dialogClassName:"a11y__modal full-log-event",role:"none","aria-labelledby":"fullLogEventModalLabel"},C.createElement(Gn.Modal.Header,{closeButton:!0},C.createElement(Gn.Modal.Title,{componentClass:"h1",id:"fullLogEventModalLabel"},C.createElement(A.FormattedMessage,{id:"admin.server_logs.LogEvent",defaultMessage:"Log Event"})),n?C.createElement(A.FormattedMessage,{id:"admin.server_logs.DataCopied",defaultMessage:"Data copied"}):C.createElement(Gn.Button,{onClick:l},C.createElement(A.FormattedMessage,{id:"admin.server_logs.CopyLog",defaultMessage:"Copy log"}
1))),C.createElement(Gn.Modal.Body,null,null===t?C.createElement("div",null):C.createElement("div",null,C.createElement("pre",null,JSON.stringify(t,void 0,2)))),C.createElement(Gn.Modal.Footer,null,C.createElement("button",{type:"button",className:"btn btn-tertiary",onClick:s},C.createElement(A.FormattedMessage,{id:"admin.manage_roles.cancel",defaultMessage:"Cancel"}))))},Ju=(0,C.memo)(Zu);class Ku extends C.PureComponent{constructor(e){super(e),this.state={modalLog:null,modalOpen:!1,page:0,dateAsc:!0}}isSearching=(e,t)=>e.length>0||Object.keys(t).length>0;onSearch=e=>{this.props.onSearchChange(e)};nextPage=()=>{const e=this.state.page+1;this.setState({page:e})};previousPage=()=>{const e=this.state.page-1;this.setState({page:e})};getPaginationProps=()=>{const{page:e}=this.state,t=50*e+1,a=this.props.logs?.length??0;let s=0;return s=50*(e+1),s=s>a?a:s,{startCount:t,endCount:s,total:a}};handleDateSort=()=>{this.setState({dateAsc:!this.state.dateAsc}),this.getColumns(this.state.dateAsc)};getColumns=e=>[{field:"timestamp",fixed:!0,name:C.createElement("div",{className:"timestamp",onClick:this.handleDateSort},C.createElement(A.FormattedMessage,{id:"admin.compliance_table.timestamp",defaultMessage:"Timestamp"}),e?C.createElement(w.ArrowUpIcon,{size:18}):C.createElement(w.ArrowDownIcon,{size:18})),textAlign:"left",width:1.5},{field:"level",fixed:!0,name:C.createElement(A.FormattedMessage,{id:"admin.log.Level",defaultMessage:"Level"}),textAlign:"left",width:.5},{field:"msg",fixed:!0,name:C.createElement(A.FormattedMessage,{id:"user.settings.notifications.autoResponderPlaceholder",defaultMessage:"Message"}),textAlign:"left",width:2.5},{field:"caller",fixed:!0,name:C.createElement(A.FormattedMessage,{id:"admin.logs.caller",defaultMessage:"Caller"}),textAlign:"left",width:1.5},{field:"options",fixed:!0,name:C.createElement(A.FormattedMessage,{id:"admin.logs.options",defaultMessage:"Options"}),textAlign:"left",width:1}];getRows=()=>{const{startCount:e,endCount:t}=this.getPaginationProps();return this.props.logs.sort(((e,t)=>{const a=new Date(e.timestamp).valueOf(),s=new Date(t.timestamp).valueOf();return this.state.dateAsc?a-s:s-a})).slice(e-1,t).map((e=>({cells:{timestamp:C.createElement("span",{className:"group-name overflow--ellipsis row-content","data-testid":"timestamp"},C.createElement("span",{className:"group-description row-content"},e.timestamp)),level:C.createElement("span",{className:"group-description adjusted row-content"},e.level),msg:C.createElement("span",{className:"group-description row-content",title:e.msg},e.msg),caller:C.createElement("span",{className:"group-description row-content"},e.caller),options:C.createElement("button",{type:"submit",className:"btn btn-secondary btn-sm"},C.createElement(A.FormattedMessage,{id:"admin.logs.fullEvent",defaultMessage:"Full Log event"}))},onClick:()=>
1this.showFullLogEvent(e)})))};showFullLogEvent=e=>{this.setState({modalLog:e,modalOpen:!0})};hideModal=()=>{this.setState({modalLog:null,modalOpen:!1})};onFilter=e=>{const t={},a=e.levels.values;a.all.value?t.logLevels=[]:t.logLevels=Object.keys(a).reduce(((e,t)=>(a[t].value&&e.push(t),e)),[]),this.props.onFiltersChange(t)};showErrors=()=>{this.props.onFiltersChange({logLevels:["error"]})};getErrorCount=()=>{let e=0;return this.props.logs.map((t=>"error"===t.level&&++e)),e};render=()=>{const{search:e}=this.props,t=this.getRows(),a=this.getColumns(this.state.dateAsc),{startCount:s,endCount:n,total:i}=this.getPaginationProps(),r=C.createElement(A.FormattedMessage,{id:"admin.channel_settings.channel_list.no_logs_found",defaultMessage:"No logs found. Ensure log files are within the logging root directory (configured via MM_LOG_PATH or the default logs directory)."}),l={minHeight:40*t.length+"px"},o=C.createElement("button",{className:"btn btn-tertiary btn-sm ml-2",onClick:this.showErrors},C.createElement(A.FormattedMessage,{id:"admin.logs.showErrors",defaultMessage:"Show last {n} errors",values:{n:this.getErrorCount()}})),d={options:{levels:{name:"Levels",values:{all:{name:C.createElement(A.FormattedMessage,{id:"admin.logs.Alllevels",defaultMessage:"All levels"}),value:!0},error:{name:C.createElement(A.FormattedMessage,{id:"admin.logs.Error",defaultMessage:"Error"}),value:!1},warn:{name:C.createElement(A.FormattedMessage,{id:"admin.logs.Warn",defaultMessage:"Warn"}),value:!1},info:{name:C.createElement(A.FormattedMessage,{id:"admin.logs.Info",defaultMessage:"Info"}),value:!1},debug:{name:C.createElement(A.FormattedMessage,{id:"admin.logs.Debug",defaultMessage:"Debug"}),value:!1}},keys:["all","error","info","debug"]}},keys:["levels"],onFilter:this.onFilter};return C.createElement("div",{className:"LogTable"},C.createElement(ee.A,{columns:a,rows:t,loading:this.props.loading,startCount:s,endCount:n,total:i,onSearch:this.onSearch,term:e,placeholderEmpty:r,rowsContainerStyles:l,nextPage:this.nextPage,previousPage:this.previousPage,filterProps:d,extraComponent:o}),C.createElement(Ju,{log:this.state.modalLog,show:this.state.modalOpen,onModalDismissed:this.hideModal}))}}class Qu extends C.PureComponent{constructor(e){super(e),this.logPanel=C.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)}nextPage=e=>{e.preventDefault(),this.setState({nextDisabled:!0}),setTimeout((()=>this.setState({nextDisabled:!1})),500),this.props.nextPage()};previousPage=e=>{e.preventDefault(),this.props.previousPage()};render(){if(this.props.loading)return C.createElement("div",{className:"log__panel"},C.createElement(Bn.A,null));let e,t,a=null;this.props.logs.length>=this.props.perPage&&(e=C.createElement("button",{type:"button",className:"btn btn-tertiary filter-control filter-control__next pull-right",onClick:this.nextPage,disabled:this.state.nextDisabled},C.createElement(A.FormattedMessage,{id:"admin.logs.next",defaultMessage:"Next"}),C.createElement(Fe.A,{additionalClassName:"ml-2"}))),this.props.page>0&&(t=C.createElement("button",{type:"button",className:"btn btn-tertiary filter-control filter-control__prev",onClick:this.previousPage},C.createElement("i",{className:"fa fa-angle-left",title:this.props.intl.formatMessage({id:"generic_icons.previous",defaultMessage:"Previous Icon"})}),C.createElement(A.FormattedMessage,{id:"admin.logs.prev",defaultMessage:"Previous"}))),a=[];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"),a.push(C.createElement("br",{key:"br_"+e})),a.push(C.createElement("span",{key:"log_"+e,style:t},this.props.logs[e]))}return C.createElement("div",{className:"plain-log-list"},C.createElement("div",{tabIndex:-1,ref:this.logPanel,className:"log__panel"},a),C.createElement("div",{className:"pt-3 pb-3 filter-controls"},t,e))}}const Xu=(0,A.injectIntl)(Qu),$u=(0,A.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 >
1 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"}}),eg=[$u.title,$u.bannerDesc];class tg extends C.PureComponent{constructor(e){super(e),this.state={dateFrom:"",dateTo:"",filteredLogs:[],loading:!0,logLevels:[],search:"",serverNames:[],page:0,perPage:1e3,isPlainLogs:e.isPlainLogs}}componentDidMount(){this.reload()}componentDidUpdate(e,t){!this.state.isPlainLogs||this.state.page===t.page&&this.props.plainLogs?.length||this.reload()}nextPage=()=>{this.setState({page:this.state.page+1})};previousPage=()=>{this.setState({page:this.state.page-1})};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})};onLogFormatToggle=e=>{this.setState({isPlainLogs:"plain"===e.target.value})};onSearchChange=e=>{this.setState({search:e},(()=>this.performSearch()))};performSearch=cr()((()=>{const{search:e}=this.state,t=new Set(["level","timestamp"]),a=this.props.logs.filter((a=>Object.entries(a).some((a=>{let[s,n]=a;return!t.has(s)&&String(n).toLowerCase().includes(e.toLowerCase())}))));this.setState({filteredLogs:a})}),200);componentWillUnmount(){this.performSearch.cancel()}onFiltersChange=e=>{let{dateFrom:t,dateTo:a,logLevels:s,serverNames:n}=e;this.setState({dateFrom:t,dateTo:a,logLevels:s,serverNames:n},(()=>this.reload()))};render(){const e=this.state.isPlainLogs?C.createElement(Xu,{loading:this.state.loading,logs:this.props.plainLogs,nextPage:this.nextPage,previousPage:this.previousPage,page:this.state.page,perPage:this.state.perPage}):C.createElement(Ku,{loading:this.state.loading,logs:this.state.search?this.state.filteredLogs:this.props.logs,onSearchChange:this.onSearchChange,search:this.state.search,onFiltersChange:this.onFiltersChange});let t;return this.props.isPlainLogs||(t=C.createElement("div",{className:"banner-buttons__log-format",id:"admin.logs.LogFormat",role:"radiogroup","aria-labelledby":"admin.logs.LogFormat.legend"},C.createElement("span",{id:"admin.logs.LogFormat.legend"},C.createElement(A.FormattedMessage,$u.logFormatTitle)),C.createElement("label",null,C.createElement("input",{type:"radio",id:"admin.logs.LogFormat.json",name:"log-format",value:"json",checked:!this.state.isPlainLogs,onChange:this.onLogFormatToggle}),C.createElement(A.FormattedMessage,$u.logFormatJson)),C.createElement("label",null,C.createElement("input",{type:"radio",id:"admin.logs.LogFormat.plain",name:"log-format",value:"plain",checked:this.state.isPlainLogs,onChange:this.onLogFormatToggle}),C.createElement(A.FormattedMessage,$u.logFormatPlain)))),C.createElement("div",{className:"wrapper--fixed"},C.createElement(fe,null,C.createElement(A.FormattedMessage,$u.title)),C.createElement("div",{className:"admin-console__wrapper"},C.createElement("div",{className:"admin-logs-content admin-console__content"},C.createElement("div",{className:"logs-banner"},C.createElement("div",{className:"banner"},C.createElement("div",{className:"banner__content"},C.createElement(A.FormattedMessage,$u.bannerDesc))),C.createElement("div",{className:"banner-buttons"},t,C.createElement("button",{type:"submit",className:"btn btn-primary",onClick:this.reload},C.createElement(A.FormattedMessage,{id:"admin.logs.ReloadLogs",defaultMessage:"Reload Logs"})),C.createElement(Ge.A,{location:"download_logs",className:"btn btn-primary",href:I.mT.getUrl()+"/api/v4/logs/download"},C.createElement(A.FormattedMessage,{id:"admin.logs.DownloadLogs",defaultMessage:"Download Logs"})))),e)))}}const ag=(0,s.connect)((function(e){const t=d.zj(e);return{logs:d.jp(e),plainLogs:d.O5(e),isPlainLogs:!1===t.LogSettings?.FileJson}}),(function(e){return{actions:(0,n.zH)({getLogs:i.ao,getPlainLogs:i.O5},e)}}))(tg),sg=(0,A.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
1will 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. If password change is initiated by user, their current session is not terminated."},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.\n \nApplies 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."}}),ng=[sg.title,sg.webSessionHoursDesc_extendLength,sg.mobileSessionHoursDesc_extendLength,sg.ssoSessionHoursDesc_extendLength,sg.webSessionHoursDesc,sg.mobileSessionHoursDesc,sg.ssoSessionHoursDesc,sg.sessionIdleTimeout,sg.extendSessionLengthActivity_label,sg.extendSessionLengthActivity_helpText,sg.webSessionHours,sg.mobileSessionHours,sg.ssoSessionHours,sg.sessionCache,sg.
1sessionCacheDesc,sg.sessionHoursEx,sg.sessionIdleTimeoutDesc];var ig=a(9235),rg=a(69412);function lg(e){return function(e,t){const a=e.attrs?.source_plugin_id;return Boolean(e.attrs?.protected)&&Boolean(a)&&!t[a]}(e,(0,s.useSelector)((e=>e.entities.admin.plugins??{})))}const og=e=>{let{initialValue:t,fieldType:a,onExited:s,onSave:n,error:i,helpText:r,modalHeaderText:l}=e;const[o,d]=(0,C.useState)(t),c=()=>n(o),m="text"!==a;return C.createElement(ks.zW,{id:"attributeModal",modalHeaderText:l,confirmButtonText:C.createElement(A.FormattedMessage,{id:"save",defaultMessage:"Save"}),compassDesign:!0,onExited:s,handleEnterKeyPress:c,handleConfirm:c,handleCancel:()=>s(),isConfirmDisabled:o.length>64},C.createElement(xs.A,{size:"lg",inputComponent:xs.P,autoFocus:!0,className:"form-control filter-textbox",placeholder:"department",type:"text",value:o,clearable:!0,onClear:()=>d(""),onChange:e=>d(e.target.value)}),C.createElement("span",{className:"help-text"},r),m&&C.createElement("div",{className:"alert alert-warning",style:{marginTop:"12px"}},C.createElement(A.FormattedMessage,{id:"admin.customProfileAttribWarning",defaultMessage:"(Warning) This attribute will be converted to a TEXT attribute, if the field is set to synchronize."})),i&&C.createElement("div",{className:"error-text"},i))},dg=()=>{},cg=()=>{const e=(0,s.useDispatch)();return{promptDelete:function(t){let a=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return new Promise((s=>
1{e((0,Hn.q)({modalId:ve.IQ.USER_PROPERTY_FIELD_DELETE,dialogType:mg,dialogProps:{name:t.name,onConfirm:()=>s(!0),isOrphaned:a,sourcePluginId:t.attrs?.source_plugin_id}}))}))}}};function mg(e){let{name:t,onExited:a,onCancel:s,onConfirm:n,isOrphaned:i=!1,sourcePluginId:r}=e;const{formatMessage:l}=(0,A.useIntl)(),o=l({id:"admin.system_properties.confirm.delete.title",defaultMessage:"Delete {name} attribute"},{name:t}),d=l({id:"admin.system_properties.confirm.delete.button",defaultMessage:"Delete"}),c=i?C.createElement(C.Fragment,null,C.createElement("p",null,C.createElement(A.FormattedMessage,{id:"admin.system_properties.confirm.delete.orphaned_body",defaultMessage:'This attribute was created by the plugin "{pluginId}" which has been uninstalled.',values:{pluginId:r||"unknown"}})),C.createElement("p",null,C.createElement(A.FormattedMessage,{id:"admin.system_properties.confirm.delete.orphaned_warning",defaultMessage:"Deleting this attribute will remove all user-defined values associated with it. This action cannot be undone."}))):C.createElement(A.FormattedMessage,{id:"admin.system_properties.confirm.delete.text",defaultMessage:"Deleting this attribute will remove all user-defined values associated with it."});return C.createElement(ks.zW,{confirmButtonText:d,handleCancel:s??dg,handleConfirm:n,modalHeaderText:o,onExited:a,compassDesign:!0,isDeleteModal:!0},c)}var ug=a(38750),gg=a.n(ug),pg=a(24380);class hg extends Error{}const fg=e=>({loading:!0===e,error:e instanceof Error?e:void 0});function Eg(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];const[a,s]=(e=>{const[t,a]=(0,C.useState)(e);return[fg(t),a]})(t),n=(0,C.useCallback)((async function(){s(!0);try{const t=await e(...arguments);return s(!1),t}catch(e){return void s(e)}}),[e]);return[n,a,s]}const Mg="user_properties.validation.name_required",bg="user_properties.validation.name_unique",_g="user_properties.validation.name_taken",yg="user_properties.validation.options_required",vg=(e,t)=>{const a=new Set(Object.values(t.data).map((e=>{let{name:t}=e;return t})));let s=e,n=1;for(;a.has(s);)n++,s=`${e} ${n}`;return s},Sg=e=>0===e.create_at&&0===e.delete_at,Cg=e=>0!==e.create_at&&0!==e.delete_at,Ag=e=>{const t={...e.attrs};return t.options&&(t.options=e.attrs?.options?.map((e=>({...e,id:""})))),Reflect.deleteProperty(t,"ldap"),Reflect.deleteProperty(t,"saml"),{type:"text",...e,group_id:"custom_profile_attributes",id:`pending_${(0,L.$C)()}`,create_at:0,delete_at:0,update_at:0,created_by:"",updated_by:"",target_id:"",target_type:"",object_type:"",attrs:{visibility:"when_set",sort_order:0,value_type:"",...t}}},Tg=(e,t)=>{const a=(0,s.useDispatch)();return{promptEditLdapLink:()=>{a((0,Hn.q)({modalId:ve.IQ.ATTRIBUTE_MODAL_LDAP,dialogType:og,dialogProps:{initialValue:e.attrs.ldap||"",fieldType:e.type,onExited:()=>{},onSave:async a=>{t({...e,type:"text",attrs:{...e.attrs,ldap:a}})},error:null,helpText:C.createElement(A.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:C.createElement(A.FormattedMessage,{id:"admin.system_properties.user_properties.dotmenu.ad_ldap.link_property.label",defaultMessage:"Link attribute to AD/LDAP"})}}))},promptEditSamlLink:()=>{a((0,Hn.q)({modalId:ve.IQ.ATTRIBUTE_MODAL_SAML,dialogType:og,dialogProps:{initialValue:e.attrs.saml||"",fieldType:e.type,onExited:()=>{},onSave:async a=>{t({...e,type:"text",attrs:{...e.attrs,saml:a}})},error:null,helpText:C.createElement(A.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:C.createElement(A.FormattedMessage,{id:"admin.system_properties.user_properties.dotmenu.saml.modal.title",defaultMessage:"Link attribute to SAML"})}}))}}},Ng="user-property-field_dotmenu",kg=e=>{let{field:t,canCreate:a,createField:s,updateField:n,deleteField:i}=e;const{formatMessage:r}=(0,A.useIntl)(),{promptDelete:l}=cg(),{promptEditLdapLink:o,promptEditSamlLink:d}=Tg(t,n),c=Boolean(t.attrs?.protected),m=Boolean(t.attrs.ldap||t.attrs.saml),u=!m&&"admin"!==t.attrs.managed,g=e=>{n({...t,attrs:{...t.attrs,visibility:e}})},p=()=>
1{if(m)return;const e={...t.attrs};"admin"===t.attrs.managed?Reflect.deleteProperty(e,"managed"):e.managed="admin",n({...t,attrs:e})};let h;return"always"===t.attrs.visibility?h=C.createElement(A.FormattedMessage,{id:"admin.system_properties.user_properties.dotmenu.visibility.always.label",defaultMessage:"Always show"}):"when_set"===t.attrs.visibility?h=C.createElement(A.FormattedMessage,{id:"admin.system_properties.user_properties.dotmenu.visibility.when_set.label",defaultMessage:"Hide when empty"}):"hidden"===t.attrs.visibility&&(h=C.createElement(A.FormattedMessage,{id:"admin.system_properties.user_properties.dotmenu.visibility.hidden.label",defaultMessage:"Always hide"})),C.createElement(Wd.mc,{menuButton:{id:`${Ng}-${t.id}`,class:"btn btn-transparent user-property-field-dotmenu-menu-button",children:C.createElement(C.Fragment,null,c?C.createElement(w.LockOutlineIcon,{size:18}):C.createElement(w.DotsHorizontalIcon,{size:18})),dataTestId:`${Ng}-${t.id}`,disabled:0!==t.delete_at||c},menu:{id:`${Ng}-menu`,"aria-label":"Select an action",className:"user-property-field-dotmenu-menu"}},C.createElement(Wd.g8,{id:`${Ng}-${t.id}-visibility`,menuId:`${Ng}-${t.id}-visibility-menu`,leadingElement:C.createElement(w.EyeOutlineIcon,{size:"18"}),labels:C.createElement(A.FormattedMessage,{id:"admin.system_properties.user_properties.dotmenu.visibility.label",defaultMessage:"Visibility"}),trailingElements:C.createElement(C.Fragment,null,h,C.createElement(w.ChevronRightIcon,{size:16})),forceOpenOnLeft:!1},C.createElement(Wd.q7,{id:`${Ng}_visibility-always`,role:"menuitemradio",forceCloseOnSelect:!0,"aria-checked":"always"===t.attrs.visibility,onClick:()=>g("always"),labels:C.createElement(A.FormattedMessage,{id:"admin.system_properties.user_properties.dotmenu.visibility.always.label",defaultMessage:"Always show"}),trailingElements:"always"===t.attrs.visibility&&C.createElement(w.CheckIcon,{size:16,color:"var(--button-bg, #1c58d9)"})}),C.createElement(Wd.q7,{id:`${Ng}_visibility-when_set`,role:"menuitemradio",forceCloseOnSelect:!0,"aria-checked":"when_set"===t.attrs.visibility,onClick:()=>g("when_set"),labels:C.createElement(A.FormattedMessage,{id:"admin.system_properties.user_properties.dotmenu.visibility.when_set.label",defaultMessage:"Hide when empty"}),trailingElements:"when_set"===t.attrs.visibility&&C.createElement(w.CheckIcon,{size:16,color:"var(--button-bg, #1c58d9)"})}),C.createElement(Wd.q7,{id:`${Ng}_visibility-hidden`,role:"menuitemradio",forceCloseOnSelect:!0,"aria-checked":"hidden"===t.attrs.visibility,onClick:()=>g("hidden"),labels:C.createElement(A.FormattedMessage,{id:"admin.system_properties.user_properties.dotmenu.visibility.hidden.label",defaultMessage:"Always hide"}),trailingElements:"hidden"===t.attrs.visibility&&C.createElement(w.CheckIcon,{size:16,color:"var(--button-bg, #1c58d9)"})})),C.createElement(Wd.q7,{id:`${Ng}_editable-by-users`,role:"menuitemcheckbox",disabled:m,"aria-checked":u,onClick:p,leadingElement:C.createElement(w.PencilOutlineIcon,{size:18}),labels:m?C.createElement(C.Fragment,null,C.createElement("span",null,C.createElement(A.FormattedMessage,{id:"admin.system_properties.user_properties.dotmenu.editable_by_users.label",defaultMessage:"Editable by users"})),C.createElement("span",null,C.createElement(A.FormattedMessage,{id:"admin.system_properties.user_properties.dotmenu.editable_by_users.synced_help",defaultMessage:"Synced attributes are managed by AD/LDAP or SAML"}))):C.createElement(A.FormattedMessage,{id:"admin.system_properties.user_properties.dotmenu.editable_by_users.label",defaultMessage:"Editable by users"}),trailingElements:C.createElement(te.A,{size:"btn-sm",disabled:m,onToggle:p,toggled:u,toggleClassName:"btn-toggle-primary",tabIndex:-1})}),0!==t.create_at&&[C.createElement(Wd.q7,{key:`${Ng}_link_ad-ldap`,id:`${Ng}_link_ad-ldap`,leadingElement:C.createElement(w.SyncIcon,{size:18}),onClick:()=>o(),labels:t.attrs.ldap?C.createElement(A.FormattedMessage,{id:"admin.system_properties.user_properties.dotmenu.ad_ldap.edit_link.label",defaultMessage:"Edit LDAP link"}):C.createElement(A.FormattedMessage,{id:"admin.system_properties.user_properties.dotmenu.ad_ldap.link_property.label",defaultMessage:"Link attribute to AD/LDAP"})}),C.createElement(Wd.q7,{key:`${Ng}_link_saml`,id:`${Ng}_link_saml`,leadingElement:C.createElement(w.SyncIcon,{size:18}),onClick:()=>d(),labels:t.attrs.saml?C.createElement(A.FormattedMessage,{id:"admin.system_properties.user_properties.dotmenu.saml.edit_link.label",defaultMessage:"Edit SAML link"}):C.createElement(A.FormattedMessage,{id:"admin.system_properties.user_properties.dotmenu.saml.link_property.label",defaultMessage:"Link attribute to SAML"})})],C.createElement(Wd.wv,null),a&&C.createElement(Wd.q7,{id:`${Ng}_duplicate`,onClick:()=>{const e=r({id:"admin.system_properties.user_properties.dotmenu.duplicate.name_copy",defaultMessage:"{fieldName} (copy)"},{fieldName:t.name});s({...t,attrs:{...t.attrs},name:e})},leadingElement:C.createElement(w.ContentCopyIcon,{size:18}),labels:C.createElement(A.FormattedMessage,{id:"admin.system_properties.user_properties.dotmenu.duplicate.label",defaultMessage:"Duplicate attribute"})}),C.createElement(Wd.q7,{id:`${Ng}_delete`,onClick:()=>{Sg(t)?i(t.id):l(t).then((()=>i(t.id)))},isDestructive:!0,leadingElement:C.createElement(w.TrashCanOutlineIcon,{size:18}),labels:C.createElement(A.FormattedMessage,{id:"admin.system_properties.user_properties.dotmenu.delete.label",defaultMessage:"Delete attribute"})}))},wg=e=>{let{field:t,deleteField:a}=e;const{promptDelete:s}=cg();return C.createElement("button",{className:"btn btn-icon btn-trans
1parent orphaned-field-delete-button",onClick:()=>{Sg(t)?a(t.id):s(t,!0).then((()=>a(t.id)))},disabled:0!==t.delete_at,"data-testid":`orphaned-field-delete-${t.id}`,"aria-label":"Delete orphaned field"},C.createElement(w.TrashCanOutlineIcon,{size:18,color:"var(--error-text)"}))},Ig=e=>{const{formatMessage:t}=(0,A.useIntl)(),[a,s]=(0,C.useState)(""),n=(0,C.useMemo)((()=>Object.values(Lg).filter((e=>t(e.label).toLowerCase().includes(a.toLowerCase())))),[Lg,a]),i=(0,C.useMemo)((()=>Rg(e.field)),[e.field]),r=i.icon,l=Boolean(e.field.attrs?.protected),o=0!==e.field.delete_at||l;return C.createElement(Wd.mc,{menuButton:{id:`type-button-${e.field.id}`,class:he()("btn btn-transparent field-type-selector-menu-button"),children:C.createElement(C.Fragment,null,C.createElement(r,{size:18,color:"rgba(var(--center-channel-color-rgb), 0.64)"}),C.createElement(A.FormattedMessage,i.label)),dataTestId:"fieldTypeSelectorMenuButton",disabled:o},menu:{id:"type-selector-menu","aria-label":"Select type",className:"select-type-mui-menu"}},[C.createElement(Wd.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:a,onChange:e=>{s(e.target.value)},customStyles:xg})],n.map((t=>{const{id:a,icon:n,label:r,hidden:l,canSync:o}=t;if(l)return null;const d=e.field.attrs.ldap||e.field.attrs.saml,c=Boolean(d&&!o);return C.createElement(Wd.q7,{id:a,key:a,role:"menuitemradio",forceCloseOnSelect:!0,disabled:c,"aria-checked":a===i.id,onClick:()=>(t=>{e.updateField({...e.field,type:t.fieldType,attrs:{...e.field.attrs,value_type:t.valueType}}),s("")})(t),labels:C.createElement(A.FormattedMessage,r),leadingElement:C.createElement(n,{size:18}),trailingElements:a===i.id&&C.createElement(w.CheckIcon,{size:16,color:"var(--button-bg, #1c58d9)"})})})))},Rg=e=>{for(const t of Object.values(Lg))if(t.fieldType===e.type&&t.valueType===(e.attrs?.value_type??""))return t;return Lg.text},Lg={text:{id:"text",fieldType:"text",valueType:"",icon:w.MenuVariantIcon,label:(0,A.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:w.EmailOutlineIcon,label:(0,A.defineMessage)({id:"admin.system_properties.user_properties.table.select_type.email",defaultMessage:"Email"})},phone:{id:"phone",fieldType:"text",valueType:"phone",icon:w.PoundIcon,label:(0,A.defineMessage)({id:"admin.system_properties.user_properties.table.select_type.phone",defaultMessage:"Phone"})},url:{id:"url",fieldType:"text",valueType:"url",icon:w.LinkVariantIcon,label:(0,A.defineMessage)({id:"admin.system_properties.user_properties.table.select_type.url",defaultMessage:"URL"})},select:{id:"select",fieldType:"select",valueType:"",icon:w.ChevronDownCircleOutlineIcon,label:(0,A.defineMessage)({id:"admin.system_properties.user_properties.table.select_type.select",defaultMessage:"Select"})},multiselect:{id:"multiselect",fieldType:"multiselect",valueType:"",icon:w.FormatListBulletedIcon,label:(0,A.defineMessage)({id:"admin.system_properties.user_properties.table.select_type.multi_select",defaultMessage:"Multi-select"})}},xg=(0,R.css)(["padding:0 12px;"]),Dg={DropdownIndicator:void 0,ClearIndicator:void 0,IndicatorsContainer:()=>null,Input:e=>C.createElement(Lr.c.Input,Object.assign({},e,{maxLength:ve.Ay.MAX_CUSTOM_ATTRIBUTE_LENGTH}))},Pg={multiValue:e=>({...e,borderRadius:"12px",paddingLeft:"6px",paddingTop:"1px",paddingBottom:"1px",backgroundColor:"rgba(var(--center-channel-color-rgb), 0.08)"}),multiValueLabel:e=>({...e,color:"var(--center-channel-color)",fontFamily:"Open Sans",fontSize:"12px",fontStyle:"normal",fontWeight:600,lineHeight:"16px"}),multiValueRemove:e=>({...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)=>({...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"}})}
1,Og=e=>{let{field:t,updateField:a,autoFocus:n}=e;const{formatMessage:i}=(0,A.useIntl)(),r=(0,s.useSelector)((e=>(0,_a.Vk)(e,t.attrs?.source_plugin_id))),l=lg(t),[o,d]=C.useState(""),{promptEditLdapLink:c,promptEditSamlLink:m}=Tg(t,a),u=(0,C.useMemo)((()=>{return e=t.attrs.options,a=o.trim(),!e?.some((e=>e.name===a));var e,a}),[t?.attrs?.options,o]),g=e=>{(e=>{const s={id:"",name:e.trim()};a({...t,attrs:{...t.attrs,options:[...t.attrs.options??[],s]}})})(e),d("")};if(t.attrs.ldap||t.attrs.saml){const e=[t.attrs.ldap&&C.createElement("a",{className:"user-property-field-values__chip-link",key:`${t.name}-ldap`,"data-testid":`user-property-field-values__ldap-${t.name}`,onClick:()=>c(),onKeyDown:e=>{((0,Ps.e)(e,ve.Ay.KeyCodes.ENTER)||(0,Ps.e)(e,ve.Ay.KeyCodes.SPACE))&&c()},role:"button",tabIndex:0},C.createElement(A.FormattedMessage,{id:"admin.system_properties.user_properties.table.values.synced_with.ldap",defaultMessage:"AD/LDAP: {propertyName}",values:{propertyName:t.attrs.ldap}})),t.attrs.saml&&C.createElement("a",{className:"user-property-field-values__chip-link",key:`${t.name}-saml`,"data-testid":`user-property-field-values__saml-${t.name}`,onClick:()=>m(),onKeyDown:e=>{((0,Ps.e)(e,ve.Ay.KeyCodes.ENTER)||(0,Ps.e)(e,ve.Ay.KeyCodes.SPACE))&&m()},role:"button",tabIndex:0},C.createElement(A.FormattedMessage,{id:"admin.system_properties.user_properties.table.values.synced_with.saml",defaultMessage:"SAML: {propertyName}",values:{propertyName:t.attrs.saml}}))].filter(Boolean);return C.createElement(C.Fragment,null,C.createElement("span",{className:"user-property-field-values"},C.createElement(w.SyncIcon,{size:18}),C.createElement(A.FormattedMessage,{id:"admin.system_properties.user_properties.table.values.synced_with",defaultMessage:"Synced with: {syncedProperties}",values:{syncedProperties:C.createElement(A.FormattedList,{value:e})}})))}if(t.attrs?.protected)return C.createElement(C.Fragment,null,C.createElement("span",{className:"user-property-field-values"},C.createElement(w.PowerPlugOutlineIcon,{size:18}),l?C.createElement(A.FormattedMessage,{id:"admin.system_properties.user_properties.table.values.plugin_removed",defaultMessage:"Plugin removed: {pluginId}",values:{pluginId:r}}):C.createElement(A.FormattedMessage,{id:"admin.system_properties.user_properties.table.values.managed_by_plugin",defaultMessage:"Managed by plugin: {pluginId}",values:{pluginId:r}})));if(!(0,ig.L)(t))return C.createElement("span",{className:"user-property-field-values"},"-");const p=Boolean(t.attrs?.protected),h=0!==t.delete_at||p;return C.createElement(C.Fragment,null,C.createElement(U.A,{components:Dg,inputValue:o,isClearable:!0,isMulti:!0,menuIsOpen:!1,isDisabled:h,onChange:e=>{var s;s=e.map((e=>{let{id:t,value:a}=e;return{id:t,name:a}})),a({...t,attrs:{...t.attrs,options:s}})},onInputChange:e=>d(e),onKeyDown:e=>{if(o&&u)switch(e.key){case"Enter":case"Tab":g(o),e.preventDefault()}},onBlur:e=>{o&&u&&(g(o),e.preventDefault())},placeholder:i({id:"admin.system_properties.user_properties.table.values.placeholder",defaultMessage:"Add values⦠(required)"}),value:t.attrs.options?.map((e=>({label:e.name,value:e.name,id:e.id}))),menuPortalTarget:document.body,styles:Pg,autoFocus:n}),!u&&C.createElement(A.FormattedMessage,{tagName:J,id:"admin.system_properties.user_properties.table.validation.values_unique",defaultMessage:"Values must be unique."}))};function Fg(e){let{data:t,canCreate:a,createField:s,updateField:n,deleteField:i,reorderField:r}=e;const{formatMessage:l}=(0,A.useIntl)(),o=(0,rg.collectionToArray)(t),d=(0,Lu.FB)(),c=(0,C.useMemo)((()=>[d.accessor("name",{size:180,header:()=>C.createElement(Bg,null,C.createElement(A.FormattedMessage,{id:"admin.system_properties.user_properties.table.property",defaultMessage:"Attribute"})),cell:e=>{let{getValue:a,row:s}=e;const i=0!==s.original.delete_at,r=Boolean(s.original.attrs?.protected),o=t.warnings?.[s.original.id]?.name;let d;return o===Mg?d=C.createElement(A.FormattedMessage,{tagName:J,id:"admin.system_properties.user_properties.table.validation.name_required",defaultMessage:"Please enter an attribute name."}):o===bg?d=C.createElement(A.FormattedMessage,{tagName:J,id:"admin.system_properties.user_properties.table.validation.name_unique",defaultMessage:"Attribute names must be unique."}):o===_g&&(d=C.createElement(A.FormattedMessage,{tagName:J,id:"admin.system_properties.user_properties.table.validation.name_taken",defaultMessage:"Attribute name already taken."})),C.createElement(C.Fragment,null,C.createElement(zg,{strong:!0,value:a(),label:l({id:"admin.system_properties.user_properties.table.property_name.input.name",defaultMessage:"Attribute Name"}),deleted:i,disabled:r,testid:"property-field-input",autoFocus:Sg(s.original)&&!(0,ig.L)(s.original),setValue:e=>{n({...s.original,name:e.trim()})},maxLength:ve.Ay.MAX_CUSTOM_ATTRIBUTE_NAME_LENGTH}),!i&&d)},enableHiding:!1,enableSorting:!1}),d.accessor("type",{size:100,header:()=>C.createElement(Bg,null,C.createElement(A.FormattedMessage,{id:"admin.system_properties.user_properties.table.type",defaultMessage:"Type"})),cell:e=>{let{row:t}=e;return C.createElement(Ig,{field:t.original,updateField:n})},enableHiding:!1,enableSorting:!1}),d.display({id:"options",size:300,header:()=>C.createElement(Bg,null,C.createElement(A.FormattedMessage,{id:"admin.system_properties.user_properties.table.values",defaultMessage:"Values"})),cell:e=>{let{row:t}=e;return C.createElement(C.Fragment,null,C.createElement(Og,{field:t.original,updateField:n,autoFocus:Sg(t.original)&&(0,ig.L)(t.original)}))},enableHiding:!1,enableSorting:!1}),d.display({id:"actions",size:40,header:()=>C.createElement(Hg,null,C.createElement(A.FormattedMessage,{id:"admin.system_properties.user_properties.table.actions",defaultMessage:"Actions"})),cell:e=>{let{row:t}=e;return C.createElement(Vg,{field:t.original,canCreate:a,createField:s,updateField:n,deleteField:i})},enableHiding:!1,enableSorting:!1})]),[s,n,i,t.warnings,a]),m=(0,xu.N4)({data:o,columns:c,getCoreRowModel:(0,Lu.HT)(),getSortedRowModel:(0,Lu.h5)(),enableSortingRemoval:!1,enableMultiSort:!1,renderFallbackValue:"",meta:{tableId:"userProperties",disablePaginationControls:!0,onReorder:(e,a)=>{r(t.data[t.order[e]],a)}},manualPagination:!0}
1);return C.createElement(Ug,null,C.createElement(Pu.z4,{table:m}))}const Ug=R.default.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;}"]),Bg=R.default.div.withConfig({displayName:"ColHeaderLeft"})(["display:inline-block;"]),Hg=R.default.div.withConfig({displayName:"ColHeaderRight"})(["display:inline-block;width:100%;text-align:right;"]),Gg=R.default.div.withConfig({displayName:"ActionsRoot"})(["text-align:right;"]),Vg=e=>{let{field:t,canCreate:a,createField:s,updateField:n,deleteField:i}=e;const r=lg(t);return C.createElement(Gg,null,r?C.createElement(wg,{field:t,deleteField:i}):C.createElement(kg,{field:t,canCreate:a,createField:s,updateField:n,deleteField:i}))},zg=e=>{const[t,a]=(0,C.useState)(e.value);return(0,C.useEffect)((()=>{a(e.value)}),[e.value]),C.createElement(C.Fragment,null,C.createElement(Z,{type:"text","aria-label":e.label,"data-testid":e.testid,disabled:e.disabled||e.deleted,$deleted:e.deleted,$strong:e.strong,maxLength:e.maxLength,autoFocus:e.autoFocus,onFocus:t=>{e.autoFocus&&t.target.select()},value:t,onChange:e=>{a(e.target.value)},onBlur:()=>{t!==e.value&&e.setValue(t)}}),e.footer)},jg=(0,A.defineMessages)({pageTitle:{id:"admin.sidebar.user_attributes",defaultMessage:"User Attributes"}}),Wg=Object.values(jg),Yg={system_admin:(0,A.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,A.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,A.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,A.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,A.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"}}),system_shared_channel_manager:(0,A.defineMessages)({name:{id:"admin.permissions.roles.system_shared_channel_manager.name",defaultMessage:"Shared Channel Manager"},description:{id:"admin.permissions.roles.system_shared_channel_manager.description",defaultMessage:"Can browse available connections and share or unshare channels with remote servers."},type:{id:"admin.permissions.roles.system_shared_channel_manager.type",defaultMessage:"System Role"}})},qg=[{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"}],Zg=["system_admin","system_manager","system_user_manager","system_custom_group_admin","system_shared_channel_manager","system_read_only_admin"],Jg=()=>{},Kg=e=>{let{roles:t}=e;const a=(0,C.useMemo)((()=>{const e=[];return Zg.forEach((a=>{const s=t[a];s&&e.push({cells:{role:C.createElement(A.FormattedMessage,Yg[s.name].name),description:C.createElement(A.FormattedMessage,Yg[s.name].description),type:C.
1createElement(A.FormattedMessage,Yg[s.name].type),edit:C.createElement("span",{className:"SystemRoles_editRow","data-testid":`${s.name}_edit`},C.createElement(T.Link,{to:`/admin_console/user_management/system_roles/${s.id}`},C.createElement(A.FormattedMessage,{id:"admin.permissions.roles.edit",defaultMessage:"Edit"})))},onClick:()=>(0,en.J)().push(`/admin_console/user_management/system_roles/${s.id}`)})})),e}),[t]);return C.createElement("div",{className:"wrapper--fixed"},C.createElement(fe,null,C.createElement(A.FormattedMessage,{id:"admin.permissions.systemRoles",defaultMessage:"Delegated Granular Administration"})),C.createElement("div",{className:"admin-console__wrapper"},C.createElement("div",{className:"admin-console__content"},C.createElement(Tl,{id:"SystemRoles",title:(0,A.defineMessage)({id:"admin.permissions.systemRolesBannerTitle",defaultMessage:"Admin Roles"}),subtitle:(0,A.defineMessage)({id:"admin.permissions.systemRolesBannerText",defaultMessage:"Manage different levels of access to the system console."})},C.createElement("div",{className:"SystemRoles"},C.createElement(ee.A,{rows:a,columns:qg,startCount:0,endCount:a.length,loading:!1,nextPage:Jg,previousPage:Jg}))))))},Qg=(0,C.memo)(Kg),Xg=(0,s.connect)((function(e){return{roles:(0,S.O0)(e)}}))(Qg);var $g=a(15841),ep=a.n($g),tp=a(13459),ap=a.n(tp),sp=a(83949),np=a(78546);const ip={about:(0,A.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,A.defineMessages)({name:{id:"admin.permissions.sysconsole_section_about_edition_and_license.name",defaultMessage:"Edition and License"}}),billing:(0,A.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,A.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,A.defineMessages)({name:{id:"admin.permissions.sysconsole_section_reporting_site_statistics.name",defaultMessage:"Site Statistics"}}),reporting_team_statistics:(0,A.defineMessages)({name:{id:"admin.permissions.sysconsole_section_reporting_team_statistics.name",defaultMessage:"Team Statistics"}}),reporting_server_logs:(0,A.defineMessages)({name:{id:"admin.permissions.sysconsole_section_reporting_server_logs.name",defaultMessage:"Server Logs"}}),user_management:(0,A.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,A.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,A.defineMessages)({name:{id:"admin.permissions.sysconsole_section_user_management_groups.name",defaultMessage:"Groups"}}),user_management_teams:(0,A.defineMessages)({name:{id:"admin.permissions.sysconsole_section_user_management_teams.name",defaultMessage:"Teams"}}),user_management_channels:(0,A.defineMessages)({name:{id:"admin.permissions.sysconsole_section_user_management_channels.name",defaultMessage:"Channels"}}),user_management_permissions:(0,A.defineMessages)({name:{id:"admin.permissions.sysconsole_section_user_management_permissions.name",defaultMessage:"Permissions"}}),user_management_system_roles:(0,A.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,A.defineMessages)({name:{id:"admin.permissions.sysconsole_section_environment.name",defaultMessage:"Env
1ironment"},description:{id:"admin.permissions.sysconsole_section_environment.description",defaultMessage:"Review server environment configuration such as URLs, database and performance."}}),environment_web_server:(0,A.defineMessages)({name:{id:"admin.permissions.sysconsole_section_environment_web_server.name",defaultMessage:"Web Server"}}),environment_database:(0,A.defineMessages)({name:{id:"admin.permissions.sysconsole_section_environment_database.name",defaultMessage:"Database"}}),environment_elasticsearch:(0,A.defineMessages)({name:{id:"admin.permissions.sysconsole_section_environment_elasticsearch.name",defaultMessage:"Elasticsearch"}}),environment_file_storage:(0,A.defineMessages)({name:{id:"admin.permissions.sysconsole_section_environment_file_storage.name",defaultMessage:"File Storage"}}),environment_image_proxy:(0,A.defineMessages)({name:{id:"admin.permissions.sysconsole_section_environment_image_proxy.name",defaultMessage:"Image Proxy"}}),environment_smtp:(0,A.defineMessages)({name:{id:"admin.permissions.sysconsole_section_environment_smtp.name",defaultMessage:"SMTP"}}),environment_push_notification_server:(0,A.defineMessages)({name:{id:"admin.permissions.sysconsole_section_environment_push_notification_server.name",defaultMessage:"Push Notification Server"}}),environment_high_availability:(0,A.defineMessages)({name:{id:"admin.permissions.sysconsole_section_environment_high_availability.name",defaultMessage:"High Availability"}}),environment_rate_limiting:(0,A.defineMessages)({name:{id:"admin.permissions.sysconsole_section_environment_rate_limiting.name",defaultMessage:"Rate Limiting"}}),environment_logging:(0,A.defineMessages)({name:{id:"admin.permissions.sysconsole_section_environment_logging.name",defaultMessage:"Logging"}}),environment_session_lengths:(0,A.defineMessages)({name:{id:"admin.permissions.sysconsole_section_environment_session_lengths.name",defaultMessage:"Session Lengths"}}),environment_performance_monitoring:(0,A.defineMessages)({name:{id:"admin.permissions.sysconsole_section_environment_performance_monitoring.name",defaultMessage:"Performance Monitoring"}}),environment_developer:(0,A.defineMessages)({name:{id:"admin.permissions.sysconsole_section_environment_developer.name",defaultMessage:"Developer"}}),environment_mobile_security:(0,A.defineMessages)({name:{id:"admin.permissions.sysconsole_section_environment_mobile_security.name",defaultMessage:"Mobile Security"}}),site:(0,A.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,A.defineMessages)({name:{id:"admin.permissions.sysconsole_section_site_customization.name",defaultMessage:"Customization"}}),site_localization:(0,A.defineMessages)({name:{id:"admin.permissions.sysconsole_section_site_localization.name",defaultMessage:"Localization"}}),site_users_and_teams:(0,A.defineMessages)({name:{id:"admin.permissions.sysconsole_section_site_users_and_teams.name",defaultMessage:"Users and Teams"}}),site_notifications:(0,A.defineMessages)({name:{id:"admin.permissions.sysconsole_section_site_notifications.name",defaultMessage:"Notifications"}}),site_announcement_banner:(0,A.defineMessages)({name:{id:"admin.permissions.sysconsole_section_site_announcement_banner.name",defaultMessage:"Announcement Banner"}}),site_emoji:(0,A.defineMessages)({name:{id:"admin.permissions.sysconsole_section_site_emoji.name",defaultMessage:"Emoji"}}),site_posts:(0,A.defineMessages)({name:{id:"admin.permissions.sysconsole_section_site_posts.name",defaultMessage:"Posts"}}),site_file_sharing_and_downloads:(0,A.defineMessages)({name:{id:"admin.permissions.sysconsole_section_site_file_sharing_and_downloads.name",defaultMessage:"File Sharing and Downloads"}}),site_public_links:(0,A.defineMessages)({name:{id:"admin.permissions.sysconsole_section_site_public_links.name",defaultMessage:"Public Links"}}),site_notices:(0,A.defineMessages)({name:{id:"admin.permissions.sysconsole_section_site_notices.name",defaultMessage:"Notices"}}),authentication:(0,A.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,A.defineMessages)({name:{id:"admin.permissions.sysconsole_section_authentication_signup.name",defaultMessage:"Signup"}}),authentication_email:(0,A.defineMessages)({name:{id:"admin.permissions.sysconsole_section_authentication_email.name",defaultMessage:"Email"}}),authentication_password:(0,A.defineMessages)({name:{id:"admin.permissions.sysconsole_section_authentication_password.name",defaultMessage:"Password"}}),authentication_mfa:(0,A.defineMessages)({name:{id:"admin.permissions.sysconsole_section_authentication_mfa.name",defaultMessage:"MFA"}}),authentication_ldap:(0,A.defineMessages)({name:{id:"admin.permissions.sysconsole_section_authentication_ldap.name",defaultMessage:"AD/LDAP"}}),authentication_saml:(0,A.defineMessages)({name:{id:"admin.permissions.sysconsole_section_authentication_saml.name",defaultMessage:"SAML 2.0"}}),authentication_openid:(0,A.defineMessages)({name:{id:"admin.permissions.sysconsole_section_authentication_openid.name",defaultMessage:"OpenID Connect"}}),authentication_guest_access:(0,A.defineMessages)({name:{id:"admin.permissions.sysconsole_section_authentication_guest_access.name",defaultMessage:"Guest Access"}}),plugins:(0,A.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,A.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,A.defineMessages)({name:{id:"admin.permissions.sysconsole_section_integrations_integration_management.name",defaultMessage:"Integration Management"}}),integrations_bot_accounts:(0,A.defineMessages)({name:{id:"admin.permissions.sysconsole_section_integrations_bot_accounts.name",defaultMessage:"Bot Accounts"}}),integrations_gif:(0,A.defineMessages)({name:{id:"admin.permissions.sysconsole_section_integrations_gif.name",defaultMessage:"GIF"}}),integrations_cors:(0,A.defineMessages)({name:{id:"admin.permissions.sysconsole_section_integrations_cors.name",defaultMessage:"CORS"}}),compliance:(0,A.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,A.defineMessages)({name:{id:"admin.permissions.sysconsole_section_compliance_data_retention_policy.name",defaultMessage:"Data Retention Policy"}}),compliance_compliance_export:(0,A.defineMessages)({name:{id:"admin.permissions.sysconsole_section_compliance_compliance_export.name",defaultMessage:"Compliance Export"}}),compliance_compliance_monitoring:(0,A.defineMessages)({name:{id:"admin.permissions.sysconsole_section_compliance_compliance_monitoring.name",defaultMessage:"Compliance Monitoring"}}),compliance_custom_terms_of_service:(0,A.defineMessages)({name:{id:"admin.permissions.sysconsole_section_compliance_custom_terms_of_service.name",defaultMessage:"Custom Terms of Service"}}),experimental:(0,A.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,A.defineMessages)({name:{id:"admin.permissions.sysconsole_section_experimental_features.name",defaultMessage:"Features"}}),experimental_feature_flags:(0,A.defineMessages)({name:{id:"admin.permissions.sysconsole_section_experimental_feature_flags.name",defaultMessage:"Feature Flags"}})};var rp=a(24163);const lp="read",op="write",dp=!1,cp="mixed";
1class mp extends C.PureComponent{updatePermission=e=>{const{section:t}=this.props,a=[];t.subsections&&t.subsections.length>0?t.subsections.forEach((t=>{let{name:s,disabled:n}=t;n||a.push({name:s,value:e})})):a.push({name:t.name,value:e}),this.props.updatePermissions(a)};renderOption=(e,t)=>C.createElement("div",{className:"PermissionSectionDropdownOptions"},C.createElement("div",{className:"PermissionSectionDropdownOptions_label"},e),C.createElement("div",{className:"PermissionSectionDropdownOptions_description"},t));render(){const{isDisabled:e,section:t}=this.props,a=C.createElement(A.FormattedMessage,{id:"admin.permissions.system_role_permissions.write.title",defaultMessage:"Can edit"}),s=C.createElement(A.FormattedMessage,{id:"admin.permissions.system_role_permissions.write.description",defaultMessage:"Can add, edit and delete anything in this section."}),n=C.createElement(A.FormattedMessage,{id:"admin.permissions.system_role_permissions.read.title",defaultMessage:"Read only"}),i=C.createElement(A.FormattedMessage,{id:"admin.permissions.system_role_permissions.read.description",defaultMessage:"Can view this section but can't edit anything in it"}),r=C.createElement(A.FormattedMessage,{id:"admin.permissions.system_role_permissions.no_access.title",defaultMessage:"No access"}),l=C.createElement(A.FormattedMessage,{id:"admin.permissions.system_role_permissions.mixed_access.title",defaultMessage:"Mixed access"}),o=C.createElement(A.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 lp:d=n;break;case op:d=a;break;case cp:d=l;break;default:d=r}const c=L.Vw({id:"admin.permissions.system_role_permissions.change_access",defaultMessage:"Change role access on a system console section"});return C.createElement(tr.A,{isDisabled:e},C.createElement("button",{id:`systemRolePermissionDropdown${t.name}`,className:"PermissionSectionDropdownButton dropdown-toggle theme",type:"button","aria-expanded":"true"},C.createElement("div",{className:"PermissionSectionDropdownButton_text"},d),C.createElement("div",{className:"PermissionSectionDropdownButton_icon"},C.createElement(rp.A,null))),C.createElement(er.A,{ariaLabel:c},C.createElement(er.A.ItemAction,{onClick:()=>this.updatePermission(op),text:this.renderOption(a,s)}),C.createElement(er.A.ItemAction,{onClick:()=>this.updatePermission(lp),text:this.renderOption(n,i)}),C.createElement(er.A.ItemAction,{onClick:()=>this.updatePermission(dp),text:this.renderOption(r,o)})))}}class up extends C.PureComponent{isSectionVisible=(e,t)=>{const{permissionsMap:a,permissionsToUpdate:s}=this.props;return Object.keys(t).includes(e.name)?t[e.name]:this.getAccessForSection(e,a,s)===cp};renderSubsectionToggle=(e,t)=>{if(!e.subsections||0===e.subsections.length)return null;const a=t?C.createElement("i",{className:"Icon icon-chevron-up"}):C.createElement("i",{className:"Icon icon-chevron-down"}),s=t?C.createElement(A.FormattedMessage,{id:"admin.permissions.system_role_permissions.hide_subsections",defaultMessage:"Hide {subsectionsCount} subsections",values:{subsectionsCount:e.subsections.length}}):C.createElement(A.FormattedMessage,{id:"admin.permissions.system_role_permissions.show_subsections",defaultMessage:"Show {subsectionsCount} subsections",values:{subsectionsCount:e.subsections.length}});return C.createElement("div",{className:"PermissionSubsectionsToggle"},C.createElement("button",{onClick:()=>this.props.setSectionVisible(e.name,!t),className:"dropdown-toggle theme color--link style--none"},s,a))};renderSubsections=(e,t,a,s)=>e.subsections&&0!==e.subsections.length?C.createElement("div",null,s&&C.createElement("div",{className:"PermissionSubsections"},e.subsections.map((e=>this.renderSectionRow(e,t,a,s))))):null;renderSectionRow=(e,t,a,s)=>{const n=ip[e.name]?C.createElement(A.FormattedMessage,ip[e.name].name):e.name,i=ip[e.name]?C.createElement(A.FormattedMessage,ip[e.name].description):"";return C.createElement("div",{key:e.name,"data-testid":`permission_section_${e.name}`,className:"PermissionSection"},C.createElement("div",{className:"PermissionSectionText"},C.createElement("div",{className:"PermissionSectionText_title"},n),e.hasDescription&&i&&C.createElement("div",{className:"PermissionSection_description"},i),this.renderSubsectionToggle(e,s)),C.createElement("div",{className:"PermissionSectionDropdown"},C.createElement(mp,{section:e,updatePermissions:this.props.updatePermissions,access:this.getAccessForSection(e,t,a),isDisabled:this.props.readOnly||Boolean(e.disabled)})))};getAccessForSection=(e,t,a)=>{if(e.subsections&&e.subsections.length>0){let s=!1,n=!1,i=!1;if(e.subsections.forEach((e=>{switch(this.getAccessForSectionByName(e.name,t,a)){case lp:n=!0;break;case op:i=!0;break;default:s=!0}
1})),[n,i,s].filter((e=>e)).length>1)return cp;if(n)return lp;if(i)return op;if(s)return dp}return this.getAccessForSectionByName(e.name,t,a)};getAccessForSectionByName=(e,t,a)=>{if(t[b.A.MANAGE_SYSTEM])return op;let s=!1;return e in a?s=a[e]:(!0===t[`sysconsole_read_${e}`]&&(s=lp),!0===t[`sysconsole_write_${e}`]&&(s=op)),s};render(){const{section:e,permissionsMap:t,permissionsToUpdate:a,visibleSections:s}=this.props,n=this.isSectionVisible(e,s);return C.createElement("div",{className:"PermissionRow"},this.renderSectionRow(e,t,a,n),this.renderSubsections(e,t,a,n))}}const gp=[{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"}]}],pp={[ve.Ay.PERMISSIONS_SYSTEM_USER_MANAGER]:{user_management:!0,authentication:!0}},hp=(0,np.el)((e=>e.reduce(((e,t)=>(e[t]=!0,e)),{}))),fp=(0,np.el)(((e,t,a)=>e.filter((e=>!a[t]||a[t][e.name]))));class Ep extends C.PureComponent{constructor(e){super(e),this.state={visibleSections:{}}}removeSection=e=>{const t=gp.findIndex((t=>t.name===e));t>-1&&gp.splice(t,1)};updatePermissions=e=>{this.props.updatePermissions(e)};setSectionVisible=(e,t)=>{const{visibleSections:a}=this.state;this.setState({visibleSections:{...a,[e]:t}})};getRows=(e,t,a)=>{const{isLicensedForCloud:s}=this.props;let n={...pp};if(this.props.role.name===ve.Ay.PERMISSIONS_SYSTEM_CUSTOM_GROUP_ADMIN)return C.createElement(C.Fragment,null,C.createElement("p",null,C.createElement(A.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=>C.createElement(Ge.A,{href:"https://docs.mattermost.com/welcome/manage-custom-groups.html",location:"adminConsoleSystemRoles"},e)}})),C.createElement("p",null,C.createElement(A.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."})),C.createElement("p",null,C.createElement(A.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=>C.createElement("b",null,e)}})));if(this.props.role.name===ve.Ay.PERMISSIONS_SHARED_CHANNEL_MANAGER)return C.createElement(C.Fragment,null,C.createElement("p",null,C.createElement(A.FormattedMessage,{id:"admin.permissions.roles.system_shared_channel_manager.introduction",defaultMessage:"The built-in Shared Channel Manager role can be used to delegate the ability to browse available connections and share or unshare channels with <a>remote servers</a> to users other than the System Admin.",values:{a:e=>C.createElement(Ge.A,{href:"https://docs.mattermost.com/administration-guide/onboard/connected-workspaces.html",location:"adminConsoleSystemRoles"},e)}})),C.createElement("p",null,C.createElement(A.FormattedMessage,{id:"admin.permissions.roles.system_shared_channel_manager.permissions_info",defaultMessage:"This role has the <b>manage_shared_channels</b> permission, which allows browsing available connections and sharing or unsharing channels with remote servers.",values:{b:e=>C.createElement("b",null,e)}})));if(this.props.role.name===ve.Ay.PERMISSIONS_SYSTEM_USER_MANAGER){let t={};Object.keys(e).forEach((e=>{if(e.startsWith("sysconsole_")){const a=e.replace(/sysconsole_(read|write)_/,"");t={...t,[a]:!0}}})),n={[ve.Ay.PERMISSIONS_SYSTEM_USER_MANAGER]:{...n[ve.Ay.PERMISSIONS_SYSTEM_USER_MANAGER],...t}}}return s||this.removeSection("billing"),s&&(this.removeSection("about"),this.removeSection("environment")),fp(gp,this.props.role.name,n).map((s=>C.createElement(up,{key:s.name,section:s,permissionsMap:e,permissionsToUpdate:t,visibleSections:a,setSectionVisible:this.setSectionVisible,updatePermissions:this.props.updatePermissions,readOnly:this.props.readOnly})))};render(){const{role:e,permissionsToUpdate:t}=this.props,{visibleSections:a}=this.state,s=hp(e.permissions);return C.createElement(Tl,{id:"SystemRolePermissions",title:(0,A.defineMessage)({id:"admin.permissions.system_role_permissions.title",defaultMessage:"Privileges"}),subtitle:(0,A.defineMessage)({id:"admin.permissions.system_role_permissions.description",defaultMessage:"Level of access to the system console."})},C.createElement("div",{className:"SystemRolePermissions"},this.getRows(s,t,a)))}}var Mp=a(79342),bp=a(61767);
1const _p=e=>{let{user:t}=e;return C.createElement("div",{className:"UserGrid_nameRow"},C.createElement(bp.A,{src:I.mT.getProfilePictureUrl(t.id,t.last_picture_update),status:t.status,size:"md"}),C.createElement("div",{className:"UserGrid_name"},C.createElement("span",null,`${t.username} - ${t.first_name} ${t.last_name}`),C.createElement("span",{className:"ug-email"},t.email)))},yp=e=>{let{user:t,removeUser:a,isDisabled:s}=e;return C.createElement("div",{className:"UserGrid_removeRow"},C.createElement("a",{onClick:e=>{e.preventDefault(),s||a(t)},href:"#",role:"button",className:s?"disabled":""},C.createElement(A.FormattedMessage,{id:"admin.user_grid.remove",defaultMessage:"Remove"})))};var vp=a(12762),Sp=a(19542),Cp=a(72429);class Ap extends C.PureComponent{constructor(e){super(e),this.state={searchResults:[],values:[],show:!0,saving:!1,addError:null,loading:!0,term:""}}componentDidMount=async()=>{await this.props.actions.getProfiles(0,100),this.setUsersLoadingState(!1)};setUsersLoadingState=e=>{this.setState({loading:e})};search=async e=>{this.setUsersLoadingState(!0);const t=[];if(""!==e){const{data:a}=await this.props.actions.searchProfiles(e,{replace:!0});a.forEach((e=>{e.is_bot||t.push(e)}))}else await this.props.actions.getProfiles(0,100);this.setState({loading:!1,searchResults:t,term:e})};handleHide=()=>{this.setState({show:!1})};handleExit=()=>{this.props.onExited&&this.props.onExited()};renderOption=(e,t,a,s)=>{let n="";return t&&(n="more-modal__row--selected"),C.createElement("div",{key:e.id,ref:t?"selected":e.id,className:"more-modal__row clickable "+n,onClick:()=>a(e),onMouseMove:()=>s(e)},C.createElement(bp.A,{src:I.mT.getProfilePictureUrl(e.id,e.last_picture_update),size:"md"}),C.createElement("div",{className:"more-modal__details"},C.createElement("div",{className:"more-modal__name"},(0,L.xK)(e),e.is_bot&&C.createElement(Sp.A,null),(0,Mp.P)(e.roles)&&C.createElement(Cp.A,{className:"popoverlist"}))),C.createElement("div",{className:"more-modal__actions"},C.createElement("button",{className:"more-modal__actions--round","aria-label":"Add users to role"},C.createElement("i",{className:"icon icon-plus"}))))};renderValue=e=>e.data?.username||"";renderAriaLabel=e=>e?.username||"";handleAdd=e=>{const t=[...this.state.values];t.includes(e)||t.push(e),this.setState({values:t})};handleDelete=e=>{this.setState({values:e})};handlePageChange=(e,t)=>
1{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)))}};handleSubmit=()=>{this.props.onAddCallback(this.state.values),this.handleHide()};render=()=>{const e=C.createElement("div",{id:"numPeopleRemaining"},C.createElement(A.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,A.defineMessage)({id:"multiselect.add",defaultMessage:"Add"}),a=(0,A.defineMessage)({id:"multiselect.adding",defaultMessage:"Adding..."});let s=null;this.state.addError&&(s=C.createElement("div",{className:"has-error col-sm-12"},C.createElement("label",{className:"control-label font-weight--normal"},this.state.addError)));let n=[];if(n=this.state.term?this.state.searchResults:this.props.users,this.props.excludeUsers){const e=e=>!this.props.excludeUsers[e.id];n=n.filter(e)}if(this.props.includeUsers){let{includeUsers:e}=this.props;this.state.term&&(e=function(e,t){const a=Object.keys(e).map((t=>e[t])),s=(0,Mp.V3)(a,t);return(0,g.f9)((0,Mp.vC)(s),{})}(e,this.state.term)),n=[...n,...Object.values(e)]}const i=n.map((e=>({label:e.username,value:e.id,...e}))),r=Yg[this.props.role.name]?C.createElement(A.FormattedMessage,Yg[this.props.role.name].name):this.props.role.name;return C.createElement(Gn.Modal,{id:"addUsersToRoleModal",dialogClassName:"a11y__modal more-modal more-direct-channels",show:this.state.show,onHide:this.handleHide,onExited:this.handleExit},C.createElement(Gn.Modal.Header,{closeButton:!0},C.createElement(Gn.Modal.Title,{componentClass:"h1"},C.createElement(A.FormattedMessage,{id:"add_users_to_role.title",defaultMessage:"Add users to {roleName}",values:{roleName:C.createElement("strong",null,r)}}))),C.createElement(Gn.Modal.Body,null,s,C.createElement(kr.A,{key:"addUsersToRoleKey",options:i,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:a,saving:this.state.saving,loading:this.state.loading,placeholderText:(0,A.defineMessage)({id:"multiselect.placeholder",defaultMessage:"Search for people"})})))}}const Tp=(0,A.injectIntl)(Ap),Np=(0,s.connect)((function(e,t){const a={active:!0,exclude_roles:[t.role.name],exclude_bots:!0};return{users:(0,g.r7)(e,a)}}),(function(e){return{actions:(0,n.zH)({getProfiles:ms.r7,searchProfiles:ms.U},e)}}))(Tp);class kp extends C.PureComponent{constructor(e){super(e),this.searchTimeoutId=0,this.state={loading:!0,page:0,includeUsers:{},excludeUsers:{}}}async componentDidMount(){const{getProfiles:e,getFilteredUsersStats:t,setUserGridSearch:a}=this.props.actions;await Promise.all([a(""),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 a=window.setTimeout((async()=>{await e.actions.searchProfiles(t,{role:this.props.role.name}),a===this.searchTimeoutId&&this.setStateLoading(!1)}),ve.Ay.SEARCH_TIMEOUT_MILLISECONDS);this.searchTimeoutId=a}}setStateLoading=e=>{this.setState({loading:e})};getVisibleTotalCount=()=>{const{usersToRemove:e,usersToAdd:t,totalCount:a}=this.props;return a+(Object.keys(t).length-Object.keys(e).length)};getPaginationProps=()=>{const{term:e,usersToRemove:t,usersToAdd:a}=this.props,{page:s}=this.state;let n,i=0;const r=10*s+1;return""===e?n=this.getVisibleTotalCount():(n=this.props.users.length+Object.keys(a).length,this.props.users.forEach((e=>{t[e.id]&&(n-=1)}))),i=10*(s+1),i=i>n?n:i,{startCount:r,endCount:i,total:n}};onSearch=async e=>{this.props.actions.setUserGridSearch(e)};nextPage=async()=>
1{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})};previousPage=async()=>{this.state.loading||0===this.state.page||this.setState({page:this.state.page-1})};getRows=()=>{const{users:e,readOnly:t,usersToAdd:a,usersToRemove:s}=this.props,{startCount:n,endCount:i}=this.getPaginationProps();let r=e;return r=r.filter((e=>!s[e.id])),r=[...Object.values(a),...r],r=r.slice(n-1,i),r.map((e=>({cells:{id:e.id,name:C.createElement(_p,{user:e}),new:a[e.id]?C.createElement(At.A,{variant:"info",uppercase:!0,text:C.createElement(A.FormattedMessage,{id:"admin.user_grid.new",defaultMessage:"New"})}):null,remove:C.createElement(yp,{user:e,removeUser:this.onRemoveCallback,isDisabled:t})}})))};getColumns=()=>[{name:C.createElement(A.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}];onAddCallback=e=>{this.props.onAddCallback(e)};onRemoveCallback=e=>{this.props.onRemoveCallback(e)};render(){const{loading:e}=this.state,{term:t,role:a,usersToAdd:s,usersToRemove:n,readOnly:i}=this.props,{startCount:r,endCount:l,total:o}=this.getPaginationProps();return C.createElement(Tl,{id:"SystemRoleUsers",title:(0,A.defineMessage)({id:"admin.permissions.system_role_users.title",defaultMessage:"Assigned People"}),subtitle:(0,A.defineMessage)({id:"admin.permissions.system_role_users.description",defaultMessage:"List of people assigned to this system role."}),button:C.createElement(vp.A,{id:"addRoleMembers",className:"btn btn-primary",modalId:ve.IQ.ADD_USER_TO_ROLE,dialogType:Np,disabled:i,dialogProps:{role:a,onAddCallback:this.onAddCallback,skipCommit:!0,excludeUsers:s,includeUsers:n}},C.createElement(A.FormattedMessage,{id:"admin.permissions.system_role_users.add_people",defaultMessage:"Add People"}))},C.createElement(ee.A,{rows:this.getRows(),columns:this.getColumns(),nextPage:this.nextPage,previousPage:this.previousPage,startCount:r,endCount:l,loading:e,onSearch:this.onSearch,term:t,total:o}))}}const wp=(0,s.connect)((function(e,t){const{roleName:a}=t,s=(0,S.O0)(e)[a],n=(0,g.$c)(e)?.total_users_count||0,i=e.views.search.userGridSearch?.term||"",r={roles:[s.name]},l=(0,g.T_)();let o=[],{usersToAdd:d}=t;return i?(o=l(e,i,!1,r),d=function(e,t){const a=(0,Mp.V3)(Object.keys(e).map((t=>e[t])),t);return(0,g.f9)((0,Mp.vC)(a),{})}(d,i)):o=(0,g.r7)(e,r),{role:s,users:o,totalCount:n,term:i,usersToAdd:d}}),(function(e){return{actions:(0,n.zH)({getProfiles:ms.r7,getFilteredUsersStats:ms.$c,searchProfiles:ms.U,setUserGridSearch:or.u},e)}}))(kp);class Ip extends C.PureComponent{constructor(e){super(e),this.state={usersToAdd:{},usersToRemove:{},saving:!1,saveNeeded:!1,serverError:void 0,permissionsToUpdate:{},saveKey:0,updatedRolePermissions:[]}}getSaveStateNeeded=e=>{const{role:t}=this.props,{usersToAdd:a,usersToRemove:s,updatedRolePermissions:n,permissionsToUpdate:i}={...this.state,...e};let r=!1;return r=Object.keys(a).length>0||Object.keys(s).length>0,Object.keys(i).length>0&&(r=r||ep()(n,t.permissions).length>0||ep()(t.permissions,n).length>0),r};addUsersToRole=e=>{const{actions:{setNavigationBlocked:t}}=this.props,a={...this.state.usersToAdd},s={...this.state.usersToRemove};e.forEach((e=>{s[e.id]?delete s[e.id]:a[e.id]=e}));const n=this.getSaveStateNeeded({usersToAdd:a,usersToRemove:s});t(n),this.setState({usersToAdd:a,usersToRemove:s,saveNeeded:n})};removeUserFromRole=e=>{const{actions:{setNavigationBlocked:t}}=this.props,a={...this.state.usersToAdd},s={...this.state.usersToRemove};a[e.id]?delete a[e.id]:s[e.id]=e;const n=this.getSaveStateNeeded({usersToAdd:a,usersToRemove:s});t(n),this.setState({usersToRemove:s,usersToAdd:a,saveNeeded:n})};handleSubmit=async()=>{this.setState({saving:!0,saveNeeded:!1});const{usersToRemove:e,usersToAdd:t,updatedRolePermissions:a,permissionsToUpdate:s}=this.state,{role:n,actions:{editRole:i,updateUserRoles:r,setNavigationBlocked:l}}=this.props;let o;if(n.name!==ve.Ay.PERMISSIONS_SYSTEM_ADMIN&&Object.keys(s).length>0){const e=await I.mT.getAncillaryPermissions(a),t={...n,permissions:e},s=await i(t);(0,sp.b)(s)&&(o=C.createElement(Ke.Ay,{error:s.error.message}))}const d=Object.keys(e);if(d.length>0){const t=[];d.forEach((a=>{const s=e[a],i=ap()(s.roles.split(" ").filter((e=>e!==n.name))).join(" ");t.push(r(a,i))}));const a=(await Promise.all(t)).find(sp.b);a&&"error"in a&&(o=C.createElement(Ke.Ay,{error:a.error.message}))}const c=Object.keys(t);if(c.length>0&&!o){const e=[];
1c.forEach((a=>{const s=t[a],i=ap()([...s.roles.split(" "),n.name]).join(" ");e.push(r(a,i))}));const a=(await Promise.all(e)).find(sp.b);a&&"error"in a&&(o=C.createElement(Ke.Ay,{error:a.error.message}))}let{saveKey:m}=this.state;o||(m+=1),o||(0,en.J)().push("/admin_console/user_management/system_roles"),l(Boolean(o)),this.setState({saveNeeded:Boolean(o),saving:!1,serverError:o,usersToAdd:{},usersToRemove:{},saveKey:m})};updatePermissions=e=>{const{role:t,actions:{setNavigationBlocked:a}}=this.props,s={};e.forEach((e=>{s[e.name]=e.value}));const n={...this.state.permissionsToUpdate,...s};let i=t.permissions.filter((e=>e.startsWith("sysconsole_")&&!(e.replace(/sysconsole_(read|write)_/,"")in n)));Object.keys(n).forEach((e=>{const t=n[e];if(t){const a=`sysconsole_read_${e}`,s=`sysconsole_write_${e}`;t===op?i.push(a,s):i.push(a)}})),t.name===ve.Ay.PERMISSIONS_SYSTEM_ADMIN&&i.push(b.A.MANAGE_SYSTEM),i=ap()(i);const r={permissionsToUpdate:n,updatedRolePermissions:i};a(this.getSaveStateNeeded(r)),this.setState({...r,saveNeeded:this.getSaveStateNeeded(r)})};render(){const{usersToAdd:e,usersToRemove:t,saving:a,saveNeeded:s,serverError:n,permissionsToUpdate:i,saveKey:r}=this.state,{role:l,isDisabled:o,isLicensedForCloud:d}=this.props,c=Yg[l.name]?C.createElement(A.FormattedMessage,Yg[l.name].name):l.name;return C.createElement("div",{className:"wrapper--fixed"},C.createElement(fe,{withBackButton:!0},C.createElement("div",null,C.createElement(me.A,{to:"/admin_console/user_management/system_roles",className:"fa fa-angle-left back"}),c)),C.createElement("div",{className:"admin-console__wrapper"},C.createElement("div",{className:"admin-console__content"},C.createElement(Ep,{role:l,isLicensedForCloud:d,permissionsToUpdate:i,updatePermissions:this.updatePermissions,readOnly:o||l.name===ve.Ay.PERMISSIONS_SYSTEM_ADMIN}),C.createElement(wp,{key:r,roleName:l.name,usersToAdd:e,usersToRemove:t,onAddCallback:this.addUsersToRole,onRemoveCallback:this.removeUserFromRole,readOnly:o}))),C.createElement(ge,{saving:a,cancelLink:"/admin_console/user_management/system_roles",saveNeeded:s,onClick:this.handleSubmit,serverError:n,isDisabled:o}))}}const Rp=(0,s.connect)((function(e,t){const a=(0,m.Ep)(e)[t.match.params.role_id];return{isLicensedForCloud:"true"===(0,c.Ay)(e).Cloud,role:a}}),(function(e){return{actions:(0,n.zH)({editRole:r.D3,updateUserRoles:ms.eA,setNavigationBlocked:p.Jb},e)}}))(Ip),Lp=e=>(e.user.first_name||e.user.last_name)&&e.user.nickname?C.createElement("span",null," ⢠"):null,xp=e=>{let{isLoading:t=!1,...a}=e;return!a.user||t?C.createElement("div",{className:"AdminUserCard"},C.createElement("div",{className:"AdminUserCard__header"},C.createElement(bp.A,{src:"",size:"xxl",wrapperClass:"admin-user-card"})),C.createElement("div",{className:"noUserBody"},t&&C.createElement(Bn.A,null),!t&&C.createElement(A.FormattedMessage,{id:"admin.userManagement.userDetail.notFound",defaultMessage:"User not found"}))):C.createElement("div",{className:"AdminUserCard"},C.createElement("div",{className:"AdminUserCard__header"},C.createElement(bp.A,{src:I.mT.getProfilePictureUrl(a.user.id,a.user.last_picture_update),size:"xxl",wrapperClass:"admin-user-card",userId:a.user.id}),C.createElement("div",{className:"AdminUserCard__user-info"},C.createElement("span",null,a.user.first_name," ",a.user.last_name),C.createElement(Lp,{user:a.user}),C.createElement("span",{className:"AdminUserCard__user-nickname"},a.user.nickname)),C.createElement("div",{className:"AdminUserCard__user-id"},C.createElement(A.FormattedMessage,{id:"admin.userManagement.userDetail.userId",defaultMessage:"User ID: {userId}",values:{userId:a.user.id}}))),C.createElement("div",{className:"AdminUserCard__body"},a.body),C.createElement("div",{className:"AdminUserCard__footer"},a.footer))},Dp=(0,s.connect)((function(e){return{currentUserId:(0,g.WR)(e),passwordConfig:(0,c.OG)(e)}}),(function(e){return{actions:(0,n.zH)({updateUserPassword:ms.ej},e)}}))((function(e){let{user:t,currentUserId:a,onSuccess:s,onExited:n,passwordConfig:i,actions:r}=e;const{formatMessage:l}=(0,A.useIntl)(),[o,d]=(0,C.useState)(!0),[c,m]=(0,C.useState)(""),[u,g]=(0,C.useState)(""),[p,h]=(0,C.useState)(null),[f,E]=(0,C.useState)(null),M=(0,C.useRef)(null),b=(0,C.useRef)(null),_=t?.id===a,y=(0,C.useCallback)((()=>{d(!1)}),[]),v=(0,C.useCallback)((async()=>
1{if(!t)return;if(h(null),E(null),_&&""===c)return void E(l({id:"admin.reset_password.missing_current",defaultMessage:"Please enter your current password."}));const{valid:e,error:a}=(0,Gd.s)(u,i);if(!e&&a)return void h(a);const n=await r.updateUserPassword(t.id,_?c:"",u);"error"in n?E(n.error.message):(s?.(),d(!1))}),[t,_,c,u,i,r,s,l]);if(!t)return null;const S=(0,L.dS)(t)||t.username,T=Boolean(t.auth_service),N=l(T?{id:"admin.reset_password.titleSwitchFor",defaultMessage:"Switch account to Email/Password for {name}"}:{id:"admin.reset_password.titleResetFor",defaultMessage:"Reset password for {name}"},{name:S});return C.createElement(ks.zW,{id:"resetPasswordModal",className:"ResetPasswordModal",modalHeaderText:N,show:o,onExited:n,onHide:y,handleCancel:y,handleConfirm:v,handleEnterKeyPress:v,confirmButtonText:l({id:"admin.reset_password.reset",defaultMessage:"Reset"}),compassDesign:!0,autoCloseOnConfirmButton:!1,errorText:f?C.createElement("span",{className:"error"},f):void 0},C.createElement("div",{className:"ResetPasswordModal__body"},_&&C.createElement(Ri.A,{ref:M,type:"password",name:"currentPassword",autoComplete:"current-password",label:l({id:"admin.reset_password.currentPassword",defaultMessage:"Current password"}),placeholder:l({id:"admin.reset_password.enterCurrentPassword",defaultMessage:"Enter current password"}),value:c,onChange:e=>m(e.target.value),autoFocus:!0}),C.createElement(Ri.A,{ref:b,type:"password",name:"newPassword",autoComplete:"new-password",label:l({id:"admin.reset_password.newPassword",defaultMessage:"New password"}),placeholder:l({id:"admin.reset_password.enterNewPassword",defaultMessage:"Enter new password"}),value:u,onChange:e=>g(e.target.value),autoFocus:!_,customMessage:p?{type:"error",value:p}:void 0})))}));var Pp=a(8389);const Op=10;class Fp extends C.PureComponent{static defaultProps={data:[]};constructor(e){super(e),this.state={loading:!0,page:0}}componentDidMount(){this.performSearch()}previousPage=async e=>{e.preventDefault();const t=this.state.page<1?0:this.state.page-1;this.setState({page:t,loading:!0}),this.performSearch()};nextPage=async e=>{e.preventDefault();const t=this.state.page+1;this.setState({page:t,loading:!0}),this.performSearch()};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})}))};getPaging(){const e=this.state.page*Op+1;let t=this.state.page*Op+Op;const a=this.props.total;return t>a&&(t=a),{startCount:e,endCount:t,total:a}}renderHeaderLabels=()=>this.props.data.length>0?C.createElement("div",{className:"AbstractList__header"},this.props.headerLabels.map(((e,t)=>{const a=t,s=e.label?C.createElement(A.FormattedMessage,e.label):"";return C.createElement("div",{key:a,className:"AbstractList__header-label",style:e.style},s)}))):null;renderRows=()=>{if(this.state.loading)return C.createElement("div",{className:"AbstractList__loading"},C.createElement("i",{className:"fa fa-spinner fa-pulse fa-2x"}));if(0===this.props.data.length)return C.createElement("div",{className:"AbstractList__empty"},C.createElement(A.FormattedMessage,this.props.emptyList));const e=this.state.page<1?0:this.state.page*Op,t=this.state.page<1?Op:(this.state.page+1)*Op;return this.props.data.slice(e,t).map(this.props.renderRow)};render=()=>{const{startCount:e,endCount:t,total:a}=this.getPaging(),s=t===a,n=0===this.state.page;return C.createElement("div",{className:"AbstractList"},this.renderHeaderLabels(),C.createElement("div",{className:"AbstractList__body"},this.renderRows()),a>0&&C.createElement("div",{className:"AbstractList__footer"},C.createElement("div",{className:"counter"},C.createElement(A.FormattedMessage,{id:"admin.team_channel_settings.list.paginatorCount",defaultMessage:"{startCount, number} - {endCount, number} of {total, number}",values:{startCount:e,endCount:t,total:a}})),C.createElement("button",{type:"button",className:"btn btn-tertiary prev "+(n?"disabled":""),onClick:n?()=>null:this.previousPage,disabled:n},C.createElement(Ue.A,null)),C.createElement("button",{type:"button",className:"btn btn-tertiary next "+(s?"disabled":""),onClick:s?()=>null:this.nextPage,disabled:s},C.createElement(Fe.A,null))))}}function Up(e){const{formatMessage:t}=(0,A.useIntl)();return C.createElement("span",e,C.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"})},C.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"}
1)))}const Bp=e=>{let{team:t,doRemoveUserFromTeam:a,doMakeUserTeamAdmin:s,doMakeUserTeamMember:n,isDisabled:i}=e;const r=(0,A.useIntl)(),l=t.scheme_admin,o=t.scheme_user&&!t.scheme_admin,d=t.scheme_guest,c=!l&&!d,m=!o&&!d,u=(0,C.useCallback)((()=>s(t.id)),[t.id,s]),g=(0,C.useCallback)((()=>n(t.id)),[t.id,n]),p=(0,C.useCallback)((()=>a(t.id)),[t.id,a]);return C.createElement(tr.A,{isDisabled:i},C.createElement("button",{type:"button",id:`teamListDropdown_${t.id}`,className:"dropdown-toggle theme color--link style--none","aria-expanded":"true"},C.createElement("span",{className:"SystemUserDetail__actions-menu-icon"},C.createElement(Up,null))),C.createElement("div",null,C.createElement(er.A,{openLeft:!0,openUp:!1,ariaLabel:r.formatMessage({id:"team_members_dropdown.menuAriaLabel",defaultMessage:"Change the role of a team member"})},C.createElement(er.A.ItemAction,{id:"makeTeamAdmin",show:c,onClick:u,text:r.formatMessage({id:"team_members_dropdown.makeAdmin",defaultMessage:"Make Team Admin"})}),C.createElement(er.A.ItemAction,{show:m,onClick:g,text:r.formatMessage({id:"team_members_dropdown.makeMember",defaultMessage:"Make Team Member"})}),C.createElement(er.A.ItemAction,{id:"removeFromTeam",show:!0,onClick:p,text:r.formatMessage({id:"team_members_dropdown.leave_team",defaultMessage:"Remove from Team"}),buttonClass:"SystemUserDetail__action-remove-team"}))))},Hp=(0,C.memo)(Bp);class Gp extends C.PureComponent{renderTeamType=e=>e.group_constrained?C.createElement(A.FormattedMessage,{id:"admin.systemUserDetail.teamList.teamType.groupSync",defaultMessage:"Group Sync"}):e.allow_open_invite?C.createElement(A.FormattedMessage,{id:"admin.systemUserDetail.teamList.teamType.anyoneCanJoin",defaultMessage:"Anyone Can Join"}):C.createElement(A.FormattedMessage,{id:"admin.systemUserDetail.teamList.teamType.inviteOnly",defaultMessage:"Invite Only"});renderTeamRole=e=>e.scheme_guest?C.createElement(A.FormattedMessage,{id:"admin.systemUserDetail.teamList.teamRole.guest",defaultMessage:"Guest"}):e.scheme_admin&&!e.scheme_guest?C.createElement(A.FormattedMessage,{id:"admin.systemUserDetail.teamList.teamRole.admin",defaultMessage:"Team Admin"}):!e.scheme_user||e.scheme_guest||e.scheme_admin?null:C.createElement(A.FormattedMessage,{id:"admin.systemUserDetail.teamList.teamRole.member",defaultMessage:"Team Member"});render=()=>{const{team:e}=this.props,t=L.lt(e);return C.createElement("div",{className:"TeamRow"},C.createElement("div",{className:"TeamRow__row"},C.createElement("div",{className:"TeamRow__team-name"},C.createElement("div",{className:"col-sm-auto"},C.createElement(ae.A,{size:"sm",url:t,content:e.display_name})),C.createElement("div",{className:"col-md-auto"},C.createElement("b",null,e.display_name),e.description&&C.createElement("div",{className:"overflow--ellipsis text-nowrap TeamRow__team-description"},e.description))),C.createElement("span",{className:"TeamRow__description"},this.renderTeamType(e)),C.createElement("span",{className:"TeamRow__description"},this.renderTeamRole(e)),C.createElement("span",{className:"TeamRow__actions"},C.createElement(Hp,{team:e,doRemoveUserFromTeam:this.props.doRemoveUserFromTeam,doMakeUserTeamAdmin:this.props.doMakeUserTeamAdmin,doMakeUserTeamMember:this.props.doMakeUserTeamMember,isDisabled:this.props.readOnly}))))}}const Vp=[{label:(0,A.defineMessage)({id:"admin.systemUserDetail.teamList.header.name",defaultMessage:"Name"}),style:{flexGrow:1,minWidth:"284px",marginLeft:"16px"}},{label:(0,A.defineMessage)({id:"admin.systemUserDetail.teamList.header.type",defaultMessage:"Type"}),style:{width:"150px"}},{label:(0,A.defineMessage)({id:"admin.systemUserDetail.teamList.header.role",defaultMessage:"Role"}),style:{width:"150px"}},{style:{width:"150px"}}];class zp extends C.PureComponent{static defaultProps={emptyList:(0,A.defineMessage)({id:"admin.team_settings.team_list.no_teams_found",defaultMessage:"No teams found"}),refreshTeams:!1};constructor(e){super(e),this.state={teamsWithMemberships:[],serverError:null}}componentDidMount(){this.getTeamsAndMemberships()}componentDidUpdate(e){e.refreshTeams!==this.props.refreshTeams&&this.getTeamsAndMemberships()}getTeamsAndMemberships=(()=>{var e=this;return async function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:e.props.userId;const a=await e.props.actions.getTeamsData(t),s=await e.props.actions.getTeamMembersForUser(t);return Promise.all([a,s]).then(e.mergeTeamsWithMemberships).then((t=>
1{e.setState({teamsWithMemberships:t}),e.props.userDetailCallback(t)}))}})();mergeTeamsWithMemberships=e=>{const t=e[0].data,a=e[1].data;if(!t||!a)return[];let s=t.map((e=>{const t=a.filter((t=>t.team_id===e.id));return{...e,...t[0]}}));return s=(0,Pp.y)(s,this.props.locale),s};doRemoveUserFromTeam=async e=>{const{error:t}=await this.props.actions.removeUserFromTeam(e,this.props.userId);t?this.setState({serverError:t.message}):this.getTeamsAndMemberships()};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()};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()};renderRow=e=>C.createElement(Gp,{key:e.id,team:e,doRemoveUserFromTeam:this.doRemoveUserFromTeam,doMakeUserTeamAdmin:this.doMakeUserTeamAdmin,doMakeUserTeamMember:this.doMakeUserTeamMember,readOnly:this.props.readOnly});render(){let e=null;return this.state.serverError&&(e=C.createElement("div",{className:"SystemUserDetail__error has-error"},C.createElement("label",{className:"has-error control-label"},this.state.serverError))),C.createElement(C.Fragment,null,C.createElement("div",null,e),C.createElement(Fp,{headerLabels:Vp,renderRow:this.renderRow,total:this.state.teamsWithMemberships.length,data:this.state.teamsWithMemberships,actions:this.props.actions,emptyList:this.props.emptyList,userId:this.props.userId}))}}const jp=(0,s.connect)((function(e){return{locale:(0,gs.k)(e)}}),(function(e){return{actions:(0,n.zH)({getTeamsData:l.Bk,getTeamMembersForUser:l.NX,removeUserFromTeam:l.fy,updateTeamMemberSchemeRoles:l.bd},e)}}))(zp);var Wp=a(865),Yp=a(30138);function qp(e){const t=C.createElement(A.FormattedMessage,{id:"userSettings.adminMode.modal_header",defaultMessage:"Manage {userDisplayName}'s Settings",values:{userDisplayName:(0,L.Mn)(e.user)}}),a=C.createElement(A.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,L.Mn)(e.user),br:e=>C.createElement(C.Fragment,null,C.createElement("br",null),e)}}),s=C.createElement(A.FormattedMessage,{id:"admin.user_item.manageSettings",defaultMessage:"Manage User Settings"});return C.createElement(Wp.A,{title:t,message:a,confirmButtonText:s,onConfirm:e.onConfirm,onExited:()=>{e.onExited?.(),(0,Yp.p)(e.focusOriginElement,!0,!0)}})}var Zp=a(59529);function Jp(e){return C.createElement("span",e,C.createElement("svg",{width:"100%",height:"100%",viewBox:"0 0 24 24"},C.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 Kp=e=>C.createElement("span",e,C.createElement("svg",{width:"100%",height:"100%",viewBox:"0 0 24 24"},C.createElement("path",{fill:"inherit",d:"M22 6C22 4.9 21.1 4 20 4H4C2.9 4 2 4.9 2 6V18C2 19.1 2.9 20 4 20H20C21.1 20 22 19.1 22 18V6M20 6L12 11L4 6H20M20 18H4
1V8L12 13L20 8V18Z"}))),Qp=C.memo(Kp),Xp=e=>C.createElement("span",e,C.createElement("svg",{width:"100%",height:"100%",viewBox:"0 0 24 24"},C.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"}))),$p=C.memo(Xp),eh=e=>{let{options:t,selectedValues:a,onChange:s,disabled:n,placeholder:i,noOptionsMessage:r}=e;const l=t.map((e=>({value:e.id,label:e.name}))),o=a.map((e=>{const a=t.find((t=>t.id===e));return a?{value:a.id,label:a.name}:null})).filter((e=>null!==e));return C.createElement(Je.Ay,{isMulti:!0,options:l,value:o,onChange:e=>{const t=e?e.map((e=>e.value)):[];s(t)},isDisabled:n,isClearable:!1,placeholder:i,noOptionsMessage:()=>r,styles:{container:e=>({...e,maxWidth:"320px"})}})},th=e=>{let{pluginId:t}=e;const a=(0,s.useSelector)((e=>(0,_a.Vk)(e,t)));return C.createElement(C.Fragment,null,a)};class ah extends C.PureComponent{constructor(e){super(e),this.state={usernameField:"",usernameError:null,emailField:"",emailError:null,authDataField:"",authDataError:null,confirmPassword:"",confirmPasswordError:null,customProfileAttributeFields:[],customProfileAttributeValues:{},customProfileAttributeErrors:{},originalCpaValues:{},isLoading:!1,error:null,isSaving:!1,teams:[],teamIds:[],refreshTeams:!0,showResetPasswordModal:!1,showDeactivateMemberModal:!1,showTeamSelectorModal:!1,showSaveConfirmationModal:!1}}getUser=async e=>{this.setState({isLoading:!0});try{const[t,a]=await Promise.all([this.props.getUser(e),this.props.customProfileAttributeEnabled?this.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"}));this.setState({user:t.data,emailField:t.data.email,usernameField:t.data.username,authDataField:t.data.auth_data||"",customProfileAttributeValues:a,originalCpaValues:{...a},isLoading:!1,emailError:null,usernameError:null})}catch(e){console.error("SystemUserDetails-getUser: ",e),this.setState({isLoading:!1,error:this.props.intl.formatMessage({id:"admin.user_item.userNotFound",defaultMessage:"Cannot load User"})})}};getCustomProfileAttributeValues=async e=>this.props.getCustomProfileAttributeValues(e).then((e=>e.data||{}));componentDidMount(){const e=this.props.match.params.user_id??"";e&&this.getUser(e),this.props.customProfileAttributeEnabled&&0===this.props.customProfileAttributeFields.length&&this.props.getCustomProfileAttributeFields()}componentDidUpdate(e,t){const a=this.hasUnsavedChanges();a!==this.hasUnsavedChanges(t)&&this.props.setNavigationBlocked(a),!e.customProfileAttributeEnabled&&this.props.customProfileAttributeEnabled&&(this.state.user&&this.getCustomProfileAttributeValues(this.state.user.id).then((e=>{this.setState({customProfileAttributeValues:e,originalCpaValues:{...e}})})),0===this.props.customProfileAttributeFields.length&&this.props.getCustomProfileAttributeFields())}hasUnsavedChanges=(()=>{var e=this;return function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:e.state;if(!t.user)return!1;const a=t.emailField!==t.user.email,s=t.usernameField!==t.user.username,n=t.authDataField!==(t.user.auth_data||""),i=e.hasCpaChanges(t);return a||s||n||i}})();hasCpaChanges=(()=>{var e=this;return function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:e.state;const{customProfileAttributeEnabled:a,customProfileAttributeFields:s}=e.props;if(!a)return!1;for(const a of s){const s=t.customProfileAttributeValues[a.id],n=t.originalCpaValues[a.id];if(e.isCpaValueChanged(s,n))return!0}return!1}})();isEditingOwnEmail=(()=>{var e=this;return function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:e.state;return Boolean(t.user&&e.props.currentUserId===t.user.id&&t.emailField!==t.user.email)}})();isCpaValueChanged=(e,t)=>Array.isArray(e)&&Array.isArray(t)?e.length!==t.length||e.some(((e,a)=>e!==t[a])):e!==t;resolveOptionNames=(e,t)=>{if(!t)return"(empty)";const a=e.attrs?.options||[];if("select"===e.type||"multiselect"===e.type){if(!Array.isArray(t)){const e=a.find((e=>e.id===t));return e?e.name:t}return 0===t.length?"(empty)":t.map((e=>{const t=a.find((t=>t.id===e));return t?t.name:e})).join(this.props.intl.formatMessage({id:"admin.userManagement.userDetail.arrayValueSeparator",defaultMessage:", "}))}return Array.isArray(t)?t.join(this.props.intl.formatMessage({id:"admin.userManagement.userDetail.arrayValueSeparator",defaultMessage:", "})):t};handleTeamsLoaded=e=>{const t=e.map((e=>e.team_id));this.setState({teams:e,teamIds:t,refreshTeams:!1})};handleAddUserToTeams=e=>{if(!this.state.user)return;const t=[];for(const a of e)t.push(this.props.addUserToTeam(a.id,this.state.user.id));Promise.all(t).finally((()=>this.setState({refreshTeams:!0})))};handleActivateUser=async()=>
1{if(this.state.user&&this.state.user?.auth_service!==ve.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 instanceof Error?e.message:this.props.intl.formatMessage({id:"admin.user_item.userActivateFailed",defaultMessage:"Failed to activate user"});this.setState({error:t})}};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 instanceof Error?e.message:this.props.intl.formatMessage({id:"admin.user_item.userDeactivateFailed",defaultMessage:"Failed to deactivate user"});this.setState({error:t})}this.toggleCloseModalDeactivateMember()}};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"})})}};handleEmailChange=e=>{if(!this.state.user||this.state.user.auth_service)return;const{target:{value:t}}=e;let a=null;t.trim()?(0,np.xf)(t)||(a=this.props.intl.formatMessage({id:"admin.user_item.invalidEmail",defaultMessage:"Invalid email address"})):a=this.props.intl.formatMessage({id:"admin.user_item.emptyEmail",defaultMessage:"Email cannot be empty"}),this.setState({emailField:t,emailError:a,error:null})};handleCpaValueChange=(e,t)=>
1{let a;const s=this.props.customProfileAttributeFields.find((t=>t.id===e));if(s){const n=s.attrs?.value_type,i=this.state.originalCpaValues[e];if(n&&t!==i)if("email"===n){const e=String(t);(0,np.xf)(e)||(a=this.props.intl.formatMessage({id:"admin.user_item.invalidEmail",defaultMessage:"Invalid email address"}))}else if("url"===n){const e=String(t);null===(0,Cs.hB)(e)&&(a=this.props.intl.formatMessage({id:"admin.user_item.invalidUrl",defaultMessage:"Invalid URL"}))}}this.setState({customProfileAttributeValues:{...this.state.customProfileAttributeValues,[e]:t},customProfileAttributeErrors:{...this.state.customProfileAttributeErrors,[e]:a},error:null})};handleUsernameChange=e=>{if(!this.state.user||this.state.user.auth_service)return;const{target:{value:t}}=e;let a=null;t.trim()||(a=this.props.intl.formatMessage({id:"admin.user_item.invalidUsername",defaultMessage:"Username cannot be empty"})),this.setState({usernameField:t,usernameError:a})};handleAuthDataChange=e=>{if(!this.state.user)return;const{target:{value:t}}=e;let a=null;t.trim()?t.length>128&&(a=this.props.intl.formatMessage({id:"admin.user_item.authDataTooLong",defaultMessage:"Auth Data must be 128 characters or less"})):a=this.props.intl.formatMessage({id:"admin.user_item.invalidAuthData",defaultMessage:"Auth Data cannot be empty"}),this.setState({authDataField:t,authDataError:a})};getChangedCpaFields=()=>{const e={},{customProfileAttributeFields:t}=this.props;for(const a of t){const t=this.state.customProfileAttributeValues[a.id],s=this.state.originalCpaValues[a.id];this.isCpaValueChanged(t,s)&&(e[a.id]=t||"")}return e};renderCpaField=(e,t)=>{const a=this.state.customProfileAttributeValues[e.id]||"",s=Boolean(e.attrs?.ldap||e.attrs?.saml),n=Boolean(e.attrs?.protected),i=s||n,r=this.state.isSaving||this.state.isLoading||i,l=i?C.createElement("div",{className:"user-property-field-values__sync-indicator"},s?C.createElement(w.SyncIcon,{size:18}):C.createElement(w.PowerPlugOutlineIcon,{size:18}),C.createElement("span",null,s?C.createElement(A.FormattedMessage,{id:"admin.userManagement.userDetail.syncedWith",defaultMessage:"Synced with: {source}",values:{source:e.attrs?.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:e.attrs?.saml})}}):C.createElement(A.FormattedMessage,{id:"admin.userManagement.userDetail.managedByPlugin",defaultMessage:"Managed by plugin: {pluginId}",values:{pluginId:C.createElement(th,{pluginId:e.attrs?.source_plugin_id})}}))):null,o=(()=>{switch(e.type){case"select":{const t=e.attrs?.options||[];return C.createElement("select",{className:"form-control",value:Array.isArray(a)?a[0]||"":a,onChange:t=>this.handleCpaValueChange(e.id,t.target.value),disabled:r},C.createElement("option",{value:""},this.props.intl.formatMessage({id:"admin.userManagement.userDetail.selectOption",defaultMessage:"Select an option"})),t.map((e=>C.createElement("option",{key:e.id,value:e.id},e.name))))}case"multiselect":{const t=e.attrs?.options||[],s=Array.isArray(a)?a:[];return C.createElement(eh,{options:t,selectedValues:s,onChange:t=>this.handleCpaValueChange(e.id,t),disabled:r,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:{const s=(0,np.Wz)(e.attrs?.value_type);return C.createElement(C.Fragment,null,C.createElement("input",{className:he()("form-control",{error:t}),type:s,value:Array.isArray(a)?a.join(this.props.intl.formatMessage({id:"admin.userManagement.userDetail.arrayValueSeparator",defaultMessage:", "})):a,onChange:t=>this.handleCpaValueChange(e.id,t.target.value),disabled:r,"aria-describedby":e.id+"-error","aria-invalid":t?"true":"false"}),t&&C.createElement("div",{id:e.id+"-error",className:"field-error",role:"alert","aria-live":"polite"},t))}}})();return C.createElement("label",{key:e.id,className:"cpa-field"},C.createElement(A.FormattedMessage,{id:"admin.userManagement.userDetail.cpaField",defaultMessage:"{fieldName}
1",values:{fieldName:e.name}}),o,l)};renderTwoColumnLayout=()=>{const e=[];e.push(C.createElement("label",{key:"username"},C.createElement(A.FormattedMessage,{id:"admin.userManagement.userDetail.username",defaultMessage:"Username"}),C.createElement(Jp,null),this.state.user?.auth_service?C.createElement(Nt.A,{title:this.props.intl.formatMessage({id:"admin.userManagement.userDetail.managedByProvider.title",defaultMessage:"Managed by login provider"}),hint:this.props.intl.formatMessage({id:"admin.userManagement.userDetail.managedByProvider.username",defaultMessage:"This username is managed by the {authService} login provider and cannot be changed here."},{authService:this.state.user.auth_service.toUpperCase()})},C.createElement("input",{className:"form-control",type:"text",value:this.state.usernameField,disabled:!0,readOnly:!0,style:{cursor:"not-allowed"},placeholder:this.props.intl.formatMessage({id:"admin.userManagement.userDetail.username.input",defaultMessage:"Enter username"})})):C.createElement(C.Fragment,null,C.createElement("input",{className:he()("form-control",{error:this.state.usernameError}),type:"text",value:this.state.usernameField,onChange:this.handleUsernameChange,disabled:this.state.isSaving,placeholder:this.props.intl.formatMessage({id:"admin.userManagement.userDetail.username.input",defaultMessage:"Enter username"}),"aria-describedby":"username-error","aria-invalid":this.state.usernameError?"true":"false"}),this.state.usernameError&&C.createElement("div",{id:"username-error",className:"field-error",role:"alert","aria-live":"polite"},this.state.usernameError)))),e.push(C.createElement("label",{key:"email"},C.createElement(A.FormattedMessage,{id:"admin.userManagement.userDetail.email",defaultMessage:"Email"}),C.createElement(Qp,null),this.state.user?.auth_service?C.createElement(Nt.A,{title:this.props.intl.formatMessage({id:"admin.userManagement.userDetail.managedByProvider.title",defaultMessage:"Managed by login provider"}),hint:this.props.intl.formatMessage({id:"admin.userManagement.userDetail.managedByProvider.email",defaultMessage:"This email is managed by the {authService} login provider and cannot be changed here."},{authService:this.state.user.auth_service.toUpperCase()})},C.createElement("input",{className:"form-control",type:"text",value:this.state.emailField,disabled:!0,readOnly:!0,style:{cursor:"not-allowed"}})):C.createElement(C.Fragment,null,C.createElement("input",{className:he()("form-control",{error:this.state.emailError}),type:"text",value:this.state.emailField,onChange:this.handleEmailChange,disabled:this.state.isSaving,"aria-describedby":"email-error","aria-invalid":this.state.emailError?"true":"false"}),this.state.emailError&&C.createElement("div",{id:"email-error",className:"field-error",role:"alert","aria-live":"polite"},this.state.emailError)))),e.push(C.createElement("label",{key:"authMethod"},C.createElement(A.FormattedMessage,{id:"admin.userManagement.userDetail.authenticationMethod",defaultMessage:"Authentication Method"}),C.createElement($p,null),C.createElement("span",null,function(e,t,a){if(!a)return"";let s;if(a.auth_service){let t;t=a.auth_service===ve.YM.LDAP_SERVICE||a.auth_service===ve.YM.SAML_SERVICE?a.auth_service.toUpperCase():a.auth_service===ve.YM.OFFICE365_SERVICE?e.formatMessage({id:"admin.oauth.office365",defaultMessage:"Entra ID"}):a.auth_service===ve.YM.MAGIC_LINK_SERVICE?e.formatMessage({id:"admin.userManagement.userDetail.magicLink",defaultMessage:"Magic Link"}):(0,L.Sn)(a.auth_service),s=t}else s=e.formatMessage({id:"admin.userManagement.userDetail.email",defaultMessage:"Email"});return t&&a.mfa_active&&(s+=e.formatMessage({id:"admin.userManagement.userDetail.separator",defaultMessage:", "}),s+=e.formatMessage({id:"admin.userManagement.userDetail.mfa",defaultMessage:"MFA"})),s}(this.props.intl,this.props.mfaEnabled,this.state.user)))),this.state.user?.auth_service&&e.push(C.createElement("label",{key:"authData"},C.createElement(A.FormattedMessage,{id:"admin.userManagement.userDetail.authData",defaultMessage:"Auth Data"}),C.createElement($p,null),C.createElement("input",{className:he()("form-control",{error:this.state.authDataError}),type:"text",value:this.state.authDataField,onChange:this.handleAuthDataChange,disabled:this.state.isSaving,placeholder:this.props.intl.formatMessage({id:"admin.userManagement.userDetail.authData.input",defaultMessage:"Enter auth data"}),"aria-describedby":"authdata-error","aria-invalid":this.state.authDataError?"true":"false"}),this.state.authDataError&&C.createElement("div",{id:"authdata-error",className:"field-error",role:"alert","aria-live":"polite"},this.state.authDataError))),e.length%2&&e.push(null);const t=[],a=[...this.props.customProfileAttributeFields].filter((e=>"source_only"!==e.attrs?.access_mode)).sort(((e,t)=>(e.attrs?.sort_order||0)-(t.attrs?.sort_order||0))),s=this.state.customProfileAttributeErrors;for(const e of a)t.push(this.renderCpaField(e,s[e.id]));t.length%2&&t.push(null);const n=(e,t)=>e.map(((a,s)=>s%2==0?C.createElement("div",{key:`${t}-row-${Math.trunc(s/2)}`,className:"field-row"},C.createElement("div",{className:"field-column left"},a),C.createElement("div",{className:"field-column right"}
1,e[s+1])):null)).filter(Boolean);return C.createElement("div",{className:"two-column-layout"},n(e,"standard-field"),t.length>0&&C.createElement(C.Fragment,null,C.createElement("div",{className:"cpa-section-divider"},C.createElement("span",{className:"cpa-section-header"},C.createElement(A.FormattedMessage,{id:"admin.userManagement.userDetail.customProfileAttributes",defaultMessage:"User Attributes"}))),n(t,"cpa-field")))};handleConfirmPasswordChange=e=>{const{target:{value:t}}=e;this.setState({confirmPassword:t,confirmPasswordError:null})};handleConfirmPasswordKeyDown=e=>{"Enter"===e.key&&this.state.confirmPassword&&(e.preventDefault(),this.handleConfirmSave())};renderConfirmModal=()=>{const e=[],t=this.isEditingOwnEmail();this.state.user&&this.state.usernameField!==this.state.user.username&&e.push(C.createElement(A.FormattedMessage,{id:"admin.userDetail.saveChangesModal.usernameChange",defaultMessage:"Username: {oldUsername} â {newUsername}",values:{oldUsername:this.state.user.username,newUsername:this.state.usernameField}})),this.state.user&&this.state.emailField!==this.state.user.email&&e.push(C.createElement(A.FormattedMessage,{id:"admin.userDetail.saveChangesModal.emailChange",defaultMessage:"Email: {oldEmail} â {newEmail}",values:{oldEmail:this.state.user.email,newEmail:this.state.emailField}})),this.state.user&&this.state.authDataField!==(this.state.user.auth_data||"")&&e.push(C.createElement(A.FormattedMessage,{id:"admin.userDetail.saveChangesModal.authDataChange",defaultMessage:"Auth Data: {oldAuthData} â {newAuthData}",values:{oldAuthData:this.state.user.auth_data||"(empty)",newAuthData:this.state.authDataField||"(empty)"}}));for(const t of Object.entries(this.getChangedCpaFields())){const a=t[0];for(const s of this.props.customProfileAttributeFields)if(s.id===a){const n=s.name,i=this.state.originalCpaValues[a],r=this.resolveOptionNames(s,i),l=this.resolveOptionNames(s,t[1]);e.push(C.createElement(A.FormattedMessage,{id:"admin.userDetail.saveChangesModal.cpaFieldChange",defaultMessage:"{fieldName}: {oldValue} â {newValue}",values:{fieldName:n,oldValue:r,newValue:l}}))}}return C.createElement("div",null,C.createElement(A.FormattedMessage,{id:"admin.userDetail.saveChangesModal.message",defaultMessage:"You are about to save the following changes to {username}:",values:{username:this.state.user?.username??""}}),C.createElement("ul",{className:"changes-list"},e.map(((e,t)=>C.createElement("li",{key:t},e)))),t&&C.createElement("div",{className:"password-confirmation-section"},C.createElement(A.FormattedMessage,{id:"admin.userDetail.saveChangesModal.passwordRequired",defaultMessage:"For security reasons, please confirm your current password to change your email address:"}),C.createElement("div",{className:"password-input-wrapper"},C.createElement("input",{type:"password",className:he()("form-control",{error:this.state.confirmPasswordError}),value:this.state.confirmPassword,onChange:this.handleConfirmPasswordChange,onKeyDown:this.handleConfirmPasswordKeyDown,placeholder:this.props.intl.formatMessage({id:"admin.userDetail.saveChangesModal.passwordPlaceholder",defaultMessage:"Enter your password"}),"aria-describedby":"confirm-password-error","aria-invalid":this.state.confirmPasswordError?"true":"false",autoFocus:!0}),this.state.confirmPasswordError&&C.createElement("div",{id:"confirm-password-error",className:"field-error",role:"alert","aria-live":"polite"},this.state.confirmPasswordError))),C.createElement(A.FormattedMessage,{id:"admin.userDetail.saveChangesModal.warning",defaultMessage:"Are you sure you want to proceed with these changes?"}))};handleCancel=()=>{this.setState({usernameField:this.state?.user?.username||"",usernameError:null,emailField:this.state.user?.email||"",emailError:null,authDataField:this.state.user?.auth_data||"",authDataError:null,customProfileAttributeValues:{...this.state.originalCpaValues},customProfileAttributeErrors:{},error:null})};handleSubmit=async e=>{e.preventDefault(),this.state.isLoading||this.state.isSaving||!this.state.user||this.state.usernameError||this.state.emailError||this.state.authDataError||this.hasUnsavedChanges()&&this.setState({showSaveConfirmationModal:!0})};handleConfirmSave=async()=>
1{if(this.state.user&&this.hasUnsavedChanges()&&!this.state.isSaving){this.setState({error:null,isSaving:!0,showSaveConfirmationModal:!1});try{const e=[];let t={...this.state.user};const a=!this.state.user.auth_service&&this.state.emailField!==this.state.user.email,s=!this.state.user.auth_service&&this.state.usernameField!==this.state.user.username,n=this.state.authDataField!==(this.state.user.auth_data||""),i=this.hasCpaChanges();if(s||a){if(a&&(t.email=this.state.emailField.trim().toLowerCase()),s&&(t.username=this.state.usernameField.trim()),this.isEditingOwnEmail()){if(!this.state.confirmPassword)return void this.setState({confirmPasswordError:this.props.intl.formatMessage({id:"admin.userDetail.saveChangesModal.passwordEmpty",defaultMessage:"Password is required to change your email address"}),isSaving:!1,showSaveConfirmationModal:!0});t.password=this.state.confirmPassword}e.push(this.props.patchUser(t))}n&&e.push(this.props.updateUserAuth(this.state.user.id,{auth_data:this.state.authDataField.trim(),auth_service:this.state.user.auth_service}));for(const t of Object.entries(this.getChangedCpaFields()))e.push(this.props.saveCustomProfileAttribute(this.state.user.id,t[0],t[1]||""));const r=await Promise.all(e);let l=0;if(a||s){const e=r[l];if(e.data)t=e.data;else if(e.error){if(this.isEditingOwnEmail()&&401===e.error.status_code)return void this.setState({confirmPasswordError:this.props.intl.formatMessage({id:"admin.userDetail.saveChangesModal.incorrectPassword",defaultMessage:"Incorrect password. Please try again."}),isSaving:!1,showSaveConfirmationModal:!0});throw new Error(e.error.message)}l++}if(n){const e=r[l];if(e.data)t={...t,auth_data:e.data.auth_data,auth_service:e.data.auth_service||""};else if(e.error)throw new Error(e.error.message);l++}if(i)for(let e=l;e<r.length;e++){const t=r[e];if(t.error)throw new Error(t.error.message)}let o=this.state.customProfileAttributeValues;i&&(o=(await this.props.getCustomProfileAttributeValues(this.state.user.id)).data||this.state.customProfileAttributeValues),this.setState({user:t,usernameField:t.username,usernameError:null,emailField:t.email,emailError:null,authDataField:t.auth_data||"",authDataError:null,customProfileAttributeValues:o,originalCpaValues:{...o},error:null,isSaving:!1,confirmPassword:"",confirmPasswordError:null})}catch(e){console.error("SystemUserDetails-handleConfirmSave",e),this.setState({error:this.props.intl.formatMessage({id:"admin.user_item.userUpdateFailed",defaultMessage:"Failed to update user"}),isSaving:!1})}}};toggleOpenModalDeactivateMember=()=>{this.state.user?.auth_service!==ve.YM.LDAP_SERVICE&&this.setState({showDeactivateMemberModal:!0})};toggleCloseModalDeactivateMember=()=>{this.setState({showDeactivateMemberModal:!1})};toggleOpenModalResetPassword=()=>{this.props.openModal({modalId:ve.IQ.RESET_PASSWORD_MODAL,dialogType:Dp,dialogProps:{user:this.state.user}})};toggleCloseModalResetPassword=()=>{this.setState({showResetPasswordModal:!1})};toggleOpenTeamSelectorModal=()=>{this.setState({showTeamSelectorModal:!0})};toggleCloseTeamSelectorModal=()=>{this.setState({showTeamSelectorModal:!1})};closeSaveConfirmationModal=()=>{this.setState({showSaveConfirmationModal:!1,confirmPassword:"",confirmPasswordError:null})};openConfirmEditUserSettingsModal=()=>{this.state.user&&this.props.openModal({modalId:ve.IQ.CONFIRM_MANAGE_USER_SETTINGS_MODAL,dialogType:qp,dialogProps:{user:this.state.user,onConfirm:this.openUserSettingsModal,focusOriginElement:"manageUserSettingsBtn"}})};openUserSettingsModal=async()=>{this.state.user&&this.props.openModal({modalId:ve.IQ.USER_SETTINGS,dialogType:Zp.default,dialogProps:{adminMode:!0,isContentProductSettings:!0,userID:this.state.user.id,focusOriginElement:"manageUserSettingsBtn"}})};getManagedByLdapText=()=>this.state.user?.auth_service!==ve.YM.LDAP_SERVICE?null:C.createElement(C.Fragment,null," ",C.createElement(A.FormattedMessage,{id:"admin.user_item.managedByLdap",defaultMessage:"(Managed By LDAP)"}));render(){return C.createElement("div",{className:"SystemUserDetail wrapper--fixed"},C.createElement(fe,{withBackButton:!0},C.createElement("div",null,C.createElement(me.A,{to:"/admin_console/user_management/users",className:"fa fa-angle-left back"}),C.createElement(A.FormattedMessage,{id:"admin.systemUserDetail.title",defaultMessage:"User Configuration"}))),C.createElement("div",{className:"admin-console__wrapper"},C.createElement("div",{className:"admin-console__content"},C.createElement(xp,{user:this.state.user,isLoading:this.state.isLoading,body:C.createElement(C.Fragment,null,C.createElement("span",null,this.state.user?.position??""),this.renderTwoColumnLayout()
1),footer:C.createElement(C.Fragment,null,C.createElement(Nt.A,{title:(0,A.defineMessage)({id:"admin.user_item.resetPassword.magicLink.tooltip",defaultMessage:"Cannot reset password for Magic Link accounts."}),disabled:this.state.user?.auth_service!==ve.YM.MAGIC_LINK_SERVICE},C.createElement("button",{className:"btn btn-secondary",onClick:this.toggleOpenModalResetPassword,disabled:this.state.user?.auth_service===ve.YM.MAGIC_LINK_SERVICE},C.createElement(A.FormattedMessage,{id:"admin.user_item.resetPwd",defaultMessage:"Reset Password"}))),this.state.user?.mfa_active&&C.createElement("button",{className:"btn btn-secondary",onClick:this.handleRemoveMFA},C.createElement(A.FormattedMessage,{id:"admin.user_item.resetMfa",defaultMessage:"Remove MFA"})),0!==this.state.user?.delete_at&&C.createElement("button",{className:"btn btn-secondary",onClick:this.handleActivateUser,disabled:this.state.user?.auth_service===ve.YM.LDAP_SERVICE},C.createElement(A.FormattedMessage,{id:"admin.user_item.makeActive",defaultMessage:"Activate"}),this.getManagedByLdapText()),0===this.state.user?.delete_at&&C.createElement("button",{className:"btn btn-secondary btn-danger",onClick:this.toggleOpenModalDeactivateMember,disabled:this.state.user?.auth_service===ve.YM.LDAP_SERVICE},C.createElement(A.FormattedMessage,{id:"admin.user_item.deactivate",defaultMessage:"Deactivate"}),this.getManagedByLdapText()),this.props.showManageUserSettings&&C.createElement("button",{className:"manageUserSettingsBtn btn btn-tertiary",onClick:this.openConfirmEditUserSettingsModal,id:"manageUserSettingsBtn"},C.createElement(A.FormattedMessage,{id:"admin.user_item.manageSettings",defaultMessage:"Manage User Settings"})),this.props.showLockedManageUserSettings&&C.createElement(Nt.A,{title:(0,A.defineMessage)({id:"generic.enterprise_feature",defaultMessage:"Enterprise Feature"}),hint:(0,A.defineMessage)({id:"admin.user_item.manageSettings.disabled_tooltip",defaultMessage:"Please upgrade to Enterprise to manage user settings"})},C.createElement("button",{className:"manageUserSettingsBtn btn disabled"},C.createElement("div",{className:"RestrictedIndicator__content"},C.createElement("i",{className:he()("RestrictedIndicator__icon-tooltip","icon","icon-key-variant")})),C.createElement(A.FormattedMessage,{id:"admin.user_item.manageSettings",defaultMessage:"Manage User Settings"}))))}),C.createElement(Tl,{title:(0,A.defineMessage)({id:"admin.userManagement.userDetail.teamsTitle",defaultMessage:"Team Membership"}),subtitle:(0,A.defineMessage)({id:"admin.userManagement.userDetail.teamsSubtitle",defaultMessage:"Teams to which this user belongs"}),button:C.createElement("div",{className:"add-team-button"},C.createElement("button",{type:"button",className:"btn btn-primary",onClick:this.toggleOpenTeamSelectorModal,disabled:this.state.isLoading},C.createElement(A.FormattedMessage,{id:"admin.userManagement.userDetail.addTeam",defaultMessage:"Add Team"})))},this.state.isLoading&&C.createElement("div",{className:"teamlistLoading"},C.createElement(Bn.A,null)),!this.state.isLoading&&this.state.user?.id&&C.createElement(jp,{userId:this.state.user.id,userDetailCallback:this.handleTeamsLoaded,refreshTeams:this.state.refreshTeams})))),C.createElement("div",{className:"admin-console-save"},C.createElement("div",{className:"admin-console-save-buttons"},C.createElement(ue.A,{saving:this.state.isSaving,disabled:!this.hasUnsavedChanges()||this.state.isLoading||this.state.isSaving||null!==this.state.emailError||null!==this.state.usernameError||null!==this.state.authDataError||Object.values(this.state.customProfileAttributeErrors).some((e=>void 0!==e)),onClick:this.handleSubmit}),this.hasUnsavedChanges()&&C.createElement("button",{type:"button",className:"btn btn-tertiary",onClick:this.handleCancel,disabled:this.state.isSaving,style:{marginLeft:"12px"}},C.createElement(A.FormattedMessage,{id:"admin.user_item.cancel",defaultMessage:"Cancel"}))),C.createElement("div",{className:"error-message",role:"alert","aria-live":"polite"},C.createElement(Ke.Ay,{error:this.state.error}))),C.createElement(Aa.A,{show:this.state.showDeactivateMemberModal,title:C.createElement(A.FormattedMessage,{id:"deactivate_member_modal.title",defaultMessage:"Deactivate {username}",values:{username:this.state.user?.username??""}}),message:C.createElement("div",null,C.createElement(A.FormattedMessage,{id:"deactivate_member_modal.desc_with_confirmation",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:this.state.user?.username??""}}),""!==this.state.user?.auth_service&&this.state.user?.auth_service!==ve.YM.EMAIL_SERVICE&&C.createElement("strong",null,C.createElement("br",null),C.createElement("br",null),C.createElement(A.FormattedMessage,{id:"deactivate_member_modal.sso_w
1arning",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:C.createElement(A.FormattedMessage,{id:"deactivate_member_modal.deactivate",defaultMessage:"Deactivate"}),onConfirm:this.handleDeactivateMember,onCancel:this.toggleCloseModalDeactivateMember}),this.state.showTeamSelectorModal&&C.createElement(Rr,{onModalDismissed:this.toggleCloseTeamSelectorModal,onTeamsSelected:this.handleAddUserToTeams,alreadySelected:this.state.teamIds,excludeGroupConstrained:!0}),C.createElement(Aa.A,{id:"admin-userDetail-saveChangesModal",show:this.state.showSaveConfirmationModal,title:C.createElement(A.FormattedMessage,{id:"admin.userDetail.saveChangesModal.title",defaultMessage:"Confirm Changes"}),message:this.renderConfirmModal(),confirmButtonClass:"btn btn-primary",confirmButtonText:C.createElement(A.FormattedMessage,{id:"admin.userDetail.saveChangesModal.save",defaultMessage:"Save Changes"}),confirmDisabled:this.isEditingOwnEmail()&&!this.state.confirmPassword,onConfirm:this.handleConfirmSave,onCancel:this.closeSaveConfirmationModal}))}}const sh=(0,A.injectIntl)(ah),nh={getUser:ms.wz,patchUser:ms.WJ,updateUserAuth:ms.Vo,updateUserActive:ms.tS,updateUserMfa:ms.BX,addUserToTeam:l.$w,setNavigationBlocked:p.Jb,openModal:Hn.q,getUserPreferences:Ua.oE,getCustomProfileAttributeFields:Po.MG,getCustomProfileAttributeValues:ms.R0,saveCustomProfileAttribute:ms.Ah},ih=(0,s.connect)((function(e){const t=(0,c.Ay)(e),a=(0,c.zj)(e),s=(0,qt.PL)(t)&&(0,c.D2)(e),n=s?(0,c.A1)(e):[],i=AM(e),r=TM(e);return{currentUserId:(0,g.WR)(e),mfaEnabled:"true"===a?.EnableMultifactorAuthentication||!1,customProfileAttributeEnabled:s,customProfileAttributeFields:n,showManageUserSettings:i,showLockedManageUserSettings:r}}),nh)(sh);var rh=a(33495),lh=a(57322),oh=a(47256),dh=a(57986),ch=a(91767),mh=a(72208);function uh(){const e=(0,s.useDispatch)(),[t,a]=(0,C.useState)(!1);function n(){a((e=>!e))}return C.createElement(mh.A,{permissions:[o.xB.REVOKE_USER_ACCESS_TOKEN]},C.createElement("button",{className:"btn btn-tertiary btn-danger",onClick:n},C.createElement(A.FormattedMessage,{id:"admin.system_users.revokeAllSessions",defaultMessage:"Revoke All Sessions"})),C.createElement(Aa.A,{show:t,title:C.createElement(A.FormattedMessage,{id:"admin.system_users.revoke_all_sessions_modal_title",defaultMessage:"Revoke all sessions in the system"}),message:C.createElement(A.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:C.createElement(A.FormattedMessage,{id:"admin.system_users.revoke_all_sessions_button",defaultMessage:"Revoke All Sessions"}),onConfirm:async function(){const{data:t}=await e((0,ms.ID)());t?(0,ch.BN)():a(!1)},onCancel:n}))}function gh(e){const{formatMessage:t}=(0,A.useIntl)();function a(e){switch(e){case oh.nl.username:return C.createElement(A.FormattedMessage,{id:"admin.system_users.list.userDetails",defaultMessage:"User details"});case oh.nl.email:return C.createElement(A.FormattedMessage,{id:"admin.system_users.list.email",defaultMessage:"Email"});case oh.nl.createAt:return C.createElement(A.FormattedMessage,{id:"admin.system_users.list.memberSince",defaultMessage:"Member since"});case oh.nl.lastLoginAt:return C.createElement(A.FormattedMessage,{id:"admin.system_users.list.lastLoginAt",defaultMessage:"Last login"});case oh.nl.lastStatusAt:return C.createElement(A.FormattedMessage,{id:"admin.system_users.list.lastActivity",defaultMessage:"Last activity"});case oh.nl.lastPostDate:return C.createElement(A.FormattedMessage,{id:"admin.system_users.list.lastPost",defaultMessage:"Last post"});case oh.nl.daysActive:return C.createElement(A.FormattedMessage,{id:"admin.system_users.list.daysActive",defaultMessage:"Days active"});case oh.nl.totalPosts:return C.createElement(A.FormattedMessage,{id:"admin.system_users.list.totalPosts",defaultMessage:"Messages posted"});case oh.nl.channelCount:return C.createElement(A.FormattedMessage,{id:"admin.system_users.list.channelCount",defaultMessage:"Channel count"});case oh.nl.actions:return C.createElement(A.FormattedMessage,{id:"admin.system_users.list.actions",defaultMessage:"Actions"});default:return C.createElement("span",null)}}return C.createElement("div",{className:"systemUsersColumnToggler"},C.createElement(Wd.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:C.createElement(Ri.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:C.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()?C.createElement("i",{className:"icon icon-checkbox-marked"}):C.createElement("i",{className:"icon icon-checkbox-blank-outline"}),C.createElement(Wd.q7,{key:e.id,id:e.id,role:"menuitemcheckbox",labels:a(e.id),disabled:!e.getCanHide(),leadingElement:t,onClick:e.getToggleVisibilityHandler()})}))))}function ph(e){const t=new Date(e);return t.setDate(t.getDate()-30),t}function hh(e){const t=new Date(e);return t.setMonth(t.getMonth()-6),t}function fh(e){const t=new Date(e);return t.setMonth(t.getMonth()-1),t.setDate(1),t}function Eh(e){const t=new Date(e);return t.setDate(1),t.setDate(t.getDate()-1),t}function Mh(e){const{formatMessage:t,formatDate:a}=(0,A.useIntl)(),n=(0,s.useDispatch)(),i=new Date;function r(e){n((0,h.p$)({dateRange:e}))}return C.createElement("div",{className:"systemUsersDateRangeSelector"},C.createElement(Wd.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:C.createElement(Ri.A,{label:t({id:"admin.system_users.date_range_selector.label",defaultMessage:"Duration"}),name:"colXC",value:(l=e.dateRange,l===rh.p9.Last30Days?t({id:"admin.system_users.date_range_selector.date_range.last_30_days",defaultMessage:"Last 30 days"}):l===rh.p9.PreviousMonth?t({id:"admin.system_users.date_range_selector.date_range.previous_month",defaultMessage:"Previous month"}):l===rh.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:C.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"}},C.createElement(Wd.q7,{key:rh.p9.AllTime,id:rh.p9.AllTime,labels:C.createElement(A.FormattedMessage,{id:"admin.system_users.date_range_selector.date_range.all_time",defaultMessage:"All time"}),trailingElements:e.dateRange===rh.p9.AllTime&&C.createElement("i",{className:"icon icon-check"}),onClick:()=>r()}),C.createElement(Wd.q7,{key:rh.p9.Last30Days,id:rh.p9.Last30Days,labels:C.createElement(C.Fragment,null,C.createElement(A.FormattedMessage,{id:"admin.system_users.date_range_selector.date_range.last_30_days",defaultMessage:"Last 30 days"}),C.createElement(A.FormattedMessage,{id:"admin.system_users.date_range_selector.date_range.sublabel",defaultMessage:"{startDate} - {endDate}",values:{startDate:a(ph(i)),endDate:a(i)}})),trailingElements:e.dateRange===rh.p9.Last30Days&&C.createElement("i",{className:"icon icon-check"}),onClick:()=>r(rh.p9.Last30Days)}),C.createElement(Wd.q7,{key:rh.p9.PreviousMonth,id:rh.p9.PreviousMonth,labels:C.createElement(C.Fragment,null,C.createElement(A.FormattedMessage,{id:"admin.system_users.date_range_selector.date_range.previous_month",defaultMessage:"Previous month"}),C.createElement(A.FormattedMessage,{id:"admin.system_users.date_range_selector.date_range.sublabel",defaultMessage:"{startDate} - {endDate}",values:{startDate:a(fh(i)),endDate:a(Eh(i))}})),trailingElements:e.dateRange===rh.p9.PreviousMonth&&C.createElement("i",{className:"icon icon-check"}),onClick:()=>r(rh.p9.PreviousMonth)}),C.createElement(Wd.q7,{key:rh.p9.Last6Months,id:rh.p9.Last6Months,labels:C.createElement(C.Fragment,null,C.createElement(A.FormattedMessage,{id:"admin.system_users.date_range_selector.date_range.last_6_months",defaultMessage:"Last 6 months"}),C.createElement(A.FormattedMessage,{id:"admin.system_users.date_range_selector.date_range.sublabel",defaultMessage:"{startDate} - {endDate}",values:{startDate:a(hh(i),{month:"numeric",year:"numeric"}),endDate:a(i,{month:"numeric",year:"numeric"})}})),trailingElements:e.dateRange===rh.p9.Last6Months&&C.createElement("i",{className:"icon icon-check"}),onClick:()=>r(rh.p9.Last6Months)}),C.createElement(Wd.wv,null),C.createElement(Wd.q7,{key:"trailing_message",id:"trailing_message",className:"systemUsersDateRangeSelector__trailing-message",labels:C.createElement(C.Fragment,null,C.createElement("span",null),C.createElement(A.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=>C.createElement("strong",null,e)}})),disabled:!0})));var l}function bh(e){let{error:t,onExited:a}=e;const s=400===t.status_code&&"app.report.start_users_batch_export.job_exists"===t.server_error_id;let n=C.createElement(A.FormattedMessage,{id:"export_error_modal.title",defaultMessage:"Export could not be initiated"}),i=C.createElement(C.Fragment,null,C.createElement(A.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."}),C.createElement("div",{className:"error"},t.message));return s&&(n=C.createElement(A.FormattedMessage,{id:"export_error_modal.inProgress.title",defaultMessage:"Export is in progress"}),i=C.createElement(A.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."})),C.createElement(Wp.A,{title:n,message:i,confirmButtonText:C.createElement(A.FormattedMessage,{id:"generic.okay",defaultMessage:"Okay"}),onExited:a})}function _h(e){let{onConfirm:t,onExited:a}=e;
1const n=(0,s.useSelector)(le.QH),i=n.dateRange??rh.p9.AllTime,r=C.createElement(A.FormattedMessage,{id:"export_user_data_modal.title",defaultMessage:"Export user data"});let l=C.createElement(A.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."});i===rh.p9.Last30Days?l=C.createElement(A.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."}):i===rh.p9.PreviousMonth?l=C.createElement(A.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."}):i===rh.p9.Last6Months&&(l=C.createElement(A.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=C.createElement(C.Fragment,null,l,C.createElement("p",{className:"mt-3 text-muted"},C.createElement(A.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 o=C.createElement(A.FormattedMessage,{id:"export_user_data_modal.export_data",defaultMessage:"Export data"}),d=C.createElement(A.FormattedMessage,{id:"export_user_data_modal.do_n
1ot_show",defaultMessage:"Do not show this again"});return C.createElement(Wp.A,{id:"exportUserDataModal",title:r,message:l,confirmButtonText:o,showCheckbox:!0,checkboxText:d,checkboxInFooter:!0,onConfirm:t,onExited:a})}function yh(e){let{onExited:t}=e;const{openPricingModal:a,isAirGapped:s}=(0,ri.A)(),n=C.createElement(A.FormattedMessage,{id:"upgrade_export_data_modal.title",defaultMessage:"Upgrade to export data reports"}),i=C.createElement(C.Fragment,null,C.createElement(A.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."}),C.createElement("div",{className:"upgrade-export-data-modal__svg-image"},C.createElement(Zo,{width:250,height:188}))),r=C.createElement(A.FormattedMessage,{id:"upgrade_export_data_modal.view_plans",defaultMessage:"View Plans"});return C.createElement(Wp.A,{title:n,message:i,confirmButtonText:r,onConfirm:()=>{a()},onExited:t,hideConfirm:s})}var vh=a(77476);function Sh(e){const{formatMessage:t}=(0,A.useIntl)(),a=(0,s.useDispatch)(),n="true"===(0,s.useSelector)((e=>(0,Ba.Jt)(e,o.pm.CATEGORY_REPORTING,o.pm.HIDE_BATCH_EXPORT_CONFIRM_MODAL,""))),i=(0,s.useSelector)(le.QH),r=(0,vh.e2)(i);void 0===r.date_range&&(r.date_range=rh.p9.AllTime);const l=(0,s.useSelector)(c.Ay),d="true"===l.IsLicensed&&(0,qt.be)(l);async function m(t){const{error:s}=await a((0,h.rN)(r));s?a((0,Hn.q)({modalId:ve.IQ.EXPORT_ERROR_MODAL,dialogType:bh,dialogProps:{error:s}})):t&&a((0,Ua.SF)(e.currentUserId,[{category:o.pm.CATEGORY_REPORTING,name:o.pm.HIDE_BATCH_EXPORT_CONFIRM_MODAL,user_id:e.currentUserId,value:"true"}]))}const u=C.createElement("button",{onClick:function(){e.usersLenght&&(d?n?m():a((0,Hn.q)({modalId:ve.IQ.EXPORT_USER_DATA_MODAL,dialogType:_h,dialogProps:{onConfirm:m}})):a((0,Hn.q)({modalId:ve.IQ.UPGRADE_EXPORT_DATA_MODAL,dialogType:yh,dialogProps:{}})))},className:"btn btn-md btn-tertiary",disabled:!e.usersLenght},C.createElement("span",{className:"icon icon-download-outline"}),C.createElement(A.FormattedMessage,{id:"admin.system_users.exportButton",defaultMessage:"Export"}));return d?u:C.createElement(C.Fragment,null,C.createElement(Nt.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"})},u),C.createElement("div",{className:"system-users-export__keyIndicator"},C.createElement("i",{className:"icon icon-key-variant"})))}var Ch=a(17638),Ah=a(38889),Th=a(94621);const Nh=R.default.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 kh(e){const{formatMessage:t}=(0,A.useIntl)(),a=(0,C.useMemo)((()=>[{value:oh.Bq.Any,label:t({id:"admin.system_users.filters.status.any",defaultMessage:"Any"})},{value:oh.Bq.Active,label:t({id:"admin.system_users.filters.status.active",defaultMessage:"Activated users"})},{value:oh.Bq.Deactivated,label:t({id:"admin.system_users.filters.status.deactive",defaultMessage:"Deactivated users"})}]),[]),[s,n]=(0,C.useState)((()=>(0,vh.u5)(e.initialValue,a)));return C.createElement(Ii.A,{name:"filterStatus",isSearchable:!1,legend:t({id:"admin.system_users.filters.status.title",defaultMessage:"Status"}),options:a,value:s,onChange:function(t){n(t),e.onChange(t.value)}})}function wh(e){const{formatMessage:t}=(0,A.useIntl)(),a=(0,C.useMemo)((()=>({value:oh.Oq.Any,label:t({id:"admin.system_users.filters.role.any",defaultMessage:"Any"})})),[t]),s=(0,C.useMemo)((()=>[{value:oh.Oq.Admin,label:t({id:"admin.system_users.filters.role.system_admin",defaultMessage:"System Admin"})},{value:oh.Oq.Member,label:t({id:"admin.system_users.filters.role.system_user",defaultMessage:"Member"})}]),[t]),n=(0,C.useMemo)((()=>[{value:oh.Oq.GuestAll,label:t({id:"admin.system_users.filters.role.system_guest",defaultMessage:"Guests (all)"})},{value:oh.Oq.GuestSingleChannel,label:t({id:"admin.system_users.filters.role.guest_single_channel",defaultMessage:"Guests in a single channel"})},{value:oh.Oq.GuestMultiChannel,label:t({id:"admin.system_users.filters.role.guest_multi_channel",defaultMessage:"Guests in multiple channels"})}]),[t]),i=(0,C.useMemo)((()=>[a,...s,...n]),[a,s,n]),r=(0,C.useMemo)((()=>[{label:"",options:[a]},{label:"",options:s},{label:"",options:n}]),[a,s,n]),[l,o]=(0,C.useState)((()=>(0,vh.u5)(e.initialValue,i)));return C.createElement(Ii.A,{name:"filterRole",isSearchable:!1,legend:t({id:"admin.system_users.filters.role.title",defaultMessage:"Role"}
1),options:r,value:l,onChange:function(t){o(t),e.onChange(t.value)}})}var Ih=a(66141);function Rh(e){const t=(0,s.useDispatch)(),{formatMessage:a}=(0,A.useIntl)(),[n,i]=(0,C.useState)(!1),[r,l]=(0,C.useState)({}),{context:o,refs:d,floatingStyles:c}=(0,Ch.we)({open:n,onOpenChange:i,whileElementsMounted:Ah.ll,middleware:[(0,Th.cY)(10),(0,Th.RK)({allowedPlacements:["bottom-start","top-start"]})]}),{isMounted:m,styles:u}=(0,Ch.DL)(o),g=(0,Ch.kp)(o),p=(0,Ch.s9)(o),f=(0,Ch.It)(o),{getReferenceProps:E,getFloatingProps:M}=(0,Ch.bv)([g,p,f]),b=(e.filterStatus.length>0?1:0)+(e.filterRole.length>0?1:0)+(e.filterTeam.length>0?1:0);return C.createElement("div",{className:"systemUsersFilterContainer"},C.createElement("button",Object.assign({},E(),{ref:d.setReference,className:"btn btn-md btn-tertiary","aria-controls":"systemUsersFilterPopover"}),C.createElement("i",{className:"icon icon-filter-variant"}),a({id:"admin.system_users.filtersMenu",defaultMessage:"Filters ({count})"},{count:b})),m&&C.createElement(Ch.s3,{context:o},C.createElement(Nh,Object.assign({},M(),{id:"systemUsersFilterPopover",ref:d.setFloating,style:Object.assign({},c,u),className:"systemUsersFilterPopoverContainer","aria-labelledby":"header"}),C.createElement("h4",{id:"header"},a({id:"admin.system_users.filtersPopover.title",defaultMessage:"Filter by"})),C.createElement("div",{className:"body"},C.createElement(Ih.l,{initialValue:e.filterTeam,initialLabel:e.filterTeamLabel,onChange:function(e,t){let a,s;e===oh.rw.AllTeams?(a="",s=""):e===oh.rw.NoTeams?(a=oh.rw.NoTeams,s=""):(a=e,s=t),l({...r,filterTeam:a,filterTeamLabel:s})}}),C.createElement(wh,{initialValue:e.filterRole,onChange:function(e){let t="";e===oh.Oq.Admin?t=oh.Oq.Admin:e===oh.Oq.Member?t=oh.Oq.Member:e===oh.Oq.GuestAll?t=oh.Oq.GuestAll:e===oh.Oq.GuestSingleChannel?t=oh.Oq.GuestSingleChannel:e===oh.Oq.GuestMultiChannel&&(t=oh.Oq.GuestMultiChannel),l({...r,filterRole:t})}}),C.createElement(kh,{initialValue:e.filterStatus,onChange:function(e){let t="";e===oh.Bq.Active?t="active":e===oh.Bq.Deactivated&&(t="deactivated"),l({...r,filterStatus:t})}})),C.createElement("div",{className:"footer"},C.createElement("button",{className:"btn btn-md btn-primary",onClick:function(){t((0,h.p$)(r)),i(!1)},type:"submit"},a({id:"admin.system_users.filtersPopover.apply",defaultMessage:"Apply"}))))))}function Lh(e){const t=e.user&&e.user.roles?e.user.roles:"";return{show:!0,user:e.user,error:null,hasPostAllRole:Mp.QF(t),hasPostAllPublicRole:Mp.HF(t),hasUserAccessTokenRole:Mp.DA(t),isSystemAdmin:Mp.FV(t)}}class xh extends C.PureComponent{constructor(e){super(e),this.state=Lh(e)}static getDerivedStateFromProps(e,t){return t.user?.id!==e.user?.id?Lh(e):null}handleError=e=>{this.setState({error:e})};handleSystemAdminChange=e=>{"systemadmin"===e.target.name?this.setState({isSystemAdmin:!0}):"systemmember"===e.target.name&&this.setState({isSystemAdmin:!1})};handleUserAccessTokenChange=e=>{this.setState({hasUserAccessTokenRole:e.target.checked})};handlePostAllChange=e=>{this.setState({hasPostAllRole:e.target.checked})};handlePostAllPublicChange=e=>{this.setState({hasPostAllPublicRole:e.target.checked})};onHide=()=>{this.setState({show:!1})};handleSave=async()=>{this.setState({error:null});let e=o.Bz.SYSTEM_USER_ROLE;this.state.isSystemAdmin?e+=" "+o.Bz.SYSTEM_ADMIN_ROLE:this.state.hasUserAccessTokenRole&&(e+=" "+o.Bz.SYSTEM_USER_ACCESS_TOKEN_ROLE,this.state.hasPostAllRole?e+=" "+o.Bz.SYSTEM_POST_ALL_ROLE:this.state.hasPostAllPublicRole&&(e+=" "+o.Bz.SYSTEM_POST_ALL_PUBLIC_ROLE));const t=await this.props.actions.updateUserRoles(this.props.user.id,e);(0,sp.o)(t)?(this.props.onSuccess(e),this.onHide()):this.handleError(C.createElement(A.FormattedMessage,{id:"admin.manage_roles.saveError",defaultMessage:"Unable to save roles."}))};renderContents=()=>{const{user:e}=this.props;if(null==e)return C.createElement("div",null);let t,a,s=Mp.dS(e);s?s+=` (@${e.username})`:s=`@${e.username}`,(this.state.hasUserAccessTokenRole||this.state.isSystemAdmin||e.is_bot)&&(t=C.createElement("div",null,C.createElement("p",null,C.createElement(A.FormattedMessage,{id:"admin.manage_roles.additionalRoles",defaultMessage:"Select additional permissions for the account. <link>Read more about roles and permissions</link>.",values:{link:e=>C.createElement(Ge.A,{href:ve.i3.PERSONAL_ACCESS_TOKENS,location:"manage_roles_modal"},e)}})),C.createElement("div",{className:"checkbox"},C.createElement("label",null,C.createElement("input",{type:"checkbox",checked:this.state.hasPostAllRole||this.state.isSystemAdmin,disabled:this.state.isSystemAdmin,onChange:this.handlePostAllChange}),C.createElement("strong",null,C.createElement(A.FormattedMessage,{id:"admin.manage_roles.postAllRoleTitle",defaultMessage:"post:all"})),C.createElement(A.FormattedMessage,{id:"admin.manage_roles.postAllRole",defaultMessage:"Access to post to all Mattermost channels including direct messages."}))),C.createElement("div",{className:"checkbox"},C.createElement("label",null,C.createElement("input",{type:"checkbox",checked:this.state.hasPostAllPublicRole||this.state.hasPostAllRole||this.state.isSystemAdmin,disabled:this.state.hasPostAllRole||this.state.isSystemAdmin,onChange:this.handlePostAllPublicChange}),C.createElement("strong",null,C.createElement(A.FormattedMessage,{id:"admin.manage_roles.postAllPublicRoleTitle",defaultMessage:"post:channels"})),C.createElement(A.FormattedMessage,{id:"admin.manage_roles.postAllPublicRole",defaultMessage:"Access to post to all Mattermost public channels."}))),C.createElement("p",null,C.createElement(A.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=>C.createElement("strong",null,e),span:e=>C.createElement("span",{className:"pt-2 pb-2 light"},e)}})))),this.props.userAccessTokensEnabled&&(a=e.is_bot?C.createElement("div",null,C.createElement("div",{className:"member-row--padded member-row-lone-padding"},t)):C.createElement("div",null,C.createElement("div",{className:"checkbox"},C.createElement("label",null,C.createElement("input",{type:"checkbox",checked:this.state.hasUserAccessTokenRole||this.state.isSystemAdmin,disabled:this.state.isSystemAdmin,onChange:this.handleUserAccessTokenChange}),C.createElement(A.FormattedMessage,{id:"admin.manage_roles.allowUserAccessTokens",defaultMessage:"Allow this account to generate <link>personal access tokens</link>.",values:{link:e=>C.createElement(Ge.A,{href:ve.i3.PERSONAL_ACCESS_TOKENS,location:"manage_roles_modal"},e)}}),C.createElement("span",{className:"d-block pt-2 pb-2 light"},C.createElement(A.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."})))),C.createElement("div",{className:"member-row--padded"},t)));let n=e.email;return e.is_bot&&(n=""),C.createElement("div",null,C.createElement("div",{className:"manage-teams__user"},C.createElement(Pl.A,{size:"lg",username:e.username,url:I.mT.getProfilePictureUrl(e.id,e.last_picture_update)}
1),C.createElement("div",{className:"manage-teams__info"},C.createElement("div",{className:"manage-teams__name"},s,e.is_bot&&C.createElement(Sp.A,null)),C.createElement("div",{className:"manage-teams__email"},n))),C.createElement("div",null,C.createElement("div",{className:"manage-row--inner"},C.createElement("div",{className:"radio-inline"},C.createElement("label",null,C.createElement("input",{name:"systemadmin",type:"radio",checked:this.state.isSystemAdmin,onChange:this.handleSystemAdminChange}),C.createElement(A.FormattedMessage,{id:"admin.manage_roles.systemAdmin",defaultMessage:"System Admin"}))),C.createElement("div",{className:"radio-inline"},C.createElement("label",null,C.createElement("input",{name:"systemmember",type:"radio",checked:!this.state.isSystemAdmin,onChange:this.handleSystemAdminChange}),C.createElement(A.FormattedMessage,{id:"admin.manage_roles.systemMember",defaultMessage:"Member"})))),a))};render(){return C.createElement(Gn.Modal,{show:this.state.show,onHide:this.onHide,onExited:this.props.onExited,dialogClassName:"a11y__modal manage-teams",role:"none","aria-labelledby":"manageRolesModalLabel"},C.createElement(Gn.Modal.Header,{closeButton:!0},C.createElement(Gn.Modal.Title,{componentClass:"h1",id:"manageRolesModalLabel"},C.createElement(A.FormattedMessage,{id:"admin.manage_roles.manageRolesTitle",defaultMessage:"Manage Roles"}))),C.createElement(Gn.Modal.Body,null,this.renderContents(),this.state.error),C.createElement(Gn.Modal.Footer,null,C.createElement("button",{type:"button",className:"btn btn-tertiary",onClick:this.onHide},C.createElement(A.FormattedMessage,{id:"admin.manage_roles.cancel",defaultMessage:"Cancel"})),C.createElement("button",{type:"button",className:"btn btn-primary",onClick:this.handleSave},C.createElement(A.FormattedMessage,{id:"admin.manage_roles.save",defaultMessage:"Save"}))))}}const Dh=(0,s.connect)((function(e){return{userAccessTokensEnabled:e.entities.admin.config.ServiceSettings.EnableUserAccessTokens}}),(function(e){return{actions:(0,n.zH)({updateUserRoles:ms.eA},e)}}))(xh),Ph=e=>{const{formatMessage:t}=(0,A.useIntl)(),a=(0,Mp.qc)(e.teamMember.roles)||e.teamMember.scheme_admin,s=(0,Mp.FV)(e.user.roles),n=(0,Mp.P)(e.user.roles),{team:i}=e;let r;return r=t(s?{id:"admin.user_item.sysAdmin",defaultMessage:"System Admin"}:a?{id:"admin.user_item.teamAdmin",defaultMessage:"Team Admin"}:n?{id:"admin.user_item.guest",defaultMessage:"Guest"}:{id:"admin.user_item.teamMember",defaultMessage:"Team Member"}),C.createElement(tr.A,null,C.createElement("a",null,C.createElement("span",null,r," "),C.createElement("span",{className:"caret"})),C.createElement(er.A,{openLeft:!0,ariaLabel:t({id:"team_members_dropdown.menuAriaLabel",defaultMessage:"Change the role of a team member"})},C.createElement(er.A.ItemAction,{show:!a&&!n,onClick:async()=>{const{error:t}=await e.updateTeamMemberSchemeRoles(e.teamMember.team_id,e.user.id,!0,!0);t?e.onError(C.createElement(A.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"})}),C.createElement(er.A.ItemAction,{show:a,onClick:async()=>{const{error:t}=await e.updateTeamMemberSchemeRoles(e.teamMember.team_id,e.user.id,!0,!1);t?e.onError(C.createElement(A.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"})}),C.createElement(er.A.ItemAction,{show:!i.group_constrained,onClick:()=>e.handleRemoveUserFromTeam(e.teamMember.team_id),text:t({id:"team_members_dropdown.leave_team",defaultMessage:"Remove from Team"})})))},Oh=e=>{let{teamId:t,handleRemoveUserFromTeam:a}=e;return C.createElement("button",{type:"button",className:"btn btn-danger",onClick:e=>{e.preventDefault(),a(t)}},C.createElement(A.FormattedMessage,{id:"team_members_dropdown.leave_team",defaultMessage:"Remove from Team"}))},Fh=(0,s.connect)((function(e){return{locale:(0,gs.k)(e)}}),(function(e){return{actions:(0,n.zH)({getTeamMembersForUser:l.NX,getTeamsForUser:l.Bk,updateTeamMemberSchemeRoles:l.bd,removeUserFromTeam:l.fy},e)}}
1))((e=>{let{locale:t,onExited:a,user:s,actions:n}=e;const[i,r]=C.useState(null),[l,o]=C.useState(null),[d,c]=C.useState(null),[m,u]=C.useState(!0);(0,C.useEffect)((()=>{s&&g(s)}),[s]),(0,C.useEffect)((()=>{s?.id&&(o(null),c(null))}),[s?.id]);const g=async e=>{await h(e.id);const{data:a}=await n.getTeamsForUser(e.id);o((0,Pp.y)(a,t))},p=e=>r(e),h=async e=>{const{data:t}=await n.getTeamMembersForUser(e);t&&c(t)},f=async e=>{const{error:t}=await n.removeUserFromTeam(e,s?s.id:"");t?p(C.createElement(A.FormattedMessage,{id:"admin.manage_teams.removeError",defaultMessage:"Unable to remove user from team."})):(e=>{o(l.filter((t=>t.id!==e))),c(d.filter((t=>t.team_id!==e)))})(e)},E=()=>h(s?s.id:"");return C.createElement(Gn.Modal,{show:m,onHide:()=>{u(!1)},onExited:a,dialogClassName:"a11y__modal manage-teams modal--overflow-visible",role:"none","aria-labelledby":"manageTeamsModalLabel"},C.createElement(Gn.Modal.Header,{closeButton:!0},C.createElement(Gn.Modal.Title,{componentClass:"h1",id:"manageTeamsModalLabel"},C.createElement(A.FormattedMessage,{id:"admin.user_item.manageTeams",defaultMessage:"Manage Teams"}))),C.createElement(Gn.Modal.Body,null,(()=>{if(!s)return C.createElement(Ta.A,null);const e=(0,Mp.qc)(s.roles);let t,a=L.dS(s);a?a+=` (@${s.username})`:a=`@${s.username}`,t=l&&d?l.map((t=>{const a=d.find((e=>e.team_id===t.id));if(!a)return null;const i=e?C.createElement(Oh,{teamId:t.id,handleRemoveUserFromTeam:f}):C.createElement(Ph,{user:s,team:t,teamMember:a,onError:p,onMemberChange:E,updateTeamMemberSchemeRoles:n.updateTeamMemberSchemeRoles,handleRemoveUserFromTeam:f});return C.createElement("div",{key:t.id,className:"manage-teams__team"},C.createElement("div",{className:"manage-teams__team-name"},t.display_name),C.createElement("div",{className:"manage-teams__team-actions"},i))})):C.createElement(Ta.A,null);let i=null;return e&&(i=C.createElement("div",{className:"manage-teams__system-admin"},C.createElement(A.FormattedMessage,{id:"admin.user_item.sysAdmin",defaultMessage:"System Admin"}))),C.createElement("div",null,C.createElement("div",{className:"manage-teams__user"},C.createElement(Pl.A,{username:s.username,url:I.mT.getProfilePictureUrl(s.id,s.last_picture_update),size:"lg"}),C.createElement("div",{className:"manage-teams__info"},C.createElement("div",{className:"manage-teams__name"},a),C.createElement("div",{className:"manage-teams__email"},s.email)),i),C.createElement("div",{className:"manage-teams__teams"},t))})(),i))})),Uh=e=>C.createElement("button",{type:"button",className:"btn btn-danger",onClick:async t=>{t.preventDefault();const a=await e.actions.revokeUserAccessToken(e.tokenId);"error"in a&&e.onError(a.error.message)}},C.createElement(A.FormattedMessage,{id:"admin.revoke_token_button.delete",defaultMessage:"Delete"})),Bh=C.memo(Uh),Hh=(0,s.connect)(null,(function(e){return{actions:(0,n.zH)({revokeUserAccessToken:ms.XE},e)}}))(Bh);class Gh extends C.PureComponent{constructor(e){super(e),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)}handleError=e=>{this.setState({error:e})};onModalDismissed=()=>{this.setState({show:!1})};renderContents=()=>{const{user:e,userAccessTokens:t}=this.props;let a,s=Mp.dS(e);if(s?s+=` (@${e.username})`:s=`@${e.username}`,t){const e=Object.values(t);a=0===e.length?C.createElement("div",{className:"manage-row__empty"},C.createElement(A.FormattedMessage,{id:"admin.manage_tokens.userAccessTokensNone",defaultMessage:"No personal access tokens."})):e.map((e=>C.createElement("div",{key:e.id,className:"manage-teams__team"},C.createElement("div",{className:"manage-teams__team-name"},C.createElement("div",{className:"whitespace--nowrap overflow--ellipsis"},C.createElement(A.FormattedMessage,{id:"admin.manage_tokens.userAccessTokensNameLabel",defaultMessage:"Token Description: "}),e.description),C.createElement("div",{className:"whitespace--nowrap overflow--ellipsis"},C.createElement(A.FormattedMessage,{id:"admin.manage_tokens.userAccessTokensIdLabel",defaultMessage:"Token ID: "}
1),e.id)),C.createElement("div",{className:"manage-teams__team-actions"},C.createElement(Hh,{tokenId:e.id,onError:this.handleError})))))}else a=C.createElement(Ta.A,null);return C.createElement("div",null,C.createElement("div",{className:"manage-teams__user"},C.createElement(Pl.A,{username:e.username,url:I.mT.getProfilePictureUrl(e.id,e.last_picture_update),size:"lg"}),C.createElement("div",{className:"manage-teams__info"},C.createElement("div",{className:"manage-teams__name"},s),C.createElement("div",{className:"manage-teams__email"},e.email))),C.createElement("div",{className:"pt-3"},C.createElement(A.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=>C.createElement(Ge.A,{href:"https://api.mattermost.com/#tag/authentication",location:"manage_tokens_modal"},e),linkPersonalAccessTokens:e=>C.createElement(Ge.A,{href:ve.i3.PERSONAL_ACCESS_TOKENS,location:"manage_tokens_modal"},e)}})),C.createElement("div",{className:"manage-teams__teams"},a))};render=()=>C.createElement(Gn.Modal,{show:this.state.show,onHide:this.onModalDismissed,onExited:this.props.onExited,dialogClassName:"a11y__modal manage-teams",role:"none","aria-labelledby":"manageTokensModalLabel"},C.createElement(Gn.Modal.Header,{closeButton:!0},C.createElement(Gn.Modal.Title,{componentClass:"h1",id:"manageTokensModalLabel"},C.createElement(A.FormattedMessage,{id:"admin.manage_tokens.manageTokensTitle",defaultMessage:"Manage Personal Access Tokens"}))),C.createElement(Gn.Modal.Body,null,this.renderContents(),this.state.error))}const Vh=(0,s.connect)((function(e,t){const a=t.user?t.user.id:"",s=e.entities.admin.userAccessTokensByUser;return{userAccessTokens:void 0===s?void 0:s[a]}}),(function(e){return{actions:(0,n.zH)({getUserAccessTokensForUser:ms.GA},e)}}))(Gh),zh=(0,s.connect)((function(e){return{currentUserId:(0,ti.WR)(e)}}),(function(e){return{actions:(0,n.zH)({patchUser:ms.WJ},e)}}))((function(e){let{user:t,currentUserId:a,onSuccess:s,onExited:n,actions:i}=e;const{formatMessage:r}=(0,A.useIntl)(),[l,o]=(0,C.useState)(!0),[d,c]=(0,C.useState)(""),[m,u]=(0,C.useState)(""),[g,p]=(0,C.useState)(null),[h,f]=(0,C.useState)(null),[E,M]=(0,C.useState)(null),b=(0,C.useRef)(null),_=(0,C.useRef)(null),y=t?.id===a,v=(0,C.useCallback)((()=>{o(!1)}),[]),S=(0,C.useCallback)((async()=>{if(!t)return;if(p(null),f(null),M(null),!d||!(0,np.xf)(d))return void f(r({id:"user.settings.general.validEmail",defaultMessage:"Please enter a valid email address."}));if(y&&!m)return void M(r({id:"admin.reset_email.missing_current_password",defaultMessage:"Please enter your current password."}));const e={...t,email:d.trim().toLowerCase()};y&&(e.password=m);const a=await i.patchUser(e);if("error"in a){const e="app.user.save.email_exists.app_error"===a.error.server_error_id,t="api.user.check_user_password.invalid.app_error"===a.error.server_error_id;e?f(a.error.message):t?M(a.error.message):p(a.error.message)}else s(e.email),o(!1)}),[t,d,m,y,i,s,r]);if(!t)return null;const T=(0,L.dS)(t)||t.username,N=r({id:"admin.reset_email.titleResetFor",defaultMessage:"Update email for {name}"},{name:T});return C.createElement(ks.zW,{id:"resetEmailModal",className:"ResetEmailModal",modalHeaderText:N,show:l,onExited:n,onHide:v,handleCancel:v,handleConfirm:S,handleEnterKeyPress:S,confirmButtonText:r({id:"admin.reset_email.update",defaultMessage:"Update"}),compassDesign:!0,autoCloseOnConfirmButton:!1,errorText:g?C.createElement("span",{className:"error"},g):void 0,dataTestId:"resetEmailModal"},C.createElement("div",{className:"ResetEmailModal__body"},C.createElement(Ri.A,{ref:b,type:"email",name:"newEmail",autoComplete:"off",label:r({id:"admin.reset_email.newEmail",defaultMessage:"New email"}),placeholder:r({id:"admin.reset_email.enterNewEmail",defaultMessage:"Enter new email address"}),value:d,onChange:e=>c(e.target.value),autoFocus:!0,maxLength:128,customMessage:h?{type:"error",value:h}:void 0}),y&&C.createElement(Ri.A,{ref:_,type:"password",name:"currentPassword",autoComplete:"current-password",label:r({id:"admin.reset_email.currentPassword",defaultMessage:"Current password"}),placeholder:r({id:"admin.reset_email.enterCurrentPassword",defaultMessage:"Enter current password"}),value:m,onChange:e=>u(e.target.value),customMessage:E?{type:"error",value:E}:void 0})))}));function jh(e){let{user:t,onSuccess:a,onError:n,onExited:i}=e;const r=(0,s.useDispatch)(),l=C.createElement(A.FormattedMessage,{id:"confirm_reset_failed_attempts_modal.title",defaultMessage:"Reset failed login attempts for {username} and unlock account",values:{username:t.username}}),o=C.createElement(A.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=C.createElement(A.FormattedMessage,{id:"confirm_reset_failed_attempts_modal.create",defaultMessage:"Yes"}),c=C.createElement(A.FormattedMessage,{id:"confirm_reset_failed_attempts_modal.cancel",defaultMessage:"No"});
1return C.createElement(Wp.A,{title:l,message:o,confirmButtonClass:"btn btn-danger",cancelButtonText:c,confirmButtonText:d,onConfirm:async function(){const{error:e}=await r((0,ms.HM)(t.id));e&&n(e),a()},onExited:i})}function Wh(e){let{user:t,onExited:a,onError:n}=e;const i=(0,s.useDispatch)(),r=C.createElement(A.FormattedMessage,{id:"create_group_memberships_modal.title",defaultMessage:"Re-add {username} to teams and channels",values:{username:t.username}}),l=C.createElement(A.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}}),o=C.createElement(A.FormattedMessage,{id:"create_group_memberships_modal.create",defaultMessage:"Yes"}),d=C.createElement(A.FormattedMessage,{id:"create_group_memberships_modal.cancel",defaultMessage:"No"});return C.createElement(Wp.A,{title:r,message:l,confirmButtonClass:"btn btn-danger",cancelButtonText:d,confirmButtonText:o,onConfirm:async function(){const{error:e}=await i((0,bl.b4)(t.id));e&&n(e)},onExited:a})}var Yh=a(74290);function qh(e){let{user:t,onExited:a,onSuccess:n,onError:i}=e;const r=(0,s.useDispatch)(),l=(0,s.useSelector)(d.zj),o=(0,s.useSelector)(Yh.jd),c=l.ServiceSettings?.SiteURL,m=C.createElement(A.FormattedMessage,{id:"deactivate_member_modal.title",defaultMessage:"Deactivate {username}",values:{username:t.username}}),u=C.createElement(A.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:t.username}});let g;""!==t.auth_service&&t.auth_service!==ve.Ay.EMAIL_SERVICE&&(g=C.createElement("strong",null,C.createElement("br",null),C.createElement("br",null),C.createElement(A.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 p=C.createElement(A.FormattedMessage,{id:"deactivate_member_modal.desc.confirm",defaultMessage:"Are you sure you want to deactivate {username}?",values:{username:t.username}});let h;if(l.ServiceSettings?.DisableBotsWhenOwnerIsDeactivated)for(const e of Object.values(o))if(e.owner_id===t.id&&0===e.delete_at){h=C.createElement(C.Fragment,null,C.createElement("ul",null,C.createElement("li",null,C.createElement(A.FormattedMessage,{id:"deactivate_member_modal.desc.for_users_with_bot_accounts1",defaultMessage:"This action deactivates {username}",values:{username:t.username}})),C.createElement("li",null,C.createElement(A.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."})),C.createElement("li",null,C.createElement(A.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:{linkBots:e=>C.createElement("a",{href:`${c}/_redirect/integrations/bots`},e),linkDocumentation:e=>C.createElement(Ge.A,{href:"https://mattermost.com/pl/default-bot-accounts",location:"system_users_dropdown"},e)}}))),C.createElement("p",null),C.createElement("p",null));break}const f=C.createElement("div",null,h||u,p,g),E=C.createElement(A.FormattedMessage,{id:"deactivate_member_modal.deactivate",defaultMessage:"Deactivate"});return C.createElement(Wp.A,{title:m,message:f,confirmButtonClass:"btn btn-danger",confirmButtonText:E,onConfirm:async function(){const{error:e}=await r((0,ms.tS)(t.id,!1));e?i(e):n()},onExited:a})}function Zh(e){let{user:t,onExited:a,onSuccess:n,onError:i}=e;const r=(0,s.useDispatch)(),l=C.createElement(A.FormattedMessage,{id:"demote_to_user_modal.title",defaultMessage:"Demote User {username} to Guest",values:{username:t.username}}),o=C.createElement(A.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=C.createElement(A.FormattedMessage,{id:"demote_to_user_modal.demote",defaultMessage:"Demote"});
1return C.createElement(Wp.A,{title:l,message:o,confirmButtonClass:"btn btn-danger",confirmButtonText:d,onConfirm:async function(){const{error:e}=await r((0,ms.J6)(t.id));e?i(e):n()},onExited:a})}function Jh(e){let{user:t,onExited:a,onSuccess:n,onError:i}=e;const r=(0,s.useDispatch)(),l=C.createElement(A.FormattedMessage,{id:"promote_to_user_modal.title",defaultMessage:"Promote guest {username} to member",values:{username:t.username}}),o=C.createElement(A.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=C.createElement(A.FormattedMessage,{id:"promote_to_user_modal.promote",defaultMessage:"Promote"});return C.createElement(Wp.A,{title:l,message:o,confirmButtonClass:"btn btn-danger",confirmButtonText:d,onConfirm:async function(){const{error:e}=await r((0,ms.dd)(t.id));e?i(e):n()},onExited:a})}function Kh(e){let{user:t,currentUser:a,onExited:n,onError:i}=e;const r=(0,s.useDispatch)(),l=C.createElement(A.FormattedMessage,{id:"revoke_user_sessions_modal.title",defaultMessage:"Revoke Sessions for {username}",values:{username:t.username}}),o=C.createElement(A.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=C.createElement(A.FormattedMessage,{id:"revoke_user_sessions_modal.revoke",defaultMessage:"Revoke"});return C.createElement(Wp.A,{title:l,message:o,confirmButtonClass:"btn btn-danger",confirmButtonText:d,onConfirm:async function(){const{data:e,error:s}=await r((0,ms.V_)(t.id));e&&t.id===a.id?(0,ch.BN)():s&&i(s)},onExited:n})}function Qh(e){let{user:t,currentUser:a,tableId:n,rowIndex:i,onError:r,updateUser:l}=e;const{formatMessage:m}=(0,A.useIntl)(),u=(0,s.useDispatch)(),g=(0,s.useSelector)(d.zj),h="true"===(0,s.useSelector)(c.Ay)?.IsLicensed,f=(0,s.useSelector)((e=>(0,S.y4)(e,{permission:o.xB.SYSCONSOLE_WRITE_USERMANAGEMENT_USERS}))),E=(0,s.useSelector)(AM),M=`actionMenuButton-${n}-${i}`,b=`actionMenu-${n}-${i}`,_=`actionMenuItem-${n}-${i}`,y=(0,C.useMemo)((()=>(0,Mp.FV)(a.roles)),[a.roles]),v=!y&&(0,Mp.FV)(t.roles)||!f,T=(0,C.useCallback)((()=>{u((0,Hn.q)({modalId:ve.IQ.MANAGE_ROLES_MODAL,dialogType:Dh,dialogProps:{user:t,onSuccess:function(e){l({roles:e})}}}))}),[t,l]),N=(0,C.useCallback)((()=>{u((0,Hn.q)({modalId:ve.IQ.MANAGE_TEAMS_MODAL,dialogType:Fh,dialogProps:{user:t}}))}),[t]),k=(0,C.useCallback)((()=>{u((0,Hn.q)({modalId:ve.IQ.CONFIRM_MANAGE_USER_SETTINGS_MODAL,dialogType:qp,dialogProps:{user:t,onConfirm:function(){u((0,Hn.q)({modalId:ve.IQ.USER_SETTINGS,dialogType:Zp.default,dialogProps:{adminMode:!0,isContentProductSettings:!0,userID:t.id,focusOriginElement:M}}))},focusOriginElement:M}}))}),[t]),w=(0,C.useCallback)((()=>{u((0,Hn.q)({modalId:ve.IQ.MANAGE_TOKENS_MODAL,dialogType:Vh,dialogProps:{user:t}}))}),[t.id]),I=(0,C.useCallback)((()=>{u((0,Hn.q)({modalId:ve.IQ.RESET_PASSWORD_MODAL,dialogType:Dp,dialogProps:{user:t}}))}),[t]),R=(0,C.useCallback)((async()=>{await(0,p.pT)(t.id,null,r).then((()=>{l({mfa_active:!1})}));try{await(0,p.pT)(t.id,null,r),l({mfa_active:!1})}catch(e){r(e)}}),[t.id,l,r]),L=(0,C.useCallback)((()=>{u((0,Hn.q)({modalId:ve.IQ.RESET_PASSWORD_MODAL,dialogType:Dp,dialogProps:{user:t,onSuccess:function(){l({auth_service:void 0})}}}))}),[t,l]),x=(0,C.useCallback)((()=>{u((0,Hn.q)({modalId:ve.IQ.RESET_EMAIL_MODAL,dialogType:zh,dialogProps:{user:t,onSuccess:function(e){l({email:e})}}}))}),[t,l]),D=(0,C.useCallback)((()=>{u((0,Hn.q)({modalId:ve.IQ.PROMOTE_TO_MEMBER_MODAL,dialogType:Jh,dialogProps:{user:t,onError:r,onSuccess:function(){l({roles:t.roles.replace(vc.A.SYSTEM_GUEST_ROLE,"")})}}}))}),[t,l,r]),P=(0,C.useCallback)((()=>{u((0,Hn.q)({modalId:ve.IQ.DEMOTE_TO_GUEST_MODAL,dialogType:Zh,dialogProps:{user:t,onError:r,onSuccess:function(){l({roles:`${t.roles} ${vc.A.SYSTEM_GUEST_ROLE}`})}}}))}),[t,l,r]),O=(0,C.useCallback)((()=>{u((0,Hn.q)({modalId:ve.IQ.REVOKE_SESSIONS_MODAL,dialogType:Kh,dialogProps:{user:t,currentUser:a,onError:r}}))}),[t,a.id,r]),F=(0,C.useCallback)((()=>{u((0,Hn.q)({modalId:ve.IQ.CREATE_GROUP_SYNCABLES_MEMBERSHIP_MODAL,dialogType:Wh,dialogProps:{user:t,onError:r}}))}),[t,r]),U=(0,C.useCallback)((async()=>
1{if(t.auth_service===ve.Ay.LDAP_SERVICE)return;const{error:e}=await u((0,ms.tS)(t.id,!0));e?r(e):l({delete_at:0})}),[t.id,t.auth_service,l,r]),B=(0,C.useCallback)((()=>{t.auth_service!==ve.Ay.LDAP_SERVICE&&u((0,Hn.q)({modalId:ve.IQ.DEACTIVATE_MEMBER_MODAL,dialogType:qh,dialogProps:{user:t,onError:r,onSuccess:function(){l({delete_at:(new Date).getMilliseconds()})}}}))}),[t,l,r]),H=(0,C.useCallback)((()=>{u((0,Hn.q)({modalId:ve.IQ.CONFIRM_RESET_FAILED_ATTEMPTS_MODAL,dialogType:jh,dialogProps:{user:t,onError:r,onSuccess:function(){l({failed_attempts:0})}}}))}),[t,l,r]),G=t.auth_service===ve.Ay.LDAP_SERVICE,V=e=>e?{trailingElements:m({id:"admin.system_users.list.actions.menu.managedByLdap",defaultMessage:"(Managed by LDAP)"})}:{},z=(0,C.useCallback)((()=>void 0!==t.failed_attempts&&(t.auth_service===ve.Ay.LDAP_SERVICE||""===t.auth_service)),[t]);return C.createElement(Wd.mc,{menuButton:{id:M,class:he()("btn btn-quaternary btn-sm",{disabled:v}),disabled:v,children:C.createElement(C.Fragment,null,(j=t.roles,t.delete_at>0?C.createElement(A.FormattedMessage,{id:"admin.system_users.list.actions.deactivated",defaultMessage:"Deactivated"}):t.roles.length>0&&(0,Mp.FV)(j)?C.createElement(A.FormattedMessage,{id:"admin.system_users.list.actions.userAdmin",defaultMessage:"System Admin"}):(0,Mp.P)(j)?C.createElement(A.FormattedMessage,{id:"admin.system_users.list.actions.userGuest",defaultMessage:"Guest"}):C.createElement(A.FormattedMessage,{id:"admin.system_users.list.actions.userMember",defaultMessage:"Member"})),!v&&C.createElement("i",{"aria-hidden":"true",className:"icon icon-chevron-down"}))},menu:{id:b,"aria-label":m({id:"admin.system_users.list.actions.menu.dropdownAriaLabel",defaultMessage:"User actions menu"})}},t.delete_at>0&&C.createElement(Wd.q7,Object.assign({id:`${_}-active`,labels:C.createElement(A.FormattedMessage,{id:"admin.system_users.list.actions.menu.activate",defaultMessage:"Activate"}),disabled:G},V(G),{onClick:U})),y&&C.createElement(Wd.q7,{id:`${_}-manageRoles`,labels:C.createElement(A.FormattedMessage,{id:"admin.system_users.list.actions.menu.manageRoles",defaultMessage:"Manage roles"}),onClick:T}),C.createElement(Wd.q7,{id:`${_}-manageTeams`,labels:C.createElement(A.FormattedMessage,{id:"admin.system_users.list.actions.menu.manageTeams",defaultMessage:"Manage teams"}),onClick:N}),E&&C.createElement(Wd.q7,{id:`${_}-manageTeams`,labels:C.createElement(A.FormattedMessage,{id:"admin.system_users.list.actions.menu.manageSettings",defaultMessage:"Manage user settings"}),onClick:k}),g.ServiceSettings?.EnableUserAccessTokens&&C.createElement(Wd.q7,{id:`${_}-manageTokens`,labels:C.createElement(A.FormattedMessage,{id:"admin.system_users.list.actions.menu.manageTokens",defaultMessage:"Manage tokens"}),onClick:w}),!t.auth_service&&C.createElement(Wd.q7,{id:`${_}-resetPassword`,labels:C.createElement(A.FormattedMessage,{id:"admin.system_users.list.actions.menu.resetPassword",defaultMessage:"Reset password"}),onClick:I}),z()&&C.createElement(Wd.q7,{id:`${_}-resetAttempts`,labels:C.createElement(A.FormattedMessage,{id:"admin.system_users.list.actions.menu.resetAttempts",defaultMessage:"Reset login attempts"}),onClick:H}),t.mfa_active&&g.ServiceSettings?.EnableMultifactorAuthentication&&C.createElement(Wd.q7,{id:`${_}-removeMFA`,labels:C.createElement(A.FormattedMessage,{id:"admin.system_users.list.actions.menu.removeMFA",defaultMessage:"Remove MFA"}),onClick:R}),Boolean(t.auth_service)&&g.ServiceSettings?.ExperimentalEnableAuthenticationTransfer&&C.createElement(Wd.q7,{id:`${_}-switchToEmailPassword`,labels:C.createElement(A.FormattedMessage,{id:"admin.system_users.list.actions.menu.switchToEmailPassword",defaultMessage:"Switch to Email/Password"}),onClick:L}),!t.auth_service&&C.createElement(Wd.q7,{id:`${_}-updateEmail`,labels:C.createElement(A.FormattedMessage,{id:"admin.system_users.list.actions.menu.updateEmail",defaultMessage:"Update email"}),onClick:x}),(0,Mp.P)(t.roles)&&C.createElement(Wd.q7,{id:`${_}-promoteToMember`,labels:C.createElement(A.FormattedMessage,{id:"admin.system_users.list.actions.menu.promoteToMember",defaultMessage:"Promote to member"}),onClick:D}
1),!(0,Mp.P)(t.roles)&&t.id!==a.id&&h&&g.GuestAccountsSettings?.Enable&&C.createElement(Wd.q7,{id:`${_}-demoteToGuest`,labels:C.createElement(A.FormattedMessage,{id:"admin.system_users.list.actions.menu.demoteToGuest",defaultMessage:"Demote to guest"}),onClick:P}),C.createElement(mh.A,{permissions:[o.xB.REVOKE_USER_ACCESS_TOKEN]},!t.delete_at&&C.createElement(Wd.q7,{id:`${_}-removeSessions`,labels:C.createElement(A.FormattedMessage,{id:"admin.system_users.list.actions.menu.removeSessions",defaultMessage:"Revoke sessions"}),onClick:O})),C.createElement(mh.A,{permissions:[o.xB.SYSCONSOLE_WRITE_USERMANAGEMENT_GROUPS]},(t.auth_service===ve.Ay.LDAP_SERVICE||t.auth_service===ve.Ay.SAML_SERVICE&&g.SamlSettings?.EnableSyncWithLdap)&&C.createElement(Wd.q7,{id:`${_}-resyncUserViaLdapGroups`,labels:C.createElement(A.FormattedMessage,{id:"admin.system_users.list.actions.menu.resyncUserViaLdapGroups",defaultMessage:"Re-sync user via LDAP groups"}),onClick:F})),0===t.delete_at&&C.createElement(Wd.q7,Object.assign({id:`${_}-deactivate`,isDestructive:!0,labels:C.createElement(A.FormattedMessage,{id:"admin.system_users.list.actions.menu.deactivate",defaultMessage:"Deactivate"}),onClick:B,disabled:G},V(G))));var j}function Xh(e){const{formatMessage:t}=(0,A.useIntl)(),a=(0,s.useDispatch)(),n=(0,C.useRef)(),[i,r]=(0,C.useState)(e.searchTerm);return C.createElement("div",{className:"system-users__filter"},C.createElement(Ri.A,{type:"text",clearable:!0,name:"searchTerm",containerClassName:"systemUsersSearch",placeholder:t({id:"admin.system_users.search.placeholder",defaultMessage:"Search users"}),inputPrefix:C.createElement("i",{className:"icon icon-magnify"}),onChange:function(e){const{target:{value:t}}=e;r(t),clearTimeout(n.current),n.current=setTimeout((()=>{a((0,h.p$)({searchTerm:t}))}),500)},onClear:function(){r(""),a((0,h.p$)({searchTerm:""}))},value:i}))}const $h=(0,A.defineMessages)({title:{id:"admin.system_users.title",defaultMessage:"{siteName} Users"}}),ef=[[$h.title,{siteName:""}]];function tf(e){const t=(0,c.zj)(e),a=t.SiteName,s="true"===t.EnableMultifactorAuthentication,n="true"===t.EnableUserAccessTokens,i="true"===t.ExperimentalEnableAuthenticationTransfer,r=(0,ti.HW)(e),l=(0,le.QH)(e);return{siteName:a,mfaEnabled:s,enableUserAccessTokens:n,experimentalEnableAuthenticationTransfer:i,currentUser:r,tablePropertySortColumn:l?.sortColumn??lh.hR.sortColumn,tablePropertySortIsDescending:l?.sortIsDescending??lh.hR.sortIsDescending,tablePropertyPageSize:l?.pageSize??lh.hR.pageSize,tablePropertyPageIndex:l?.pageIndex??lh.hR.pageIndex,tablePropertyCursorDirection:l?.cursorDirection??lh.hR.cursorDirection,tablePropertyCursorUserId:l?.cursorUserId??lh.hR.cursorUserId,tablePropertyCursorColumnValue:l?.cursorColumnValue??lh.hR.cursorColumnValue,tablePropertyColumnVisibility:l?.columnVisibility??lh.hR.columnVisibility,tablePropertySearchTerm:l?.searchTerm??lh.hR.searchTerm,tablePropertyFilterTeam:l?.filterTeam??oh.rw.AllTeams,tablePropertyFilterTeamLabel:l?.filterTeamLabel??"",tablePropertyFilterRole:l?.filterRole??oh.Oq.Any,tablePropertyFilterStatus:l?.filterStatus??oh.Bq.Any,tablePropertyDateRange:l?.dateRange??rh.p9.AllTime}}const af={getUserReports:h.N5,getUserCountForReporting:h.Qp,savePreferences:Ua.SF,setAdminConsoleUsersManagementTableProperties:h.p$},sf=((0,s.connect)(tf,af),(0,s.connect)(tf,af)((function(e){const{formatMessage:t}=(0,A.useIntl)(),a=(0,T.useHistory)(),[s,n]=(0,C.useState)([]),[i,r]=(0,C.useState)(),[l,o]=(0,C.useState)(Pu.PF.Loading);function d(e,t){n(s.map((a=>a.id===e?{...a,error:void 0,...t}:a)))}(0,C.useEffect)((()=>{(async t=>{const{data:a}=await e.getUserCountForReporting((0,vh.e2)(t));r(a)})({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,C.useEffect)((()=>{!async function(t){o(Pu.PF.Loading);const{data:a}=await e.getUserReports((0,vh.e2)(t));a?(a.length>0?n(a):n([]),o(Pu.PF.Loaded)):o(Pu.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 c=(0,C.useMemo)((()=>[{id:oh.nl.username,accessorKey:"username",header:t({id:"admin.system_users.list.userDetails",defaultMessage:"User details"}),cell:e=>{const a=Boolean(e.row.original?.remote_id?.length);return C.createElement("div",null,C.createElement("div",{className:"profilePictureContainer"},C.createElement("img",{className:"profilePicture",src:(0,L.RG)(e.row.original.id),"aria-hidden":"true"})),C.createElement("div",{className:"displayName",title:(0,L.Mn)(e.row.original)},(0,L.Mn)(e.row.original)||"",a&&C.createElement(dh.A,{title:t({id:"admin.system_users.list.userIsRemote",defaultMessage:"Remote user"}),ariaLabel:t({id:"admin.system_users.list.userIsRemoteAriaLabel",defaultMessage:"This is a remote user"}),role:"img",className:"icon-12",withTooltip:!0}
1)),C.createElement("div",{className:"userName",title:e.row.original.username},e.row.original.username),e.row.original.error&&C.createElement("div",{className:"error",title:e.row.original.error.message},e.row.original.error.message))},enableHiding:!1,enablePinning:!0,enableSorting:!0},{id:oh.nl.email,accessorKey:"email",header:t({id:"admin.system_users.list.email",defaultMessage:"Email"}),cell:e=>e.getValue()||"",enableHiding:!0,enablePinning:!1,enableSorting:!0},{id:oh.nl.createAt,accessorKey:"create_at",header:t({id:"admin.system_users.list.memberSince",defaultMessage:"Member since"}),cell:e=>C.createElement(Pu.HS,{date:e.getValue()}),enableHiding:!0,enablePinning:!1,enableSorting:!0},{id:oh.nl.lastLoginAt,accessorKey:"last_login",header:t({id:"admin.system_users.list.lastLoginAt",defaultMessage:"Last login"}),cell:e=>C.createElement(Pu.HS,{date:e.getValue()}),enableHiding:!0,enablePinning:!1,enableSorting:!1},{id:oh.nl.lastStatusAt,accessorKey:"last_status_at",header:t({id:"admin.system_users.list.lastActivity",defaultMessage:"Last activity"}),cell:e=>C.createElement(Pu.HS,{date:e.getValue()}),enableHiding:!0,enablePinning:!1,enableSorting:!1},{id:oh.nl.lastPostDate,accessorKey:"last_post_date",header:t({id:"admin.system_users.list.lastPost",defaultMessage:"Last post"}),cell:e=>C.createElement(Pu.HS,{date:e.getValue()}),enableHiding:!0,enablePinning:!1,enableSorting:!1},{id:oh.nl.daysActive,accessorKey:"days_active",header:t({id:"admin.system_users.list.daysActive",defaultMessage:"Days active"}),cell:e=>e.getValue()||null,meta:{isNumeric:!0},enableHiding:!0,enablePinning:!1,enableSorting:!1},{id:oh.nl.totalPosts,accessorKey:"total_posts",header:t({id:"admin.system_users.list.totalPosts",defaultMessage:"Messages posted"}),cell:e=>e.getValue()||null,meta:{isNumeric:!0},enableHiding:!0,enablePinning:!1,enableSorting:!1},{id:oh.nl.channelCount,accessorKey:"channel_count",header:t({id:"admin.system_users.list.channelCount",defaultMessage:"Channel count"}),cell:e=>e.getValue()??null,meta:{isNumeric:!0},enableHiding:!0,enablePinning:!1,enableSorting:!1},{id:oh.nl.actions,accessorKey:"actions",header:t({id:"admin.system_users.list.actions",defaultMessage:"Actions"}),cell:t=>t.row.original?.remote_id?.length?C.createElement(C.Fragment,null):C.createElement(Qh,{rowIndex:t.cell.row.index,tableId:"systemUsersTable",user:t.row.original,currentUser:e.currentUser,updateUser:e=>d(t.row.original.id,e),onError:e=>d(t.row.original.id,{error:e})}),enableHiding:!1,enablePinning:!0,enableSorting:!1}]),[e.currentUser,s]),m=[{id:e&&e.tablePropertySortColumn&&e.tablePropertySortColumn.length>0?e.tablePropertySortColumn:oh.nl.username,desc:e?.tablePropertySortIsDescending??!1}],u={pageIndex:e?.tablePropertyPageIndex??0,pageSize:e?.tablePropertyPageSize||Pu.tn[0]},g={...e.tablePropertyColumnVisibility},p=(0,xu.N4)({data:s,columns:c,state:{sorting:m,pagination:u,columnVisibility:g},meta:{tableId:"systemUsersTable",tableCaption:t({id:"admin.system_users.list.caption",defaultMessage:"System Users"}),loadingState:l,disablePrevPage:!e.tablePropertyCursorUserId||e.tablePropertyPageIndex<=0||"prev"===e.tablePropertyCursorDirection&&s.length<u.pageSize,disableNextPage:"next"===e.tablePropertyCursorDirection&&s.length<u.pageSize,onRowClick:function(e){if(0!==e.length){const t=s.find((t=>t.id===e))?.remote_id;t||a.push(`/admin_console/user_management/user/${e}`)}},onPreviousPageClick:function(){s.length&&e.setAdminConsoleUsersManagementTableProperties({pageIndex:e.tablePropertyPageIndex-1,cursorDirection:rh.gX.prev,cursorUserId:s[0].id,cursorColumnValue:(0,vh.Tx)(s[0],e.tablePropertySortColumn)})},onNextPageClick:function(){s.length&&e.setAdminConsoleUsersManagementTableProperties({pageIndex:e.tablePropertyPageIndex+1,cursorDirection:rh.gX.next,cursorUserId:s[s.length-1].id,cursorColumnValue:(0,vh.Tx)(s[s.length-1],e.tablePropertySortColumn)})},paginationInfo:(0,vh.XE)(u.pageIndex,u.pageSize,s.length,i),hasDualSidedPagination:!0},getCoreRowModel:(0,Lu.HT)(),getSortedRowModel:(0,Lu.h5)(),onPaginationChange:function(t){const a=t({pageIndex:0,pageSize:e.tablePropertyPageSize});e.setAdminConsoleUsersManagementTableProperties({pageIndex:0,cursorDirection:void 0,cursorUserId:void 0,cursorColumnValue:void 0,pageSize:a.pageSize})},onSortingChange:function(t){const a=[{id:e.tablePropertySortColumn,desc:e.tablePropertySortIsDescending}],[s]=t(a);e.tablePropertySortColumn!==s.id&&(s.desc=!1),e.setAdminConsoleUsersManagementTableProperties({pageIndex:0,cursorDirection:void 0,cursorUserId:void 0,cursorColumnValue:void 0,sortColumn:s.id,sortIsDescending:s.desc})},onColumnVisibilityChange:function(t){const a=t(e.tablePropertyColumnVisibility);e.setAdminConsoleUsersManagementTableProperties({columnVisibility:Object.assign({},e.tablePropertyColumnVisibility,a)})},manualSorting:!0,enableSortingRemoval:!1,enableMultiSort:!1,manualFiltering:!0,manualPagination:!0,renderFallbackValue:""});return C.createElement("div",{className:"wrapper--fixed","data-testid":"systemUsersSection"},C.createElement(fe,null,C.createElement(A.FormattedMessage,Object.assign({},$h.title,{values:{siteName:e.siteName}}),(e=>C.createElement("span",{id:"systemUsersTable-headerId"},e))),C.createElement(uh,null)),C.createElement("div",{className:"admin-console__wrapper"},C.createElement("div",{className:"admin-console__container ignore-marking"},C.createElement("div",{className:"admin-console__filters-rows"},C.createElement(Xh,{searchTerm:e.tablePropertySearchTerm}),C.createElement(Rh,{filterTeam:e.tablePropertyFilterTeam,filterTeamLabel:e.tablePropertyFilterTeamLabel,filterRole:e.tablePropertyFilterRole,filterStatus:e.tablePropertyFilterStatus}
1),C.createElement(gh,{allColumns:p.getAllLeafColumns(),visibleColumnsLength:p.getVisibleLeafColumns()?.length??0}),C.createElement(Mh,{dateRange:e.tablePropertyDateRange}),C.createElement(Sh,{currentUserId:e.currentUser.id,usersLenght:s.length})),C.createElement(Pu.z4,{table:p}))))}))),nf=10;class rf extends C.PureComponent{static defaultProps={data:[],noPadding:!1};constructor(e){super(e),this.state={loading:!0,page:0}}componentDidMount(){this.performSearch(this.state.page)}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)};nextPage=async e=>{e.preventDefault();const t=this.state.page+1;this.setState({page:t,loading:!0}),this.performSearch(t)};renderHeader=()=>this.props.data.length>0?this.props.header:null;renderRows=()=>{if(this.state.loading)return C.createElement("div",{className:"groups-list-loading"},C.createElement("i",{className:"fa fa-spinner fa-pulse fa-2x"}));if(0===this.props.data.length)return C.createElement("div",{className:"groups-list-empty"},C.createElement(A.FormattedMessage,this.props.emptyListText));const e=this.state.page*nf;return this.props.data.slice(e,e+nf).map(this.props.renderRow)};performSearch=e=>{this.setState({loading:!0}),this.props.actions.getData(e,nf,"",!1,!0).then((e=>{this.props.onPageChangedCallback&&this.props.onPageChangedCallback(this.getPaging(),e),this.setState({loading:!1})}))};getPaging(){const e=this.state.page*nf+1;let t=this.state.page*nf+nf;const a=this.props.total;return t>a&&(t=a),{startCount:e,endCount:t,total:a}}render=()=>{const{startCount:e,endCount:t,total:a}=this.getPaging(),{noPadding:s}=this.props,n=t===a,i=0===this.state.page;return C.createElement("div",{className:he()("groups-list","groups-list-no-padding",{"groups-list-less-padding":s})},this.renderHeader(),C.createElement("div",{id:"groups-list--body",className:"groups-list--body"},this.renderRows()),a>0&&C.createElement("div",{className:"groups-list--footer"},C.createElement("div",{className:"counter"},C.createElement(A.FormattedMessage,{id:"admin.team_channel_settings.list.paginatorCount",defaultMessage:"{startCount, number} - {endCount, number} of {total, number}",values:{startCount:e,endCount:t,total:a}})),C.createElement("button",{type:"button",className:"btn btn-tertiary prev "+(i?"disabled":""),onClick:i?void 0:this.previousPage,disabled:i},C.createElement(Ue.A,null)),C.createElement("button",{type:"button",className:"btn btn-tertiary next "+(n?"disabled":""),onClick:n?void 0:this.nextPage,disabled:n,"data-testid":"page-link-next"},C.createElement(Fe.A,null))))}}var lf=a(56707),of=a(73996),df=a(59050);const cf=e=>{let{channelId:t,className:a}=e;const n=(0,s.useDispatch)(),i=(0,s.useSelector)((e=>(0,of.lk)(e,t)),s.shallowEqual);return(0,C.useEffect)((()=>{t&&0===i.length&&n((0,lf.No)(t))}),[t,i.length,n]),C.createElement(df.A,{className:a,withTooltip:!0,remoteNames:i})},mf=(0,A.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 uf extends C.PureComponent{constructor(e){super(e),this.state={loading:!1,term:"",channels:[],page:0,total:0,searchErrored:!1,filters:{}}}componentDidMount(){this.loadPage()}isSearching=(e,t)=>e.length>0||Object.keys(t).length>0;getPaginationProps=()=>{const{page:e,term:t,filters:a}=this.state,s=this.isSearching(t,a)?this.state.total:this.props.total;let n=(e+1)*nf;return n=n>s?s:n,{startCount:e*nf+1,endCount:n,total:s}};loadPage=(()=>{var e=this;return async function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};e.setState({loading:!0,term:a,filters:s}),e.isSearching(a,s)?t>0?e.searchChannels(t,a,s):e.searchChannelsDebounced(t,a,s):(await e.props.actions.getData(t,nf,"",!1,!0,!1,!1),e.setState({page:t,loading:!1}))}})();searchChannels=(()=>{var e=this;return async function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=[],i=0,r=!0;const l=await e.props.actions.searchAllChannels(a,{...s,page:t,per_page:nf,include_deleted:s.deleted??!0,include_search_by_id:!0});l?.data&&(n=t>0?e.state.channels.concat(l.data.channels):l.data.channels,i=l.data.total_count,r=!1),e.setState({page:t,loading:!1,channels:n,total:i,searchErrored:r})}})();searchChannelsDebounced=(0,sn.sg)((()=>{var e=this;return function(t,a){let s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return e.searchChannels(t,a,s)}})(),300,!1,(()=>{}));nextPage=()=>{this.loadPage(this.state.page+1,this.state.term,this.state.filters)};previousPage=()=>{this.setState({page:this.state.page-1})};onSearch=(()=>{var e=this;return async function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";e.loadPage(0,t,e.state.filters)}})();getColumns=()=>[{name:C.createElement(A.FormattedMessage,{id:"admin.channel_settings.channel_list.nameHeader",defaultMessage:"Name"}),field:"name",width:4,fixed:!0},{name:C.createElement(A.FormattedMessage,{id:"admin.channel_settings.channel_list.teamHeader",defaultMessage:"Team"}),field:"team",width:1.5,fixed:!0},{name:C.createElement(A.FormattedMessage,{id:"admin.channel_settings.channel_list.managementHeader",defaultMessage:"Management"}),field:"management",fixed:!0},{name:"",field:"edit",textAlign:"right",fixed:!0}];getRows=()=>{const{data:e}=this.props,{channels:t,term:a,filters:s}=this.state,{startCount:n,endCount:i}=this.getPaginationProps();let r=this.isSearching(a,s)?t:e;return r=r.slice(n-1,i),r.map((e=>{const t=(0,Ds.gU)(e),a=C.createElement(t,{className:"channel-icon","data-testid":`${e.name}-archive-icon`}),s=e.shared?C.createElement(cf,{channelId:e.id,className:"channel-icon"}):null;return{cells:{id:e.id,name:C.createElement("span",{className:"group-name overflow--ellipsis row-content","data-testid":"channel-display-name"},a,C.createElement("span",{className:"TeamList_channelDisplayName"},e.display_name),s),team:C.createElement("span",{className:"group-description row-content"},e.team_display_name),management:C.createElement("span",{className:"group-description adjusted row-content"},C.createElement("span",{className:"group-indicator channel-indicator channel-indicator--larger"},e.policy_enforced?C.createElement(A.FormattedMessage,mf.attribute_based):e.group_constrained?C.createElement(A.FormattedMessage,mf.group):C.createElement(A.FormattedMessage,mf.manual))),edit:C.createElement("span",{className:"group-actions TeamList_editRow","data-testid":`${e.name}edit`},C.createElement(T.Link,{to:`/admin_console/user_management/channels/${e.id}`},C.createElement(A.FormattedMessage,{id:"admin.channel_settings.channel_row.configure",defaultMessage:"Edit"})))},onClick:()=>(0,en.J)().push(`/admin_console/user_management/channels/${e.id}`)}}))};onFilter=e=>{const t={},{group_constrained:a,exclude_group_constrained:s,access_control_policy_enforced:n}=e.management.values,{public:i,private:r,deleted:l}=e.channels.values,{team_ids:o}=e.teams.values;(i.value||r.value||l.value||a.value||s.value||o.value.length||n.value)&&(t.public=i.value,t.private=r.value,t.deleted=l.value,t.access_control_policy_enforced=n.value,a.value&&s.value||(t.group_constrained=a.value,t.exclude_group_constrained=s.value),t.team_ids=o.value),this.loadPage(0,this.state.term,t)};render=()=>{const{term:e,searchErrored:t}=this.state,a=this.getRows(),s=this.getColumns(),{startCount:n,endCount:i,total:r}=this.getPaginationProps();let l=C.createElement(A.FormattedMessage,{id:"admin.channel_settings.channel_list.no_channels_found",defaultMessage:"No channels found"});t&&(l=C.createElement(A.FormattedMessage,{id:"admin.channel_settings.channel_list.search_channels_errored",defaultMessage:"Something went wrong. Try again"}));const o={minHeight:40*a.length+"px"}
1,d={options:{teams:{name:"Teams",values:{team_ids:{name:C.createElement(A.FormattedMessage,{id:"admin.team_settings.title",defaultMessage:"Teams"}),value:[]}},keys:["team_ids"],type:gr.A},management:{name:"Management",values:{group_constrained:{name:C.createElement(A.FormattedMessage,{id:"admin.channel_list.group_sync",defaultMessage:"Group Sync"}),value:!1},exclude_group_constrained:{name:C.createElement(A.FormattedMessage,{id:"admin.channel_list.manual_invites",defaultMessage:"Manual Invites"}),value:!1},access_control_policy_enforced:{name:C.createElement(A.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:C.createElement(A.FormattedMessage,{id:"admin.channel_list.public",defaultMessage:"Public"}),value:!1},private:{name:C.createElement(A.FormattedMessage,{id:"admin.channel_list.private",defaultMessage:"Private"}),value:!1},deleted:{name:C.createElement(A.FormattedMessage,{id:"admin.channel_list.archived",defaultMessage:"Archived"}),value:!1}},keys:["public","private","deleted"]}},keys:["teams","channels","management"],onFilter:this.onFilter};return C.createElement("div",{className:"ChannelsList"},C.createElement(ee.A,{columns:s,rows:a,loading:this.state.loading,nextPage:this.nextPage,previousPage:this.previousPage,startCount:n,endCount:i,total:r,onSearch:this.onSearch,term:e,placeholderEmpty:l,rowsContainerStyles:o,filterProps:d}))}}const gf=(e,t)=>e.display_name.localeCompare(t.display_name),pf=(0,v.Mz)("getSortedListOfChannels",Is.ou,(e=>Object.values(e).filter((e=>e.type===ve.YM.OPEN_CHANNEL||e.type===ve.YM.PRIVATE_CHANNEL)).sort(gf))),hf=(0,s.connect)((function(e){return{data:pf(e),total:e.entities.channels.totalCount}}),(function(e){return{actions:(0,n.zH)({getData:ws.n$,searchAllChannels:ws.Q1},e)}}))(uf),ff=(0,s.connect)((function(e){return{siteName:(0,c.zj)(e).SiteName}}))((e=>{let{siteName:t}=e;return C.createElement("div",{className:"wrapper--fixed"},C.createElement(fe,null,C.createElement(A.FormattedMessage,{id:"admin.channel_settings.groupsPageTitle",defaultMessage:"{siteName} Channels",values:{siteName:t}})),C.createElement("div",{className:"admin-console__wrapper"},C.createElement("div",{className:"admin-console__content"},C.createElement(Tl,{id:"channels",title:(0,A.defineMessage)({id:"admin.channel_settings.title",defaultMessage:"Channels"}),subtitle:(0,A.defineMessage)({id:"admin.channel_settings.description",defaultMessage:"Manage channel settings."}),subtitleValues:{startCount:0,endCount:1,total:0}},C.createElement(hf,null)))))}));var Ef=a(54226);function Mf(e){const{show:t,onHide:a,onPolicySelected:s,actions:n}=e;return C.createElement(ks.zW,{id:"PolicySelectionModal",compassDesign:!0,show:t,onHide:a,backdrop:"static",modalHeaderText:C.createElement(A.FormattedMessage,{id:"admin.channel_settings.channel_detail.select_policy_title",defaultMessage:"Select an Access Control Policy"}),modalSubheaderText:C.createElement(A.FormattedMessage,{id:"admin.channel_settings.channel_detail.select_policy_description",defaultMessage:"An access control policy will restrict channel membership based on user attributes."})},C.createElement(Ts.A,{simpleMode:!0,onPolicySelected:s,actions:{searchPolicies:n.searchPolicies,deletePolicy:()=>Promise.resolve({data:{}})}}))}const bf=e=>{const{parentPolicies:t,actions:a}=e,[s,n]=(0,C.useState)(!1),i=(0,A.useIntl)();return 0===t.length?C.createElement(Jc,{id:"channel_access_control_policy",title:(0,A.defineMessage)({id:"admin.channel_settings.channel_detail.access_control_policy_title",defaultMessage:"Access policy"}),subtitle:(0,A.defineMessage)({id:"admin.channel_settings.channel_detail.access_control_policy_description",defaultMessage:"Select an access policy for this channel to restrict membership."}),buttonText:(0,A.defineMessage)({id:"admin.channel_settings.channel_detail.link_policy",defaultMessage:"Link to a policy"}),onButtonClick:()=>{n(!0)}},C.createElement(Mf,{show:s,onHide:()=>{n(!1)},onPolicySelected:e=>{a.onPolicySelected&&e&&a.onPolicySelected(e),n(!1)},actions:{searchPolicies:a.searchPolicies}})):C.createElement(Jc,{id:"channel_access_control_with_policy",title:(0,A.defineMessage)({id:"admin.channel_settings.channel_detail.access_control_policy_title",defaultMessage:"Access policy"}),subtitle:(0,A.defineMessage)({id:"admin.channel_settings.channel_detail.policy_following",defaultMessage:"This channel is currently using the following access policy."}),buttonText:(0,A.defineMessage)({id:"admin.channel_settings.channel_detail.remove_policy",defaultMessage:"Remove all"}),onButtonClick:()=>{a.onPolicyRemoveAll()}},C.createElement("div",{className:"group-teams-and-channels"},C.createElement("div",{className:"group-teams-and-channels--body"},C.createElement("div",{className:"access-policy-container"},!t&&C.createElement("div",{className:"access-policy-description"},C.createElement(A.FormattedMessage,{id:"admin.channel_settings.channel_detail.select_policy",defaultMessage:"Apply an access policy for this channel to restrict membership"})),t&&0!==t.length?C.createElement("div",{className:"policy-table-container"},C.createElement("table",{className:"policy-table"},C.createElement("thead",null,C.createElement("tr",null,C.createElement("th",
1null,C.createElement(A.FormattedMessage,{id:"admin.channel_settings.channel_detail.access_control_policy_name",defaultMessage:"Name"})),C.createElement("th",{className:"text-right"},C.createElement("span",{className:"sr-only"},C.createElement(A.FormattedMessage,{id:"admin.channel_settings.channel_detail.access_control_policy_actions",defaultMessage:"Actions"}))))),C.createElement("tbody",null,t.map((e=>C.createElement("tr",{key:e.id},C.createElement("td",{className:"policy-name"},e.name),C.createElement("td",{className:"text-right"},C.createElement(T.Link,{to:"/admin_console/system_attributes/membership_policies/edit_policy/"+e.id,className:"policy-edit-icon","aria-label":i.formatMessage({id:"admin.channel_settings.channel_detail.go_to_policy.aria_label",defaultMessage:"Go to the policy"})},C.createElement("i",{className:"fa fa-external-link"})),C.createElement("button",{className:"policy-remove-icon","aria-label":i.formatMessage({id:"admin.channel_settings.channel_detail.remove_policy.aria_label",defaultMessage:"Remove policy"}),onClick:()=>{a.onPolicyRemove(e.id)}}
1,C.createElement("i",{className:"fa fa-trash"}))))))))):null))))};var _f=a(40142);class yf extends C.PureComponent{constructor(e){super(e),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:a}=this.props.actions;this.setState({loading:!0}),await a(e,{in_group_id:this.props.groupID}),t===this.searchTimeoutId&&this.loadComplete()}),ve.Ay.SEARCH_TIMEOUT_MILLISECONDS);this.searchTimeoutId=t}}loadComplete=()=>{this.setState({loading:!1})};nextPage=async()=>{const{actions:e,groupID:t}=this.props,a=this.state.page+1;this.setState({loading:!0,page:a}),await e.getProfilesInGroup(t,a,20),this.setState({loading:!1})};previousPage=()=>{this.setState({page:this.state.page-1})};getRows=()=>{const{users:e}=this.props,{startCount:t,endCount:a}=this.getPaginationProps();let s=e;return s=s.slice(t-1,a),s.map((e=>({cells:{id:e.id,name:C.createElement(_p,{user:e})}})))};getColumns=()=>[{name:C.createElement(A.FormattedMessage,{id:"admin.member_list_group.name",defaultMessage:"Name"}),field:"name"}];getPaginationProps=()=>{let{total:e}=this.props;const{page:t}=this.state,a=10*this.state.page+1;let s=10*(t+1);return""!==this.props.searchTerm&&(e=this.props.users.length),s>e&&(s=e),{startCount:a,endCount:s,total:e}};render=()=>{const e=this.getRows(),t=this.getColumns(),{startCount:a,endCount:s,total:n}=this.getPaginationProps(),i=C.createElement(A.FormattedMessage,{id:"admin.member_list_group.notFound",defaultMessage:"No users found"});return C.createElement("div",{className:"MemberListGroup"},C.createElement(ee.A,{columns:t,rows:e,loading:this.state.loading,nextPage:this.nextPage,previousPage:this.previousPage,startCount:a,endCount:s,total:n,onSearch:this.props.actions.setModalSearchTerm,term:this.props.searchTerm||"",placeholderEmpty:i}))}}const vf=(0,s.connect)((function(e,t){const{groupID:a}=t,s=e.views.search.modalSearch;let n;return n=s?(0,g.Z9)(e,a,s):(0,g.dA)(e,a),{searchTerm:s,users:n,total:(0,_l.PY)(e,a)||0}}),(function(e){return{actions:(0,n.zH)({getProfilesInGroup:ms.dA,searchProfiles:ms.U,setModalSearchTerm:or.qv,getGroupStats:bl.f$},e)}}))(yf),Sf=e=>{let{group:t,onExited:a,onLoad:s}=e;const[n,i]=(0,C.useState)(!0);(0,C.useEffect)((()=>{s?.()}),[]);const r=(0,C.useCallback)((()=>{i(!1)}),[]),l=(0,C.useCallback)((()=>{a()}),[a]),o=C.createElement(A.FormattedMessage,{id:"admin.team_channel_settings.groupMembers.close",defaultMessage:"Close"});return C.createElement(Gn.Modal,{dialogClassName:"a11y__modal settings-modal",show:n,onHide:r,onExited:l,role:"none","aria-labelledby":"groupMemberModalLabel",id:"groupMembersModal"},C.createElement(Gn.Modal.Header,{closeButton:!0},C.createElement(Gn.Modal.Title,{componentClass:"h1",id:"groupMemberModalLabel"},t.display_name)),C.createElement(Gn.Modal.Body,null,C.createElement(vf,{groupID:t.id})),C.createElement(Gn.Modal.Footer,null,C.createElement("button",{autoFocus:!0,t
1ype:"button",className:"btn btn-primary",onClick:r,id:"closeModalButton"},o)))},Cf=C.memo(Sf);class Af extends C.PureComponent{removeGroup=e=>{e.preventDefault(),this.props.isDisabled||this.props.removeGroup(this.props.group.id)};setNewGroupRole=()=>{this.props.setNewGroupRole(this.props.group.id)};displayCurrentRole=()=>{const{group:e,type:t}=this.props,a=C.createElement(A.FormattedMessage,{id:"admin.team_channel_settings.group_row.channelAdmin",defaultMessage:"Channel Admin"}),s=C.createElement(A.FormattedMessage,{id:"admin.team_channel_settings.group_row.teamAdmin",defaultMessage:"Team Admin"}),n=C.createElement(A.FormattedMessage,{id:"admin.team_channel_settings.group_row.member",defaultMessage:"Member"});return e.scheme_admin&&"channel"===t?a:e.scheme_admin&&"team"===t?s:n};displayRoleToBe=()=>{const{group:e,type:t}=this.props;return e.scheme_admin||"channel"!==t?e.scheme_admin||"team"!==t?(0,L.Vw)({id:"admin.team_channel_settings.group_row.member",defaultMessage:"Member"}):(0,L.Vw)({id:"admin.team_channel_settings.group_row.teamAdmin",defaultMessage:"Team Admin"}):(0,L.Vw)({id:"admin.team_channel_settings.group_row.channelAdmin",defaultMessage:"Channel Admin"})};render=()=>{const{group:e}=this.props;return C.createElement("div",{id:"group",className:"group"},C.createElement("div",{id:"group-row",className:"group-row"},C.createElement("span",{className:"group-name row-content"},e.display_name||e.name),C.createElement("span",{className:"group-description row-content"},C.createElement(vp.A,{id:`${e.display_name}MembersToggle`,className:"color--link",modalId:ve.IQ.GROUP_MEMBERS,dialogType:Cf,dialogProps:{group:e}},C.createElement(A.FormattedMessage,{id:"admin.team_channel_settings.group_row.members",defaultMessage:"{memberCount, number} {memberCount, plural, one {member} other {members}}",values:{memberCount:e.member_count}}
1))),C.createElement("div",{className:"group-description row-content roles"},C.createElement(tr.A,{isDisabled:this.props.isDisabled},C.createElement("div",null,C.createElement("a",{"data-testid":"current-role"},C.createElement("span",null,this.displayCurrentRole()),C.createElement("span",{className:"caret"}))),C.createElement(er.A,{id:"role-to-be-menu",openLeft:!0,openUp:!1,ariaLabel:(0,L.Vw)({id:"admin.team_channel_settings.group_row.memberRole",defaultMessage:"Member Role"})},C.createElement(er.A.ItemAction,{id:"role-to-be",onClick:this.setNewGroupRole,text:this.displayRoleToBe()})))),C.createElement("span",{id:"group-actions",className:"group-actions"},C.createElement("a",{href:"#",onClick:this.removeGroup,className:this.props.isDisabled?"disabled":""},C.createElement(A.FormattedMessage,{id:"admin.team_channel_settings.group_row.remove",defaultMessage:"Remove"})))))}}const Tf=()=>C.createElement("div",{className:"groups-list--header"},C.createElement("div",{className:"group-name group-name-adjusted"},C.createElement(A.FormattedMessage,{id:"admin.team_channel_settings.group_list.nameHeader",defaultMessage:"Group Name"})),C.createElement("div",{className:"group-content"},C.createElement("div",{className:"group-description group-description-adjusted"},C.createElement(A.FormattedMessage,{id:"admin.team_channel_settings.group_list.membersHeader",defaultMessage:"Member Count"})),C.createElement("div",{className:"group-description group-description-adjusted"},C.createElement(A.FormattedMessage,{id:"admin.team_channel_settings.group_list.rolesHeader",defaultMessage:"Roles"})),C.createElement("div",{className:"group-actions"}))),Nf=e=>{let{removeGroup:t,setNewGroupRole:a,type:s,isDisabled:n,isModeSync:i,...r}=e;const l=(0,C.useCallback)((e=>C.createElement(Af,{key:e.id,group:e,removeGroup:t,setNewGroupRole:a,type:s,isDisabled:n})),[n,t,a,s]);return C.createElement(rf,Object.assign({header:C.createElement(Tf,null),renderRow:l,emptyListText:i?kf.emptyListModeSync:kf.emptyList},r))},kf=(0,A.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"}}),wf=(0,C.memo)(Nf),If=(0,s.connect)((function(e,t){return{data:t.groups,removeGroup:t.onGroupRemoved,setNewGroupRole:t.setNewGroupRole,total:t.totalGroups}}),(function(){return{actions:{getData:()=>Promise.resolve()}}}))(wf),Rf=e=>{const{onGroupRemoved:t,onAddCallback:a,totalGroups:s,groups:n,removedGroups:i,channel:r,synced:l,setNewGroupRole:o,isDisabled:d}=e;return C.createElement(Tl,{id:"channel_groups",title:l?(0,A.defineMessage)({id:"admin.channel_settings.channel_detail.syncedGroupsTitle",defaultMessage:"Synced Groups"}):(0,A.defineMessage)({id:"admin.channel_settings.channel_detail.groupsTitle",defaultMessage:"Groups"}),subtitle:l?(0,A.defineMessage)({id:"admin.channel_settings.channel_detail.syncedGroupsDescription",defaultMessage:"Add and remove channel members based on their group membership."}):(0,A.defineMessage)({id:"admin.channel_settings.channel_detail.groupsDescription",defaultMessage:"Select groups to be added to this channel."}),button:C.createElement(vp.A,{id:"addGroupsToChannelToggle",className:"btn btn-primary",modalId:ve.IQ.ADD_GROUPS_TO_CHANNEL,dialogType:_f.A,dialogProps:{channel:r,onAddCallback:a,skipCommit:!0,includeGroups:i,excludeGroups:n},disabled:d},C.createElement(A.FormattedMessage,{id:"admin.channel_settings.channel_details.add_group",defaultMessage:"Add Group"}))},r.id&&C.createElement(If,{channel:r,groups:n,totalGroups:s,onGroupRemoved:t,setNewGroupRole:o,isModeSync:l,type:"channel",isDisabled:d}))},Lf=e=>{let{channel:t,userAttributes:a,onRulesChange:n,initialExpression:i="",initialAutoSync:r=!1,isDisabled:l=!1}=e;const o=(0,s.useSelector)((e=>(0,Ws.Nh)(e))),[d,c]=(0,C.useState)(i),[m,u]=(0,C.useState)(i),[g,p]=(0,C.useState)(r),[h,f]=(0,C.useState)(r),[E,M]=(0,C.useState)(""),b=(0,$s.V)(t.id),_=(0,C.useRef)(!1);(0,C.useEffect)((()=>{c(i),p(r),_.current||(u(i),f(r),_.current=!0)}),[i,r]);const y=(0,C.useMemo)((()=>
1d!==m||g!==h),[d,m,g,h]);(0,C.useEffect)((()=>{n(y,d,g)}),[y,d,g,n]);const v=(0,C.useCallback)((e=>{c(e),M("")}),[]),S=(0,C.useCallback)((e=>{p(e.target.checked)}),[]),T=(0,C.useCallback)((e=>{M(e)}),[]);return C.createElement(C.Fragment,null,C.createElement(Jc,{id:"channel_level_access_rules",title:(0,A.defineMessage)({id:"admin.channel_details.rules.title",defaultMessage:"Channel-Specific Access Rules"}),subtitle:(0,A.defineMessage)({id:"admin.channel_details.rules.subtitle",defaultMessage:"Define additional rules specific to this channel. These rules work in addition to any parent policies applied above."}),className:"channel-level-access-rules"},C.createElement("div",{className:"channel-access-rules__editor"},C.createElement(un.Ay,{value:d,onChange:v,onValidate:()=>M(""),userAttributes:a,onParseError:T,channelId:t.id,actions:{getVisualAST:b.getVisualAST},enableUserManagedAttributes:o?.EnableUserManagedAttributes||!1,disabled:l}),E&&C.createElement("div",{className:"channel-access-rules__error"},C.createElement("i",{className:"icon icon-alert-outline"}),C.createElement("span",null,E))),d.trim()?C.createElement("div",{className:"channel-access-rules__auto-sync"},C.createElement("div",{className:"channel-access-rules__auto-sync-divider"}),C.createElement("div",{className:"channel-access-rules__auto-sync-content"},C.createElement("label",{className:"channel-access-rules__auto-sync-label"},C.createElement("input",{type:"checkbox",checked:g,onChange:S,disabled:l,className:"channel-access-rules__auto-sync-checkbox"}),C.createElement("span",{className:"channel-access-rules__auto-sync-text"},C.createElement(A.FormattedMessage,{id:"admin.channel_details.rules.auto_sync",defaultMessage:"Auto-add members based on access rules"}))),C.createElement("div",{className:"channel-access-rules__auto-sync-help"},C.createElement(A.FormattedMessage,{id:"admin.channel_details.rules.auto_sync_help",defaultMessage:"Users who match the configured attribute values will be automatically added as members"})))):null))};class xf extends C.PureComponent{getDropDownOptions=()=>"team"===this.props.scope?{makeAdmin:L.Vw({id:"team_members_dropdown.makeAdmin",defaultMessage:"Make Team Admin"}),makeMember:L.Vw({id:"team_members_dropdown.makeMember",defaultMessage:"Make Team Member"})}:{makeAdmin:L.Vw({id:"channel_members_dropdown.make_channel_admin",defaultMessage:"Make Channel Admin"}),makeMember:L.Vw({id:"channel_members_dropdown.make_channel_member",defaultMessage:"Make Channel Member"})};getCurrentRole=()=>{const{user:e,membership:t,scope:a}=this.props;if(e.roles.includes("system_admin"))return"system_admin";if(t){if("team"===a){if(e.remote_id)return"shared_member";if(t.scheme_admin)return"team_admin";if(t.scheme_user)return"team_user"}if("channel"===a){if(e.remote_id)return"shared_member";if(t.scheme_admin)return"channel_admin";if(t.scheme_user)return"channel_user"}}return"guest"};getLocalizedRole=e=>{switch(e){case"system_admin":return L.Vw({id:"admin.user_grid.system_admin",defaultMessage:"System Admin"});case"team_admin":return L.Vw({id:"admin.user_grid.team_admin",defaultMessage:"Team Admin"});case"channel_admin":return L.Vw({id:"admin.user_grid.channel_admin",defaultMessage:"Channel Admin"});case"shared_member":return L.Vw({id:"admin.user_grid.shared_member",defaultMessage:"Shared Member"});case"team_user":case"channel_user":return L.Vw({id:"admin.group_teams_and_channels_row.member",defaultMessage:"Member"});default:return L.Vw({id:"admin.user_grid.guest",defaultMessage:"Guest"})}};handleMakeAdmin=()=>{this.props.handleUpdateMembership({user_id:this.props.user.id,scheme_admin:!0,scheme_user:!0})};handleMakeUser=()=>{this.props.handleUpdateMembership({user_id:this.props.user.id,scheme_admin:!1,scheme_user:!0})};
1getAriaLabel=()=>{const{scope:e}=this.props;return"team"===e?L.Vw({id:"team_members_dropdown.menuAriaLabel",defaultMessage:"Change the role of a team member"}):L.Vw({id:"channel_members_dropdown.menuAriaLabel",defaultMessage:"Change the role of channel member"})};render=()=>{if(!this.props.membership)return null;const{user:e,isDisabled:t}=this.props,{makeAdmin:a,makeMember:s}=this.getDropDownOptions(),n=this.getCurrentRole(),i=this.getLocalizedRole(n),r=this.getAriaLabel();if("shared_member"===n)return C.createElement("div",{className:"more-modal__shared-actions"},C.createElement(Nt.A,{title:C.createElement(A.FormattedMessage,{id:"shared_user_indicator.tooltip",defaultMessage:"From trusted organizations"})},C.createElement("span",null,i,C.createElement("i",{className:"shared-user-icon icon-circle-multiple-outline"}))));const l=!["system_admin","guest"].includes(n),o=["channel_user","team_user"].includes(n),d=["channel_admin","team_admin"].includes(n);return l?C.createElement(tr.A,{isDisabled:t},C.createElement("button",{id:`userGridRoleDropdown_${e.username}`,className:"dropdown-toggle theme color--link style--none",type:"button","aria-expanded":"true"},C.createElement("span",null,i," "),C.createElement(rp.A,null)),C.createElement(er.A,{ariaLabel:r},C.createElement(er.A.ItemAction,{show:o,onClick:this.handleMakeAdmin,text:a}),C.createElement(er.A.ItemAction,{show:d,onClick:this.handleMakeUser,text:s}))):i}}class Df extends C.PureComponent{pageLoaded=0;constructor(e){super(e),this.state={loading:!1,page:0,membershipsToUpdate:{}}}loadPage=e=>{this.setState({loading:!0}),this.props.loadPage(e),this.setState({page:e,loading:!1})};nextPage=()=>{this.loadPage(this.state.page+1)};previousPage=()=>{this.loadPage(this.state.page-1)};onSearch=async e=>{this.props.onSearch(e),this.setState({page:0})};onFilter=async e=>{this.props.filterProps?.onFilter(e),this.setState({page:0})};getVisibleTotalCount=()=>{const{includeUsers:e,excludeUsers:t,totalCount:a}=this.props;return a+(Object.keys(e).length-Object.keys(t).length)};getPaginationProps=()=>{const{includeUsers:e,excludeUsers:t,term:a}=this.props,{page:s}=this.state;let n,i=0;const r=10*s+1;return""===a?n=this.getVisibleTotalCount():(n=this.props.users.length+Object.keys(e).length,this.props.users.forEach((e=>{t[e.id]&&(n-=1)}))),i=10*(s+1),i=i>n?n:i,{startCount:r,endCount:i,total:n}};removeUser=e=>{const{excludeUsers:t}=this.props;if(t[e.id]===e)return;let{page:a}=this.state;const{endCount:s}=this.getPaginationProps();this.props.removeUser(e),s>this.getVisibleTotalCount()&&s%10==1&&a>0&&a--,this.setState({page:a})};updateMembership=e=>{const{membershipsToUpdate:t}=this.state,{memberships:a}=this.props,s=e.user_id;t[s]={...a[s],...e},this.props.updateMembership(e),this.setState({membershipsToUpdate:t},this.forceUpdate)};newMembership=e=>({user_id:e.id,scheme_admin:!1,scheme_user:!e.roles.includes("guest")});getRows=()=>{const{page:e,membershipsToUpdate:t}=this.state,{memberships:a,users:s,excludeUsers:n,includeUsers:i,totalCount:r,term:l,scope:o,readOnly:d}=this.props,{startCount:c,endCount:m}=this.getPaginationProps();let u=s;const g=Object.values(i);if(u=u.filter((e=>!n[e.id])),u=[...g,...u],u=u.slice(c-1,m),""===l&&u.length<10&&s.length<r){const t=Object.keys(n).length,a=e+Math.floor(t/10)+1;a>this.pageLoaded&&(this.props.loadPage(a),this.pageLoaded=a)}return u.map((e=>{const s=t[e.id]||a[e.id]||this.newMembership(e);return{cells:{id:e.id,name:C.createElement(_p,{user:e}),new:i[e.id]?C.createElement(At.A,{className:"NewUserBadge",text:C.createElement(A.FormattedMessage,{id:"admin.user_grid.new",defaultMessage:"New"})}):null,role:C.createElement(xf,{user:e,membership:s,handleUpdateMembership:this.updateMembership,scope:o,isDisabled:d}),remove:C.createElement(yp,{user:e,removeUser:this.removeUser,isDisabled:d})}}}))};getColumns=()=>[{name:C.createElement(A.FormattedMessage,{id:"admin.user_grid.name",defaultMessage:"Name"}),field:"name",width:3,fixed:!0},{name:"",field:"new",fixed:!0},{name:C.createElement(A.FormattedMessage,{id:"admin.user_grid.role",defaultMessage:"Role"}),field:"role",overflow:"visible"},{name:"",field:"remove",textAlign:"right",fixed:!0}];render=()=>{const e=this.getRows(),t=this.getColumns(),{startCount:a,endCount:s,total:n}
1=this.getPaginationProps(),i=C.createElement(A.FormattedMessage,{id:"admin.user_grid.notFound",defaultMessage:"No users found"}),r={minHeight:80*e.length+"px"};return C.createElement(ee.A,{columns:t,rows:e,loading:this.state.loading||this.props.loading,nextPage:this.nextPage,previousPage:this.previousPage,startCount:a,endCount:s,total:n,onSearch:this.onSearch,term:this.props.term||"",placeholderEmpty:i,rowsContainerStyles:r,filterProps:{...this.props.filterProps,onFilter:this.onFilter}})}}var Pf=a(46);class Of extends C.PureComponent{constructor(e){super(e),this.searchTimeoutId=0,this.state={loading:!0}}componentDidMount(){const{channelId:e}=this.props,{loadProfilesAndReloadChannelMembers:t,getChannelStats:a,setUserGridSearch:s,setUserGridFilters:n}=this.props.actions;Promise.all([s(""),n({}),a(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),a=e.searchTerm!==this.props.searchTerm;if(t||a){this.setStateLoading(!0),clearTimeout(this.searchTimeoutId);const{searchTerm:a,filters:s}=this.props;if(""===a)return this.searchTimeoutId=0,t&&await e.actions.loadProfilesAndReloadChannelMembers(0,20,e.channelId,"",{active:!0,...s}),void this.setStateLoading(!1);const n=window.setTimeout((async()=>{await e.actions.searchProfilesAndChannelMembers(a,{...s,in_channel_id:this.props.channelId,allow_inactive:!1}),n===this.searchTimeoutId&&this.setStateLoading(!1)}),ve.Ay.SEARCH_TIMEOUT_MILLISECONDS);this.searchTimeoutId=n}}setStateLoading=e=>{this.setState({loading:e})};loadPage=async e=>{const{loadProfilesAndReloadChannelMembers:t}=this.props.actions,{channelId:a,filters:s}=this.props;await t(e+1,10,a,"",{active:!0,...s})};removeUser=e=>{this.props.onRemoveCallback(e)};onAddCallback=e=>{this.props.onAddCallback(e)};onSearch=async e=>{this.props.actions.setUserGridSearch(e)};updateMembership=e=>{this.props.updateRole(e.user_id,e.scheme_user,e.scheme_admin)};onFilter=async e=>{const t=e.role.values,a=[],s=[];let n={};Object.keys(t).forEach((e=>{t[e].value&&(e.includes("channel")?s.push(e):a.push(e))})),a.length>0||s.length>0?(a.length>0&&(n={roles:a}),s.length>0&&(n={...n,channel_roles:s}),this.props.actions.setUserGridFilters(n),this.props.actions.getFilteredUsersStats({in_channel:this.props.channelId,include_bots:!0,...n})):this.props.actions.setUserGridFilters(n)};render=()=>{const{users:e,channel:t,channelId:a,usersToAdd:s,usersToRemove:n,channelMembers:i,totalCount:r,searchTerm:l,isDisabled:o}=this.props,d={role:{name:C.createElement(A.FormattedMessage,{id:"admin.user_grid.role",defaultMessage:"Role"}),values:{[vc.A.SYSTEM_GUEST_ROLE]:{name:C.createElement(A.FormattedMessage,{id:"admin.user_grid.guest",defaultMessage:"Guest"}),value:!1},[vc.A.CHANNEL_USER_ROLE]:{name:C.createElement(A.FormattedMessage,{id:"admin.user_item.member",defaultMessage:"Member"}),value:!1},[vc.A.CHANNEL_ADMIN_ROLE]:{name:C.createElement(A.FormattedMessage,{id:"admin.user_grid.channel_admin",defaultMessage:"Channel Admin"}),value:!1},[vc.A.SYSTEM_ADMIN_ROLE]:{name:C.createElement(A.FormattedMessage,{id:"admin.user_grid.system_admin",defaultMessage:"System Admin"}),value:!1}},keys:[vc.A.SYSTEM_GUEST_ROLE,vc.A.CHANNEL_USER_ROLE,vc.A.CHANNEL_ADMIN_ROLE,vc.A.SYSTEM_ADMIN_ROLE]}};this.props.enableGuestAccounts||(delete d.role.values[vc.A.SYSTEM_GUEST_ROLE],d.role.keys=[vc.A.CHANNEL_USER_ROLE,vc.A.CHANNEL_ADMIN_ROLE,vc.A.SYSTEM_ADMIN_ROLE]);const c={options:d,keys:["role"],onFilter:this.onFilter};return C.createElement(Tl,{id:"channelMembers",title:(0,A.defineMessage)({id:"admin.channel_settings.channel_detail.membersTitle",defaultMessage:"Members"}),subtitle:(0,A.defineMessage)({id:"admin.channel_settings.channel_detail.membersDescription",defaultMessage:"A list of users who are currently in the channel right now"}),button:C.createElement(vp.A,{id:"addChannelMembers",className:"btn btn-primary",modalId:ve.IQ.CHANNEL_INVITE,dialogType:Pf.A,disabled:o,dialogProps:{channel:t,channelId:a,teamId:t?.team_id,onAddCallback:this.onAddCallback,skipCommit:!0,excludeUsers:s,includeUsers:n}},C.createElement(A.FormattedMessage,{id:"admin.team_settings.team_details.add_members",defaultMessage:"Add Members"}))},C.createElement(Df,{loading:this.state.loading||Boolean(this.props.loading),users:e,loadPage:this.loadPage,removeUser:this.removeUser,totalCount:r,memberships:i,updateMembership:this.updateMembership,onSearch:this.onSearch,includeUsers:s,excludeUsers:n,term:l,scope:"channel",readOnly:o,filterProps:c}))}}const Ff=(0,v.Mz)("getUserGridFilters",(e=>e.views.search.userGridSearch.filters),(function(){return{...arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},active:!0}}
1)),Uf=(0,s.connect)((function(){const e=(0,g.dH)(),t=(0,g.fJ)();return function(a,s){const{channelId:n,usersToRemove:i}=s;let{usersToAdd:r}=s;const l=(0,c.zj)(a),o=(0,Is.a9)(a)[n]||{},d=(0,Is.c)(a,n),m=a.views.search.userGridSearch?.term||"",u=Ff(a);let p;p=1===Object.keys(u).length?((0,Is.IZ)(a)[n]||{member_count:0,channel_id:n,pinnedpost_count:0,guest_count:0,files_count:0}).member_count:((0,g.$c)(a)||{total_users_count:0}).total_users_count??0;let h=[];return m?(h=t(a,n,m,!1,u),r=function(e,t){const a=(0,Mp.V3)(Object.values(e),t);return(0,g.f9)((0,Mp.vC)(a),{})}(r,m)):h=e(a,n,u),{filters:u,channelId:n,channel:d,users:h,channelMembers:o,usersToAdd:r,usersToRemove:i,totalCount:p,searchTerm:m,enableGuestAccounts:"true"===l.EnableGuestAccounts}}}),(function(e){return{actions:(0,n.zH)({getChannelStats:ws.Fe,loadProfilesAndReloadChannelMembers:ft.fQ,searchProfilesAndChannelMembers:ft.uh,getFilteredUsersStats:ms.$c,setUserGridSearch:or.u,setUserGridFilters:or.dj},e)}}))(Of),Bf=/\./g,Hf="create_post",Gf="reactions",Vf="manage_{public_or_private}_channel_members",zf="use_channel_mentions",jf="manage_{public_or_private}_channel_bookmarks";function Wf(e){const t=(0,A.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})."}}),a=(0,A.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})."}}),s=(0,A.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})."}}),n=(0,A.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."}}),i=(0,A.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})."}});
1return e===o.xB.CHANNEL_MODERATED_PERMISSIONS.CREATE_POST?t:e===o.xB.CHANNEL_MODERATED_PERMISSIONS.CREATE_REACTIONS?a:e===o.xB.CHANNEL_MODERATED_PERMISSIONS.MANAGE_MEMBERS?s:e===o.xB.CHANNEL_MODERATED_PERMISSIONS.USE_CHANNEL_MENTIONS?n:e===o.xB.CHANNEL_MODERATED_PERMISSIONS.MANAGE_BOOKMARKS?i:null}const Yf=(0,A.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."}}),qf=e=>{const t=Wf(e.name);let a=t?.description.id,s=t?.description.defaultMessage;return!e.guestAccountsEnabled&&t?.descriptionMembers&&(a=t.descriptionMembers?.id??"",s=t?.descriptionMembers?.defaultMessage??""),C.createElement("tr",null,C.createElement("td",null,C.createElement("div",{className:"as-bs-label","data-testid":t?.title?.id?.replace(Bf,"-")},C.createElement(A.FormattedMessage,{id:t?.title?.id,defaultMessage:t?.title?.defaultMessage})),C.createElement("div",{"data-testid":t?.description?.id?.replace(Bf,"-")},C.createElement(A.FormattedMessage,{id:a,defaultMessage:s})),e.errorMessages),e.guestAccountsEnabled&&C.createElement("td",null,!Il()(e.guests)&&C.createElement("button",{type:"button","data-testid":`${e.name}-${o.YK.GUESTS}`,className:he()("checkbox",{checked:e.guests&&!e.guestsDisabled,disabled:e.guestsDisabled}),onClick:()=>e.onClick(e.name,o.YK.GUESTS),disabled:e.guestsDisabled||e.readOnly},e.guests&&!e.guestsDisabled&&C.createElement(zl.A,null))),C.createElement("td",null,!Il()(e.members)&&C.createElement("button",{type:"button","data-testid":`${e.name}-${o.YK.MEMBERS}`,className:he()("checkbox",{checked:e.members&&!e.membersDisabled,disabled:e.membersDisabled}),onClick:()=>e.onClick(e.name,o.YK.MEMBERS),disabled:e.membersDisabled||e.readOnly},e.members&&!e.membersDisabled&&C.createElement(zl.A,null))))};class Zf extends C.PureComponent{errorMessagesToDisplay=e=>{const t=Wf(e.name),a=[],s=!Il()(e.roles.guests?.enabled)&&!e.roles.guests?.enabled&&this.props.guestAccountsEnabled,n=!e.roles.members.enabled;let i,r,l,d="";if(e.name===o.xB.CHANNEL_MODERATED_PERMISSIONS.USE_CHANNEL_MENTIONS){const e=this.props.channelPermissions&&this.props.channelPermissions.find((e=>e.name===o.xB.CHANNEL_MODERATED_PERMISSIONS.CREATE_POST));if(!e.roles.guests.value&&this.props.guestAccountsEnabled&&!e.roles.members.value)return a.push(C.createElement("div",{"data-testid":t?.disabledBothDueToCreatePosts?.id?.replace(Bf,"-"),key:t?.disabledBothDueToCreatePosts?.id},C.createElement(A.FormattedMessage,{id:t?.disabledBothDueToCreatePosts?.id,defaultMessage:t?.disabledBothDueToCreatePosts?.defaultMessage}))),a;!e.roles.guests.value&&this.props.guestAccountsEnabled?(d="disabledGuestsDueToCreatePosts",a.push(C.createElement("div",{"data-testid":t?.disabledGuestsDueToCreatePosts?.id?.replace(Bf,"-"),key:t?.disabledGuestsDueToCreatePosts?.id},C.createElement(A.FormattedMessage,{id:t?.disabledGuestsDueToCreatePosts?.id,defaultMessage:t?.disabledGuestsDueToCreatePosts?.defaultMessage})))):e.roles.members.value||(d="disabledMembersDueToCreatePosts",a.push(C.createElement("div",{"data-testid":t?.disabledMembersDueToCreatePosts?.id?.replace(Bf,"-"),key:t?.disabledMembersDueToCreatePosts?.id},C.createElement(A.FormattedMessage,{id:t?.disabledMembersDueToCreatePosts?.id,defaultMessage:t?.disabledMembersDueToCreatePosts?.defaultMessage}))))}let c="System Scheme",m="system_scheme";this.props.teamSchemeID&&(c=this.props?.teamSchemeDisplayName+" Team Scheme",m=`team_override_scheme/${this.props.teamSchemeID}`);const u=(g=e.name)===o.xB.CHANNEL_MODERATED_PERMISSIONS.CREATE_POST?{disabledGuests:"guest_create_post",disabledMembers:Hf,disabledBoth:Hf}:g===o.xB.CHANNEL_MODERATED_PERMISSIONS.CREATE_REACTIONS?{disabledGuests:"guest_reactions",disabledMembers:Gf,disabledBoth:Gf}:g===o.xB.CHANNEL_MODERATED_PERMISSIONS.MANAGE_MEMBERS?{disabledGuests:"guest_manage_{public_or_private}_channel_members",disabledMembers:Vf,disabledBoth:Vf}
1:g===o.xB.CHANNEL_MODERATED_PERMISSIONS.USE_CHANNEL_MENTIONS?{disabledGuests:"guest_use_channel_mentions",disabledMembers:zf,disabledBoth:zf}:g===o.xB.CHANNEL_MODERATED_PERMISSIONS.MANAGE_BOOKMARKS?{disabledGuests:"guest_manage_{public_or_private}_channel_bookmarks",disabledMembers:jf,disabledBoth:jf}:null;var g;if(s&&n&&a.length<=0){if(i="disabledBoth",u?.disabledBoth&&(m+=`?rowIdFromQuery=${u.disabledBoth}`,m.includes("{public_or_private}"))){const e=this.props.isPublic?"public":"private";m=m.replace("{public_or_private}",e)}r=t?.disabledBoth?.id,l=t?.disabledBoth?.defaultMessage}else if(s&&"disabledGuestsDueToCreatePosts"!==d){if(i="disabledGuests",u?.disabledGuests&&(m+=`?rowIdFromQuery=${u.disabledGuests}`,m.includes("{public_or_private}"))){const e=this.props.isPublic?"public":"private";m=m.replace("{public_or_private}",e)}r=t?.disabledGuests?.id,l=t?.disabledGuests?.defaultMessage}else if(n&&"disabledMembersDueToCreatePosts"!==d){if(i="disabledMembers",u?.disabledMembers&&(m+=`?rowIdFromQuery=${u.disabledMembers}`,m.includes("{public_or_private}"))){const e=this.props.isPublic?"public":"private";m=m.replace("{public_or_private}",e)}r=t?.disabledMembers?.id,l=t?.disabledMembers?.defaultMessage}if(m.includes("{public_or_private}")){const e=this.props.isPublic?"public":"private";m=m.replace("{public_or_private}",e)}return i&&a.push(C.createElement("div",{"data-testid":r?.replace(Bf,"-"),key:r},C.createElement(ct.A,{id:r,defaultMessage:l,values:{scheme_name:c,scheme_link:m}}))),a};render=()=>{const{channelPermissions:e,guestAccountsEnabled:t,onChannelPermissionsChanged:a,readOnly:s}=this.props;return C.createElement(Tl,{id:"channel_moderation",title:Yf.titleMessage,subtitle:t?Yf.subtitleMessageForMembersAndGuests:Yf.subtitleMessageForMembers},C.createElement("div",{className:"channel-moderation"},C.createElement("div",{className:"channel-moderation--body"},C.createElement("table",{id:"channel_moderation_table",className:"channel-moderation--table"},C.createElement("thead",null,C.createElement("tr",null,C.createElement("th",
1null,C.createElement(A.FormattedMessage,{id:"admin.channel_settings.channel_moderation.permissions",defaultMessage:"Permissions"})),t&&C.createElement("th",null,C.createElement(A.FormattedMessage,{id:"admin.channel_settings.channel_moderation.guests",defaultMessage:"Guests"})),C.createElement("th",null,C.createElement(A.FormattedMessage,{id:"admin.channel_settings.channel_moderation.members",defaultMessage:"Members"})))),C.createElement("tbody",null,e?.map((e=>C.createElement(qf,{key:e.name,name:e.name,guests:e.roles.guests?.value,guestsDisabled:!e.roles.guests?.enabled,members:e.roles.members.value,membersDisabled:!e.roles.members.enabled,onClick:a,errorMessages:this.errorMessagesToDisplay(e),guestAccountsEnabled:t,readOnly:s}))))))))}}const Jf=e=>{const{isPublic:t,isSynced:a,isDefault:s,onToggle:n,isDisabled:i,policyEnforced:r}=e;return C.createElement(Al,{id:"syncGroupSwitch",disabled:i||s||r,toggled:a,last:a,onToggle:()=>{s||n(!a,t,r)},title:C.createElement(A.FormattedMessage,{id:"admin.channel_settings.channel_details.syncGroupMembers",defaultMessage:"Sync Group Members"}),subTitle:C.createElement(A.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=>C.createElement(Ge.A,{href:"https://www.mattermost.com/pl/default-ldap-group-constrained-team-channel.html",location:"channel_modes"},e)}})})},Kf=e=>{const{isPublic:t,isSynced:a,isDefault:s,onToggle:n,isDisabled:i,policyEnforced:r}=e;return a?null:C.createElement(Al,{id:"allow-all-toggle",disabled:i||s||r,toggled:t,last:!1,onToggle:()=>{s||n(a,!t,r)},title:C.createElement(A.FormattedMessage,{id:"admin.channel_settings.channel_details.isPublic",defaultMessage:"Public channel or private channel"}),subTitle:s?C.createElement(A.FormattedMessage,{id:"admin.channel_settings.channel_details.isDefaultDescr",defaultMessage:"This default channel cannot be converted into a private channel."}):C.createElement(A.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:C.createElement("br",null)}}),onText:C.createElement(A.FormattedMessage,{id:"channel_toggle_button.public",defaultMessage:"Public"}),offText:C.createElement(A.FormattedMessage,{id:"channel_toggle_button.private",defaultMessage:"Private"})})},Qf=e=>{const{isPublic:t,isSynced:a,isDefault:s,onToggle:n,isDisabled:i,policyEnforced:r,policyEnforcedToggleAvailable:l}=e;return a?null:C.createElement(Al,{id:"policy-enforce-toggle",disabled:i||a||t||!l,toggled:r,last:!0,onToggle:()=>{!s&&l&&n(a,t,!r)},title:C.createElement(A.FormattedMessage,{id:"admin.channel_settings.channel_details.policy_enforced_title",defaultMessage:"Enable attribute based channel access"}),subTitle:s||t?C.createElement(A.FormattedMessage,{id:"admin.channel_settings.channel_details.private_channel_only",defaultMessage:"Only private channels can be attribute based."}):C.createElement(A.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."})})},Xf=e=>{const{isPublic:t,isSynced:a,isDefault:s,onToggle:n,isDisabled:i,groupsSupported:r,policyEnforced:l,policyEnforcedToggleAvailable:o,abacSupported:d}=e;return C.createElement(Tl,{id:"channel_manage",title:(0,A.defineMessage)({id:"admin.channel_settings.channel_detail.manageTitle",defaultMessage:"Channel Management"}),subtitle:(0,A.defineMessage)({id:"admin.channel_settings.channel_detail.manageDescription",defaultMessage:"Choose between inviting members manually or syncing members automatically from groups."})},C.createElement("div",{className:"group-teams-and-channels"},C.createElement("div",{className:"group-teams-and-channels--body"},!l&&r&&C.createElement(Jf,{isPublic:t,isSynced:a,isDefault:s,onToggle:n,isDisabled:i,policyEnforced:l,policyEnforcedToggleAvailable:o}),C.createElement(Kf,{isPublic:t,isSynced:a,isDefault:s,onToggle:n,isDisabled:i,policyEnforced:l,policyEnforcedToggleAvailable:o}),d&&C.createElement(Qf,{isPublic:t,isSynced:a,isDefault:s,onToggle:n,isDisabled:i,policyEnforced:l,policyEnforcedToggleAvailable:o}))))},$f=e=>{const{team:t,channel:a,isArchived:s,isDisabled:n}=e,i=s?(0,A.defineMessage)({id:"admin.channel_settings.channel_details.unarchiveChannel",defaultMessage:"Unarchive Channel"}):(0,A.defineMessage)({id:"admin.channel_settings.channel_details.archiveChannel",defaultMessage:"Archive Channel"});let r;return a.shared&&a.type&&(r=C.createElement("div",{className:"channel-organizations"},C.createElement("b",null,C.createElement(A.FormattedMessage,{id:"admin.channelSettings.channelDetail.channel_organizations",defaultMessage:"Organizations"})),C.createElement("br",null),C.createElement(df.A,{className:"shared-channel-icon"}),C.createElement(A.FormattedMessage,{id:"admin.channel_settings.channel_detail.channelOrganizationsMessage",defaultMessage:"Shared with trusted organizations"}
1))),C.createElement(Tl,{id:"channel_profile",title:(0,A.defineMessage)({id:"admin.channel_settings.channel_detail.profileTitle",defaultMessage:"Channel Profile"}),subtitle:(0,A.defineMessage)({id:"admin.channel_settings.channel_detail.profileDescription",defaultMessage:"Summary of the channel, including the channel name."})},C.createElement("div",{className:"group-teams-and-channels AdminChannelDetails"},C.createElement("div",{className:"group-teams-and-channels--body channel-desc-col"},C.createElement("div",{className:"channel-name"},C.createElement("b",null,C.createElement(A.FormattedMessage,{id:"admin.channelSettings.channelDetail.channelName",defaultMessage:"Name"})),C.createElement("br",null),a.display_name),C.createElement("div",{className:"channel-team"},C.createElement("b",null,C.createElement(A.FormattedMessage,{id:"admin.channelSettings.channelDetail.channelTeam",defaultMessage:"Team"})),C.createElement("br",null),t?.display_name),r,C.createElement("div",{className:"AdminChannelDetails_archiveContainer"},C.createElement("button",{type:"button",className:he()("btn","btn-secondary",{"btn-danger":!s},{disabled:n}),onClick:e.onToggleArchive},s?C.createElement("i",{className:"icon icon-archive-arrow-up-outline"}):C.createElement("i",{className:"icon icon-archive-outline"}),C.createElement(A.FormattedMessage,i))))))},eE=(0,A.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}}?"}}),tE=e=>{let{show:t,onConfirm:a,onCancel:s,displayName:n,toPublic:i,removeAmount:r}=e;const l=i?eE.toPublicTitle:eE.toPrivateTitle,o=i?eE.toPublicMessage:eE.toPrivateMessage,d=i?eE.toPublicMessageSecondLine:eE.toPrivateMessageSecondLine,c=i?eE.toPublicConfirm:eE.toPrivateConfirm,m=C.createElement(A.FormattedMessage,Object.assign({},l,{values:{amount:r}})),u=C.createElement(C.Fragment,null,C.createElement("p",null,C.createElement(A.FormattedMessage,Object.assign({},o,{values:{displayName:C.createElement("strong",null,n)}}))),C.createElement("p",null,C.createElement(A.FormattedMessage,Object.assign({},d,{values:{displayName:C.createElement("strong",null,n)}}))),C.createElement("p",null,C.createElement(A.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}})),C.createElement("p",null,C.createElement(A.FormattedMessage,{id:"admin.team_channel_settings.removeConfirmModal.messageChannelSecondLine",defaultMessage:"Are you sure you wish to remove these users?"}))),g=C.createElement(A.FormattedMessage,Object.assign({},c,{values:{amount:r}})),p=C.createElement(A.FormattedMessage,{id:"admin.team_channel_settings.convertAndRemoveConfirmModal.cancel",defaultMessage:"No, cancel"});return C.createElement(Aa.A,{show:t,title:m,message:u,modalClass:"discard-changes-modal",confirmButtonClass:"btn btn-primary",confirmButtonText:g,cancelButtonText:p,onConfirm:a,onCancel:s})};var aE=a(45495);function sE(e){const{user:t}=e,a=t.groups||[];let s;const n=C.createElement(A.FormattedMessage,{id:"team_channel_settings.group.group_user_row.numberOfGroups",defaultMessage:"{amount, number} {amount, plural, one {Group} other {Groups}}",values:{amount:a.length}});if(1===a.length)s=String(a[0].display_name);else if(0===a.length)s=n;else{const e=a.map((e=>e.display_name)).join(", ");s=C.createElement(Nt.A,{title:e},C.createElement("a",{href:"#"},n))}return C.createElement("div",{className:"UsersToRemoveGroups"},s)}function nE(e){const t=(0,A.useIntl)(),{user:a,membership:s,scope:n}=e;let i,r="guest";switch(a.roles?.includes("system_admin")?r="system_admin":s&&("team"===n&&(s.scheme_admin?r="team_admin":s.scheme_user&&(r="team_user")),"channel"===n&&(s.scheme_admin?r="channel_admin":s.scheme_user&&(r="channel_user"))),r){case"system_admin":i=t.formatMessage({id:"admin.user_grid.system_admin",defaultMessage:"System Admin"});break;case"team_admin":i=t.formatMessage({id:"admin.user_grid.team_admin",defaultMessage:"Team Admin"});break;case"channel_admin":i=t.formatMessage({id:"admin.user_grid.channel_admin",defaultMessage:"Channel Admin"});break;case"team_user":case"channel_user":i=t.formatMessage({id:"admin.group_teams_and_channels_row.member",defaultMessage:"Member"});break;default:i=t.formatMessage({id:"admin.user_grid.guest",defaultMessage:"Guest"})}return C.createElement("div",{className:"UsersToRemoveRole"},i)}
1class iE extends C.PureComponent{constructor(e){super(e),this.state={page:0,loading:!0}}async componentDidMount(){const{members:e,total:t}=this.props,a=[];let s=0;for(;s<t;)a.push(this.loadMembersForProfilesList(e.slice(s,s+100))),s+=100;await Promise.all(a),this.setStateLoading(!1)}setStateLoading=e=>{this.setState({loading:e})};componentWillUnmount(){this.props.actions.setModalSearchTerm(""),this.props.actions.setModalFilters({})}loadMembersForProfilesList=async e=>{const{loadChannelMembersForProfilesList:t,loadTeamMembersForProfilesList:a}=this.props.actions,{scope:s,scopeId:n}=this.props;"channel"===s?await t(e,n):"team"===s&&await a(e,n)};previousPage=async()=>{const e=this.state.page<1?0:this.state.page-1;this.setState({page:e})};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})};onSearch=e=>{this.props.actions.setModalSearchTerm(e),this.setState({page:0})};onFilter=async e=>{const t=e.role.values,a=[],s=[],n=[];let i={};Object.keys(t).forEach((e=>{t[e].value&&(e.includes("team")?s.push(e):e.includes("channel")?n.push(e):a.push(e))})),(a.length>0||s.length>0||n.length>0)&&(a.length>0&&(i={roles:a}),s.length>0&&(i={...i,team_roles:s}),n.length>0&&(i={...i,channel_roles:n})),this.props.actions.setModalFilters(i),this.setState({page:0})};getPaginationProps=()=>{const{page:e}=this.state,t=10*e+1;let a=10*e+10;const s=this.props.total;return a>s&&(a=s),{startCount:t,endCount:a,page:e,lastPage:a===s,firstPage:0===e,total:s}};getRows=()=>{const{members:e,memberships:t,scope:a}=this.props,{startCount:s,endCount:n}=this.getPaginationProps();let i=e;return i=i.slice(s-1,n),this.state.loading?[]:i.map((e=>({cells:{id:e.id,name:C.createElement(_p,{key:e.id,user:e}),role:C.createElement(nE,{key:e.id,user:e,membership:t[e.id],scope:a}),groups:C.createElement(sE,{key:e.id,user:e})}})))};getColumns=()=>[{name:C.createElement(A.FormattedMessage,{id:"admin.team_channel_settings.user_list.nameHeader",defaultMessage:"Name"}),field:"name",width:5},{name:C.createElement(A.FormattedMessage,{id:"admin.team_channel_settings.user_list.roleHeader",defaultMessage:"Role"}),field:"role",width:2},{name:C.createElement(A.FormattedMessage,{id:"admin.team_channel_settings.user_list.groupsHeader",defaultMessage:"Groups"}),field:"groups",width:3}];getFilterOptions=()=>{const e={role:{name:C.createElement(A.FormattedMessage,{id:"admin.user_grid.role",defaultMessage:"Role"}),values:{[vc.A.SYSTEM_GUEST_ROLE]:{name:C.createElement(A.FormattedMessage,{id:"admin.user_grid.guest",defaultMessage:"Guest"}),value:!1},[vc.A.SYSTEM_ADMIN_ROLE]:{name:C.createElement(A.FormattedMessage,{id:"admin.user_grid.system_admin",defaultMessage:"System Admin"}),value:!1}},keys:[vc.A.SYSTEM_GUEST_ROLE,vc.A.SYSTEM_ADMIN_ROLE]}};return"channel"===this.props.scope?(e.role.values={...e.role.values,[vc.A.CHANNEL_USER_ROLE]:{name:C.createElement(A.FormattedMessage,{id:"admin.user_item.member",defaultMessage:"Member"}),value:!1},[vc.A.CHANNEL_ADMIN_ROLE]:{name:C.createElement(A.FormattedMessage,{id:"admin.user_grid.channel_admin",defaultMessage:"Channel Admin"}),value:!1}},e.role.keys=[vc.A.SYSTEM_GUEST_ROLE,vc.A.CHANNEL_USER_ROLE,vc.A.CHANNEL_ADMIN_ROLE,vc.A.SYSTEM_ADMIN_ROLE]):"team"===this.props.scope&&(e.role.values={...e.role.values,[vc.A.TEAM_USER_ROLE]:{name:C.createElement(A.FormattedMessage,{id:"admin.user_item.member",defaultMessage:"Member"}),value:!1},[vc.A.TEAM_ADMIN_ROLE]:{name:C.createElement(A.FormattedMessage,{id:"admin.user_grid.team_admin",defaultMessage:"Team Admin"}),value:!1}},e.role.keys=[vc.A.SYSTEM_GUEST_ROLE,vc.A.TEAM_USER_ROLE,vc.A.TEAM_ADMIN_ROLE,vc.A.SYSTEM_ADMIN_ROLE]),this.props.enableGuestAccounts||(delete e.role.values[vc.A.SYSTEM_GUEST_ROLE],e.role.keys.splice(0,1)),e};render=()=>{const e=this.getRows(),t=this.getColumns(),{startCount:a,endCount:s,total:n}=this.getPaginationProps(),i=this.getFilterOptions(),r=C.createElement(A.FormattedMessage,{id:"admin.member_list_group.notFound",defaultMessage:"No users found"});return C.createElement("div",{className:"UsersToRemove"},C.createElement(ee.A,{columns:t,rows:e,loading:this.state.loading,nextPage:this.nextPage,previousPage:this.previousPage,startCount:a,endCount:s,total:n,onSearch:this.onSearch,filterProps:{options:i,keys:["role"],onFilter:this.onFilter},term:this.props.searchTerm||"",placeholderEmpty:r}))}}const rE=(0,s.connect)((function(){const e=(0,np.el)(((e,t,a,s)=>{let n=e;if(""!==t&&(n=(0,Mp.V3)(e,t)),Object.keys(a).length>0){const e=(0,g.f9)((0,Mp.vC)(n),a,s);n=Object.keys(e).map((t=>e[t]))}return n}));return(t,a)=>{const{scope:s,scopeId:n}=a;let{members:i,total:r}=a;const l=t.views.search.modalSearch||"",o=t.views.search.modalFilters||{};let d={};"channel"===s?d=(0,Is.a9)(t)[n]||{}:"team"===s&&(d=(0,u.RM)(t)[n]||{}),(l||Object.keys(o).length>0)&&(i=e(i,l,o,d),r=i.length);const m="true"===(0,c.zj)(t)?.EnableGuestAccounts;return{...a,members:i,total:r,searchTerm:l,scope:s,memberships:d,enableGuestAccounts:m,filters:o}}}),(function(e){return{actions:(0,n.zH)({loadChannelMembersForProfilesList:ft.Yn,loadTeamMembersForProfilesList:ft.iO,setModalSearchTerm:or.qv,setModalFilters:or.n},e)}}
1))(iE),lE=e=>{let{total:t,scope:a,scopeId:s,users:n,onExited:i}=e;const[r,l]=(0,C.useState)(!0),o=(0,C.useCallback)((()=>l(!1)),[]),d=C.createElement(A.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=>C.createElement("b",null,e)}});let c=C.createElement(A.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"===a&&(c=C.createElement(A.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=C.createElement(A.FormattedMessage,{id:"admin.team_channel_settings.usersToBeRemovedModal.close",defaultMessage:"Close"});return C.createElement(Gn.Modal,{dialogClassName:"a11y__modal settings-modal",show:r,onHide:o,onExited:i,id:"confirmModal",role:"none","aria-labelledby":"confirmModalLabel"},C.createElement(Gn.Modal.Header,{closeButton:!0},C.createElement(Gn.Modal.Title,{componentClass:"h1",id:"confirmModalLabel"},d)),C.createElement(Gn.Modal.Body,null,C.createElement("div",{className:"group-users-to-remove-modal-description"},c),C.createElement(rE,{members:n,total:t,scope:a,scopeId:s})),C.createElement(Gn.Modal.Footer,null,C.createElement("button",{type:"button",autoFocus:!0,className:"btn btn-primary",onClick:o,id:"closeModalButton"},m)))},oE=e=>{let{warning:t,isChannel:a=!1}=e,s=C.createElement(A.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 a&&(s=C.createElement(A.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."})),C.createElement(Ke.Ay,{iconClassName:"fa-exclamation-"+(t?"circle":"triangle"),textClassName:"has-"+(t?"warning":"error"),error:s})},dE=()=>C.createElement(Ke.Ay,{error:C.createElement(A.FormattedMessage,{id:"admin.team_channel_settings.need_domains",defaultMessage:"Please specify allowed email domains."})}),cE=e=>{let{users:t,total:a,scope:s,scopeId:n}=e,i=C.createElement(A.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:a}});return"channel"===s&&(i=C.createElement(A.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:a}})),C.createElement(Ke.Ay,{iconClassName:"fa-exclamation-triangle",textClassName:"has-warning",error:C.createElement("span",null,i,C.createElement(vp.A,{className:"btn btn-tertiary",modalId:ve.IQ.USERS_TO_BE_REMOVED,dialogType:lE,dialogProps:{total:a,users:t,scope:s,scopeId:n}},C.createElement(A.FormattedMessage,{id:"admin.team_channel_settings.view_removed_users",defaultMessage:"View These Users"})))})},mE=e=>{let{show:t,onConfirm:a,onCancel:s,inChannel:n,amount:i}=e;const r=C.createElement(A.FormattedMessage,{id:"admin.team_channel_settings.removeConfirmModal.title",defaultMessage:"Save and remove {amount, number} {amount, plural, one {user} other {users}}?",values:{amount:i}});let l;l=n?C.createElement(A.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:i}}):C.createElement(A.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:i}});const o=C.createElement(A.FormattedMessage,{id:"admin.team_channel_settings.removeConfirmModal.remove",defaultMessage:"Save and remove {amount, plural, one {user} other {users}}",values:{amount:i}});return C.createElement(Aa.A,{show:t,title:r,message:l,modalClass:"discard-changes-modal",confirmButtonClass:"btn btn-primary",confirmButtonText:o,onConfirm:a,onCancel:s})};
1class uE extends C.PureComponent{constructor(e){super(e),this.state={isSynced:Boolean(e.channel?.group_constrained),isPublic:e.channel?.type===ve.Ay.OPEN_CHANNEL,isDefault:e.channel?.name===ve.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!==e.channel?.delete_at,showArchiveConfirmModal:!1,policyToggled:!1,accessControlPolicy:void 0,accessControlPolicies:[],accessControlPoliciesToRemove:[],abacSupported:e.abacSupported,channelRulesExpression:"",channelRulesOriginalExpression:"",channelRulesExistingRules:[],channelRulesAutoSync:!1,channelRulesOriginalAutoSync:!1,channelRulesHaveChanges:!1,userAttributes:[],attributesLoaded:!1,showAccessRulesConfirmModal:!1,accessRulesUsersToAdd:[],accessRulesUsersToRemove:[],accessRulesConfirmed:!1}}componentDidUpdate(e){const{channel:t,totalGroups:a,actions:s}=this.props;t?.id===e.channel?.id&&a===e.totalGroups||(this.setState({totalGroups:a,isSynced:Boolean(t?.group_constrained),isPublic:t?.type===ve.Ay.OPEN_CHANNEL,isDefault:t?.name===ve.Ay.DEFAULT_CHANNEL,isLocalArchived:0!==t?.delete_at,policyToggled:t?.policy_enforced||!1}),this.props.abacSupported&&t?.id&&(this.loadUserAttributes(),this.fetchAccessControlPolicies(t.id)),t?.policy_enforced&&t?.id&&this.loadChannelLevelAccessRules(t.id)),e.team?.i
1d||e.channel?.team_id||!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})))}componentDidMount(){const{channelID:e,channel:t,actions:a}=this.props;e&&(this.props.channelModerationEnabled&&(a.getGroups(e).then((()=>this.setState({groups:this.props.groups}))),a.getChannelModerations(e).then((()=>this.restrictChannelMentions()))),a.getChannel(e),this.props.abacSupported&&(this.loadUserAttributes(),this.fetchAccessControlPolicies(e)),t?.policy_enforced&&(this.loadChannelLevelAccessRules(e),this.setState({policyToggled:!0}))),t?.team_id&&a.getTeam(t.team_id).then((async e=>{e.data&&e.data.scheme_id&&await a.loadScheme(e.data.scheme_id)})).then((()=>this.setState({teamScheme:this.props.teamScheme})))}restrictChannelMentions(){let e=this.props.channelPermissions;const t=e.find((e=>e.name===o.xB.CHANNEL_MODERATED_PERMISSIONS.CREATE_POST))?.roles;if(t)for(const a of Object.keys(t))e=e.map((e=>e.name!==o.xB.CHANNEL_MODERATED_PERMISSIONS.USE_CHANNEL_MENTIONS||t[a].value&&t[a].enabled?e:{name:e.name,roles:{...e.roles,[a]:{value:!1,enabled:!1}}}));this.setState({channelPermissions:e})}setToggles=(e,t,a)=>{const{channel:s}=this.props,n=s?.type===ve.Ay.OPEN_CHANNEL;this.setState({saveNeeded:!0,isSynced:e,isPublic:t,isPrivacyChanging:t!==n,policyToggled:a},(()=>this.processGroupsChange(this.state.groups))),this.props.actions.setNavigationBlocked(!0)};async processGroupsChange(e){const{actions:t,channelID:a}=this.props;let s;t.setNavigationBlocked(!0);let n=0;if(this.state.isSynced)try{if(0===e.length)s=C.createElement(oE,{warning:!0,isChannel:!0});else{if(!a)return;const i=await t.membersMinusGroupMembers(a,e.map((e=>e.id)));"data"in i&&(n=i.data.total_count,n>0&&(s=C.createElement(cE,{total:n,users:i.data.users,scope:"channel",scopeId:this.props.channelID})))}}catch(e){s=e}this.setState({groups:e,usersToRemoveCount:n,saveNeeded:!0,serverError:s})}handleGroupRemoved=e=>{const t=this.state.groups.filter((t=>t.id!==e));this.setState({totalGroups:this.state.totalGroups-1}),this.processGroupsChange(t)};setNewGroupRole=e=>{const t=M()(this.state.groups).map((t=>(t.id===e&&(t.scheme_admin=!t.scheme_admin),t)));this.processGroupsChange(t)};channelPermissionsChanged=(e,t)=>{const a=this.state.channelPermissions.findIndex((t=>t.name===e)),s=!this.state.channelPermissions[a].roles[t].value;let n=[...this.state.channelPermissions];if(e===o.xB.CHANNEL_MODERATED_PERMISSIONS.CREATE_POST){const e=this.props.channelPermissions.find((e=>e.name===o.xB.CHANNEL_MODERATED_PERMISSIONS.USE_CHANNEL_MENTIONS))?.roles[t];n=n.map((a=>a.name!==o.xB.CHANNEL_MODERATED_PERMISSIONS.USE_CHANNEL_MENTIONS||s?a.name===o.xB.CHANNEL_MODERATED_PERMISSIONS.USE_CHANNEL_MENTIONS?{name:a.name,roles:{...a.roles,[t]:{value:e?.value,enabled:e?.enabled}}}:a:{name:a.name,roles:{...a.roles,[t]:{value:!1,enabled:!1}}}))}n[a]={...n[a],roles:{...n[a].roles,[t]:{...n[a].roles[t],value:s}}},this.setState({channelPermissions:n,saveNeeded:!0}),this.props.actions.setNavigationBlocked(!0)};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)};hideConvertConfirmModal=()=>{this.setState({showConvertConfirmModal:!1})};hideRemoveConfirmModal=()=>{this.setState({showRemoveConfirmModal:!1})};hideConvertAndRemoveConfirmModal=()=>{this.setState({showConvertAndRemoveConfirmModal:!1})};hideArchiveConfirmModal=()=>{this.setState({showArchiveConfirmModal:!1})};hideAccessRulesConfirmModal=()=>{this.setState({showAccessRulesConfirmModal:!1,accessRulesUsersToAdd:[],accessRulesUsersToRemove:[]})};confirmAccessRulesSave=async()=>{this.hideAccessRulesConfirmModal(),this.setState({accessRulesConfirmed:!0},(()=>{this.handleSubmit()}))};onSave=()=>{const{channel:e}=this.props,{isSynced:t,usersToRemoveCount:a,serverError:s}=this.state;let{isPublic:n,isPrivacyChanging:i}=this.state;if(this.channelToBeArchived())return void this.setState({showArchiveConfirmModal:!0});const r=e?.type===ve.Ay.OPEN_CHANNEL;t&&(n=!1,i=r,this.setState({isPublic:n,isPrivacyChanging:i})),i&&a>0?this.setState({showConvertAndRemoveConfirmModal:!0}):!i||0!==a||s?!i&&a>0?this.setState({showRemoveConfirmModal:!0}):this.handleSubmit():this.setState({showConvertConfirmModal:!0})};handleSubmit=async()=>{const{groups:e,channelID:t,actions:a,channel:s}=this.props;if(!s)return;this.setState({showConvertConfirmModal:!1,showRemoveConfirmModal:!1,showConvertAndRemoveConfirmModal:!1,showArchiveConfirmModal:!1,saving:!0});const{groups:n,isSynced:i,isPublic:r,isPrivacyChanging:l,channelPermissions:d,usersToAdd:c,usersToRemove:m,rolesToUp
1date:u,policyToggled:g,accessControlPolicies:p,accessControlPoliciesToRemove:h}=this.state;let f,E,M=!1;if(this.channelToBeArchived()){const e=await a.deleteChannel(s.id);return"error"in e&&(f=C.createElement(Ke.Ay,{error:e.error.message}),M=!0),void this.setState({serverError:f,saving:!1,saveNeeded:M,isPrivacyChanging:!1,usersToRemoveCount:0,rolesToUpdate:{},usersToAdd:{},usersToRemove:{}},(()=>{a.setNavigationBlocked(M),M||(0,en.J)().push("/admin_console/user_management/channels")}))}if(this.channelToBeRestored()&&!this.state.serverError){const e=await a.unarchiveChannel(s.id);"error"in e&&(f=C.createElement(Ke.Ay,{error:e.error.message})),this.setState({serverError:f,previousServerError:void 0})}if(0===this.state.groups.length&&i)return f=C.createElement(oE,{isChannel:!0}),M=!0,this.setState({serverError:f,saving:!1,saveNeeded:M}),void a.setNavigationBlocked(M);l&&(E=a.updateChannelPrivacy(s.id,r?ve.Ay.OPEN_CHANNEL:ve.Ay.PRIVATE_CHANNEL));const b=n.filter((t=>e.some((e=>e.id===t.id&&e.scheme_admin!==t.scheme_admin)))).map((e=>a.patchGroupSyncable(e.id,t,yl.CL.Channel,{scheme_admin:e.scheme_admin}))),_=n.filter((t=>!e.some((e=>e.id===t.id)))).map((e=>a.linkGroupSyncable(e.id,t,yl.CL.Channel,{auto_add:!0,scheme_admin:e.scheme_admin}))),y=[...b,..._];E&&y.push(E);let v=(await Promise.all(y)).find((e=>"error"in e));v&&"error"in v&&(f=C.createElement(Ke.Ay,{error:v.error.message}));const S=await a.patchChannel(s.id,{group_constrained:i});"error"in S&&(f=C.createElement(Ke.Ay,{error:S.error.message}));const T=e.filter((e=>!n.some((t=>t.id===e.id)))).map((e=>a.unlinkGroupSyncable(e.id,t,yl.CL.Channel)));if(T.length>0&&(v=(await Promise.all(T)).find((e=>"error"in e)),v&&"error"in v&&(f=C.createElement(Ke.Ay,{error:v.error.message}))),!(v&&"error"in v||"error"in S)){const e=[];this.props.channelModerationEnabled&&e.push(a.getGroups(t)),l&&this.props.channelModerationEnabled&&e.push(a.getChannelModerations(t).then((()=>{const e=d.findIndex((e=>e.name===o.xB.CHANNEL_MODERATED_PERMISSIONS.MANAGE_MEMBERS));if(d){const t=this.props.channelPermissions.find((e=>e.name===o.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}}}))),s=await a.patchChannelModerations(t,e);s.error&&(f=C.createElement(Ke.Ay,{error:s.error.message})),this.restrictChannelMentions()}if(g){if(r)return f=C.createElement(Ke.Ay,{error:C.createElement(A.FormattedMessage,{id:"admin.channel_details.policy_public_error",defaultMessage:"You cannot assign a policy to a public channel."})}),M=!0,this.setState({serverError:f,saving:!1,saveNeeded:M}),void a.setNavigationBlocked(M);if(i)return f=C.createElement(Ke.Ay,{error:C.createElement(A.FormattedMessage,{id:"admin.channel_details.policy_synced_error",defaultMessage:"You cannot assign a policy to a synced channel."})}),M=!0,this.setState({serverError:f,saving:!1,saveNeeded:M}),void a.setNavigationBlocked(M);const e=this.state.channelRulesExpression&&this.state.channelRulesExpression.trim().length>0,s=p.length>0;if(!e&&!s)return f=C.createElement(Ke.Ay,{error:C.createElement(A.FormattedMessage,{id:"admin.channel_details.policy_required_error",defaultMessage:"You must select an access policy or define channel-specific access rules when attribute-based channel access is enabled."})}),M=!0,this.setState({serverError:f,saving:!1,saveNeeded:M}),void a.setNavigationBlocked(M);if(p.length>0)try{await Promise.all(p.map((e=>a.assignChannelToAccessControlPolicy(e.id,t))))}catch(e){f=C.createElement(Ke.Ay,{error:e.message}),M=!0}if(h.length>0)try{await Promise.all(h.map((e=>a.unassignChannelsFromAccessControlPolicy(e,[t]))))}catch(e){f=C.createElement(Ke.Ay,{error:e.message}),M=!0}}else await a.deleteAccessControlPolicy(t).catch((e=>{e.message&&!e.message.includes("not found")&&(f=C.createElement(Ke.Ay,{error:e.message}),M=!0)}));if(g&&this.state.channelRulesHaveChanges&&!this.state.accessRulesConfirmed)try{const{channelRulesExpression:e,channelRulesAutoSync:t}=this.state,a=await this.calculateMembershipChanges(e,t);if(a.toAdd.length>0||a.toRemove.length>0)return void this.setState({showAccessRulesConfirmModal:!0,accessRulesUsersToAdd:a.toAdd,accessRulesUsersToRemove:a.toRemove,saving:!1})}catch(e){console.error("Failed to calculate membership changes:",e)}if(g&&this.state.channelRulesHaveChanges)try{const{channelRulesExpression:e,channelRulesAutoSync:n,accessControlPolicy:i}=this.state,r=e&&e.trim().length>0,l=this.state.accessControlPolicies&&this.state.accessControlPolicies.length>0;if(r||l)if(e.trim()){const r={id:t,name:i?.name||`Channel Rules for ${s.display_name}`,type:"channel",revision:i?(i.revision||1)+1:1,created_at:i?.created_at||Date.now(),active:!1,imports:this.state.accessControlPolicies.map((e=>e.id)),rules:(0,Ys._V)(this.state.channelRulesExistingRules,e)}
1,l=await a.saveChannelAccessPolicy(r);if("error"in l)f=C.createElement(Ke.Ay,{error:l.error.message}),M=!0;else{try{await a.updateAccessControlPoliciesActive([{id:t,active:n}])}catch(e){console.error("Failed to update policy active status:",e),f=C.createElement(Ke.Ay,{error:`Failed to update active status: ${e.message||e}`}),M=!0}if(!f){if(e.trim())try{const e={type:ve.jj.ACCESS_CONTROL_SYNC,data:{policy_id:t}};await a.createAccessControlSyncJob(e)}catch(e){console.error("Failed to create access control sync job:",e)}this.setState({channelRulesOriginalExpression:e,channelRulesOriginalAutoSync:n,channelRulesHaveChanges:!1,accessRulesConfirmed:!1,accessControlPolicy:{...r,active:n}})}}}else{if(this.state.accessControlPolicies.length>0){const e={id:i?.id||t,name:i?.name||s.display_name,type:"channel",created_at:i?.created_at||Date.now(),revision:(i?.revision||1)+1,active:n,rules:(0,Ys._V)(this.state.channelRulesExistingRules,""),imports:this.state.accessControlPolicies.map((e=>e.id))},r=await a.saveChannelAccessPolicy(e);"error"in r?(f=C.createElement(Ke.Ay,{error:r.error.message}),M=!0):this.setState({channelRulesOriginalExpression:"",channelRulesOriginalAutoSync:n,channelRulesHaveChanges:!1,accessRulesConfirmed:!1,accessControlPolicy:e})}0===this.state.accessControlPolicies.length&&(await a.deleteAccessControlPolicy(t).catch((e=>{e.message&&!e.message.includes("not found")&&(f=C.createElement(Ke.Ay,{error:e.message}),M=!0)})),this.setState({channelRulesOriginalExpression:"",channelRulesOriginalAutoSync:!1,channelRulesHaveChanges:!1,accessRulesConfirmed:!1,accessControlPolicy:void 0}))}else{try{await a.deleteAccessControlPolicy(t)}catch(e){const t=e instanceof Error?e.message:String(e);t&&!t.includes("not found")&&(f=C.createElement(Ke.Ay,{error:t||"Failed to delete channel policy"}),M=!0)}f||this.setState({channelRulesOriginalExpression:"",channelRulesOriginalAutoSync:!1,channelRulesHaveChanges:!1,accessRulesConfirmed:!1,accessControlPolicy:void 0})}}catch(e){f=C.createElement(Ke.Ay,{error:e.message||"Failed to save channel access rules"}),M=!0}let N=l;null==f&&(N=!1);const k=Object.values(c),w=Object.values(m),I=Object.keys(u);if((k.length>0||w.length>0||I.length>0)&&!i){const e=[],a=[],{addChannelMember:s,removeChannelMember:n,updateChannelMemberSchemeRoles:i}=this.props.actions;if(k.forEach((a=>{e.push(s(t,a.id))})),w.forEach((e=>{a.push(n(t,e.id))})),e.length>0){const t=(await Promise.all(e)).find((e=>"error"in e));t&&"error"in t&&(f=C.createElement(Ke.Ay,{error:t.error.message}))}if(a.length>0){const e=(await Promise.all(a)).find((e=>"error"in e));e&&"error"in e&&(f=C.createElement(Ke.Ay,{error:e.error.message}))}const r=[],l=[];if(I.forEach((e=>{const{schemeUser:a,schemeAdmin:s}=u[e];s?r.push(i(t,e,a,s)):l.push(i(t,e,a,s))})),r.length>0){const e=(await Promise.all(r)).find((e=>"error"in e));e&&"error"in e&&(f=C.createElement(Ke.Ay,{error:e.error.message}))}if(l.length>0){const e=(await Promise.all(l)).find((e=>"error"in e));e&&"error"in e&&(f=C.createElement(Ke.Ay,{error:e.error.message}))}}this.setState({serverError:f,saving:!1,saveNeeded:M,isPrivacyChanging:N,usersToRemoveCount:0,rolesToUpdate:{},usersToAdd:{},usersToRemove:{},accessControlPoliciesToRemove:f||M?this.state.accessControlPoliciesToRemove:[]},(()=>{a.setNavigationBlocked(M),M||f||(0,en.J)().push("/admin_console/user_management/channels")}))};channelToBeArchived=()=>{const{isLocalArchived:e}=this.state,t=0!==this.props.channel?.delete_at;return e&&!t};channelToBeRestored=()=>{const{isLocalArchived:e}=this.state,t=0!==this.props.channel?.delete_at;return!e&&t};addRolesToUpdate=(e,t,a)=>{const{rolesToUpdate:s}=this.state;s[e]={schemeUser:t,schemeAdmin:a},this.setState({rolesToUpdate:{...s},saveNeeded:!0}),this.props.actions.setNavigationBlocked(!0)};addUserToRemove=e=>{let{usersToRemoveCount:t}=this.state;const{usersToAdd:a,usersToRemove:s,rolesToUpdate:n}=this.state;a[e.id]?.id===e.id?delete a[e.id]:s[e.id]?.id!==e.id&&(t+=1,s[e.id]=e),delete n[e.id],this.setState({usersToRemove:{...s},usersToAdd:{...a},rolesToUpdate:{...n},usersToRemoveCount:t,saveNeeded:!0}),this.props.actions.setNavigationBlocked(!0)};addUsersToAdd=e=>{let{usersToRemoveCount:t}=this.state;const a={...this.state.usersToRemove},s={...this.state.usersToAdd};e.forEach((e=>{a[e.id]?.id===e.id?(delete a[e.id],t-=1):s[e.id]=e})),this.setState({usersToAdd:{...s},usersToRemove:{...a},usersToRemoveCount:t,saveNeeded:!0}),this.props.actions.setNavigationBlocked(!0)};onToggleArchive=()=>{const{isLocalArchived:e,serverError:t,previousServerError:a}=this.state,{isDisabled:s}=this.props;if(s)return;const n={saveNeeded:!0,isLocalArchived:!e};n.isLocalArchived?(n.previousServerError=t,n.serverError=void 0):(n.serverError=a,n.previousServerError=void 0),this.props.actions.setNavigationBlocked(!0),this.setState(n)};onPolicySelected=e=>{const{accessControlPolicies:t}=this.state;t.find((t=>t.id===e.id))||(this.setState({accessControlPolicies:[...t,e],saveNeeded:!0}),this.props.actions.setNavigationBlocked(!0))};onPolicyRemoveAll=()=>{const{accessControlPolicies:e,accessControlPoliciesToRemove:t}=this.state;for(const a of e)this.setState({accessControlPoliciesToRemove:[...t,a.id],saveNeeded:!0});this.setState({accessControlPolicies:[]}),this.props.actions.setNavigationBlocked(!0)};onPolicyRemove=e=>{const{accessControlPoliciesToRemove:t,accessControlPolicies:a}=this.state;this.setState({accessControlPoliciesToRemove:[...t,e],accessControlPolicies:a.filter((t=>
1t.id!==e)),saveNeeded:!0}),this.props.actions.setNavigationBlocked(!0)};handleChannelRulesChange=(e,t,a)=>{const s=e&&(t!==this.state.channelRulesOriginalExpression||a!==this.state.channelRulesOriginalAutoSync);this.setState({channelRulesExpression:t,channelRulesAutoSync:a,channelRulesHaveChanges:e,policyToggled:!0}),s&&(this.setState({saveNeeded:!0}),this.props.actions.setNavigationBlocked(!0))};loadUserAttributes=async()=>{try{const e=await this.props.actions.getAccessControlFields("",100);if(e.error)return void this.setState({userAttributes:[],attributesLoaded:!0});let t=[];e.data&&Array.isArray(e.data)?t=e.data:e.data&&e.data.fields&&Array.isArray(e.data.fields)?t=e.data.fields:e.data&&e.data.attributes&&Array.isArray(e.data.attributes)?t=e.data.attributes:Array.isArray(e)&&(t=e),this.setState({userAttributes:t,attributesLoaded:!0})}catch(e){console.error("Error loading user attributes:",e),this.setState({userAttributes:[],attributesLoaded:!0})}};loadChannelLevelAccessRules=async e=>{try{const t=await this.props.actions.getAccessControlPolicy(e);if(t.data){const e=t.data;if("channel"===e.type&&e.rules&&e.rules.length>0){const t=(0,Ys.Db)(e.rules),a=!0===e.active;this.setState({channelRulesExpression:t?.expression||"",channelRulesOriginalExpression:t?.expression||"",channelRulesExistingRules:e.rules,channelRulesAutoSync:a,channelRulesOriginalAutoSync:a,channelRulesHaveChanges:!1})}}}catch(e){}};combineParentAndChannelExpressions=e=>{const t=this.state.accessControlPolicies.map((e=>(0,Ys.Db)(e.rules)?.expression)).filter((e=>Boolean(e&&e.trim()))),a=[];return e.trim()&&a.push(e.trim()),t.length>0&&a.push(...t),0===a.length?"":1===a.length?a[0]:a.map((e=>`(${e})`)).join(" && ")};calculateMembershipChanges=async(e,t)=>{const a=this.combineParentAndChannelExpressions(e);if(!a.trim())return{toAdd:[],toRemove:[]};try{const e=await this.props.actions.searchUsersForExpression(a,"","",1e3),s=e.data?.users.map((e=>e.id))||[],n=await this.props.actions.getChannelMembers(this.props.channelID),i=n.data?.map((e=>e.user_id))||[];return{toAdd:t?s.filter((e=>!i.includes(e))):[],toRemove:i.filter((e=>!s.includes(e)))}}catch(e){return console.error("Failed to calculate membership changes:",e),{toAdd:[],toRemove:[]}}};fetchAccessControlPolicies=e=>{e&&this.props.actions.getAccessControlPolicy(e).then((e=>{if(e.data){const t=e.data,a=[],s=[];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&&a.push(e.data)}));s.push(t)}Promise.all(s).then((()=>{this.setState({accessControlPolicies:a})}))}else this.setState({accessControlPolicies:[]})}}))};render=()=>{const{totalGroups:e,saving:t,saveNeeded:a,serverError:s,isSynced:n,isPublic:i,isDefault:r,groups:l,showConvertConfirmModal:o,showRemoveConfirmModal:d,showConvertAndRemoveConfirmModal:c,usersToRemoveCount:m,channelPermissions:u,teamScheme:g,usersToRemove:p,usersToAdd:h,isLocalArchived:f,showArchiveConfirmModal:E,policyToggled:M,accessControlPolicies:b}=this.state,{channel:_,team:y}=this.props;if(!_)return null;const v=this.props.groups.filter((e=>!l.find((t=>t.id===e.id)))),S=C.createElement(C.Fragment,null,C.createElement(aE.A,{show:o,onCancel:this.hideConvertConfirmModal,onConfirm:this.handleSubmit,displayName:_.display_name||"",toPublic:i}),this.props.channelModerationEnabled&&C.createElement(Zf,{channelPermissions:u,onChannelPermissionsChanged:this.channelPermissionsChanged,teamSchemeID:g?.id,teamSchemeDisplayName:g?.display_name,guestAccountsEnabled:this.props.guestAccountsEnabled,isPublic:_.type===ve.Ay.OPEN_CHANNEL,readOnly:this.props.isDisabled}),C.createElement(mE,{show:d,onCancel:this.hideRemoveConfirmModal,onConfirm:this.handleSubmit,inChannel:!0,amount:m}),C.createElement(tE,{show:c,onCancel:this.hideConvertAndRemoveConfirmModal,onConfirm:this.handleSubmit,displayName:_.display_name||"",toPublic:i,removeAmount:m}),C.createElement(Ef.A,{show:this.state.showAccessRulesConfirmModal,onHide:this.hideAccessRulesConfirmModal,onConfirm:this.confirmAccessRulesSave,channelName:_.display_name||_.name||"",usersToAdd:this.state.accessRulesUsersToAdd,usersToRemove:this.state.accessRulesUsersToRemove,autoSyncEnabled:this.state.channelRulesAutoSync,isStacked:!0}),C.createElement(Xf,{isPublic:i,isSynced:n,isDefault:r,onToggle:this.setToggles,isDisabled:this.props.isDisabled,groupsSupported:this.props.channelGroupsEnabled,abacSupported:this.props.abacSupported,policyEnforced:M,policyEnforcedToggleAvailable:0===b.length}),this.props.abacSupported&&M&&C.createElement(C.Fragment,null,C.createElement(bf,{parentPolicies:this.state.accessControlPolicies,actions:{onPolicySelected:this.onPolicySelected,onPolicyRemoveAll:this.onPolicyRemoveAll,onPolicyRemove:this.onPolicyRemove,searchPolicies:this.props.actions.searchPolicies}}),C.createElement(Lf,{channel:_,userAttributes:this.state.userAttributes,onRulesChange:this.handleChannelRulesChange,initialExpression:this.state.channelRulesExpression,initialAutoSync:this.state.channelRulesAutoSync,isDisabled:this.props.isDisabled})),this.props.channelGroupsEnabled&&!M&&C.createElement(Rf,{synced:n,channel:_,totalGroups:e,groups:l,removedGroups:v,onAddCallback:this.handleGroupChange,onGroupRemoved:this.handleGroupRemoved,setNewGroupRole:this.setNewGroupRole,isDisabled:this.props.isDisabled}),!n&&C.createElement(Uf,{onRemoveCallback:this.addUserToRemove,onAddCallback:this.addUsersToAdd,usersToRemove:p,usersToAdd:h,updateRole:this.addRolesToUpdate,channelId:this.props.channelID,isDisabled:this.props.isDisabled}));return C.createElement("div",{className:"wrapper--fixed"},C.createElement(fe,{withBackButton:!0},C.createElement("div",null,C.createElement(me.A,{to:"/admin_console/user_management/channels",className:"fa fa-angle-left back"}),C.createElement(A.FormattedMessage,{id:"admin.channel_settings.channel_detail.channel_c
1onfiguration",defaultMessage:"Channel Configuration"}))),C.createElement("div",{className:"admin-console__wrapper"},C.createElement("div",{className:"admin-console__content"},C.createElement($f,{channel:_,team:y,onToggleArchive:this.onToggleArchive,isArchived:f,isDisabled:this.props.isDisabled}),C.createElement(Aa.A,{show:E,title:C.createElement(A.FormattedMessage,{id:"admin.channel_settings.channel_detail.archive_confirm.title",defaultMessage:"Save and Archive Channel"}),message:C.createElement(A.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:C.createElement(A.FormattedMessage,{id:"admin.channel_settings.channel_detail.archive_confirm.button",defaultMessage:"Save and Archive Channel"}),onConfirm:this.handleSubmit,onCancel:this.hideArchiveConfirmModal}),!f&&S)),C.createElement(ge,{saving:t,saveNeeded:a,onClick:this.onSave,serverError:s,cancelLink:"/admin_console/user_management/channels",isDisabled:this.props.isDisabled}))}}const gE=(0,s.connect)((function(e,t){const a=(0,c.zj)(e),s=(0,c.Ay)(e),n="true"===s?.IsLicensed,i=n&&(0,qt.be)(s),r=n&&(0,qt.ND)(s),l=n&&(0,qt.$X)(s)&&"true"===a.FeatureFlagAttributeBasedAccessControl,o="true"===a.EnableGuestAccounts,d=t.match.params.channel_id,m=(0,Is.c)(e,d),g=m?(0,u.Uo)(e,m.team_id):void 0,p=(0,_l.dJ)(e,d);return{channelID:d,channel:m,team:g,groups:p,totalGroups:p.length,allGroups:(0,_l.GX)(e),channelPermissions:(0,Is.Bt)(e,d),teamScheme:g?gc(e,g.scheme_id):void 0,guestAccountsEnabled:o,channelModerationEnabled:i,channelGroupsEnabled:r,abacSupported:l}}),(function(e){return{actions:(0,n.zH)({getGroups:bl.dJ,linkGroupSyncable:bl.PY,unlinkGroupSyncable:bl.IC,membersMinusGroupMembers:ws.qN,setNavigationBlocked:p.Jb,getChannel:ws.c,getTeam:l.Uo,getChannelModerations:ws.Bt,patchChannel:ws.ER,updateChannelPrivacy:ws.nr,patchGroupSyncable:bl.r2,patchChannelModerations:ws.XB,loadScheme:rc,addChannelMember:ws.zb,removeChannelMember:ws.ur,updateChannelMemberSchemeRoles:ws.pN,deleteChannel:ws.D3,unarchiveChannel:ws.fk,getAccessControlPolicy:As.Ar,assignChannelToAccessControlPolicy:(e,t)=>(0,As.GF)(e,[t]),unassignChannelsFromAccessControlPolicy:As.kj,deleteAccessControlPolicy:As.fQ,searchPolicies:As.a5,getAccessControlFields:As.R5,getVisualAST:As.ps,saveChannelAccessPolicy:As.IS,validateChannelExpression:As.Q6,createAccessControlSyncJob:Pe._S,updateAccessControlPoliciesActive:As.X,searchUsersForExpression:As.Yz,getChannelMembers:ws.p6,getProfilesByIds:ms.G1},e)}}))(uE);class pE extends C.PureComponent{constructor(e){super(e),this.state={loading:!1,term:"",teams:[],page:0,total:0,searchErrored:!1,filters:{}}}componentDidMount(){this.loadPage()}isSearching=(e,t)=>e.length+Object.keys(t).length>0;getPaginationProps=()=>{const{page:e,term:t,filters:a}=this.state,s=this.isSearching(t,a)?this.state.total:this.props.total;let n=(e+1)*nf;return n=n>s?s:n,{startCount:e*nf+1,endCount:n,total:s}};loadPage=(()=>{var e=this;return async function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};e.setState({loading:!0,term:a,filters:s}),e.isSearching(a,s)?t>0?e.searchTeams(t,a,s):e.searchTeamsDebounced(t,a,s):(await e.props.actions.getData(t,nf),e.setState({page:t,loading:!1}))}})();searchTeams=(()=>{var e=this;return async function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=[],i=0,r=!0;const l=await e.props.actions.searchTeams(a,{page:t,per_page:nf,...s});l?.data&&(n=t>0?e.state.teams.concat(l.data.teams):l.data.teams,i=l.data.total_count,r=!1),e.setState({page:t,loading:!1,teams:n,total:i,searchErrored:r})}})();searchTeamsDebounced=(0,sn.sg)((()=>{var e=this;return function(t,a){let s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return e.searchTeams(t,a,s)}})(),300,!1,(()=>{}));nextPage=()=>{this.loadPage(this.state.page+1,this.state.term,this.state.filters)};previousPage=()=>{this.setState({page:this.state.page-1})};onSearch=(()=>{var e=this;return function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";e.loadPage(0,t,e.state.filters)}})();onFilter=e=>{let{management:t}=e;const a={};let s;const{allow_open_invite:{value:n},invite_only:{value:i}}=t.values,r=[n,i];this.props.isLicensedForLDAPGroups&&(s=t.values.group_constrained.value,r.push(s)),r.includes(!1)&&r.includes(!0)&&(n&&i?a.group_constrained=!1:(s&&(a.group_constrained=!0),(n||i)&&(a.allow_open_invite=Boolean(n))
1)),this.loadPage(0,this.state.term,a)};getColumns=()=>[{name:C.createElement(A.FormattedMessage,{id:"admin.team_settings.team_list.nameHeader",defaultMessage:"Name"}),field:"name",width:4,fixed:!0},{name:C.createElement(A.FormattedMessage,{id:"admin.team_settings.team_list.mappingHeader",defaultMessage:"Management"}),field:"management",fixed:!0},{name:"",field:"edit",textAlign:"right",fixed:!0}];renderManagementMethodText=e=>e.group_constrained?C.createElement(A.FormattedMessage,{id:"admin.team_settings.team_row.managementMethod.groupSync",defaultMessage:"Group Sync"}):e.allow_open_invite?C.createElement(A.FormattedMessage,{id:"admin.team_settings.team_row.managementMethod.anyoneCanJoin",defaultMessage:"Anyone Can Join"}):C.createElement(A.FormattedMessage,{id:"admin.team_settings.team_row.managementMethod.inviteOnly",defaultMessage:"Invite Only"});getRows=()=>{const{data:e}=this.props,{term:t,teams:a,filters:s}=this.state,{startCount:n,endCount:i}=this.getPaginationProps();let r=this.isSearching(t,s)?a:e;return r=r.slice(n-1,i),r.map((e=>({cells:{id:e.id,name:C.createElement("div",{className:"TeamList_nameColumn"},C.createElement("div",{className:"TeamList__lowerOpacity"},C.createElement(ae.A,{size:"sm",url:L.lt(e),content:e.display_name})),C.createElement("div",{className:"TeamList_nameText"},C.createElement("b",{"data-testid":"team-display-name"},e.display_name,0!==e.delete_at&&C.createElement("span",{className:"archived-label"}," ",C.createElement(A.FormattedMessage,{id:"admin.team_settings.team_row.archived",defaultMessage:"(Archived)"}))),e.description&&C.createElement("div",{className:"TeamList_descriptionText"},e.description))),management:C.createElement("span",{"data-testid":`${e.name}Management`,className:"TeamList_managementText"},this.renderManagementMethodText(e)),edit:C.createElement("span",{"data-testid":`${e.display_name}edit`,className:"group-actions TeamList_editText"},C.createElement(T.Link,{to:`/admin_console/user_management/teams/${e.id}`},C.createElement(A.FormattedMessage,{id:"admin.team_settings.team_row.configure",defaultMessage:"Edit"})))},onClick:()=>(0,en.J)().push(`/admin_console/user_management/teams/${e.id}`)})))};render(){const{term:e,searchErrored:t}=this.state,a=this.getRows(),s=this.getColumns(),{startCount:n,endCount:i,total:r}=this.getPaginationProps(),{isLicensedForLDAPGroups:l}=this.props;let o=C.createElement(A.FormattedMessage,{id:"admin.team_settings.team_list.no_teams_found",defaultMessage:"No teams found"});t&&(o=C.createElement(A.FormattedMessage,{id:"admin.team_settings.team_list.search_teams_errored",defaultMessage:"Something went wrong. Try again"}));const d={management:{name:C.createElement(A.FormattedMessage,{id:"admin.team_settings.team_list.mappingHeader",defaultMessage:"Management"}),values:{allow_open_invite:{name:C.createElement(A.FormattedMessage,{id:"admin.team_settings.team_row.managementMethod.anyoneCanJoin",defaultMessage:"Anyone Can Join"}),value:!1},invite_only:{name:C.createElement(A.FormattedMessage,{id:"admin.team_settings.team_row.managementMethod.inviteOnly",defaultMessage:"Invite Only"}),value:!1}},keys:["allow_open_invite","invite_only"]}};l&&(d.management.values.group_constrained={name:C.createElement(A.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:80*a.length+"px"};return C.createElement("div",{className:"TeamsList"},C.createElement(ee.A,{columns:s,rows:a,loading:this.state.loading,nextPage:this.nextPage,previousPage:this.previousPage,startCount:n,endCount:i,total:r,onSearch:this.onSearch,term:e,placeholderEmpty:o,rowsContainerStyles:m,filterProps:c}))}}const hE=(0,v.Mz)("getSortedListOfTeams",u.ZN,(e=>Object.values(e).sort(((e,t)=>e.display_name.localeCompare(t.display_name))))),fE=(0,s.connect)((function(e){return{data:hE(e),total:e.entities.teams.totalCount||0,isLicensedForLDAPGroups:"true"===e.entities.general.license.LDAPGroups}}),(function(e){return{actions:(0,n.zH)({getData:(e,t)=>(0,l.ZN)(e,t,!0),searchTeams:l.Fo},e)}}
1))(pE),EE=(0,s.connect)((function(e){return{siteName:(0,c.zj)(e).SiteName}}))((function(e){return C.createElement("div",{className:"wrapper--fixed"},C.createElement(fe,null,C.createElement(A.FormattedMessage,{id:"admin.team_settings.groupsPageTitle",defaultMessage:"{siteName} Teams",values:{siteName:e.siteName}})),C.createElement("div",{className:"admin-console__wrapper"},C.createElement("div",{className:"admin-console__content"},C.createElement(Tl,{id:"teams",title:(0,A.defineMessage)({id:"admin.team_settings.title",defaultMessage:"Teams"}),subtitle:(0,A.defineMessage)({id:"admin.team_settings.description",defaultMessage:"Manage team settings."})},C.createElement(fE,null)))))}));var ME=a(69669);const bE=e=>{let{onGroupRemoved:t,syncChecked:a,team:s,onAddCallback:n,totalGroups:i,groups:r,removedGroups:l,setNewGroupRole:o,isDisabled:d}=e;return C.createElement(Tl,{id:"team_groups",title:a?(0,A.defineMessage)({id:"admin.team_settings.team_detail.syncedGroupsTitle",defaultMessage:"Synced Groups"}):(0,A.defineMessage)({id:"admin.team_settings.team_detail.groupsTitle",defaultMessage:"Groups"}),subtitle:a?(0,A.defineMessage)({id:"admin.team_settings.team_detail.syncedGroupsDescription",defaultMessage:"Add and remove team members based on their group membership."}):(0,A.defineMessage)({id:"admin.team_settings.team_detail.groupsDescription",defaultMessage:"Group members will be added to the team."}),button:C.createElement(vp.A,{id:"addGroupsToTeamToggle",className:"btn btn-primary",modalId:ve.IQ.ADD_GROUPS_TO_TEAM,dialogType:ME.A,dialogProps:{team:s,onAddCallback:n,skipCommit:!0,excludeGroups:r,includeGroups:l},disabled:d},C.createElement(A.FormattedMessage,{id:"admin.team_settings.team_details.add_group",defaultMessage:"Add Group"}))},C.createElement(If,{team:s,isModeSync:a,groups:r,totalGroups:i,onGroupRemoved:t,setNewGroupRole:o,type:"team",isDisabled:d}))};class _E extends C.PureComponent{constructor(e){super(e);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=C.createRef()}componentDidMount=async()=>{await this.props.actions.getProfilesNotInTeam(this.props.team.id,!1,0,100),this.setUsersLoadingState(!1)};setUsersLoadingState=e=>{this.setState({loading:e})};search=async e=>{this.setUsersLoadingState(!0);let t=[];const a=""!==e;if(a){const{data:a}=await this.props.actions.searchProfiles(e,{not_in_team_id:this.props.team.id,replace:!0,...this.state.filterOptions});t=a}else await this.props.actions.getProfilesNotInTeam(this.props.team.id,!1,0,100);this.setState({loading:!1,searchResults:t,search:a})};handleHide=()=>{this.setState({show:!1})};handleExit=()=>{this.props.onExited&&this.props.onExited()};renderOption=(e,t,a,s)=>{let n="";return t&&(n="more-modal__row--selected"),C.createElement("div",{key:e.id,ref:t?this.selectedItemRef:e.id,className:"more-modal__row clickable "+n,onClick:()=>a(e),onMouseMove:()=>s(e)},C.createElement(bp.A,{src:I.mT.getProfilePictureUrl(e.id,e.last_picture_update),size:"md"}),C.createElement("div",{className:"more-modal__details"},C.createElement("div",{className:"more-modal__name"},(0,L.xK)(e),e.is_bot&&C.createElement(Sp.A,null),(0,Mp.P)(e.roles)&&C.createElement(Cp.A,{className:"popoverlist"}))),C.createElement("div",{className:"more-modal__actions"},C.createElement("button",{className:"more-modal__actions--round","aria-label":"Add users to team"},C.createElement("i",{className:"icon icon-plus"}))))};renderValue=e=>e.data?.username||"";renderAriaLabel=e=>e?.username||"";handleAdd=e=>{const t=[...this.state.values];t.includes(e)||t.push(e),this.setState({values:t})};handleDelete=e=>{this.setState({values:e})};handlePageChange=(e,t)=>
1{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)))}};handleSubmit=()=>{this.props.onAddCallback(this.state.values),this.handleHide()};render=()=>{const e=C.createElement("div",{id:"numPeopleRemaining"},C.createElement(A.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,A.defineMessage)({id:"multiselect.add",defaultMessage:"Add"}),a=(0,A.defineMessage)({id:"multiselect.adding",defaultMessage:"Adding..."});let s=null;this.state.addError&&(s=C.createElement("div",{className:"has-error col-sm-12"},C.createElement("label",{className:"control-label font-weight--normal"},this.state.addError)));let n=[];if(n=this.state.search?this.state.searchResults:this.props.users,this.props.excludeUsers){const e=e=>!this.props.excludeUsers[e.id];n=n.filter(e)}if(this.props.includeUsers){const e=Object.values(this.props.includeUsers);n=[...n,...e]}const i=n.map((e=>({label:e.username,value:e.id,...e})));return C.createElement(Gn.Modal,{id:"addUsersToTeamModal",dialogClassName:"a11y__modal more-modal more-direct-channels",show:this.state.show,onHide:this.handleHide,onExited:this.handleExit},C.createElement(Gn.Modal.Header,{closeButton:!0},C.createElement(Gn.Modal.Title,{componentClass:"h1"},C.createElement(A.FormattedMessage,{id:"add_users_to_team.title",defaultMessage:"Add New Members to {teamName} Team",values:{teamName:C.createElement("strong",null,this.props.team.name)}}))),C.createElement(Gn.Modal.Body,null,s,C.createElement(kr.A,{key:"addUsersToTeamKey",options:i,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:a,saving:this.state.saving,loading:this.state.loading,placeholderText:(0,A.defineMessage)({id:"multiselect.placeholder",defaultMessage:"Search for people"})})))}}const yE=(0,A.injectIntl)(_E),vE=(0,s.connect)((function(e,t){const{id:a}=t.team;let s={active:!0};return t.filterExcludeGuests&&(s={role:"system_user",...s}),{users:(0,g.mY)(e,a,s)}}),(function(e){return{actions:(0,n.zH)({getProfilesNotInTeam:ms.mY,searchProfiles:ms.U},e)}}))(yE);class SE extends C.PureComponent{constructor(e){super(e),this.searchTimeoutId=0,this.state={loading:!0}}componentDidMount(){const{teamId:e}=this.props,{loadProfilesAndReloadTeamMembers:t,getTeamStats:a,setUserGridSearch:s,setUserGridFilters:n}=this.props.actions;Promise.all([s(""),n({}),a(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),a=e.searchTerm!==this.props.searchTerm;if(t||a){this.setStateLoading(!0),clearTimeout(this.searchTimeoutId);const a=this.props.searchTerm,s=this.props.filters;if(""===a)return this.searchTimeoutId=0,t&&await e.actions.loadProfilesAndReloadTeamMembers(0,20,e.teamId,{active:!0,...s}),void this.setStateLoading(!1);const n=window.setTimeout((async()=>{await e.actions.searchProfilesAndTeamMembers(a,{...s,team_id:this.props.teamId,allow_inactive:!1}),n===this.searchTimeoutId&&this.setStateLoading(!1)}),ve.Ay.SEARCH_TIMEOUT_MILLISECONDS);this.searchTimeoutId=n}}setStateLoading=e=>{this.setState({loading:e})};loadPage=async e=>{const{loadProfilesAndReloadTeamMembers:t}=this.props.actions,{teamId:a,filters:s}=this.props;await t(e+1,10,a,{active:!0,...s})};removeUser=e=>{this.props.onRemoveCallback(e)};onAddCallback=e=>{this.props.onAddCallback(e)};onSearch=async e=>{this.props.actions.setUserGridSearch(e)};onFilter=async e=>{const t=e.role.values,a=[],s=[];let n={};Object.keys(t).forEach((e=>{t[e].value&&(e.includes("team")?s.push(e):a.push(e))})),a.length>0||s.length>0?(a.length>0&&(n={roles:a}),s.length>0&&(n={...n,team_roles:s}),this.props.actions.setUserGridFilters(n),this.props.actions.getFilteredUsersStats({in_team:this.props.teamId,include_bots:!0,...n})):this.props.actions.setUserGridFilters(n)};updateMembership=e=>{this.props.updateRole(e.user_id,e.scheme_user,e.scheme_admin)};render=()=>{const{users:e,team:t,usersToAdd:a,usersToRemove:s,teamMembers:n,totalCount:i,searchTerm:r,isDisabled:l}=this.props,o={role:{name:C.createElement(A.FormattedMessage,{id:"admin.user_grid.role",defaultMessage:"Role"}),values:{[vc.A.SYSTEM_GUEST_ROLE]:{name:C.createElement(A.FormattedMessage,{id:"admin.user_grid.guest",defaultMessage:"Guest"}),value:!1},[vc.A.TEAM_USER_ROLE]:{name:C.createElement(A.FormattedMessage,{id:"admin.user_item.member",defaultMessage:"Member"}),value:!1},[vc.A.TEAM_ADMIN_ROLE]:{name:C.createElement(A.FormattedMessage,{id:"admin.user_grid.team_admin",defaultMessage:"Team Admin"}),value:!1},[vc.A.SYSTEM_ADMIN_ROLE]:{name:C.createElement(A.FormattedMessage,{id:"admin.user_grid.system_admin",defaultMessage:"System Admin"}),value:!1}},keys:[vc.A.SYSTEM_GUEST_ROLE,vc.A.TEAM_USER_ROLE,vc.A.TEAM_ADMIN_ROLE,vc.A.SYSTEM_ADMIN_ROLE]}};this.props.enableGuestAccounts||(delete o.role.values[vc.A.SYSTEM_GUEST_ROLE],o.role.keys=[vc.A.TEAM_USER_ROLE,vc.A.TEAM_ADMIN_ROLE,vc.A.SYSTEM_ADMIN_ROLE]);const d={options:o,keys:["role"],onFilter:this.onFilter};return C.createElement(Tl,{id:"teamMembers",title:(0,A.defineMessage)({id:"admin.team_settings.team_detail.membersTitle",defaultMessage:"Members"}),subtitle:(0,A.defineMessage)({id:"admin.team_settings.team_detail.membersDescription",defaultMessage:"A list of users who are currently in the team right now"}),button:C.createElement(vp.A,{id:"addTeamMembers",className:"btn btn-primary",modalId:ve.IQ.ADD_USER_TO_TEAM,dialogType:vE,disabled:l,dialogProps:{team:t,onAddCallback:this.onAddCallback,skipCommit:!0,excludeUsers:a,includeUsers:s,filterExcludeGuests:!0}},C.createElement(A.FormattedMessage,{id:"admin.team_settings.team_details.add_members",defaultMessage:"Add Members"}))},C.createElement(Df,{loading:this.state.loading||Boolean(this.props.loading),users:e,loadPage:this.loadPage,removeUser:this.removeUser,totalCount:i,memberships:n,updateMembership:this.updateMembership,onSearch:this.onSearch,term:r,includeUsers:a,excludeUsers:s,scope:"team",readOnly:l,filterProps:d}))}}const CE=(0,s.connect)((function(e,t){const{teamId:a,usersToRemove:s}=t;let{usersToAdd:n}=t;const i=(0,u.RM)(e)[a]||{},r=(0,u.Uo)(e,a),l=(0,c.zj)(e),o=e.views.search.userGridSearch?.term||"",d=e.views.search.userGridSearch?.filters||{};let m;m=0===Object.keys(d).length?((0,u.ls)(e)[a]||{active_member_count:0}).active_member_count:((0,g.$c)(e)||{total_users_count:0}).total_users_count??0;let p=[];return o?(p=(0,g.rB)(e,a,o,!1,{active:!0,...d}),n=function(e,t){const a=(0,Mp.V3)(Object.keys(e).map((t=>e[t])),t);return(0,g.f9)((0,Mp.vC)(a),{})}(n,o)):p=(0,g.xJ)(e,a,{active:!0,...d}),{filters:d,teamId:a,team:r,users:p,teamMembers:i,usersToAdd:n,usersToRemove:s,totalCount:m,searchTerm:o,enableGuestAccounts:"true"===l.EnableGuestAccounts}}),(function(e){return{actions:(0,n.zH)({getTeamStats:l.ls,loadProfilesAndReloadTeamMembers:ft.RL,searchProfilesAndTeamMembers:ft.oh,getFilteredUsersStats:ms.$c,setUserGridSearch:or.u,setUserGridFilters:or.dj},e)}}))(SE),AE=e=>{let{syncChecked:t,allAllowedChecked:a,allowedDomainsChecked:s,allowedDomains:n,onToggle:i,isDisabled:r}=e;return C.createElement(Al,{id:"syncGroupSwitch",disabled:r,toggled:t,last:t,onToggle:()=>i(!t,a,s,n),title:C.createElement(A.FormattedMessage,{id:"admin.team_settings.team_details.syncGroupMembers",defaultMessage:"Sync Group Members"}),subTitle:C.createElement(A.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=>C.createElement(Ge.A,{href:"https://www.mattermost.com/pl/default-ldap-group-constrained-team-channel.html",location:"team_modes"},e)}})})},TE=e=>{let{syncChecked:t,allAllowedChecked:a,allowedDomainsChecked:s,allowedDomains:n,onToggle:i,isDisabled:r}=e;return t?null:C.createElement(Al,{id:"allowAllToggleSwitch",disabled:r,toggled:a,singleLine:!0,onToggle:()=>i(t,!a,s,n),title:C.createElement(A.FormattedMessage,{id:"admin.team_settings.team_details.anyoneCanJoin",defaultMessage:"Anyone can join this team"}),subTitle:C.createElement(A.FormattedMessage,{id:"admin.team_settings.team_details.anyoneCanJoinDescr",defaultMessage:"This team can be discovered allowing anyone with an account to join this team."})})},NE=e=>{let{syncChecked:t,allAllowedChecked:a,allowedDomainsChecked:s,allowedDomains:n,onToggle:i,isDisabled:r}=e;return t?null:C.createElement(Al,{id:"allowedDomainsToggleSwitch",disabled:r,toggled:s,last:!0,onToggle:()=>i(t,a,!s,n),singleLine:!0,title:C.createElement(A.FormattedMessage,{id:"admin.team_settings.team_details.specificDomains",defaultMessage:"Only specific email domains can join this team"}),subTitle:C.createElement(A.FormattedMessage,{id:"admin.team_settings.team_details.specificDomainsDescr",defaultMessage:"Users can only join the team if their email matches one of the specified domains"})},C.createElement(C.Fragment,null,C.createElement("div",{className:"help-text csvDomains"},C.createElement(A.FormattedMessage,{id:"admin.team_settings.team_details.csvDomains",defaultMessage:"Comma Separated Email Domain List"})),C.createElement("input",{type:"text",value:n,placeholder:"mattermost.com",className:"form-control",onChange:e=>i(t,a,s,e.currentTarget.value),disabled:r})))},kE=e=>{let{allAllowedChecked:t,syncChecked:a,allowedDomains:s,allowedDomainsChecked:n,onToggle:i,isDisabled:r,isLicensedForLDAPGroups:l}=e;return C.createElement(Tl,{id:"team_manage",title:(0,A.defineMessage)({id:"admin.team_settings.team_detail.manageTitle",defaultMessage:"Team Management"}),subtitle:(0,A.defineMessage)({id:"admin.team_settings.team_detail.manageDescription",defaultMessage:"Choose between inviting members manually or syncing members automatically from groups."})},C.createElement("div",{className:"group-teams-and-channels"},C.createElement("div",{className:"group-teams-and-channels--body"},l&&C.createElement(AE,{allAllowedChecked:t,allowedDomainsChecked:n,allowedDomains:s,syncChecked:a,onToggle:i,isDisabled:r}),C.createElement(TE,{allAllowedChecked:t,allowedDomainsChecked:n,allowedDomains:s,syncChecked:a,onToggle:i,isDisabled:r}),C.createElement(NE,{allAllowedChecked:t,allowedDomainsChecked:n,allowedDomains:s,syncChecked:a,onToggle:i,isDisabled:r}))))};var wE=a(75114),IE=a.n(wE),RE=a(47551),LE=a(30135);function xE(e){let{team:t,isArchived:a,onToggleArchive:n,isDisabled:i,saveNeeded:r}=e;
1const l=(0,L.lt)(t),o=(0,LE.A)(),d=(0,RE.A)(),m=(0,s.useSelector)(c.Ay),u=(0,A.useIntl)(),{openPricingModal:g,isAirGapped:p}=(0,ri.A)(),[h,f]=(0,C.useState)(!1),[E,M]=(0,C.useState)(o.teams.teamsLoaded&&o.teams.active>=0&&a);if((0,C.useEffect)((()=>{M("true"===m.Cloud&&o.teams.teamsLoaded&&o.teams.active>=0&&a&&!h&&!r)}),[o,a,h,r,m]),"true"===m.Cloud&&!d.teams.teamsLoaded)return null;const b=a?(0,A.defineMessage)({id:"admin.team_settings.team_details.unarchiveTeam",defaultMessage:"Unarchive Team"}):(0,A.defineMessage)({id:"admin.team_settings.team_details.archiveTeam",defaultMessage:"Archive Team"});return C.createElement(Tl,{id:"team_profile",title:(0,A.defineMessage)({id:"admin.team_settings.team_detail.profileTitle",defaultMessage:"Team Profile"}),subtitle:(0,A.defineMessage)({id:"admin.team_settings.team_detail.profileDescription",defaultMessage:"Summary of the team, including team name and description."})},C.createElement("div",{className:"group-teams-and-channels"},C.createElement("div",{className:"group-teams-and-channels--body"},C.createElement("div",{className:"d-flex"},C.createElement("div",{className:"large-team-image-col"},C.createElement(ae.A,{content:t.display_name,size:"lg",url:l})),C.createElement("div",{className:"team-desc-col"},C.createElement("div",{className:"row row-bottom-padding"},C.createElement(A.FormattedMessage,{id:"admin.teamSettings.teamDetail.teamName",defaultMessage:"<b>Team Name</b>:",values:{b:e=>C.createElement("b",null,e)}}),C.createElement("br",null),t.display_name),C.createElement("div",{className:"row"},C.createElement(A.FormattedMessage,{id:"admin.teamSettings.teamDetail.teamDescription",defaultMessage:"<b>Team Description</b>:",values:{b:e=>C.createElement("b",null,e)}}),C.createElement("br",null),t.description||C.createElement("span",{className:"greyed-out"},u.formatMessage({id:"admin.team_settings.team_detail.profileNoDescription",defaultMessage:"No team description added."}))))),C.createElement("div",{className:"AdminChannelDetails_archiveContainer"},E?C.createElement(Nt.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"})},C.createElement("div",{className:"disabled-overlay-wrapper"},C.createElement("button",{type:"button",disabled:E,style:{pointerEvents:"none"},className:he()("btn","btn-danger","ArchiveButton",{ArchiveButton___archived:a},{ArchiveButton___unarchived:!a},{disabled:i},"cloud-limits-disabled"),onClick:IE()},a?C.createElement("i",{className:"icon icon-archive-arrow-up-outline"}):C.createElement("i",{className:"icon icon-archive-outline"}),C.createElement(A.FormattedMessage,b)))):C.createElement("button",{type:"button",disabled:E,className:he()("btn","ArchiveButton",{ArchiveButton___archived:a},{ArchiveButton___unarchived:!a},{disabled:i},"cloud-limits-disabled"),onClick:()=>{f(!0),n()}},a?C.createElement("i",{className:"icon icon-archive-arrow-up-outline"}):C.createElement("i",{className:"icon icon-archive-outline"}),C.createElement(A.FormattedMessage,b)),E&&!p&&C.createElement("button",{onClick:g,type:"button",className:he()("btn","btn-secondary","upgrade-options-button")},C.createElement(A.FormattedMessage,{id:"workspace_limits.teams_limit_reached.view_upgrade_options",defaultMessage:"View upgrade options"}))))))}class DE extends C.PureComponent{static defaultProps={team:{display_name:"",id:""}};constructor(e){super(e);const t=e.team;this.state={groups:e.groups,syncChecked:Boolean(t?.group_constrained),allAllowedChecked:Boolean(t?.allow_open_invite),allowedDomainsChecked:Boolean(t?.allowed_domains),allowedDomains: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}}
1componentDidUpdate(e){const{totalGroups:t,team:a}=this.props;e.team?.id===a?.id&&t===e.totalGroups||this.setState({totalGroups:t,syncChecked:Boolean(a?.group_constrained),allAllowedChecked:Boolean(a?.allow_open_invite),allowedDomainsChecked:Boolean(a?.allowed_domains),allowedDomains: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})))}setNewGroupRole=e=>{const t=M()(this.state.groups).map((t=>(t.id===e&&(t.scheme_admin=!t.scheme_admin),t)));this.processGroupsChange(t)};handleSubmit=async()=>{const{team:e,groups:t,teamID:a,actions:s}=this.props;if(!e)return;this.setState({showRemoveConfirmation:!1,saving:!0});const{groups:n,allAllowedChecked:i,allowedDomainsChecked:r,allowedDomains:l,syncChecked:o,usersToAdd:d,usersToRemove:c,rolesToUpdate:m}=this.state;let u;if(this.teamToBeArchived()){let t=!1;const a=await s.deleteTeam(e.id);return"error"in a&&(u=C.createElement(Ke.Ay,{error:a.error.message}),t=!0),this.setState({serverError:u,saving:!1,saveNeeded:t,usersToRemoveCount:0,rolesToUpdate:{},usersToAdd:{},usersToRemove:{}}),s.setNavigationBlocked(t),void(t||(0,en.J)().push("/admin_console/user_management/teams"))}if(this.teamToBeRestored()&&!this.state.serverError){const t=await s.unarchiveTeam(e.id);"error"in t&&(u=C.createElement(Ke.Ay,{error:t.error.message})),this.setState({serverError:u,previousServerError:void 0})}let g=!1;if(r&&0===l.trim().length)g=!0,u=C.createElement(dE,null);else if(0===this.state.groups.length&&o)u=C.createElement(oE,null),g=!0;else{const d=n.filter((e=>t.some((t=>t.id===e.id&&t.scheme_admin!==e.scheme_admin)))).map((e=>s.patchGroupSyncable(e.id,a,yl.CL.Team,{scheme_admin:e.scheme_admin}))),c=n.filter((e=>!t.some((t=>t.id===e.id)))).map((e=>s.linkGroupSyncable(e.id,a,yl.CL.Team,{auto_add:!0,scheme_admin:e.scheme_admin}))),m=(await Promise.all([...d,...c])).find((e=>e.error));m&&(u=C.createElement(Ke.Ay,{error:m.error?.message}));const g=await s.patchTeam({...e,group_constrained:o,allowed_domains:r?l:"",allow_open_invite:i});g.error&&(u=C.createElement(Ke.Ay,{error:g.error?.message}));const p=t.filter((e=>!n.some((t=>t.id===e.id)))).map((e=>s.unlinkGroupSyncable(e.id,a,yl.CL.Team)));let h;p.length>0&&(h=(await Promise.all(p)).find((e=>
1e.error)),h&&(u=C.createElement(Ke.Ay,{error:h.error?.message}))),g.error||m||h||await s.getGroups(a)}const p=Object.values(d),h=Object.values(c),f=Object.keys(m);if((p.length>0||h.length>0||f.length>0)&&!o){const e=[],t=[],{addUserToTeam:s,removeUserFromTeam:n,updateTeamMemberSchemeRoles:i}=this.props.actions;if(p.forEach((t=>{e.push(s(a,t.id))})),h.forEach((e=>{t.push(n(a,e.id))})),e.length>0){const t=(await Promise.all(e)).find((e=>e.error));t&&(u=C.createElement(Ke.Ay,{error:t.error?.message}))}if(t.length>0){const e=(await Promise.all(t)).find((e=>e.error));e&&(u=C.createElement(Ke.Ay,{error:e.error?.message}))}const r=[],l=[];if(f.forEach((e=>{const{schemeUser:t,schemeAdmin:s}=m[e];s?r.push(i(a,e,t,s)):l.push(i(a,e,t,s))})),r.length>0){const e=(await Promise.all(r)).find((e=>e.error));e&&(u=C.createElement(Ke.Ay,{error:e.error?.message}))}if(l.length>0){const e=(await Promise.all(l)).find((e=>e.error));e&&(u=C.createElement(Ke.Ay,{error:e.error?.message}))}}this.setState({usersToRemoveCount:0,rolesToUpdate:{},usersToAdd:{},usersToRemove:{},serverError:u,saving:!1,saveNeeded:g},(()=>{s.setNavigationBlocked(g),g||u||(0,en.J)().push("/admin_console/user_management/teams")}))};setToggles=(e,t,a,s)=>{this.setState({saveNeeded:!0,syncChecked:e,allAllowedChecked:!e&&t,allowedDomainsChecked:!e&&a,allowedDomains:s},(()=>this.processGroupsChange(this.state.groups))),this.props.actions.setNavigationBlocked(!0)};async processGroupsChange(e){const{teamID:t,actions:a}=this.props;let s;a.setNavigationBlocked(!0);let n=0;if(this.state.syncChecked)try{if(0===e.length)s=C.createElement(oE,{warning:!0});else{const i=await a.membersMinusGroupMembers(t,e.map((e=>e.id)));n=i.data?i.data.total_count:0,n>0&&(s=C.createElement(cE,{total:n,users:i.data.users,scope:"team",scopeId:this.props.teamID}))}}catch(e){s=e}this.setState({groups:e,usersToRemoveCount:n,saveNeeded:!0,serverError:s})}addUsersToAdd=e=>{let{usersToRemoveCount:t}=this.state;const{usersToAdd:a,usersToRemove:s}=this.state,n=M()(a);e.forEach((e=>{s[e.id]?.id===e.id?(delete s[e.id],t-=1):n[e.id]=e})),this.setState({usersToAdd:{...n},usersToRemove:{...s},usersToRemoveCount:t,saveNeeded:!0}),this.props.actions.setNavigationBlocked(!0)};addUserToRemove=e=>{let{usersToRemoveCount:t}=this.state;const{usersToAdd:a,usersToRemove:s,rolesToUpdate:n}=this.state;a[e.id]?.id===e.id?delete a[e.id]:s[e.id]?.id!==e.id&&(t+=1,s[e.id]=e),delete n[e.id],this.setState({usersToRemove:{...s},usersToAdd:{...a},rolesToUpdate:{...n},usersToRemoveCount:t,saveNeeded:!0}),this.props.actions.setNavigationBlocked(!0)};addRolesToUpdate=(e,t,a)=>{const{rolesToUpdate:s}=this.state;s[e]={schemeUser:t,schemeAdmin:a},this.setState({rolesToUpdate:{...s},saveNeeded:!0}),this.props.actions.setNavigationBlocked(!0)};handleGroupRemoved=e=>{const t=this.state.groups.filter((t=>t.id!==e));this.setState({totalGroups:this.state.totalGroups-1}),this.processGroupsChange(t)};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)};hideRemoveUsersModal=()=>this.setState({showRemoveConfirmation:!1});hideArchiveConfirmModal=()=>this.setState({showArchiveConfirmModal:!1});onSave=()=>{this.teamToBeArchived()?this.setState({showArchiveConfirmModal:!0}):this.state.usersToRemoveCount>0?this.setState({showRemoveConfirmation:!0}):this.handleSubmit()};teamToBeArchived=()=>{const{isLocalArchived:e}=this.state,t=0!==this.props.team?.delete_at;return e&&!t};teamToBeRestored=()=>{const{isLocalArchived:e}=this.state,t=0!==this.props.team?.delete_at;return!e&&t};onToggleArchive=()=>{const{isLocalArchived:e,serverError:t,previousServerError:a}=this.state,{isDisabled:s}=this.props;if(s)return;const n={saveNeeded:!0,isLocalArchived:!e,previousServerError:void 0,serverError:void 0};n.isLocalArchived?(n.previousServerError=t,n.serverError=void 0):(n.serverError=a,n.previousServerError=void 0),this.props.actions.setNavigationBlocked(!0),this.setState(n)};render=()=>{const{team:e,isLicensedForLDAPGroups:t}=this.props;if(!e)return null;const{totalGroups:a,saving:s,saveNeeded:n,serverError:i,groups:r,allAllowedChecked:l,allowedDomainsChecked:o,allowedDomains:d,syncChecked:c,showRemoveConfirmation:m,usersToRemoveCount:u,isLocalArchived:g,showArchiveConfirmModal:p}=this.state,h=this.props.groups.filter((e=>!r.find((t=>
1t.id===e.id)))),f=C.createElement(C.Fragment,null,C.createElement(mE,{amount:u,inChannel:!1,show:m,onCancel:this.hideRemoveUsersModal,onConfirm:this.handleSubmit}),C.createElement(kE,{allAllowedChecked:l,allowedDomainsChecked:o,allowedDomains:d,syncChecked:c,onToggle:this.setToggles,isDisabled:this.props.isDisabled,isLicensedForLDAPGroups:t}),t&&C.createElement(bE,{syncChecked:c,team:e,groups:r,removedGroups:h,totalGroups:a,onAddCallback:this.handleGroupChange,onGroupRemoved:this.handleGroupRemoved,setNewGroupRole:this.setNewGroupRole,isDisabled:this.props.isDisabled}),!c&&C.createElement(CE,{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 C.createElement("div",{className:"wrapper--fixed"},C.createElement(fe,{withBackButton:!0},C.createElement("div",null,C.createElement(me.A,{to:"/admin_console/user_management/teams",className:"fa fa-angle-left back"}),C.createElement(A.FormattedMessage,{id:"admin.team_settings.team_detail.group_configuration",defaultMessage:"Team Configuration"}))),C.createElement("div",{className:"admin-console__wrapper"},C.createElement("div",{className:"admin-console__content"},C.createElement(xE,{team:e,onToggleArchive:this.onToggleArchive,isArchived:g,isDisabled:this.props.isDisabled,saveNeeded:this.state.saveNeeded}),C.createElement(Aa.A,{show:p,title:C.createElement(A.FormattedMessage,{id:"admin.team_settings.team_detail.archive_confirm.title",defaultMessage:"Save and Archive Team"}),message:C.createElement(A.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:C.createElement(A.FormattedMessage,{id:"admin.team_settings.team_detail.archive_confirm.button",defaultMessage:"Archive"}),onConfirm:this.handleSubmit,onCancel:this.hideArchiveConfirmModal}),!g&&f)),C.createElement(ge,{saving:s,cancelLink:"/admin_console/user_management/teams",saveNeeded:n,onClick:this.onSave,serverError:i,isDisabled:this.props.isDisabled}))}}const PE=(0,s.connect)((function(e,t){const a=t.match.params.team_id,s=(0,u.Uo)(e,a),n=(0,_l.Lp)(e,a),i=(0,_l.GX)(e);return{team:s,groups:n,totalGroups:n.length,allGroups:i,teamID:a,isLicensedForLDAPGroups:"true"===e.entities.general.license.LDAPGroups}}),(function(e){return{actions:(0,n.zH)({getTeam:l.Uo,getGroups:bl.Lp,patchTeam:l.Oy,linkGroupSyncable:bl.PY,unlinkGroupSyncable:bl.IC,membersMinusGroupMembers:l.qN,setNavigationBlocked:p.Jb,patchGroupSyncable:bl.r2,removeUserFromTeam:l.fy,addUserToTeam:l.$w,updateTeamMemberSchemeRoles:l.bd,deleteTeam:l.To,unarchiveTeam:l.X3},e)}}))(DE),OE=e=>{let{data:t,isExpanded:a,onButtonClick:s,onHeaderClick:n}=e;const i=(0,C.useRef)(null),r=(0,C.useRef)(null),[l,o]=(0,C.useState)(0),[d,c]=(0,C.useState)(a);(0,C.useEffect)((()=>{if(i?.current&&0!==t.items.length){if(a){const e=i.current;o(e.scrollHeight)}else o(0);c(a)}}),[t.items.length,a]);const m=t.items.length>0;return C.createElement("li",{className:he()("accordion-card",{active:d}),ref:r},C.createElement("div",{className:"accordion-card-header",onClick:m?()=>{s&&s(),n&&n(r)}:void 0,role:m?"button":void 0},t.icon&&C.createElement("div",{className:"accordion-card-header__icon"},t.icon),C.createElement("div",{className:"accordion-card-header__body"},C.createElement("div",{className:"accordion-card-header__body__title"},t.title),t.description&&C.createElement("div",{className:"accordion-card-header__body__description"},t.description)),t.extraContent&&C.createElement("div",{className:"accordion-card-header__extraContent"},t.extraContent),m&&C.createElement("div",{className:"accordion-card-header__chevron"},C.createElement("i",{className:"icon-chevron-down"}))),m&&C.createElement("div",{className:"accordion-card-container",style:{height:l}},C.createElement("div",{ref:i,className:"accordion-card-container__content"},t.items)))},FE=e=>{let{accordionItemsData:t,expandMultiple:a,openFirstElement:s,onHeaderClick:n,onItemOpened:i,className:r}=e;const[l,o]=(0,C.useState)(s?[0]:[]);return C.createElement("ul",{className:he()("Accordion",r)},t.map(((e,t)=>C.createElement(OE,{key:t.toString(),data:e,isExpanded:Boolean(l.includes(t)),onButtonClick:()=>(e=>{if(l.includes(e)){const t=l.filter((t=>e!==t));o(t)}else i&&i(e),o(a?[...l,e]:[e])})(t),onHeaderClick:n}))))};var UE=a(82474);let BE=function(e){return e.NONE="none",e.OK="ok",e.INFO="info",e.WARNING="warning",e.ERROR="error",e}({});const HE=e=>{let{chipsData:t,hideCountZeroChips:a}=e;const s=Object.entries(t).map((e=>{let t,[s,n]=e;if(a&&0===n)return!1;switch(s){case BE.INFO:t=C.createElement(A.FormattedMessage,{id:"admin.reporting.workspace_optimization.chip_suggestions",defaultMessage:"Suggestions: {count}",values:{count:n}});break;case BE.WARNING:t=C.createElement(A.FormattedMessage,{id:"admin.reporting.workspace_optimization.chip_warnings",defaultMessage:"Warnings: {count}",values:{count:n}});break;case BE.ERROR:default:t=C.createElement(A.FormattedMessage,{id:"admin.reporting.workspace_optimization.chip_problems",defaultMessage:"Problems: {count}",values:{count:n}})}return C.createElement(UE.A,{key:s,additionalMarkup:t,className:s})}));return 0===s.length?null:C.createElement(C.Fragment,null,s)},GE=e=>{let{learnMoreLink:t,learnMoreText:a,actionLink:s,actionText:n,actionButtonCallback:i}=e;const r=(0,T.useHistory)(),l=(e,t)=>
1()=>{"cta"===e&&"function"==typeof i?i():t?.startsWith("/")?r.push(t):t?.startsWith("http")&&window.open(t,"_blank")};return C.createElement("div",{className:"ctaButtons"},(s||i)&&n&&C.createElement("button",{className:"btn btn-primary btn-sm actionButton annnouncementBar__purchaseNow",onClick:l("cta",s)},n),t&&a&&C.createElement("button",{className:"btn btn-tertiary btn-sm learnMoreButton",onClick:l("learn-more",t)},a))},VE=[async(e,t)=>{let a=BE.OK;return await(async()=>{e.ServiceSettings?.SiteURL||(a=BE.ERROR),await(0,p.zg)((e=>{let{status:t}=e;"OK"===t&&(a=BE.OK)}),(()=>{a=BE.ERROR}),e.ServiceSettings?.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:ve.Uo.WEB_SERVER,configText:t({id:"admin.reporting.workspace_optimization.access.site_url.cta",defaultMessage:"Configure web server"}),infoUrl:ve.Uk.SITE_URL,infoText:t({id:"admin.reporting.workspace_optimization.cta.learnMore",defaultMessage:"Learn more"}),telemetryAction:"site-url",status:a,scoreImpact:12,impactModifier:nM[a]}}],zE=async(e,t)=>await Promise.all(VE.map((a=>a(e,t)))),jE=(e,t,a)=>{const s="https:"===document.location.protocol?BE.OK:BE.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:ve.Uk.SSL_CERTIFICATE,infoText:t({id:"admin.reporting.workspace_optimization.cta.learnMore",defaultMessage:"Learn more"}),telemetryAction:"ssl",status:s,scoreImpact:25,impactModifier:nM[s]}},WE=(e,t,a)=>{const s=720===e.ServiceSettings?.SessionLengthMobileInHours?BE.INFO:BE.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:ve.Uo.SESSION_LENGTHS,configText:t({id:"admin.reporting.workspace_optimization.configuration.session_length.cta",defaultMessage:"Configure session length"}),infoUrl:ve.Uk.SESSION_LENGTHS,infoText:t({id:"admin.reporting.workspace_optimization.cta.learnMore",defaultMessage:"Learn more"}),telemetryAction:"session-length",status:s,scoreImpact:8,impactModifier:nM[s]}},YE=async(e,t,a)=>{const s=await(async()=>(await I.mT.ping(!0)).root_status?BE.WARNING:BE.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:s,scoreImpact:25,impactModifier:nM[s]}},qE=async(e,t,a)=>{const s=await(async()=>"OK"===(await I.mT.ping(!0)).filestore_status?BE.OK:BE.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."}
1),configUrl:ve.Uo.FILE_STORAGE,configText:t({id:"admin.reporting.workspace_optimization.configuration.file_storage.cta",defaultMessage:"Config file storage"}),infoUrl:ve.Uk.FILE_STORAGE,infoText:t({id:"admin.reporting.workspace_optimization.cta.learnMore",defaultMessage:"Learn more"}),telemetryAction:"file_storage",status:s,scoreImpact:50,impactModifier:nM[s]}},ZE=async(e,t,a)=>{const s=[jE,WE,qE,YE];return await Promise.all(s.map((s=>s(e,t,a))))},JE=async(e,t,a)=>{const s=await(async(e,t)=>t.isLicensed&&t.isEnterpriseLicense&&(e.DataRetentionSettings?.EnableMessageDeletion||e.DataRetentionSettings?.EnableFileDeletion||(await fetch(`${I.mT.getBaseRoute()}/data_retention/policies_count`).then((e=>e.json()))).total_count>0)?BE.OK:BE.INFO)(e,a);return{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."}),...a.isLicensed&&a.isEnterpriseLicense?{configUrl:ve.Uo.DATA_RETENTION,configText:t({id:"admin.reporting.workspace_optimization.data_privacy.retention.cta",defaultMessage:"Try data retention"})}:a.trialOrEnterpriseCtaConfig,infoUrl:ve.Uk.DATA_RETENTION_POLICY,infoText:t({id:"admin.reporting.workspace_optimization.cta.learnMore",defaultMessage:"Learn more"}),telemetryAction:"data-retention",status:s,scoreImpact:16,impactModifier:nM[s]}},KE=async(e,t,a)=>{const s=[JE];return await Promise.all(s.map((s=>s(e,t,a))))},QE=async(e,t,a)=>{const s=a.analytics?.TOTAL_USERS>100?await(async(e,t)=>{let a=BE.INFO;return t.isLicensed&&e.LdapSettings?.Enable?(await(0,p.QD)((e=>{let{status:t}=e;"OK"===t&&(a=BE.OK)})),a):a})(e,a):BE.OK;return{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."}),...a.isLicensed&&!a.isStarterLicense?{configUrl:ve.Uo.AD_LDAP,configText:t({id:"admin.reporting.workspace_optimization.ease_of_management.ldap.cta",defaultMessage:"Try AD/LDAP"})}:a.trialOrEnterpriseCtaConfig,infoUrl:ve.Uk.SETUP_LDAP,infoText:t({id:"admin.reporting.workspace_optimization.cta.learnMore",defaultMessage:"Learn more"}),telemetryAction:"ad-ldap",status:s,scoreImpact:22,impactModifier:nM[s]}},XE=async(e,t,a)=>{const s=[QE];return await Promise.all(s.map((s=>s(e,t,a))))},$E=async(e,t,a)=>{const s=a.analytics?.TOTAL_POSTS,n=a.analytics?.TOTAL_USERS,i=s<2e6&&n<500?BE.OK:await(async(e,t)=>{let a=BE.INFO;return t.isLicensed&&t.isEnterpriseLicense&&e.ElasticsearchSettings?.EnableIndexing&&e.ElasticsearchSettings?.EnableSearching?(await(0,p.Cg)(e,(e=>{let{status:t}=e;"OK"===t&&(a=BE.OK)})),a):a})(e,a);return{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."}),...a.isLicensed&&a.isEnterpriseLicense?{configUrl:ve.Uo.ELASTICSEARCH,configText:t({id:"admin.reporting.workspace_optimization.search.cta",defaultMessage:"Try Elasticsearch"})}:a.trialOrEnterpriseCtaConfig,infoUrl:ve.Uk.ELASTICSEARCH,infoText:t({id:"admin.reporting.workspace_optimization.cta.learnMore",defaultMessage:"Learn more"}),telemetryAction:"search-optimization",status:i,scoreImpact:20,impactModifier:nM[i]}},eM=async(e,t,a)=>{const s=[$E];return await Promise.all(s.map((s=>s(e,t,a))))},tM=async(e,t,a)=>{const s=await aM(a.installedVersion,t);return{id:"server_version",title:t({id:"admin.reporting.workspace_optimization.updates.server_version.status.title",defaultMessage:"{type} version update available."},{type:s.type}),description:s.description,configUrl:ve.Lu.DOWNLOAD_UPDATE,configText:t
1({id:"admin.reporting.workspace_optimization.updates.server_version.cta",defaultMessage:"Download update"}),infoUrl:ve.Uk.UPGRADE_SERVER,infoText:t({id:"admin.reporting.workspace_optimization.cta.learnMore",defaultMessage:"Learn more"}),telemetryAction:"server-version",status:s.status,scoreImpact:15,impactModifier:nM[s.status]}},aM=async(e,t)=>{const a=await fetch(`${I.mT.getBaseRoute()}/latest_version`).then((e=>e.json()));if(a.tag_name){const s=a.tag_name.startsWith("v")?a.tag_name.slice(1):a.tag_name,n=s.split("."),i=e.split(".").slice(0,3);let r="",l=BE.OK;if(s.localeCompare(e,void 0,{numeric:!0,sensitivity:"base"})>0)switch(!0){case Number(n[0])>Number(i[0]):r=t({id:"admin.reporting.workspace_optimization.updates.server_version.update_type.major",defaultMessage:"Major"}),l=BE.ERROR;break;case Number(n[1])>Number(i[1]):r=t({id:"admin.reporting.workspace_optimization.updates.server_version.update_type.minor",defaultMessage:"Minor"}),l=BE.WARNING;break;case Number(n[2])>Number(i[2]):r=t({id:"admin.reporting.workspace_optimization.updates.server_version.update_type.patch",defaultMessage:"Patch"}),l=BE.INFO}return{type:r,description:a.body,status:l}}return{type:"",description:"",status:BE.OK}},sM=async(e,t,a)=>{const s=[tM];return await Promise.all(s.map((s=>s(e,t,a))))},nM={[BE.NONE]:1,[BE.OK]:1,[BE.INFO]:.5,[BE.WARNING]:.25,[BE.ERROR]:0},iM=async(e,t,a)=>({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:C.createElement("div",{className:"icon"},C.createElement(w.ArrowUpBoldCircleOutlineIcon,{size:20,color:"var(--sys-center-channel-color)"})),items:await sM(e,t,a)}),rM=async(e,t,a)=>({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:a.isCloud,descriptionOk:t({id:"admin.reporting.workspace_optimization.configuration.descriptionOk",defaultMessage:"You've successfully configured SSL and Session Lengths!"}),icon:C.createElement("div",{className:"icon"},C.createElement(w.TuneIcon,{size:20,color:"var(--sys-center-channel-color)"})),items:await ZE(e,t,a)}),lM=async(e,t,a)=>({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:a.isCloud,descriptionOk:t({id:"admin.reporting.workspace_optimization.access.descriptionOk",defaultMessage:"Your web server configuration is passing a live URL test!"}),icon:C.createElement("div",{className:"icon"},C.createElement(w.ServerVariantIcon,{size:20,color:"var(--sys-center-channel-color)"})),items:await zE(e,t)}),oM=async(e,t,a)=>({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:a.isCloud,descriptionOk:t({id:"admin.reporting.workspace_optimization.performance.descriptionOk",defaultMessage:"Your search performance suits your workspace usage!"}),icon:C.createElement("div",{className:"icon"},C.createElement(w.ChartLineIcon,{size:20,color:"var(--sys-center-channel-color)"})),items:await eM(e,t,a)}),dM=async(e,t,a)=>({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:C.createElement("div",{className:"icon"},C.createElement(w.LockOutlineIcon,{size:20,color:"var(--sys-center-c
1hannel-color)"})),items:await KE(e,t,a)}),cM=async(e,t,a)=>({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:C.createElement("div",{className:"icon"},C.createElement(w.AccountMultipleOutlineIcon,{size:20,color:"var(--sys-center-channel-color)"})),items:await XE(e,t,a)}),mM=e=>{let{value:t,isPercentage:a,width:s,height:n,type:i}=e;return C.createElement("div",{className:"CircularChart"},C.createElement("svg",{viewBox:"0 0 36 36",className:`circular-chart ${i}`,width:s>=0?s.toString():"36",height:n>=0?n.toString():"36"},C.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"}),C.createElement("path",{className:"circle",strokeDasharray:`${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"}),C.createElement("text",{x:"18",y:"20.70",className:"percentageOrNumber"},`${t}${a?" %":""}`)))},uM=e=>{let{chips:t,title:a,description:s,chartValue:n}=e;const i=a||C.createElement(A.FormattedMessage,{id:"admin.reporting.workspace_optimization.overall_workspace_score",defaultMessage:"Overall Score"}),r=s||C.createElement(A.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 l;switch(n){case 0:l=C.createElement("div",{className:"alertImageScore"},C.createElement(w.ExclamationThickIcon,{size:48,color:"var(--sys-dnd-indicator)"}));break;case 100:l=C.createElement("div",{className:"successImageScore"},C.createElement(w.CheckIcon,{size:48,color:"var(--sys-online-indicator)"}));break;default:l=C.createElement(mM,{value:n,isPercentage:!1,width:140,height:140,type:"success"})}return C.createElement("div",{className:"OverallScore"},C.createElement("div",{className:"OverallScore__scoreEllipseSvg"},l),C.createElement("div",{className:"OverallScore__content"},C.createElement("div",{className:"OverallScore__content__title"},i),C.createElement("div",{className:"OverallScore__content__description"},r),C.createElement("div",{className:"OverallScore__content__chips"},t)))},gM=R.default.div.withConfig({displayName:"AccordionItem"})(["padding:12px;&:last-child{border-bottom:none;}h5{display:inline-flex;align-items:center;font-weight:bold;}"]),pM=C.createElement("div",{className:"success"},C.createElement(w.CheckIcon,{size:20,color:"var(--sys-online-indicator)"})),hM="local",fM="amazons3",EM=Math.pow(1024,2),MM=(0,A.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."}}),bM={about:{icon:C.createElement(w.InformationOutlineIcon,{size:16,color:"currentColor"}),sectionTitle:(0,A.defineMessage)({id:"admin.sidebar.about",defaultMessage:"About"}
1),isHidden:Qt(aa("ExperimentalSettings","RestrictSystemAdmin"),Jt(ua(_.ABOUT))),subsections:{license:{url:"about/license",title:(0,A.defineMessage)({id:"admin.sidebar.license",defaultMessage:"Edition and License"}),searchableStrings:hd,isHidden:Jt(ma(_.ABOUT.EDITION_AND_LICENSE)),isDisabled:Jt(ga(_.ABOUT.EDITION_AND_LICENSE)),schema:{id:"LicenseSettings",component:Ed}}}},billing:{icon:C.createElement(w.CreditCardOutlineIcon,{size:16,color:"currentColor"}),sectionTitle:(0,A.defineMessage)({id:"admin.sidebar.billing",defaultMessage:"Billing & Account"}),isHidden:Jt(la("Cloud")),subsections:{subscription:{url:"billing/subscription",title:(0,A.defineMessage)({id:"admin.sidebar.subscription",defaultMessage:"Subscription"}),searchableStrings:yi,schema:{id:"BillingSubscriptions",component:()=>{const e=(0,s.useDispatch)(),t=(0,s.useSelector)(_e.dw),a=(0,s.useSelector)((e=>{const t=(0,_e.Zz)(e);return Boolean(t.limits||t.subscription||t.customer||t.products)})),n=t?.trial_end_at||0,i=(0,li.I)().get("action"),r=(0,s.useSelector)(_e.Pd),{openPricingModal:l,isAirGapped:o}=(0,ri.A)();let d=!1,c=0;return"true"===t?.is_free_trial&&(d=!0,c=Math.min((0,L.RF)(t.trial_end_at),ve.RC.TRIAL_30_DAYS)),(0,C.useEffect)((()=>{e((0,On.dw)()),e((0,On.Oy)(!0)),e((0,On.wX)()),"show_pricing_modal"!==i||o||l()}),[]),t&&r||a?C.createElement("div",{className:"wrapper--fixed BillingSubscriptions"},C.createElement(fe,null,C.createElement(A.FormattedMessage,_i.title)),C.createElement("div",{className:"admin-console__wrapper"},C.createElement("div",{className:"admin-console__content"},a&&C.createElement(Fn,null),!a&&C.createElement(C.Fragment,null,d&&C.createElement(ii,{trialEndDate:n}),C.createElement("div",{className:"BillingSubscriptions__topWrapper"},C.createElement(bi,{isFreeTrial:d,subscriptionPlan:r?.sku}),C.createElement(gi,{isFreeTrial:d,daysLeftOnTrial:c})),C.createElement(ci,{isFreeTrial:d,subscriptionPlan:r?.sku,onUpgradeMattermostCloud:l}))))):null}},isHidden:Jt(la("Cloud")),isDisabled:Jt(ga("billing"))},billing_history:{url:"billing/billing_history",title:(0,A.defineMessage)({id:"admin.sidebar.billing_history",defaultMessage:"Billing History"}),searchableStrings:Jn,schema:{id:"BillingHistory",component:()=>{const e=(0,s.useDispatch)(),t=(0,s.useSelector)(_e.I0),a=(0,s.useSelector)(_e.MP),{invoices:n}=(0,s.useSelector)(_e.Zz);(0,C.useEffect)((()=>{e((0,On.NP)())}),[t]);const i=a&&C.createElement(qn,{invoices:a}),r=0===Object.keys(a||{}).length;return C.createElement("div",{className:"wrapper--fixed BillingHistory"},C.createElement(fe,null,C.createElement(A.FormattedMessage,Zn.title)),C.createElement("div",{className:"admin-console__wrapper"},C.createElement("div",{className:"admin-console__content"},n&&C.createElement(Fn,null),!n&&C.createElement("div",{className:"BillingHistory__card"},C.createElement("div",{className:"BillingHistory__cardHeader"},C.createElement("div",{className:"BillingHistory__cardHeaderText"},C.createElement("div",{className:"BillingHistory__cardHeaderText-top"},C.createElement(A.FormattedMessage,{id:"admin.billing.history.transactions",defaultMessage:"Transactions"})),C.createElement("div",{"data-testid":"no-invoices",className:"BillingHistory__cardHeaderText-bottom"},C.createElement(A.FormattedMessage,{id:"admin.billing.history.allPaymentsShowHere",defaultMessage:"All of your invoices will be shown here"})))),C.createElement("div",{className:"BillingHistory__cardBody"},null!=a&&(r?C.createElement(Kn,{selfHosted:!t}):i),null==a&&C.createElement("div",{className:"BillingHistory__spinner"},C.createElement(Bn.A,null)))))))}},isHidden:Jt(la("Cloud")),isDisabled:Jt(ga("billing"))},company_info:{url:"billing/company_info",title:(0,A.defineMessage)({id:"admin.sidebar.company_info",defaultMessage:"Company Information"}),searchableStrings:Ni,schema:{id:"CompanyInfo",component:()=>{const e=(0,s.useDispatch)(),{customer:t}=(0,s.useSelector)(_e.Zz);return(0,C.useEffect)((()=>{e((0,On.wX)())}),[]),C.createElement("div",{className:"wrapper--fixed CompanyInfo"},C.createElement(fe,null,C.createElement(A.FormattedMessage,Ti.title)),C.createElement("div",{className:"admin-console__wrapper"},C.createElement("div",{className:"admin-console__content"},t?C.createElement(Fn,null):C.createElement(Ai,null))))}}
1,isHidden:Jt(la("Cloud")),isDisabled:Jt(ga("billing"))},company_info_edit:{url:"billing/company_info_edit",schema:{id:"CompanyInfoEdit",component:()=>{const e=(0,s.useDispatch)(),t=(0,T.useHistory)(),a=(0,s.useSelector)((e=>e.entities.cloud.customer)),[n,i]=(0,C.useState)(a?.name),[r,l]=(0,C.useState)(a?.num_employees||void 0),[o,d]=(0,C.useState)(a?.company_address?.line1),[c,m]=(0,C.useState)(a?.company_address?.line2),[u,g]=(0,C.useState)(a?.company_address?.city),[h,f]=(0,C.useState)(a?.company_address?.postal_code),[E,M]=(0,C.useState)(a?.company_address?.country||(0,ki.mG)("US")),[b,_]=(0,C.useState)(a?.company_address?.state),[y,v]=(0,C.useState)(!1),[S,N]=(0,C.useState)(Boolean(!a?.company_address?.line1&&a?.billing_address?.line1)),[k,w]=(0,C.useState)(void 0),[I,R]=(0,C.useState)(!1),L=(0,C.useCallback)((()=>{w(S?Boolean(n):Boolean(n&&o&&u&&h&&E&&b))}),[S,n,o,u,h,E,b]),x=e=>t=>{e(t.target.value),L(),v(!0)};if((0,C.useEffect)((()=>{e((0,On.wX)())}),[e]),(0,C.useEffect)((()=>{L()}),[L]),(0,C.useEffect)((()=>{y&&e((0,p.Jb)(!0))}),[y]),!a)return null;const D=C.createElement(C.Fragment,null,C.createElement("div",{className:"CompanyInfoEdit__companyInfo-addressTitle"},C.createElement(A.FormattedMessage,{id:"admin.billing.company_info.billingAddress",defaultMessage:"Billing Address"})),C.createElement("div",{className:"CompanyInfoEdit__companyInfo-address"},C.createElement("div",null,a?.billing_address?.line1),a?.billing_address?.line2&&C.createElement("div",null,a?.billing_address?.line2),C.createElement("div",null,`${a?.billing_address?.city}, ${a?.billing_address?.state}, ${a?.billing_address?.postal_code}`),C.createElement("div",null,a?.billing_address?.country))),P=C.createElement(C.Fragment,null,C.createElement(wi.A,{onChange:e=>{M(e.value),v(!0)},value:E||void 0}),C.createElement("div",{className:"form-row"},C.createElement(Ri.A,{name:"address",type:"text",value:o,onChange:x(d),placeholder:(0,A.defineMessage)({id:"admin.billing.company_info.address",defaultMessage:"Address"}),required:!0})),C.createElement("div",{className:"form-row"},C.createElement(Ri.A,{name:"address2",type:"text",value:c,onChange:x(m),placeholder:(0,A.defineMessage)({id:"admin.billing.company_info.address_2",defaultMessage:"Address 2"})})),C.createElement("div",{className:"form-row"},C.createElement(Ri.A,{name:"city",type:"text",value:u,onChange:x(g),placeholder:(0,A.defineMessage)({id:"admin.billing.company_info.city",defaultMessage:"City"}),required:!0})),C.createElement("div",{className:"form-row"},C.createElement("div",{className:"form-row-third-1 selector"},C.createElement(Di,{country:E,state:b,onChange:e=>{_(e),v(!0)}})),C.createElement("div",{className:"form-row-third-2"},C.createElement(Ri.A,{name:"postalCode",type:"text",value:h,onChange:x(f),placeholder:(0,A.defineMessage)({id:"admin.billing.company_info.zipcode",defaultMessage:"Zip/Postal Code"}),required:!0}))));return C.createElement("div",{className:"wrapper--fixed CompanyInfoEdit"},C.createElement(fe,{withBackButton:!0},C.createElement("div",null,C.createElement(me.A,{to:"/admin_console/billing/company_info",className:"fa fa-angle-left back"}),C.createElement(A.FormattedMessage,{id:"admin.billing.company_info_edit.title",defaultMessage:"Edit Company Information"}))),C.createElement("div",{className:"admin-console__wrapper"},C.createElement("div",{className:"admin-console__content"},C.createElement("div",{className:"CompanyInfoEdit__card"},C.createElement("div",{className:"CompanyInfoEdit__form"},C.createElement("div",{className:"section-title"},C.createElement(A.FormattedMessage,{id:"admin.billing.company_info_edit.companyDetails",defaultMessage:"Company Details"})),C.createElement("div",{className:"form-row"},C.createElement(Ri.A,{name:"companyName",type:"text",value:n,onChange:x(i),placeholder:(0,A.defineMessage)({id:"admin.billing.company_info.companyName",defaultMessage:"Company name"}),required:!0})),C.createElement("div",{className:"form-row"},C.createElement(Ri.A,{name:"numEmployees",type:"number",value:r,onChange:e=>{e.target.value?l(parseInt(e.target.value,10)):l(void 0),v(!0)},placeholder:(0,A.defineMessage)({id:"admin.billing.company_info.numEmployees",defaultMessage:"Number of employees (optional)"})})),C.createElement("div",{className:"section-title"},C.createElement(A.FormattedMessage,{id:"admin.billing.company_info_edit.company_address",defaultMessage:"Company Address"})),a?.billing_address?.line1&&C.createElement("div",{className:"checkbox"},C.createElement("label",null,C.createElement("input",{type:"checkbox",checked:S,onChange:e=>{N(e.target.checked),v(!0)}}),C.createElement(A.FormattedMessage,{id:"admin.billing.company_info_edit.sameAsBillingAddress",defaultMessage:"Same as Billing Address"}))),S&&a?.billing_address?.line1?D:P)))),C.createElement("div",{className:"admin-console-save"},C.createElement(ue.A,{saving:I,disabled:!k,onClick:async()=>{R(!0),await e((0,On.jF)({name:n,num_employees:r||0})),S?await e((0,On.Tq)({city:"",country:"",line1:"",line2:"",postal_code:"",state:""})):await e((0,On.Tq)({city:u||"",country:E||"",line1:o||"",line2:c||"",postal_code:h||"",state:b||""})),R(!1),t.push("/admin_console/billing/company_info")},defaultMessage:C.createElement(A.FormattedMessage,{id:"admin.billing.company_info_edit.save",defaultMessage:"Save info"})}),C.createElement(me.A,{className:"btn btn-tertiary",to:"/admin_console/billing/company_info"},C.createElement(A.FormattedMessage,{id:"admin.billing.company_info_edit.cancel",defaultMessage:"Cancel"}))))}}
1,isHidden:Jt(la("Cloud")),isDisabled:Jt(ga("billing"))}}},reporting:{icon:C.createElement(w.ChartBarIcon,{size:16,color:"currentColor"}),sectionTitle:(0,A.defineMessage)({id:"admin.sidebar.reporting",defaultMessage:"Reporting"}),isHidden:Jt(ua(_.REPORTING)),subsections:{workspace_optimization:{url:"reporting/workspace_optimization",title:(0,A.defineMessage)({id:"admin.sidebar.workspaceOptimization",defaultMessage:"Workspace Optimization"}),schema:{id:"WorkspaceOptimizationDashboard",component:e=>{const{data:t,loading:a}=(e=>{const[t,a]=(0,C.useState)(!0),[n,i]=(0,C.useState)(void 0),{formatMessage:r}=(0,A.useIntl)(),l=(0,s.useSelector)((e=>e.entities.admin.prevTrialLicense)),o=(0,s.useSelector)(c.Ay),d=(0,s.useSelector)((e=>(0,c.Sw)(e))),m=(0,s.useSelector)((e=>e.entities.admin.analytics)),u="true"!==o?.IsLicensed&&"true"!==l?.IsLicensed,g=(0,qt.vj)(o)||-1,p="true"===o?.IsLicensed&&g>=0,h="true"===o?.Cloud,f=(0,qt.PL)(o),E=(0,qt.P9)(o),[,M]=(0,ai.A)(),b=(0,C.useMemo)((()=>({configUrl:u?ve.Uo.LICENSE:M,configText:r(u?{id:"admin.reporting.workspace_optimization.cta.startTrial",defaultMessage:"Start trial"}:{id:"admin.reporting.workspace_optimization.cta.upgradeLicense",defaultMessage:"Contact sales"})})),[u,M,r]),_=(0,C.useMemo)((()=>({isLicensed:p,isEnterpriseLicense:f,trialOrEnterpriseCtaConfig:b,isStarterLicense:E,isCloud:h,analytics:m,installedVersion:d})),[p,f,b,E,h,m,d]);return(0,C.useEffect)((()=>{a(!0),(async()=>({updates:await iM(e,r,_),configuration:await rM(e,r,_),access:await lM(e,r,_),performance:await oM(e,r,_),dataPrivacy:await dM(e,r,_),easyManagement:await cM(e,r,_)}))().then((e=>{i(e),a(!1)}))}),[e,r,_]),{data:n,loading:t}})(e.config),n={[BE.INFO]:0,[BE.WARNING]:0,[BE.ERROR]:0},i={max:0,current:0},r=t&&Object.entries(t).filter((e=>{let[t,a]=e;return!a.hide})).map((e=>{let[t,a]=e;const s={[BE.INFO]:0,[BE.WARNING]:0,[BE.ERROR]:0},r=[];a.items.forEach((e=>{void 0!==e.status&&(i.max+=e.scoreImpact,i.current+=e.scoreImpact*e.impactModifier,e.status!==BE.OK&&e.status!==BE.NONE&&(r.push(C.createElement(gM,{key:`${t}-item_${e.id}`},C.createElement("h5",null,C.createElement("i",{className:he()(`icon ${e.status}`,{"icon-alert-outline":e.status===BE.WARNING,"icon-alert-circle-outline":e.status===BE.ERROR,"icon-information-outline":e.status===BE.INFO})}),e.title),C.createElement("p",null,e.description),C.createElement(GE,{learnMoreLink:e.infoUrl,learnMoreText:e.infoText,actionLink:e.configUrl,actionText:e.configText}))),s[e.status]+=1,n[e.status]+=1))}));const{title:l,description:o,descriptionOk:d,icon:c}=a;return{title:l,description:0===r.length?d:o,icon:0===r.length?pM:c,items:r,extraContent:C.createElement(HE,{chipsData:s,hideCountZeroChips:!0})}}));return a||!r?C.createElement(Ta.A,null):C.createElement("div",{className:"WorkspaceOptimizationDashboard wrapper--fixed"},C.createElement(fe,null,C.createElement(A.FormattedMessage,{id:"admin.reporting.workspace_optimization.title",defaultMessage:"Workspace Optimization"})),C.createElement("div",{className:"admin-console__wrapper"},C.createElement(uM,{chips:C.createElement(HE,{chipsData:n,hideCountZeroChips:!1}),chartValue:Math.floor(i.current/i.max*100)}),C.createElement(FE,{accordionItemsData:r,expandMultiple:!0})))}}
1,isHidden:Qt(Jt(ma(_.REPORTING.SITE_STATISTICS)),la("Cloud")),isDisabled:Jt(ga(_.REPORTING.SITE_STATISTICS))},system_analytics:{url:"reporting/system_analytics",title:(0,A.defineMessage)({id:"admin.sidebar.siteStatistics",defaultMessage:"Site Statistics"}),searchableStrings:os,schema:{id:"SystemAnalytics",component:cs},isHidden:Jt(ma(_.REPORTING.SITE_STATISTICS)),isDisabled:Jt(ga(_.REPORTING.SITE_STATISTICS))},team_statistics:{url:"reporting/team_statistics",title:(0,A.defineMessage)({id:"admin.sidebar.teamStatistics",defaultMessage:"Team Statistics"}),searchableStrings:_s,schema:{id:"TeamAnalytics",component:vs},isHidden:Jt(ma(_.REPORTING.TEAM_STATISTICS)),isDisabled:Jt(ga(_.REPORTING.TEAM_STATISTICS))},server_logs:{url:"reporting/server_logs",title:(0,A.defineMessage)({id:"admin.sidebar.logs",defaultMessage:"Server Logs"}),isHidden:Qt(aa("ExperimentalSettings","RestrictSystemAdmin"),Jt(ma(_.REPORTING.SERVER_LOGS))),isDisabled:Jt(ga(_.REPORTING.SERVER_LOGS)),searchableStrings:eg,schema:{id:"ServerLogs",component:ag}}}},user_management:{icon:C.createElement(w.AccountMultipleOutlineIcon,{size:16,color:"currentColor"}),sectionTitle:(0,A.defineMessage)({id:"admin.sidebar.userManagement",defaultMessage:"User Management"}),isHidden:Jt(ua(_.USER_MANAGEMENT)),subsections:{system_users:{url:"user_management/users",title:(0,A.defineMessage)({id:"admin.sidebar.users",defaultMessage:"Users"}),searchableStrings:ef,isHidden:Jt(ma(_.USER_MANAGEMENT.USERS)),schema:{id:"SystemUsers",component:sf}},system_user_detail:{url:`user_management/user/:user_id(${Ss.Zv})`,isHidden:Jt(ma(_.USER_MANAGEMENT.USERS)),schema:{id:"SystemUserDetail",component:ih}},group_detail:{url:`user_management/groups/:group_id(${Ss.Zv})`,isDisabled:Jt(ga(_.USER_MANAGEMENT.GROUPS)),isHidden:Jt(ma(_.USER_MANAGEMENT.GROUPS)),schema:{id:"GroupDetail",component:Vl}},groups:{url:"user_management/groups",title:(0,A.defineMessage)({id:"admin.sidebar.groups",defaultMessage:"Groups"}
1),isHidden:Qt(Jt(la("LDAPGroups")),Jt(ma(_.USER_MANAGEMENT.GROUPS))),isDisabled:Jt(ga(_.USER_MANAGEMENT.GROUPS)),schema:{id:"Groups",component:e=>{let{isDisabled:t}=e;const a=(0,Cs.vV)();return C.createElement("div",{className:"wrapper--fixed"},C.createElement(fe,null,C.createElement(A.FormattedMessage,{id:"admin.group_settings.groupsPageTitle",defaultMessage:"Groups"})),C.createElement("div",{className:"admin-console__wrapper"},C.createElement("div",{className:"admin-console__content"},C.createElement("div",{className:"banner info"},C.createElement("div",{className:"banner__content"},C.createElement(A.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=>C.createElement(Ge.A,{location:"group_settings",href:ve.Uk.DEFAULT_LDAP_GROUP_SYNC},e)}}))),C.createElement(Tl,{id:"ldap_groups",title:(0,A.defineMessage)({id:"admin.group_settings.ldapGroupsTitle",defaultMessage:"AD/LDAP Groups"}),subtitle:(0,A.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=>C.createElement(Ge.A,{location:"group_settings.ldap_groups",href:`${a}/admin_console/authentication/ldap`},e)}},C.createElement(Kl,{readOnly:t})),C.createElement(Ql.default,{pluggableName:"SystemConsoleGroupTable"}))))}},restrictedIndicator:Ma()},groups_feature_discovery:{url:"user_management/groups",isDiscovery:!0,title:(0,A.defineMessage)({id:"admin.sidebar.groups",defaultMessage:"Groups"}
1),isHidden:Qt(la("LDAPGroups")),schema:{id:"Groups",name:(0,A.defineMessage)({id:"admin.group_settings.groupsPageTitle",defaultMessage:"Groups"}),settings:[{type:"custom",component:()=>C.createElement(dl,{featureName:"groups",minimumSKURequiredForFeature:ve.gS.Enterprise,title:(0,A.defineMessage)({id:"admin.groups_feature_discovery.title",defaultMessage:"Synchronize your Active Directory/LDAP groups with Mattermost Enterprise"}),copy:(0,A.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:C.createElement(gl,{width:276,height:170})}),key:"GroupsFeatureDiscovery",isDisabled:Jt(ga(_.ABOUT.EDITION_AND_LICENSE))}]},restrictedIndicator:Ma(!0,ve.gS.Enterprise)},team_detail:{url:`user_management/teams/:team_id(${Ss.Zv})`,isDisabled:Jt(ga(_.USER_MANAGEMENT.TEAMS)),isHidden:Jt(ma(_.USER_MANAGEMENT.TEAMS)),schema:{id:"TeamDetail",component:PE}},teams:{url:"user_management/teams",title:(0,A.defineMessage)({id:"admin.sidebar.teams",defaultMessage:"Teams"}
1),isHidden:Qt(Jt(ma(_.USER_MANAGEMENT.TEAMS))),schema:{id:"Teams",component:EE}},channel_detail:{url:`user_management/channels/:channel_id(${Ss.Zv})`,isDisabled:Jt(ga(_.USER_MANAGEMENT.CHANNELS)),isHidden:Jt(ma(_.USER_MANAGEMENT.CHANNELS)),schema:{id:"ChannelDetail",component:gE}},channel:{url:"user_management/channels",title:(0,A.defineMessage)({id:"admin.sidebar.channels",defaultMessage:"Channels"}),isHidden:Jt(ma(_.USER_MANAGEMENT.CHANNELS)),isDisabled:Jt(ga(_.USER_MANAGEMENT.CHANNELS)),schema:{id:"Channels",component:ff}},systemScheme:{url:"user_management/permissions/system_scheme",isHidden:Jt(ma(_.USER_MANAGEMENT.PERMISSIONS)),isDisabled:Jt(ga(_.USER_MANAGEMENT.PERMISSIONS)),schema:{id:"PermissionSystemScheme",component:qc}},teamSchemeDetail:{url:`user_management/permissions/team_override_scheme/:scheme_id(${Ss.Zv})`,isHidden:Jt(ma(_.USER_MANAGEMENT.PERMISSIONS)),isDisabled:Jt(ga(_.USER_MANAGEMENT.PERMISSIONS)),schema:{id:"PermissionSystemScheme",component:em}},teamScheme:{url:"user_management/permissions/team_override_scheme",isHidden:Jt(ma(_.USER_MANAGEMENT.PERMISSIONS)),isDisabled:Jt(ga(_.USER_MANAGEMENT.PERMISSIONS)),schema:{id:"PermissionSystemScheme",component:em}},permissions:{url:"user_management/permissions/",title:(0,A.defineMessage)({id:"admin.sidebar.permissions",defaultMessage:"Permissions"}),searchableStrings:bc,isHidden:Qt(Jt(ma(_.USER_MANAGEMENT.PERMISSIONS))),isDisabled:Jt(ga(_.USER_MANAGEMENT.PERMISSIONS)),schema:{id:"PermissionSchemes",component:yc}},system_role:{url:`user_management/system_roles/:role_id(${Ss.Zv})`,isHidden:Qt(Jt(la("LDAPGroups")),oa(ve.gS.Entry),Jt(ma(_.USER_MANAGEMENT.SYSTEM_ROLES))),isDisabled:Jt(ga(_.USER_MANAGEMENT.SYSTEM_ROLES)),schema:{id:"SystemRole",component:Rp}},system_roles:{url:"user_management/system_roles",title:(0,A.defineMessage)({id:"admin.sidebar.systemRoles",defaultMessage:"Delegated Granular Administration"}
1),isHidden:Qt(Jt(la("LDAPGroups")),oa(ve.gS.Entry),Jt(ma(_.USER_MANAGEMENT.SYSTEM_ROLES))),isDisabled:Jt(ga(_.USER_MANAGEMENT.SYSTEM_ROLES)),schema:{id:"SystemRoles",component:Xg},restrictedIndicator:Ma()},system_roles_feature_discovery:{url:"user_management/system_roles",isDiscovery:!0,title:(0,A.defineMessage)({id:"admin.sidebar.systemRoles",defaultMessage:"Delegated Granular Administration"}),isHidden:Qt(la("LDAPGroups")),schema:{id:"SystemRoles",name:(0,A.defineMessage)({id:"admin.permissions.systemRoles",defaultMessage:"Delegated Granular Administration"}),settings:[{type:"custom",component:()=>C.createElement(dl,{featureName:"system_roles",minimumSKURequiredForFeature:ve.gS.Enterprise,title:(0,A.defineMessage)({id:"admin.system_roles_feature_discovery.title",defaultMessage:"Provide controlled access to the System Console with Mattermost Enterprise"}),copy:(0,A.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:C.createElement(fl.A,{width:294,height:180})}),key:"SystemRolesFeatureDiscovery",isDisabled:Jt(ga(_.ABOUT.EDITION_AND_LICENSE))}]},restrictedIndicator:Ma(!0,ve.gS.Enterprise)}}},system_attributes:{icon:C.createElement(w.TableLargeIcon,{size:16,color:"currentColor"}),sectionTitle:(0,A.defineMessage)({id:"admin.sidebar.systemAttributes",defaultMessage:"System Attributes"}),isHidden:Jt(ua(_.USER_MANAGEMENT)),subsections:{system_properties:{url:"system_attributes/user_attributes",title:(0,A.defineMessage)({id:"admin.sidebar.user_attributes",defaultMessage:"User Attributes"}),searchableStrings:Wg,isHidden:Jt(Kt(da(ve.gS.Enterprise),aa("FeatureFlags","CustomProfileAttributes"))),schema:{id:"SystemProperties",component:function(e){const{formatMessage:t}=(0,A.useIntl)(),a=(0,s.useDispatch)(),n=(()=>{const[e,t,a,n]=(()=>{const[e,t]=function(e,t){const a=e.opts?.forceInitialGet??!0,n=(0,s.useSelector)((t=>e.select?.(t))),[i,r]=(0,C.useState)(t),[l,o]=Eg(e.get,a||!n);return(0,C.useEffect)((()=>{!a&&n||l().then((e=>{void 0!==e&&r(e)}))}),[a,n,l,r]),[n??i,{...o,get:l,setData:r}]}((0,C.useMemo)((()=>({get:async()=>{const e=(await I.mT.getCustomProfileAttributeFields()).sort(((e,t)=>(e.attrs?.sort_order??0)-(t.attrs?.sort_order??0)));return(0,rg.collectionFromArray)(e)},select:e=>{},opts:{forceInitialGet:!0}})),[]),(0,rg.collectionFromArray)([])),[a,n]=function(e,t){const[a,s]=(0,C.useState)(e),n=a!==e,[i,{loading:r,error:l},o]=Eg(t.commit,!1);(0,C.useEffect)((()=>{s(e)}),[s,e]);const d=(0,C.useCallback)((a=>{s((s=>{const n="function"==typeof a?a(s):{...s,...a},i=t.beforeUpdate?t.beforeUpdate(n,e):n;return t.isEqual?.(i,e)?e:i}))}),[s,e,t.beforeUpdate,t.isEqual]),c=(0,C.useCallback)((()=>{s(e),o(!1)}),[s,e,o]),m=(0,C.useCallback)((()=>i(a,e)),[i,a,e]);return[a,{saving:r,error:l,hasChanges:n,apply:d,commit:m,reset:c}]}(e,(0,C.useMemo)((()=>({commit:async(e,t)=>{const a=(0,rg.collectionToArray)(e).reduce(((e,a)=>{if(a===t.data[a.id])return e;switch(!0){case Sg(a):e.create.push(a);break;case Cg(a):e.delete.push(a);break;case a!==t.data[a.id]:e.edit.push(a)}return e}),{delete:[],edit:[],create:[]}),s={data:{...e.data},order:[...e.order],errors:{}};if(await Promise.all(a.delete.map((async e=>{let{id:t}=e;return I.mT.deleteCustomProfileAttributeField(t).then((()=>{Reflect.deleteProperty(s.data,t),s.order=s.order.filter((e=>e!==t))})).catch((e=>{s.errors={...s.errors,[t]:e}}))}))),await Promise.all(a.edit.map((async e=>{const{id:t,name:a,type:n,attrs:i}=e;let r={name:a,type:n,attrs:i};if("select"!==n&&"multiselect"!==n){const e={...r.attrs};Reflect.deleteProperty(e,"options"),r={...r,attrs:e}}return I.mT.patchCustomProfileAttributeField(t,r).then((e=>{s.data[t]=e})).catch((e=>{s.errors={...s.errors,[t]:e}}))}))),await Promise.all(a.create.map((async e=>{const{id:t,name:a,type:n,attrs:i}=e;return I.mT.createCustomProfileAttributeField({name:a,type:n,attrs:i}).then((a=>{Reflect.deleteProperty(s.data,t),s.data[a?.id]=a,s.order=s.order.map((t=>t===e?.id?a.id:t))})).catch((e=>{s.errors={...s.errors,[t]:e}}))}))),!Xn()(s.errors))throw new hg("error processing operations",{cause:s.errors});return Reflect.deleteProperty(s,"errors"),s},beforeUpdate:(e,t)=>
1{const a=e=>gg()(e,(e=>{let{name:t}=e;return t.toLowerCase()})),s=a(e.data),n=a(t.data),i=Object.values(e.data).reduce(((t,a)=>{if(a.attrs?.protected)return t;if(a.name?s[a.name.toLowerCase()]?.filter((e=>0===e.delete_at))?.length>1?t[a.id]={name:bg}:n?.[a.name.toLowerCase()]?.length>=1&&a.id!==n?.[a.name.toLowerCase()]?.[0]?.id&&0===e.data[n?.[a.name.toLowerCase()]?.[0]?.id].delete_at&&(t[a.id]={name:_g}):t[a.id]={name:Mg},"select"===a.type||"multiselect"===a.type){const e=a.attrs?.options;e?.length||(t[a.id]={attrs:yg})}return t}),{}),r={...e,warnings:i};return Xn()(i)&&Reflect.deleteProperty(r,"warnings"),r},isEqual:(e,t)=>{if(e.order.length!==t.order.length)return!1;if(!e.order.every(((e,a)=>e===t.order[a])))return!1;const a=Object.keys(e.data),s=Object.keys(t.data);return a.length===s.length&&a.every((a=>e.data[a]===t.data[a]))}})),[])),i=(0,C.useMemo)((()=>({update:e=>{n.apply((t=>(0,rg.collectionReplaceItem)(t,e)))},create:e=>{n.apply((t=>{const a=Object.values(t.data).filter((e=>!Cg(e))).length,s=Ag({type:"text",...e,name:vg(e?.name??"Text",t),attrs:{visibility:"when_set",value_type:"",...e?.attrs,sort_order:a}});return(0,rg.collectionAddItem)(t,s)}))},reorder:(e,t)=>{let{id:a}=e;n.apply((e=>{const s=(0,pg.wq)(e.order,a,t);if(s===e.order)return e;const n=Object.values(e.data).reduce(((e,t)=>{const a=t.attrs?.sort_order,n=s.indexOf(t.id);return n!==a&&e.push({...t,attrs:{...t.attrs,sort_order:n}}),e}),[]);return(0,rg.collectionReplaceItem)({...e,order:s},...n)}))},delete:e=>{n.apply((t=>{const a=t.data[e];return Sg(a)?(0,rg.collectionRemoveItem)(t,a):(0,rg.collectionReplaceItem)(t,{...a,delete_at:Date.now()})}))}})),[n.apply]);return[a,t,n,i]})(),i=Object.values(e.data).filter((e=>0===e.delete_at)).length<ve.Ay.MAX_CUSTOM_ATTRIBUTES;return{content:t.loading?C.createElement(Ta.A,null):C.createElement(C.Fragment,null,C.createElement(Fg,{data:e,canCreate:i,createField:n.create,updateField:n.update,deleteField:n.delete,reorderField:n.reorder}),i&&C.createElement(K,{onClick:()=>{n.create()}},C.createElement(w.PlusIcon,{size:16}),C.createElement(A.FormattedMessage,{id:"admin.system_properties.user_properties.add_property",defaultMessage:"Add attribute"}))),loading:t.loading,hasChanges:a.hasChanges,isValid:!e.warnings,save:async()=>{const e=await a.commit();e&&!e.errors&&t.setData(e)},cancel:a.reset,saving:a.saving,saveError:a.error}})(),i=n.saving,r=n.hasChanges,l=n.isValid,o=n.saveError;return(0,C.useEffect)((()=>{a((0,p.Jb)(r))}),[r,a]),C.createElement("div",{className:"wrapper--fixed","data-testid":"systemProperties"},C.createElement(fe,null,C.createElement(A.FormattedMessage,jg.pageTitle)),C.createElement(q,null,C.createElement(Y,{"data-testid":"user_properties"},C.createElement(j,null,C.createElement("hgroup",null,C.createElement(A.FormattedMessage,{tagName:z,id:"admin.system_properties.user_properties.title",defaultMessage:"Configure user attributes"}),C.createElement(A.FormattedMessage,{id:"admin.system_properties.user_properties.subtitle",defaultMessage:"Attributes will be shown in user profile and can be used in access control policies."}))),C.createElement(W,{$compact:!0},n.content))),C.createElement(ge,{saving:i,saveNeeded:r,onClick:()=>{n.save()},serverError:o?C.createElement(A.FormattedMessage,{tagName:J,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||i||!l}))}}},user_attributes_feature_discovery:{url:"system_attributes/user_attributes",isDiscovery:!0,title:(0,A.defineMessage)({id:"admin.sidebar.user_attributes",defaultMessage:"User Attributes"}
1),isHidden:Qt(da(ve.gS.Enterprise),sa("FeatureFlags","CustomProfileAttributes")),schema:{id:"SystemProperties",name:(0,A.defineMessage)({id:"admin.sidebar.user_attributes",defaultMessage:"User Attributes"}),settings:[{type:"custom",component:()=>C.createElement(dl,{featureName:"user_attributes",minimumSKURequiredForFeature:ve.gS.Enterprise,title:(0,A.defineMessage)({id:"admin.user_attributes_feature_discovery.title",defaultMessage:"Add critical metadata to user profiles using custom user attributes with Mattermost Enterprise"}),copy:(0,A.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:C.createElement(gl,{width:294,height:180})}),key:"UserAttributesFeatureDiscovery",isDisabled:Jt(ga(_.ABOUT.EDITION_AND_LICENSE))}]},restrictedIndicator:Ma(!0,ve.gS.EnterpriseAdvanced)},attribute_based_access_control:{url:"system_attributes/attribute_based_access_control",title:(0,A.defineMessage)({id:"admin.sidebar.attributeBasedAccessControl",defaultMessage:"Attribute-Based Access"}
1),isHidden:Qt(Jt(da(ve.gS.EnterpriseAdvanced)),Jt(ma(_.USER_MANAGEMENT.SYSTEM_ROLES)),sa("FeatureFlags","AttributeBasedAccessControl")),isDisabled:Jt(ga(_.USER_MANAGEMENT.SYSTEM_ROLES)),schema:{id:"AttributeBasedAccessControl",name:(0,A.defineMessage)({id:"admin.accesscontrol.title",defaultMessage:"Attribute-Based Access"}),sections:[{key:"admin.accesscontrol.settings",settings:[{type:"bool",key:"AccessControlSettings.EnableAttributeBasedAccessControl",label:(0,A.defineMessage)({id:"admin.accesscontrol.enableTitle",defaultMessage:"Allow attribute based access controls on this server"}),help_text:(0,A.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:C.createElement("a",{href:"../system_attributes/user_attributes"},C.createElement(A.FormattedMessage,{id:"admin.accesscontrol.user_properties.link.label",defaultMessage:"User Attributes"}))}}]}]},restrictedIndicator:Ma(!1,ve.gS.EnterpriseAdvanced)},attribute_based_access_control_feature_discovery:{url:"system_attributes/attribute_based_access_control",isDiscovery:!0,title:(0,A.defineMessage)({id:"admin.sidebar.attributeBasedAccessControl",defaultMessage:"Attribute-Based Access"}
1),isHidden:Qt(da(ve.gS.EnterpriseAdvanced),sa("FeatureFlags","AttributeBasedAccessControl")),schema:{id:"AttributeBasedAccessControl",name:(0,A.defineMessage)({id:"admin.accesscontrol.title",defaultMessage:"Attribute-Based Access"}),settings:[{type:"custom",component:()=>C.createElement(dl,{featureName:"attribute_based_access_control",minimumSKURequiredForFeature:ve.gS.EnterpriseAdvanced,title:(0,A.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,A.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/administration-guide/manage/admin/attribute-based-access-control.html",featureDiscoveryImage:C.createElement(fl.A,{width:294,height:180})}),key:"AttributeBasedAccessControlFeatureDiscovery",isDisabled:Jt(ga(_.ABOUT.EDITION_AND_LICENSE))}]},restrictedIndicator:Ma(!0,ve.gS.EnterpriseAdvanced)},membership_policy_details_edit:{url:`system_attributes/membership_policies/edit_policy/:policy_id(${Ss.Zv})`,isHidden:Qt(sa("AccessControlSettings","EnableAttributeBasedAccessControl"),Jt(da(ve.gS.EnterpriseAdvanced)),Jt(ma(_.USER_MANAGEMENT.SYSTEM_ROLES)),sa("FeatureFlags","AttributeBasedAccessControl")),isDisabled:Qt(Jt(ga(_.USER_MANAGEMENT.SYSTEM_ROLES)),sa("FeatureFlags","AttributeBasedAccessControl")),schema:{id:"AccessControlPolicy",component:pn}},membership_policy_details:{url:"system_attributes/membership_policies/edit_policy",isHidden:Qt(sa("AccessControlSettings","EnableAttributeBasedAccessControl"),Jt(da(ve.gS.EnterpriseAdvanced)),Jt(ma(_.USER_MANAGEMENT.SYSTEM_ROLES)),sa("FeatureFlags","AttributeBasedAccessControl")),isDisabled:Jt(ga(_.USER_MANAGEMENT.SYSTEM_ROLES)),schema:{id:"AccessControlPolicy",component:pn}},membership_policies:{url:"system_attributes/membership_policies",title:(0,A.defineMessage)({id:"admin.sidebar.membershipPolicies",defaultMessage:"Membership Policies"}
1),isHidden:Qt(Jt(da(ve.gS.EnterpriseAdvanced)),Jt(ma(_.USER_MANAGEMENT.SYSTEM_ROLES)),sa("FeatureFlags","AttributeBasedAccessControl"),sa("AccessControlSettings","EnableAttributeBasedAccessControl")),isDisabled:Jt(ga(_.USER_MANAGEMENT.SYSTEM_ROLES)),schema:{id:"MembershipPolicies",name:(0,A.defineMessage)({id:"admin.membership_policies.page_title",defaultMessage:"Membership Policies"}),sections:[{key:"admin.membershippolicies.policies",settings:[{type:"custom",component:Ns,key:"PolicyListPanel"}]},{key:"admin.membershippolicies.policyjobs",settings:[{type:"custom",component:js,key:"AccessControlPolicyJobs"}]}]},restrictedIndicator:Ma(!1,ve.gS.EnterpriseAdvanced)},permission_policy_details_edit:{url:`system_attributes/permission_policies/edit_policy/:policy_id(${Ss.Zv})`,isHidden:Qt(sa("AccessControlSettings","EnableAttributeBasedAccessControl"),Jt(da(ve.gS.EnterpriseAdvanced)),Jt(ma(_.USER_MANAGEMENT.SYSTEM_ROLES)),sa("FeatureFlags","AttributeBasedAccessControl"),sa("FeatureFlags","PermissionPolicies")),isDisabled:Qt(Jt(ga(_.USER_MANAGEMENT.SYSTEM_ROLES)),sa("FeatureFlags","AttributeBasedAccessControl"),sa("FeatureFlags","PermissionPolicies")),schema:{id:"PermissionPolicy",component:sc}},permission_policy_details:{url:"system_attributes/permission_policies/edit_policy",isHidden:Qt(sa("AccessControlSettings","EnableAttributeBasedAccessControl"),Jt(da(ve.gS.EnterpriseAdvanced)),Jt(ma(_.USER_MANAGEMENT.SYSTEM_ROLES)),sa("FeatureFlags","AttributeBasedAccessControl"),sa("FeatureFlags","PermissionPolicies")),isDisabled:Jt(ga(_.USER_MANAGEMENT.SYSTEM_ROLES)),schema:{id:"PermissionPolicy",component:sc}},permission_policies:{url:"system_attributes/permission_policies",title:(0,A.defineMessage)({id:"admin.sidebar.permissionPolicies",defaultMessage:"Permission Policies"}
1),isHidden:Qt(Jt(da(ve.gS.EnterpriseAdvanced)),Jt(ma(_.USER_MANAGEMENT.SYSTEM_ROLES)),sa("FeatureFlags","AttributeBasedAccessControl"),sa("FeatureFlags","PermissionPolicies"),sa("AccessControlSettings","EnableAttributeBasedAccessControl")),isDisabled:Jt(ga(_.USER_MANAGEMENT.SYSTEM_ROLES)),schema:{id:"PermissionPolicies",name:(0,A.defineMessage)({id:"admin.permission_policies.page_title",defaultMessage:"Permission Policies"}),sections:[{key:"admin.permissionpolicies.policies",settings:[{type:"custom",component:Kd,key:"PermissionPolicyListPanel"}]}]},restrictedIndicator:Ma(!1,ve.gS.EnterpriseAdvanced)}}},environment:{icon:C.createElement(w.ServerVariantIcon,{size:16,color:"currentColor"}),sectionTitle:(0,A.defineMessage)({id:"admin.sidebar.environment",defaultMessage:"Environment"}),isHidden:Jt(ua(_.ENVIRONMENT)),subsections:{web_server:{url:"environment/web_server",title:(0,A.defineMessage)({id:"admin.sidebar.webServer",defaultMessage:"Web Server"}),isHidden:Qt(aa("ExperimentalSettings","RestrictSystemAdmin"),Jt(ma(_.ENVIRONMENT.WEB_SERVER))),schema:{id:"ServiceSettings",name:(0,A.defineMessage)({id:"admin.environment.webServer",defaultMessage:"Web Server"}),settings:[{type:"banner",label:(0,A.defineMessage)({id:"admin.info_banner.restart_required.desc",defaultMessage:"Changing properties in this section will require a server restart before taking effect."}),banner_type:"info"},{type:"text",key:"ServiceSettings.SiteURL",label:(0,A.defineMessage)({id:"admin.service.siteURL",defaultMessage:"Site URL:"}),help_text:(0,A.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.\n \nMattermost 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,A.defineMessage)({id:"admin.service.siteURLExample",defaultMessage:'E.g.: "http://example.com:8065"'}),isDisabled:Jt(ga(_.ENVIRONMENT.WEB_SERVER))},{type:"button",key:"TestSiteURL",action:p.zg,label:(0,A.defineMessage)({id:"admin.service.testSiteURL",defaultMessage:"Test Live URL"}),loading:(0,A.defineMessage)({id:"admin.service.testSiteURLTesting",defaultMessage:"Testing..."}),error_message:(0,A.defineMessage)({id:"admin.service.testSiteURLFail",defaultMessage:"Test unsuccessful: {error}"}),success_message:(0,A.defineMessage)({id:"admin.service.testSiteURLSuccess",defaultMessage:"Test successful. This is a valid URL."}),isDisabled:Jt(ga(_.ENVIRONMENT.WEB_SERVER))},{type:"text",key:"ServiceSettings.ListenAddress",label:(0,A.defineMessage)({id:"admin.service.listenAddress",defaultMessage:"Listen Address:"}),placeholder:(0,A.defineMessage)({id:"admin.service.listenExample",defaultMessage:'E.g.: ":8065"'}),help_text:(0,A.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:Jt(ga(_.ENVIRONMENT.WEB_SERVER))},{type:"bool",key:"ServiceSettings.Forward80To443",label:(0,A.defineMessage)({id:"admin.service.forward80To443",defaultMessage:"Forward port 80 to 443:"}),help_text:(0,A.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,A.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.\n \nThis setting cannot be enabled until your server is [listening](#ServiceSettings.ListenAddress) on port 443."}),disabled_help_text_markdown:!0,isDisabled:Qt(ra,Jt(ga(_.ENVIRONMENT.WEB_SERVER)
1),Jt(Xt("ServiceSettings.ListenAddress",/:443$/)))},{type:"dropdown",key:"ServiceSettings.ConnectionSecurity",label:(0,A.defineMessage)({id:"admin.connectionSecurityTitle",defaultMessage:"Connection Security:"}),help_text:_n,options:[{value:"",display_name:(0,A.defineMessage)({id:"admin.connectionSecurityNone",defaultMessage:"None"})},{value:"TLS",display_name:(0,A.defineMessage)({id:"admin.connectionSecurityTls",defaultMessage:"TLS (Recommended)"})}],isDisabled:Jt(ga(_.ENVIRONMENT.WEB_SERVER))},{type:"text",key:"ServiceSettings.TLSCertFile",label:(0,A.defineMessage)({id:"admin.service.tlsCertFile",defaultMessage:"TLS Certificate File:"}),help_text:(0,A.defineMessage)({id:"admin.service.tlsCertFileDescription",defaultMessage:"The certificate file to use."}),isDisabled:Qt(Jt(ga(_.ENVIRONMENT.WEB_SERVER)),ea("ServiceSettings.UseLetsEncrypt"))},{type:"text",key:"ServiceSettings.TLSKeyFile",label:(0,A.defineMessage)({id:"admin.service.tlsKeyFile",defaultMessage:"TLS Key File:"}),help_text:(0,A.defineMessage)({id:"admin.service.tlsKeyFileDescription",defaultMessage:"The private key file to use."}),isDisabled:Qt(Jt(ga(_.ENVIRONMENT.WEB_SERVER)),ea("ServiceSettings.UseLetsEncrypt"))},{type:"bool",key:"ServiceSettings.UseLetsEncrypt",label:(0,A.defineMessage)({id:"admin.service.useLetsEncrypt",defaultMessage:"Use Let's Encrypt:"}),help_text:(0,A.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,A.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.\n \nThis setting cannot be enabled unless the [Forward port 80 to 443](#ServiceSettings.Forward80To443) setting is set to true."}),disabled_help_text_markdown:!0,isDisabled:Qt(Jt(ga(_.ENVIRONMENT.WEB_SERVER)),ta("ServiceSettings.Forward80To443"))},{type:"text",key:"ServiceSettings.LetsEncryptCertificateCacheFile",label:(0,A.defineMessage)({id:"admin.service.letsEncryptCertificateCacheFile",defaultMessage:"Let's Encrypt Certificate Cache File:"}),help_text:(0,A.defineMessage)({id:"admin.service.letsEncryptCertificateCacheFileDescription",defaultMessage:"Certificates retrieved and other data about the Let's Encrypt service will be stored in this file."}),isDisabled:Qt(Jt(ga(_.ENVIRONMENT.WEB_SERVER)),ta("ServiceSettings.UseLetsEncrypt"))},{type:"number",key:"ServiceSettings.ReadTimeout",label:(0,A.defineMessage)({id:"admin.service.readTimeout",defaultMessage:"Read Timeout:"}),help_text:(0,A.defineMessage)({id:"admin.service.readTimeoutDescription",defaultMessage:"Maximum time allowed from when the connection is accepted to when the request body is fully read."}),isDisabled:Jt(ga(_.ENVIRONMENT.WEB_SERVER))},{type:"number",key:"ServiceSettings.WriteTimeout",label:(0,A.defineMessage)({id:"admin.service.writeTimeout",defaultMessage:"Write Timeout:"}),help_text:(0,A.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:Jt(ga(_.ENVIRONMENT.WEB_SERVER))},{type:"number",key:"ServiceSettings.MaximumPayloadSizeBytes",label:(0,A.defineMessage)({id:"admin.service.maximumPayloadSize",defaultMessage:"Maximum Payload Size (Bytes):"}),help_text:(0,A.defineMessage)({id:"admin.service.maximumPayloadSizeDescription",defaultMessage:"The maximum number of bytes allowed in the payload of incoming HTTP calls"}),isDisabled:Jt(ga(_.ENVIRONMENT.WEB_SERVER))},{type:"dropdown",key:"ServiceSettings.WebserverMode",label:(0,A.defineMessage)({id:"admin.webserverModeTitle",defaultMessage:"Webserver Mode:"}),help_text:yn,options:[{value:"gzip",display_name:(0,A.defineMessage)({id:"admin.webserverModeGzip",defaultMessage:"gzip"})},{value:"uncompressed",display_name:(0,A.defineMessage)({id:"admin.webserverModeUncompressed",defaultMessage:"Uncompressed"})},{value:"disabled",display_name:(0,A.defineMessage)({id:"admin.webserverModeDisabled",defaultMessage:"Disabled"})}
1],isDisabled:Jt(ga(_.ENVIRONMENT.WEB_SERVER))},{type:"bool",key:"ServiceSettings.EnableInsecureOutgoingConnections",label:(0,A.defineMessage)({id:"admin.service.insecureTlsTitle",defaultMessage:"Enable Insecure Outgoing Connections: "}),help_text:(0,A.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:Jt(ga(_.ENVIRONMENT.WEB_SERVER))},{type:"text",key:"ServiceSettings.ManagedResourcePaths",label:(0,A.defineMessage)({id:"admin.service.managedResourcePaths",defaultMessage:"Managed Resource Paths:"}),help_text:(0,A.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=>C.createElement(Ge.A,{location:"admin_console",href:ve.Uk.DESKTOP_MANAGED_RESOURCES},e)},isDisabled:Jt(ga(_.ENVIRONMENT.WEB_SERVER))},{type:"button",action:p.Wf,key:"ReloadConfigButton",label:(0,A.defineMessage)({id:"admin.reload.button",defaultMessage:"Reload Configuration From Disk"}),help_text:(0,A.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:C.createElement("b",null,C.createElement(A.FormattedMessage,{id:"admin.reload.reloadDescription.featureName",defaultMessage:"Reload Configuration from Disk"})),recycleDatabaseConnections:C.createElement("a",{href:"../environment/database"},C.createElement("b",null,C.createElement(A.FormattedMessage,{id:"admin.reload.reloadDescription.recycleDatabaseConnections",defaultMessage:"Environment > Database > Recycle Database Connections"})))},error_message:(0,A.defineMessage)({id:"admin.reload.reloadFail",defaultMessage:"Reload unsuccessful: {error}"}),isDisabled:Jt(ga(_.ENVIRONMENT.WEB_SERVER))},{type:"button",key:"PurgeButton",action:p.Cu,label:(0,A.defineMessage)({id:"admin.purge.button",defaultMessage:"Purge All Caches"}),help_text:(0,A.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,A.defineMessage)({id:"admin.purge.purgeFail",defaultMessage:"Purging unsuccessful: {error}"}),isDisabled:Jt(ga(_.ENVIRONMENT.WEB_SERVER))}]}},database:{url:"environment/database",title:(0,A.defineMessage)({id:"admin.sidebar.database",defaultMessage:"Database"}),searchableStrings:Zr,isHidden:Qt(ra,aa("ExperimentalSettings","RestrictSystemAdmin"),Jt(ma(_.ENVIRONMENT.DATABASE))),isDisabled:Jt(ga(_.ENVIRONMENT.DATABASE)),schema:{id:"DatabaseSettings",component:class extends Na{constructor(e){super(e),this.state={...this.state,searchBackend:""}}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.AnalyticsQueryTimeout=this.parseIntNonZero(this.state.analyticsQueryTimeout),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);
1componentDidMount(){this.getSearchBackend().then((e=>{this.setState({searchBackend:e})}))}async getSearchBackend(){return(await(0,p.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,analyticsQueryTimeout:e.SqlSettings.AnalyticsQueryTimeout,connMaxLifetimeMilliseconds:e.SqlSettings.ConnMaxLifetimeMilliseconds,connMaxIdleTimeMilliseconds:e.SqlSettings.ConnMaxIdleTimeMilliseconds,minimumHashtagLength:e.ServiceSettings.MinimumHashtagLength}}renderTitle(){return C.createElement(A.FormattedMessage,qr.title)}renderSettings=()=>{const e="**********"+this.state.dataSource.substring(this.state.dataSource.indexOf("@"));let t=C.createElement("div",null);return"true"===this.props.license.IsLicensed&&(t=C.createElement(lt,{requestAction:p.X0,helpText:C.createElement(A.FormattedMessage,Object.assign({},qr.recycleDescription,{values:{featureName:C.createElement("b",null,C.createElement(A.FormattedMessage,qr.featureName)),reloadConfiguration:C.createElement("a",{href:"../environment/web_server"},C.createElement("b",null,C.createElement(A.FormattedMessage,qr.reloadConfiguration)))}})),buttonText:C.createElement(A.FormattedMessage,qr.button),showSuccessMessage:!1,errorMessage:(0,A.defineMessage)({id:"admin.recycle.reloadFail",defaultMessage:"Recycling unsuccessful: {error}"}),includeDetailedError:!0,disabled:this.props.isDisabled})),C.createElement(gt,null,C.createElement("div",{className:"banner"},C.createElement(A.FormattedMessage,qr.noteDescription)),C.createElement("div",{className:"form-group"},C.createElement("label",{className:"control-label col-sm-4",htmlFor:"DriverName"},C.createElement(A.FormattedMessage,qr.driverName)),C.createElement("div",{className:"col-sm-8"},C.createElement("input",{type:"text",className:"form-control",value:this.state.driverName,disabled:!0}),C.createElement("div",{className:"help-text"},C.createElement(A.FormattedMessage,qr.driverNameDescription)))),C.createElement("div",{className:"form-group"},C.createElement("label",{className:"control-label col-sm-4",htmlFor:"DataSource"},C.createElement(A.FormattedMessage,qr.dataSource)),C.createElement("div",{className:"col-sm-8"},C.createElement("input",{type:"text",className:"form-control",value:e,disabled:!0}),C.createElement("div",{className:"help-text"},C.createElement(A.FormattedMessage,qr.dataSourceDescription)))),C.createElement(ht,{id:"maxIdleConns",label:C.createElement(A.FormattedMessage,qr.maxConnectionsTitle),placeholder:(0,A.defineMessage)({id:"admin.sql.maxConnectionsExample",defaultMessage:'E.g.: "10"'}),helpText:C.createElement(A.FormattedMessage,qr.maxConnectionsDescription),value:this.state.maxIdleConns,onChange:this.handleChange,setByEnv:this.isSetByEnv("SqlSettings.MaxIdleConns"),disabled:this.props.isDisabled,type:"text"}),C.createElement(ht,{id:"maxOpenConns",label:C.createElement(A.FormattedMessage,qr.maxOpenTitle),placeholder:(0,A.defineMessage)({id:"admin.sql.maxOpenExample",defaultMessage:'E.g.: "10"'}),helpText:C.createElement(A.FormattedMessage,qr.maxOpenDescription),value:this.state.maxOpenConns,onChange:this.handleChange,setByEnv:this.isSetByEnv("SqlSettings.MaxOpenConns"),disabled:this.props.isDisabled,type:"text"}),C.createElement(ht,{id:"queryTimeout",label:C.createElement(A.FormattedMessage,qr.queryTimeoutTitle),placeholder:(0,A.defineMessage)({id:"admin.sql.queryTimeoutExample",defaultMessage:'E.g.: "30"'}),helpText:C.createElement(A.FormattedMessage,qr.queryTimeoutDescription),value:this.state.queryTimeout,onChange:this.handleChange,setByEnv:this.isSetByEnv("SqlSettings.QueryTimeout"),disabled:this.props.isDisabled,type:"text"}),C.createElement(ht,{id:"analyticsQueryTimeout",label:C.createElement(A.FormattedMessage,qr.analyticsQueryTimeoutTitle),placeholder:(0,A.defineMessage)({id:"admin.sql.analyticsQueryTimeoutExample",defaultMessage:'E.g.: "300"'}),helpText:C.createElement(A.FormattedMessage,qr.analyticsQueryTimeoutDescription),value:this.state.analyticsQueryTimeout,onChange:this.handleChange,setByEnv:this.isSetByEnv("SqlSettings.AnalyticsQueryTimeout"),disabled:this.props.isDisabled,type:"text"}),C.createElement(ht,{id:"connMaxLifetimeMilliseconds",label:C.createElement(A.FormattedMessage,qr.connMaxLifetimeTitle),placeholder:(0,A.defineMessage)({id:"admin.sql.connMaxLifetimeExample",defaultMessage:'E.g.: "3600000"'}),helpText:C.createElement(A.FormattedMessage,qr.connMaxLifetimeDescription),value:this.state.connMaxLifetimeMilliseconds,onChange:this.handleChange,setByEnv:this.isSetByEnv("SqlSettings.ConnMaxLifetimeMilliseconds"),disabled:this.props.isDisabled,type:"text"}),C.createElement(ht,{id:"connMaxIdleTimeMilliseconds",label:C.createElement(A.FormattedMessage,qr.connMaxIdleTimeTitle),placeholder:(0,A.defineMessage)({id:"admin.sql.connMaxIdleTimeExample",defaultMessage:'E.g.: "300000"'}),helpText:C.createElement(A.FormattedMessage,qr.connMaxIdleTimeDescription),value:this.state.connMaxIdleTimeMilliseconds,onChange:this.handleChange,setByEnv:this.isSetByEnv("SqlSettings.ConnMaxIdleTimeMilliseconds"),disabled:this.props.isDisabled,type:"text"}),C.createElement(ht,{id:"minimumHashtagLength",label:C.createElement(A.FormattedMessage,qr.minimumHashtagLengthTitle),placeholder:(0,A.defineMessage)({id:"admin.service.minimumHashtagLengthExample",defaultMessage:'E.g.: "3"'}),helpText:C.createElement(A.FormattedMessage,qr.minimumHashtagLengthDescription),value:this.state.minimumHashtagLength,onChange:this.handleChange,setByEnv:this.isSetByEnv("ServiceSettings.MinimumHashtagLength"),disabled:this.props.isDisabled,type:"text"}),C.createElement(F,{id:"trace",label:C.createElement(A.FormattedMessage,qr.traceTitle),helpText:C.createElement(A.FormattedMessage,qr.traceDescription),value:this.state.trace,onChange:this.handleChange,setByEnv:this.isSetByEnv("SqlSettings.Trace"),disabled:this.props.isDisabled}),t,C.createElement(F,{id:"disableDatabaseSearch",label:C.createElement(A.FormattedMessage,qr.disableDatabaseSearchTitle),helpText:C.createElement(A.FormattedMessage,Object.assign({},qr.disableDatabaseSearchDescription,{values:{link:e=>C.createElement(Ge.A,{location:"database_settings",href:ve.Uk.ELASTICSEARCH},e)}}
1)),value:this.state.disableDatabaseSearch,onChange:this.handleChange,setByEnv:this.isSetByEnv("SqlSettings.DisableDatabaseSearch"),disabled:this.props.isDisabled}),C.createElement(D,{label:C.createElement(A.FormattedMessage,{id:"admin.database.migrations_table.title",defaultMessage:"Schema Migrations:"})},C.createElement("div",{className:"migrations-table-setting"},C.createElement(Yr,{createHelpText:C.createElement(A.FormattedMessage,{id:"admin.database.migrations_table.help_text",defaultMessage:"All applied migrations."})}))),C.createElement("div",{className:"form-group"},C.createElement("label",{className:"control-label col-sm-4",htmlFor:"activeSearchBackend"},C.createElement(A.FormattedMessage,{id:"admin.database.search_backend.title",defaultMessage:"Active Search Backend:"})),C.createElement("div",{className:"col-sm-8"},C.createElement("input",{id:"activeSearchBackend",type:"text",className:"form-control",value:this.state.searchBackend,disabled:!0}),C.createElement("div",{className:"help-text"},C.createElement(A.FormattedMessage,{id:"admin.database.search_backend.help_text",defaultMessage:"Shows the currently active backend used for search. Values can be none, database, elasticsearch."})))))}}}},elasticsearch:{url:"environment/elasticsearch",title:(0,A.defineMessage)({id:"admin.sidebar.elasticsearch",defaultMessage:"Elasticsearch"}
1),isHidden:Qt(Jt(la("Elasticsearch")),aa("ExperimentalSettings","RestrictSystemAdmin"),Jt(ma(_.ENVIRONMENT.ELASTICSEARCH))),searchableStrings:Kr,isDisabled:Jt(ga(_.ENVIRONMENT.ELASTICSEARCH)),schema:{id:"ElasticSearchSettings",component:class extends Na{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.ElasticsearchSettings.EnableSearchPublicChannelsWithoutMembership=this.state.enableSearchPublicChannelsWithoutMembership,e);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,enableSearchPublicChannelsWithoutMembership:e.ElasticsearchSettings.EnableSearchPublicChannelsWithoutMembership,configTested:!0,canSave:!0,canPurgeAndIndex:e.ElasticsearchSettings.EnableIndexing,ignoredPurgeIndexes:e.ElasticsearchSettings.IgnoredPurgeIndexes}}handleSettingChanged=(e,t)=>{"enableIndexing"===e&&(!1===t?this.setState({enableSearching:!1,enableAutocomplete:!1,enableSearchPublicChannelsWithoutMembership:!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&&"enableSearchPublicChannelsWithoutMembership"!==e&&this.setState({canPurgeAndIndex:!1}),this.handleChange(e,t)};handleSaved=()=>{this.setState({canPurgeAndIndex:this.state.enableIndexing})};canSave=()=>this.state.canSave;doTestConfig=(e,t)=>{const a=JSON.parse(JSON.stringify(this.props.config));this.getConfigFromState(a),(0,p.Cg)(a,(()=>{this.setState({configTested:!0,canSave:!0}),e()}),(e=>{this.setState({configTested:!1,canSave:!1}),t(e)}))};getExtraInfo(e){let t=null;"channels_index_rebuild"===e.data?.sub_type&&(t=C.createElement("span",null,". ",C.createElement(A.FormattedMessage,{id:"admin.elasticsearch.channelIndexRebuildJobTitle",defaultMessage:"Channels index rebuild job."})));let a=null;return e.status===ve.Im.IN_PROGRESS&&(a=C.createElement(A.FormattedMessage,{id:"admin.elasticsearch.percentComplete",defaultMessage:"{percent}% Complete",values:{percent:Number(e.progress)}})),C.createElement("span",null,a,t)}renderTitle(){return C.createElement(A.FormattedMessage,Jr.title)}renderSettings=()=>
1C.createElement(gt,null,C.createElement(F,{id:"enableIndexing",label:C.createElement(A.FormattedMessage,Jr.enableIndexingTitle),helpText:C.createElement(A.FormattedMessage,Object.assign({},Jr.enableIndexingDescription,{values:{link:e=>C.createElement(Ge.A,{location:"elasticsearch_settings",href:ve.Uk.ELASTICSEARCH},e)}})),value:this.state.enableIndexing,onChange:this.handleSettingChanged,setByEnv:this.isSetByEnv("ElasticsearchSettings.EnableIndexing"),disabled:this.props.isDisabled}),C.createElement(ht,{id:"backend",label:C.createElement(A.FormattedMessage,{id:"admin.elasticsearch.backendTitle",defaultMessage:"Backend type:"}),placeholder:(0,A.defineMessage)({id:"admin.elasticsearch.backendExample",defaultMessage:'E.g.: "elasticsearch"'}),helpText:C.createElement(A.FormattedMessage,{id:"admin.elasticsearch.backendDescription",defaultMessage:"The type of the search backend. Changing this setting requires a server restart before taking effect."}),value:this.state.backend,disabled:this.props.isDisabled||!this.state.enableIndexing,onChange:this.handleSettingChanged,setByEnv:this.isSetByEnv("ElasticsearchSettings.Backend")}),C.createElement(ht,{id:"connectionUrl",label:C.createElement(A.FormattedMessage,Jr.connectionUrlTitle),placeholder:(0,A.defineMessage)({id:"admin.elasticsearch.connectionUrlExample",defaultMessage:'E.g.: "https://elasticsearch.example.org:9200"'}),helpText:C.createElement(A.FormattedMessage,Object.assign({},Jr.connectionUrlDescription,{values:{link:e=>C.createElement(Ge.A,{location:"elasticsearch_settings",href:ve.Uk.ELASTICSEARCH},e)}})),value:this.state.connectionUrl,disabled:this.props.isDisabled||!this.state.enableIndexing,onChange:this.handleSettingChanged,setByEnv:this.isSetByEnv("ElasticsearchSettings.ConnectionURL")}),C.createElement(ht,{id:"ca",label:C.createElement(A.FormattedMessage,{id:"admin.elasticsearch.caTitle",defaultMessage:"CA path:"}),placeholder:(0,A.defineMessage)({id:"admin.elasticsearch.caExample",defaultMessage:'E.g.: "./elasticsearch/ca.pem"'}),helpText:C.createElement(A.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")}),C.createElement(ht,{id:"clientCert",label:C.createElement(A.FormattedMessage,{id:"admin.elasticsearch.clientCertTitle",defaultMessage:"Client Certificate path:"}),placeholder:(0,A.defineMessage)({id:"admin.elasticsearch.clientCertExample",defaultMessage:'E.g.: "./elasticsearch/client-cert.pem"'}),helpText:C.createElement(A.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")}),C.createElement(ht,{id:"clientKey",label:C.createElement(A.FormattedMessage,{id:"admin.elasticsearch.clientKeyTitle",defaultMessage:"Client Certificate Key path:"}),placeholder:(0,A.defineMessage)({id:"admin.elasticsearch.clientKeyExample",defaultMessage:'E.g.: "./elasticsearch/client-key.pem"'}),helpText:C.createElement(A.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")}),C.createElement(F,{id:"skipTLSVerification",label:C.createElement(A.FormattedMessage,Jr.skipTLSVerificationTitle),helpText:C.createElement(A.FormattedMessage,Jr.skipTLSVerificationDescription),value:this.state.skipTLSVerification,disabled:this.props.isDisabled||!this.state.enableIndexing,onChange:this.handleSettingChanged,setByEnv:this.isSetByEnv("ElasticsearchSettings.SkipTLSVerification")}),C.createElement(ht,{id:"username",label:C.createElement(A.FormattedMessage,Jr.usernameTitle),placeholder:(0,A.defineMessage)({id:"admin.elasticsearch.usernameExample",defaultMessage:'E.g.: "elastic"'}),helpText:C.createElement(A.FormattedMessage,Jr.usernameDescription),value:this.state.username,disabled:this.props.isDisabled||!this.state.enableIndexing,onChange:this.handleSettingChanged,setByEnv:this.isSetByEnv("ElasticsearchSettings.Username")}),C.createElement(ht,{id:"password",label:C.createElement(A.FormattedMessage,Jr.passwordTitle),placeholder:(0,A.defineMessage)({id:"admin.elasticsearch.password",defaultMessage:'E.g.: "yourpassword"'}),helpText:C.createElement(A.FormattedMessage,Jr.passwordDescription),value:this.state.password,disabled:this.props.isDisabled||!this.state.enableIndexing,onChange:this.handleSettingChanged,setByEnv:this.isSetByEnv("ElasticsearchSettings.Password")}
1),C.createElement(F,{id:"sniff",label:C.createElement(A.FormattedMessage,Jr.sniffTitle),helpText:C.createElement(A.FormattedMessage,Jr.sniffDescription),value:this.state.sniff,disabled:this.props.isDisabled||!this.state.enableIndexing,onChange:this.handleSettingChanged,setByEnv:this.isSetByEnv("ElasticsearchSettings.Sniff")}),C.createElement(lt,{id:"testConfig",requestAction:this.doTestConfig,includeDetailedError:!0,helpText:C.createElement(A.FormattedMessage,Jr.testHelpText),buttonText:C.createElement(A.FormattedMessage,Jr.elasticsearch_test_button),successMessage:(0,A.defineMessage)({id:"admin.elasticsearch.testConfigSuccess",defaultMessage:"Test successful. Configuration saved."}),disabled:!this.state.enableIndexing}),C.createElement(D,{label:C.createElement(A.FormattedMessage,Jr.bulkIndexingTitle)},C.createElement("div",{className:"job-table-setting"},C.createElement(Ze,{jobType:ve.jj.ELASTICSEARCH_POST_INDEXING,disabled:!this.state.canPurgeAndIndex||this.props.isDisabled,createJobButtonText:C.createElement(A.FormattedMessage,{id:"admin.elasticsearch.createJob.title",defaultMessage:"Index Now"}),createJobHelpText:C.createElement(A.FormattedMessage,Jr.help),getExtraInfoText:this.getExtraInfo}))),C.createElement(lt,{id:"rebuildChannelsIndexButton",requestAction:p.wH,helpText:C.createElement(A.FormattedMessage,Object.assign({},Jr.rebuildChannelIndexHelpText,{values:{b:e=>C.createElement("b",null,e)}})),buttonText:C.createElement(A.FormattedMessage,Jr.rebuildChannelsIndexButtonText),successMessage:(0,A.defineMessage)({id:"admin.elasticsearch.rebuildIndexSuccessfully.success",defaultMessage:"Channels index rebuild job triggered successfully."}),errorMessage:(0,A.defineMessage)({id:"admin.elasticsearch.rebuildIndexSuccessfully.error",defaultMessage:"Failed to trigger channels index rebuild job: {error}"}),disabled:!this.state.canPurgeAndIndex||this.props.isDisabled,label:C.createElement(A.FormattedMessage,Jr.rebuildChannelsIndexButtonText)}),C.createElement(lt,{id:"purgeIndexesSection",requestAction:p.JQ,helpText:C.createElement(A.FormattedMessage,Jr.purgeIndexesHelpText),buttonText:C.createElement(A.FormattedMessage,Jr.purgeIndexesButton),successMessage:(0,A.defineMessage)({id:"admin.elasticsearch.purgeIndexesButton.success",defaultMessage:"Indexes purged successfully."}),errorMessage:(0,A.defineMessage)({id:"admin.elasticsearch.purgeIndexesButton.error",defaultMessage:"Failed to purge indexes: {error}"}),disabled:this.props.isDisabled||!this.state.canPurgeAndIndex,label:C.createElement(A.FormattedMessage,Jr.label)}),C.createElement(ht,{id:"ignoredPurgeIndexes",label:C.createElement(A.FormattedMessage,{id:"admin.elasticsearch.ignoredPurgeIndexes",defaultMessage:"Indexes to skip while purging:"}),placeholder:(0,A.defineMessage)({id:"admin.elasticsearch.ignoredPurgeIndexesDescription.example",defaultMessage:"E.g.: .opendistro*,.security*"}),helpText:C.createElement(A.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")}),C.createElement(F,{id:"enableSearching",label:C.createElement(A.FormattedMessage,Jr.enableSearchingTitle),helpText:C.createElement(A.FormattedMessage,Jr.enableSearchingDescription),value:this.state.enableSearching,disabled:this.props.isDisabled||!this.state.enableIndexing||!this.state.configTested,onChange:this.handleSettingChanged,setByEnv:this.isSetByEnv("ElasticsearchSettings.EnableSearching")}),C.createElement(F,{id:"enableAutocomplete",label:C.createElement(A.FormattedMessage,{id:"admin.elasticsearch.enableAutocompleteTitle",defaultMessage:"Enable Elasticsearch for autocomplete queries:"}),helpText:C.createElement(A.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")}
1),C.createElement(F,{id:"enableSearchPublicChannelsWithoutMembership",label:C.createElement(A.FormattedMessage,{id:"admin.elasticsearch.enableSearchPublicChannelsWithoutMembershipTitle",defaultMessage:"Allow searching public channels without membership:"}),helpText:C.createElement(A.FormattedMessage,{id:"admin.elasticsearch.enableSearchPublicChannelsWithoutMembershipDescription",defaultMessage:"When enabled, users can find messages in public channels they have not joined. When enabled for the first time, existing posts will be updated in the background. This process is throttled to avoid impacting search performance. This setting has no effect when Compliance Mode is enabled."}),value:this.state.enableSearchPublicChannelsWithoutMembership,disabled:this.props.isDisabled||!this.state.enableIndexing||!this.state.configTested,onChange:this.handleSettingChanged,setByEnv:this.isSetByEnv("ElasticsearchSettings.EnableSearchPublicChannelsWithoutMembership")}))}}},storage:{url:"environment/file_storage",title:(0,A.defineMessage)({id:"admin.sidebar.fileStorage",defaultMessage:"File Storage"}
1),isHidden:Qt(aa("ExperimentalSettings","RestrictSystemAdmin"),Jt(ma(_.ENVIRONMENT.FILE_STORAGE))),schema:{id:"FileSettings",name:(0,A.defineMessage)({id:"admin.environment.fileStorage",defaultMessage:"File Storage"}),settings:[{type:"dropdown",key:"FileSettings.DriverName",label:(0,A.defineMessage)({id:"admin.image.storeTitle",defaultMessage:"File Storage System:"}),help_text:(0,A.defineMessage)({id:"admin.image.storeDescription",defaultMessage:'Storage system where files and image attachments are saved.\n \nSelecting "Amazon S3" enables fields to enter your Amazon credentials and bucket details.\n \nSelecting "Local File System" enables the field to specify a local file directory.'}),help_text_markdown:!0,options:[{value:hM,display_name:(0,A.defineMessage)({id:"admin.image.storeLocal",defaultMessage:"Local File System"})},{value:fM,display_name:(0,A.defineMessage)({id:"admin.image.storeAmazonS3",defaultMessage:"Amazon S3"})}],isDisabled:Jt(ga(_.ENVIRONMENT.FILE_STORAGE))},{type:"text",key:"FileSettings.Directory",label:(0,A.defineMessage)({id:"admin.image.localTitle",defaultMessage:"Local Storage Directory:"}),help_text:(0,A.defineMessage)({id:"admin.image.localDescription",defaultMessage:"Directory to which files and images are written. If blank, defaults to ./data/."}),placeholder:(0,A.defineMessage)({id:"admin.image.localExample",defaultMessage:'E.g.: "./data/"'}),isDisabled:Qt(Jt(ga(_.ENVIRONMENT.FILE_STORAGE)),Jt($t("FileSettings.DriverName",hM)))},{type:"number",key:"FileSettings.MaxFileSize",label:(0,A.defineMessage)({id:"admin.image.maxFileSizeTitle",defaultMessage:"Maximum File Size:"}),help_text:(0,A.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,A.defineMessage)({id:"admin.image.maxFileSizeExample",defaultMessage:"50"}),onConfigLoad:e=>e/EM,onConfigSave:e=>e*EM,isDisabled:Jt(ga(_.ENVIRONMENT.FILE_STORAGE))},{type:"bool",key:"FileSettings.ExtractContent",label:(0,A.defineMessage)({id:"admin.image.extractContentTitle",defaultMessage:"Enable document search by content:"}),help_text:(0,A.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=>C.createElement(Ge.A,{location:"admin_console",href:ve.Uk.CONFIGURE_DOCUMENT_CONTENT_SEARCH},e)},isDisabled:Qt(Jt(ga(_.ENVIRONMENT.FILE_STORAGE)))},{type:"number",key:"FileSettings.ExtractContentTimeout",label:(0,A.defineMessage)({id:"admin.image.extractContentTimeoutTitle",defaultMessage:"Document content extraction timeout (seconds):"}),help_text:(0,A.defineMessage)({id:"admin.image.extractContentTimeoutDescription",defaultMessage:"Maximum number of seconds spent extracting the searchable content of a single uploaded document. Extractions that exceed this limit are aborted to protect server performance. Set to 0 to disable the timeout."}),placeholder:(0,A.defineMessage)({id:"admin.image.extractContentTimeoutExample",defaultMessage:"10"}),validate:fa(0,(0,A.defineMessage)({id:"admin.image.extractContentTimeout.minValue",defaultMessage:"Timeout must be 0 or greater."})),isDisabled:Qt(Jt(ga(_.ENVIRONMENT.FILE_STORAGE)),sa("FileSettings","ExtractContent"))},{type:"bool",key:"FileSettings.ArchiveRecursion",label:(0,A.defineMessage)({id:"admin.image.archiveRecursionTitle",defaultMessage:"Enable searching content of documents within ZIP files:"}),help_text:(0,A.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:Qt(Jt(ga(_.ENVIRONMENT.FILE_STORAGE)),sa("FileSettings","ExtractContent"))},{type:"text",key:"FileSettings.AmazonS3Bucket",label:(0,A.defineMessage)({id:"admin.image.amazonS3BucketTitle",defaultMessage:"Amazon S3 Bucket:"}),help_text:(0,A.defineMessage)({id:"admin.image.amazonS3BucketDescription",defaultMessage:"Name you selected for your S3 bucket in AWS."}),placeholder:(0,A.defineMessage)({id:"admin.image.amazonS3BucketExample",defaultMessage:'E.g.: "mattermost-media"'}),isDisabled:Qt(Jt(ga(_.ENVIRONMENT.FILE_STORAGE)),Jt($t("FileSettings.DriverName",fM)))},{type:"text",key:"FileSettings.AmazonS3PathPrefix",label:(0,A.defineMessage)({id:"admin.image.amazonS3PathPrefixTitle",defaultMessage:"Amazon S3 Path Prefix:"}),help_text:(0,A.defineMessage)({id:"admin.image.amazonS3PathPrefixDescription",defaultMessage:"Prefix you selected for your S3 bucket in AWS."}),placeholder:(0,A.defineMessage)({id:"admin.image.amazonS3PathPrefixExample",defaultMessage:'E.g.: "subdir1" or you can leave it empty.'}),isDisabled:Qt(Jt(ga(_.ENVIRONMENT.FILE_STORAGE)),Jt($t("FileSettings.DriverName",fM)))},{type:"text",key:"FileSettings.AmazonS3Region",label:(0,A.defineMessage)({id:"admin.image.amazonS3RegionTitle",defaultMessage:"Amazon S3 Region:"}),help_text:(0,A.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,A.defineMessage)({id:"admin.image.amazonS3RegionExample",defaultMessage:'E.g.: "us-east-1"'}),isDisabled:Qt(Jt(ga(_.ENVIRONMENT.FILE_STORAGE)),Jt($t("FileSettings.DriverName",fM)))},{type:"text",key:"FileSettings.AmazonS3AccessKeyId",label:(0,A.defineMessage)({id:"admin.image.amazonS3IdTitle",defaultMessage:"Amazon S3 Acce
1ss Key ID:"}),help_text:(0,A.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=>C.createElement(Ge.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,A.defineMessage)({id:"admin.image.amazonS3IdExample",defaultMessage:'E.g.: "AKIADTOVBGERKLCBV"'}),isDisabled:Qt(Jt(ga(_.ENVIRONMENT.FILE_STORAGE)),Jt($t("FileSettings.DriverName",fM)))},{type:"text",key:"FileSettings.AmazonS3Endpoint",label:(0,A.defineMessage)({id:"admin.image.amazonS3EndpointTitle",defaultMessage:"Amazon S3 Endpoint:"}),help_text:(0,A.defineMessage)({id:"admin.image.amazonS3EndpointDescription",defaultMessage:'Hostname of your S3 Compatible Storage provider. Defaults to "s3.amazonaws.com".'}),placeholder:(0,A.defineMessage)({id:"admin.image.amazonS3EndpointExample",defaultMessage:'E.g.: "s3.amazonaws.com"'}),isDisabled:Qt(Jt(ga(_.ENVIRONMENT.FILE_STORAGE)),Jt($t("FileSettings.DriverName",fM)))},{type:"text",key:"FileSettings.AmazonS3SecretAccessKey",label:(0,A.defineMessage)({id:"admin.image.amazonS3SecretTitle",defaultMessage:"Amazon S3 Secret Access Key:"}),help_text:(0,A.defineMessage)({id:"admin.image.amazonS3SecretDescription",defaultMessage:"(Optional) The secret access key associated with your Amazon S3 Access Key ID."}),placeholder:(0,A.defineMessage)({id:"admin.image.amazonS3SecretExample",defaultMessage:'E.g.: "jcuS8PuvcpGhpgHhlcpT1Mx42pnqMxQY"'}),isDisabled:Qt(Jt(ga(_.ENVIRONMENT.FILE_STORAGE)),Jt($t("FileSettings.DriverName",fM)))},{type:"bool",key:"FileSettings.AmazonS3SSL",label:(0,A.defineMessage)({id:"admin.image.amazonS3SSLTitle",defaultMessage:"Enable Secure Amazon S3 Connections:"}),help_text:(0,A.defineMessage)({id:"admin.image.amazonS3SSLDescription",defaultMessage:"When false, allow insecure connections to Amazon S3. Defaults to secure connections only."}),isDisabled:Qt(Jt(ga(_.ENVIRONMENT.FILE_STORAGE)),Jt($t("FileSettings.DriverName",fM)))},{type:"bool",key:"FileSettings.AmazonS3SSE",label:(0,A.defineMessage)({id:"admin.image.amazonS3SSETitle",defaultMessage:"Enable Server-Side Encryption for Amazon S3:"}),help_text:(0,A.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=>C.createElement(Ge.A,{location:"admin_console",href:ve.Uk.SESSION_LENGTHS},e)},help_text_markdown:!1,isHidden:Jt(la("Compliance")),isDisabled:Qt(Jt(ga(_.ENVIRONMENT.FILE_STORAGE)),Jt($t("FileSettings.DriverName",fM)))},{type:"bool",key:"FileSettings.AmazonS3Trace",label:(0,A.defineMessage)({id:"admin.image.amazonS3TraceTitle",defaultMessage:"Enable Amazon S3 Debugging:"}),help_text:(0,A.defineMessage)({id:"admin.image.amazonS3TraceDescription",defaultMessage:"(Development Mode) When true, log additional debugging information to the system logs."}),isDisabled:Qt(Jt(ga(_.ENVIRONMENT.FILE_STORAGE)),Jt($t("FileSettings.DriverName",fM)))},{type:"text",key:"FileSettings.AmazonS3StorageClass",label:(0,A.defineMessage)({id:"admin.image.amazonS3StorageClassTitle",defaultMessage:"Amazon S3 Storage Class:"}),help_text:(0,A.defineMessage)({id:"admin.image.amazonS3StorageClassDescription",defaultMessage:"Storage class for your S3 Compatible Storage provider. Defaults to empty."}),placeholder:(0,A.defineMessage)({id:"admin.image.amazonS3StorageClassExample",defaultMessage:'E.g.: "STANDARD" or "STANDARD_IA"'}),isDisabled:Qt(Jt(ga(_.ENVIRONMENT.FILE_STORAGE)),Jt($t("FileSettings.DriverName",fM)))},{type:"button",action:p.zG,key:"TestS3Connection",label:(0,A.defineMessage)({id:"admin.s3.connectionS3Test",defaultMessage:"Test Connection"}),loading:(0,A.defineMessage)({id:"admin.s3.testing",defaultMessage:"Testing..."}),error_message:(0,A.defineMessage)({id:"admin.s3.s3Fail",defaultMessage:"Connection unsuccessful: {error}"}),success_message:(0,A.defineMessage)({id:"admin.s3.s3Success",defaultMessage:"Connection was successful"}),isDisabled:Jt(ga(_.ENVIRONMENT.FILE_STORAGE))}]}},export_storage:{url:"environment/export_storage",title:(0,A.defineMessage)({id:"admin.sidebar.exportStorage",defaultMessage:"Export Storage"}
1),isHidden:Qt(Jt(la("Cloud")),Jt(da(ve.gS.Enterprise)),sa("FeatureFlags","CloudDedicatedExportUI")),schema:{id:"ExportFileSettings",name:(0,A.defineMessage)({id:"admin.sidebar.exportStorage",defaultMessage:"Export Storage"}),settings:[{type:"bool",key:"FileSettings.DedicatedExportStore",label:(0,A.defineMessage)({id:"admin.exportStorage.dedicatedExportStore",defaultMessage:"Enable Dedicated Export Store:"}),help_text:(0,A.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:Jt(ga(_.ENVIRONMENT.FILE_STORAGE))},{type:"dropdown",key:"FileSettings.ExportDriverName",label:(0,A.defineMessage)({id:"admin.exportStorage.exportDriverName",defaultMessage:"Export Storage Driver:"}),isDisabled:!0,isHidden:$t("FileSettings.DedicatedExportStore",!1),options:[{value:fM,display_name:(0,A.defineMessage)({id:"admin.image.storeAmazonS3",defaultMessage:"Amazon S3"})}]},{type:"text",key:"FileSettings.ExportDirectory",label:(0,A.defineMessage)({id:"admin.exportStorage.exportDirectory",defaultMessage:"Export Directory"}),help_text:(0,A.defineMessage)({id:"admin.image.exportDirectoryDescription",defaultMessage:"Directory to which files are written. If blank, defaults to ./data/."}),placeholder:(0,A.defineMessage)({id:"admin.image.localExample",defaultMessage:'E.g.: "./data/"'}),isDisabled:Qt(Jt(ga(_.ENVIRONMENT.FILE_STORAGE)),$t("FileSettings.DedicatedExportStore",!1)),isHidden:Qt($t("FileSettings.ExportDriverName","NONE"),$t("FileSettings.DedicatedExportStore",!1))},{type:"text",key:"FileSettings.ExportAmazonS3AccessKeyId",label:(0,A.defineMessage)({id:"admin.image.amazonS3IdTitle",defaultMessage:"Amazon S3 Access Key ID:"}),help_text:(0,A.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=>C.createElement(Ge.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,A.defineMessage)({id:"admin.image.amazonS3IdExample",defaultMessage:'E.g.: "AKIADTOVBGERKLCBV"'}),isDisabled:Qt(Jt(ga(_.ENVIRONMENT.FILE_STORAGE)),$t("FileSettings.DedicatedExportStore",!1)),isHidden:Qt($t("FileSettings.ExportDriverName","NONE"),$t("FileSettings.DedicatedExportStore",!1))},{type:"text",key:"FileSettings.ExportAmazonS3SecretAccessKey",label:(0,A.defineMessage)({id:"admin.image.amazonS3SecretTitle",defaultMessage:"Amazon S3 Secret Access Key:"}),help_text:(0,A.defineMessage)({id:"admin.image.amazonS3SecretDescription",defaultMessage:"(Optional) The secret access key associated with your Amazon S3 Access Key ID."}),placeholder:(0,A.defineMessage)({id:"admin.image.amazonS3SecretExample",defaultMessage:'E.g.: "jcuS8PuvcpGhpgHhlcpT1Mx42pnqMxQY"'}),isDisabled:Qt(Jt(ga(_.ENVIRONMENT.FILE_STORAGE)),$t("FileSettings.DedicatedExportStore",!1)),isHidden:Qt($t("FileSettings.ExportDriverName","NONE"),$t("FileSettings.DedicatedExportStore",!1))},{type:"text",key:"FileSettings.ExportAmazonS3Bucket",label:(0,A.defineMessage)({id:"admin.image.amazonS3BucketTitle",defaultMessage:"Amazon S3 Bucket:"}),help_text:(0,A.defineMessage)({id:"admin.image.amazonS3BucketDescription",defaultMessage:"Name you selected for your S3 bucket in AWS."}),placeholder:(0,A.defineMessage)({id:"admin.image.amazonS3BucketExampleExport",defaultMessage:'E.g.: "mattermost-export"'}),isDisabled:Qt(Jt(ga(_.ENVIRONMENT.FILE_STORAGE)),$t("FileSettings.DedicatedExportStore",!1)),isHidden:Qt($t("FileSettings.ExportDriverName","NONE"),$t("FileSettings.DedicatedExportStore",!1))},{type:"text",key:"FileSettings.ExportAmazonS3PathPrefix",label:(0,A.defineMessage)({id:"admin.image.amazonS3PathPrefixTitle",defaultMessage:"Amazon S3 Path Prefix:"}),help_text:(0,A.defineMessage)({id:"admin.image.amazonS3PathPrefixDescription",defaultMessage:"Prefix you selected for your S3 bucket in AWS."}),placeholder:(0,A.defineMessage)({id:"admin.image.amazonS3PathPrefixExample",defaultMessage:'E.g.: "subdir1" or you can leave it empty.'}),isDisabled:Qt(Jt(ga(_.ENVIRONMENT.FILE_STORAGE)),$t("FileSettings.DedicatedExportStore",!1)),isHidden:
1Qt($t("FileSettings.ExportDriverName","NONE"),$t("FileSettings.DedicatedExportStore",!1))},{type:"text",key:"FileSettings.ExportAmazonS3Region",label:(0,A.defineMessage)({id:"admin.image.amazonS3RegionTitle",defaultMessage:"Amazon S3 Region:"}),help_text:(0,A.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,A.defineMessage)({id:"admin.image.amazonS3RegionExample",defaultMessage:'E.g.: "us-east-1"'}),isDisabled:Qt(Jt(ga(_.ENVIRONMENT.FILE_STORAGE)),$t("FileSettings.DedicatedExportStore",!1)),isHidden:Qt($t("FileSettings.ExportDriverName","NONE"),$t("FileSettings.DedicatedExportStore",!1))},{type:"text",key:"FileSettings.ExportAmazonS3Endpoint",label:(0,A.defineMessage)({id:"admin.image.amazonS3EndpointTitle",defaultMessage:"Amazon S3 Endpoint:"}),help_text:(0,A.defineMessage)({id:"admin.image.amazonS3EndpointDescription",defaultMessage:'Hostname of your S3 Compatible Storage provider. Defaults to "s3.amazonaws.com".'}),placeholder:(0,A.defineMessage)({id:"admin.image.amazonS3EndpointExample",defaultMessage:'E.g.: "s3.amazonaws.com"'}),isDisabled:Qt(Jt(ga(_.ENVIRONMENT.FILE_STORAGE)),$t("FileSettings.DedicatedExportStore",!1)),isHidden:Qt($t("FileSettings.ExportDriverName","NONE"),$t("FileSettings.DedicatedExportStore",!1))},{type:"bool",key:"FileSettings.ExportAmazonS3SSL",label:(0,A.defineMessage)({id:"admin.image.amazonS3SSLTitle",defaultMessage:"Enable Secure Amazon S3 Connections:"}),help_text:(0,A.defineMessage)({id:"admin.image.amazonS3SSLDescription",defaultMessage:"When false, allow insecure connections to Amazon S3. Defaults to secure connections only."}),isDisabled:Qt(Jt(ga(_.ENVIRONMENT.FILE_STORAGE)),$t("FileSettings.DedicatedExportStore",!1)),isHidden:Qt($t("FileSettings.ExportDriverName","NONE"),$t("FileSettings.DedicatedExportStore",!1))},{type:"bool",key:"FileSettings.ExportAmazonSignV2",label:(0,A.defineMessage)({id:"admin.image.amazonS3SignV2",defaultMessage:"Enable Sign V2"}),help_text:(0,A.defineMessage)({id:"admin.image.amazonS3SignV2Description",defaultMessage:"When true, use Sign V2 for Amazon S3 connections"}),isDisabled:Qt(Jt(ga(_.ENVIRONMENT.FILE_STORAGE)),$t("FileSettings.DedicatedExportStore",!1)),isHidden:Qt($t("FileSettings.ExportDriverName","NONE"),$t("FileSettings.DedicatedExportStore",!1))},{type:"bool",key:"FileSettings.ExportAmazonS3SSE",label:(0,A.defineMessage)({id:"admin.image.amazonS3SSETitle",defaultMessage:"Enable Server-Side Encryption for Amazon S3:"}),help_text:(0,A.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=>C.createElement(Ge.A,{location:"admin_console",href:ve.Uk.SESSION_LENGTHS},e)},help_text_markdown:!1,isHidden:Qt($t("FileSettings.ExportDriverName","NONE"),$t("FileSettings.DedicatedExportStore",!1)),isDisabled:Qt(Jt(ga(_.ENVIRONMENT.FILE_STORAGE)),$t("FileSettings.DedicatedExportStore",!1))},{type:"text",key:"FileSettings.ExportAmazonS3StorageClass",label:(0,A.defineMessage)({id:"admin.image.amazonS3StorageClassTitle",defaultMessage:"Amazon S3 Storage Class:"}),help_text:(0,A.defineMessage)({id:"admin.image.amazonS3StorageClassDescription",defaultMessage:"Storage class for your S3 Compatible Storage provider. Defaults to empty."}),placeholder:(0,A.defineMessage)({id:"admin.image.amazonS3StorageClassExample",defaultMessage:'E.g.: "STANDARD" or "STANDARD_IA"'}),isDisabled:Qt(Jt(ga(_.ENVIRONMENT.FILE_STORAGE)),Jt($t("FileSettings.DriverName",fM)))},{type:"button",action:p.zG,key:"TestS3Connection",label:(0,A.defineMessage)({id:"admin.s3.connectionS3Test",defaultMessage:"Test Connection"}),loading:(0,A.defineMessage)({id:"admin.s3.testing",defaultMessage:"Testing..."}),error_message:(0,A.defineMessage)({id:"admin.s3.s3Fail",defaultMessage:"Connection unsuccessful: {error}"}),success_message:(0,A.defineMessage)({id:"admin.s3.s3Success",defaultMessage:"Connection was successful"}
1),isDisabled:Jt(ga(_.ENVIRONMENT.FILE_STORAGE)),isHidden:Qt($t("FileSettings.ExportDriverName","NONE"),$t("FileSettings.DedicatedExportStore",!1))}]}},image_proxy:{url:"environment/image_proxy",title:(0,A.defineMessage)({id:"admin.sidebar.imageProxy",defaultMessage:"Image Proxy"}),isHidden:Qt(Jt(ma(_.ENVIRONMENT.IMAGE_PROXY)),aa("ExperimentalSettings","RestrictSystemAdmin")),schema:{id:"ImageProxy",name:(0,A.defineMessage)({id:"admin.environment.imageProxy",defaultMessage:"Image Proxy"}),settings:[{type:"bool",key:"ImageProxySettings.Enable",label:(0,A.defineMessage)({id:"admin.image.enableProxy",defaultMessage:"Enable Image Proxy:"}),help_text:(0,A.defineMessage)({id:"admin.image.enableProxyDescription",defaultMessage:"When true, enables an image proxy for loading all Markdown images."}),isDisabled:Jt(ga(_.ENVIRONMENT.IMAGE_PROXY))},{type:"dropdown",key:"ImageProxySettings.ImageProxyType",label:(0,A.defineMessage)({id:"admin.image.proxyType",defaultMessage:"Image Proxy Type:"}),help_text:(0,A.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=>C.createElement(Ge.A,{location:"admin_console",href:ve.Uk.SETUP_IMAGE_PROXY},e)},help_text_markdown:!1,options:[{value:"atmos/camo",display_name:(0,A.defineMessage)({id:"atmos/camo",defaultMessage:"atmos/camo"})},{value:"local",display_name:(0,A.defineMessage)({id:"local",defaultMessage:"local"})}],isDisabled:Qt(Jt(ga(_.ENVIRONMENT.IMAGE_PROXY)),ta("ImageProxySettings.Enable"))},{type:"text",key:"ImageProxySettings.RemoteImageProxyURL",label:(0,A.defineMessage)({id:"admin.image.proxyURL",defaultMessage:"Remote Image Proxy URL:"}),help_text:(0,A.defineMessage)({id:"admin.image.proxyURLDescription",defaultMessage:"URL of your remote image proxy server."}),isDisabled:Qt(Jt(ga(_.ENVIRONMENT.IMAGE_PROXY)),ta("ImageProxySettings.Enable"),$t("ImageProxySettings.ImageProxyType","local"))},{type:"text",key:"ImageProxySettings.RemoteImageProxyOptions",label:(0,A.defineMessage)({id:"admin.image.proxyOptions",defaultMessage:"Remote Image Proxy Options:"}),help_text:(0,A.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:Qt(Jt(ga(_.ENVIRONMENT.IMAGE_PROXY)),ta("ImageProxySettings.Enable"),$t("ImageProxySettings.ImageProxyType","local"))}]}},smtp:{url:"environment/smtp",title:(0,A.defineMessage)({id:"admin.sidebar.smtp",defaultMessage:"SMTP"}
1),isHidden:Qt(aa("ExperimentalSettings","RestrictSystemAdmin"),Jt(ma(_.ENVIRONMENT.SMTP))),schema:{id:"SMTP",name:(0,A.defineMessage)({id:"admin.environment.smtp",defaultMessage:"SMTP"}),settings:[{type:"text",key:"EmailSettings.SMTPServer",label:(0,A.defineMessage)({id:"admin.environment.smtp.smtpServer.title",defaultMessage:"SMTP Server:"}),placeholder:(0,A.defineMessage)({id:"admin.environment.smtp.smtpServer.placeholder",defaultMessage:'Ex: "smtp.yourcompany.com", "email-smtp.us-east-1.amazonaws.com"'}),help_text:(0,A.defineMessage)({id:"admin.environment.smtp.smtpServer.description",defaultMessage:"Location of SMTP email server."}),isDisabled:Jt(ga(_.ENVIRONMENT.SMTP))},{type:"text",key:"EmailSettings.SMTPPort",label:(0,A.defineMessage)({id:"admin.environment.smtp.smtpPort.title",defaultMessage:"SMTP Server Port:"}),placeholder:(0,A.defineMessage)({id:"admin.environment.smtp.smtpPort.placeholder",defaultMessage:'Ex: "25", "465", "587"'}),help_text:(0,A.defineMessage)({id:"admin.environment.smtp.smtpPort.description",defaultMessage:"Port of SMTP email server."}),isDisabled:Jt(ga(_.ENVIRONMENT.SMTP))},{type:"bool",key:"EmailSettings.EnableSMTPAuth",label:(0,A.defineMessage)({id:"admin.environment.smtp.smtpAuth.title",defaultMessage:"Enable SMTP Authentication:"}),help_text:(0,A.defineMessage)({id:"admin.environment.smtp.smtpAuth.description",defaultMessage:"When true, SMTP Authentication is enabled."}),isDisabled:Jt(ga(_.ENVIRONMENT.SMTP))},{type:"text",key:"EmailSettings.SMTPUsername",label:(0,A.defineMessage)({id:"admin.environment.smtp.smtpUsername.title",defaultMessage:"SMTP Server Username:"}),placeholder:(0,A.defineMessage)({id:"admin.environment.smtp.smtpUsername.placeholder",defaultMessage:'Ex: "[email protected]", "AKIADTOVBGERKLCBV"'}),help_text:(0,A.defineMessage)({id:"admin.environment.smtp.smtpUsername.description",defaultMessage:"Obtain this credential from administrator setting up your email server."}),isDisabled:Qt(Jt(ga(_.ENVIRONMENT.SMTP)),ta("EmailSettings.EnableSMTPAuth"))},{type:"text",key:"EmailSettings.SMTPPassword",label:(0,A.defineMessage)({id:"admin.environment.smtp.smtpPassword.title",defaultMessage:"SMTP Server Password:"}),placeholder:(0,A.defineMessage)({id:"admin.environment.smtp.smtpPassword.placeholder",defaultMessage:'Ex: "yourpassword", "jcuS8PuvcpGhpgHhlcpT1Mx42pnqMxQY"'}),help_text:(0,A.defineMessage)({id:"admin.environment.smtp.smtpPassword.description",defaultMessage:"Obtain this credential from administrator setting up your email server."}),isDisabled:Qt(Jt(ga(_.ENVIRONMENT.SMTP)),ta("EmailSettings.EnableSMTPAuth"))},{type:"dropdown",key:"EmailSettings.ConnectionSecurity",label:(0,A.defineMessage)({id:"admin.environment.smtp.connectionSecurity.title",defaultMessage:"Connection Security:"}),help_text:Mn,options:[{value:"",display_name:(0,A.defineMessage)({id:"admin.environment.smtp.connectionSecurity.option.none",defaultMessage:"None"})},{value:"TLS",display_name:(0,A.defineMessage)({id:"admin.environment.smtp.connectionSecurity.option.tls",defaultMessage:"TLS (Recommended)"})},{value:"STARTTLS",display_name:(0,A.defineMessage)({id:"admin.environment.smtp.connectionSecurity.option.starttls",defaultMessage:"STARTTLS"})}],isDisabled:Jt(ga(_.ENVIRONMENT.SMTP))},{type:"button",action:p.TH,key:"TestSmtpConnection",label:(0,A.defineMessage)({id:"admin.environment.smtp.connectionSmtpTest",defaultMessage:"Test Connection"}),loading:(0,A.defineMessage)({id:"admin.environment.smtp.testing",defaultMessage:"Testing..."}),error_message:(0,A.defineMessage)({id:"admin.environment.smtp.smtpFail",defaultMessage:"Connection unsuccessful: {error}"}),success_message:(0,A.defineMessage)({id:"admin.environment.smtp.smtpSuccess",defaultMessage:"No errors were reported while sending an email. Please check your inbox to make sure."}),isDisabled:Jt(ga(_.ENVIRONMENT.SMTP))},{type:"bool",key:"EmailSettings.SkipServerCertificateVerification",label:(0,A.defineMessage)({id:"admin.environment.smtp.skipServerCertificateVerification.title",defaultMessage:"Skip Server Certificate Verification:"}),help_text:(0,A.defineMessage)({id:"admin.environment.smtp.skipServerCertificateVerification.description",defaultMessage:"When true, Mattermost will not verify the email server certificate."}),isDisabled:Jt(ga(_.ENVIRONMENT.SMTP))}
1,{type:"bool",key:"ServiceSettings.EnableSecurityFixAlert",label:(0,A.defineMessage)({id:"admin.environment.smtp.enableSecurityFixAlert.title",defaultMessage:"Enable Security Alerts:"}),help_text:(0,A.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:Jt(ga(_.ENVIRONMENT.SMTP))}]}},push_notification_server:{url:"environment/push_notification_server",title:(0,A.defineMessage)({id:"admin.sidebar.pushNotificationServer",defaultMessage:"Push Notification Server"}),searchableStrings:gm,isHidden:Qt(aa("ExperimentalSettings","RestrictSystemAdmin"),Jt(ma(_.ENVIRONMENT.PUSH_NOTIFICATION_SERVER))),isDisabled:Jt(ga(_.ENVIRONMENT.PUSH_NOTIFICATION_SERVER)),schema:{id:"PushNotificationsSettings",component:pm}},high_availability:{url:"environment/high_availability",title:(0,A.defineMessage)({id:"admin.sidebar.highAvailability",defaultMessage:"High Availability"}
1),isHidden:Qt(Jt(la("Cluster")),aa("ExperimentalSettings","RestrictSystemAdmin"),Jt(ma(_.ENVIRONMENT.HIGH_AVAILABILITY))),searchableStrings:Yi,isDisabled:Jt(ga(_.ENVIRONMENT.HIGH_AVAILABILITY)),schema:{id:"ClusterSettings",component:class extends Na{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);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 C.createElement(A.FormattedMessage,Wi.cluster)}overrideHandleChange=(e,t)=>
1{this.setState({showWarning:!0}),this.handleChange(e,t)};renderSettings=()=>{if("true"!==this.props.license.IsLicensed||"true"!==this.props.license.Cluster)return C.createElement(C.Fragment,null);let e=null;I.mT.clusterId&&(e=C.createElement("div",{style:qi.configLoadedFromCluster,className:"alert alert-warning"},C.createElement(it.A,null),C.createElement(A.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:I.mT.clusterId,link:e=>C.createElement(Ge.A,{location:"cluster_settings",href:ve.Uk.HIGH_AVAILABILITY_CLUSTER},e)}})));let t=null;this.state.showWarning&&(t=C.createElement("div",{style:qi.warning,className:"alert alert-warning"},C.createElement(it.A,null),C.createElement(A.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=>C.createElement(Ge.A,{location:"cluster_settings",href:ve.Uk.HIGH_AVAILABILITY_CLUSTER},e)}})));let a=null;return this.state.Enable&&(a=C.createElement(ji,null)),C.createElement(gt,null,e,a,C.createElement("div",{className:"banner"},C.createElement(A.FormattedMessage,Wi.noteDescription)),t,C.createElement(F,{id:"Enable",label:C.createElement(A.FormattedMessage,Wi.enableTitle),helpText:C.createElement(A.FormattedMessage,Object.assign({},Wi.enableDescription,{values:{link:e=>C.createElement(Ge.A,{location:"cluster_settings",href:ve.Uk.HIGH_AVAILABILITY_CLUSTER},e)}})),value:this.state.Enable,onChange:this.overrideHandleChange,setByEnv:this.isSetByEnv("ClusterSettings.Enable"),disabled:this.props.isDisabled}),C.createElement(ht,{id:"ClusterName",label:C.createElement(A.FormattedMessage,Wi.clusterName),placeholder:(0,A.defineMessage)({id:"admin.cluster.ClusterNameEx",defaultMessage:'E.g.: "Production" or "Staging"'}),helpText:C.createElement(A.FormattedMessage,Wi.clusterNameDesc),value:this.state.ClusterName,onChange:this.overrideHandleChange,setByEnv:this.isSetByEnv("ClusterSettings.ClusterName"),disabled:this.props.isDisabled}),C.createElement(ht,{id:"OverrideHostname",label:C.createElement(A.FormattedMessage,Wi.overrideHostname),placeholder:(0,A.defineMessage)({id:"admin.cluster.OverrideHostnameEx",defaultMessage:'E.g.: "app-server-01"'}),helpText:C.createElement(A.FormattedMessage,Wi.overrideHostnameDesc),value:this.state.OverrideHostname,onChange:this.overrideHandleChange,setByEnv:this.isSetByEnv("ClusterSettings.OverrideHostname"),disabled:this.props.isDisabled}),C.createElement(F,{id:"UseIPAddress",label:C.createElement(A.FormattedMessage,Wi.useIPAddress),helpText:C.createElement(A.FormattedMessage,Wi.useIPAddressDesc),value:this.state.UseIPAddress,onChange:this.overrideHandleChange,setByEnv:this.isSetByEnv("ClusterSettings.UseIPAddress"),disabled:this.props.isDisabled}),C.createElement(F,{id:"EnableGossipEncryption",label:C.createElement(A.FormattedMessage,Wi.enableGossipEncryption),helpText:C.createElement(A.FormattedMessage,Wi.enableGossipEncryptionDesc),value:this.state.EnableGossipEncryption,onChange:this.overrideHandleChange,setByEnv:this.isSetByEnv("ClusterSettings.EnableGossipEncryption"),disabled:this.props.isDisabled}),C.createElement(F,{id:"EnableGossipCompression",label:C.createElement(A.FormattedMessage,Wi.enableGossipCompression),helpText:C.createElement(A.FormattedMessage,Wi.enableGossipCompressionDesc),value:this.state.EnableGossipCompression,onChange:this.overrideHandleChange,setByEnv:this.isSetByEnv("ClusterSettings.EnableGossipCompression"),disabled:this.props.isDisabled}),C.createElement(ht,{id:"GossipPort",label:C.createElement(A.FormattedMessage,Wi.gossipPort),placeholder:(0,A.defineMessage)({id:"admin.cluster.GossipPortEx",defaultMessage:'E.g.: "8074"'}),helpText:C.createElement(A.FormattedMessage,Wi.gossipPortDesc),value:this.state.GossipPort,onCh
1ange:this.overrideHandleChange,setByEnv:this.isSetByEnv("ClusterSettings.GossipPort"),disabled:this.props.isDisabled}))}}}},cache_settings:{url:"environment/cache_settings",title:MM.cache_settings_title,isHidden:Qt(Jt(la("Cluster")),aa("ExperimentalSettings","RestrictSystemAdmin"),Jt(ma(_.ENVIRONMENT.HIGH_AVAILABILITY))),searchableStrings:[MM.cache_settings_title,MM.cache_type_title,MM.cache_type_desc,MM.redis_address_title,MM.redis_address_desc,MM.redis_password_title,MM.redis_password_desc,MM.redis_db_title,MM.redis_db_desc,MM.redis_clientcache_title,MM.redis_clientcache_desc],isDisabled:Jt(ga(_.ENVIRONMENT.HIGH_AVAILABILITY)),schema:{id:"CacheSettings",name:MM.cache_settings_title,settings:[{type:"banner",label:(0,A.defineMessage)({id:"admin.info_banner.restart_required.desc",defaultMessage:"Changing properties in this section will require a server restart before taking effect."}),banner_type:"info"},{type:"dropdown",key:"CacheSettings.CacheType",label:MM.cache_type_title,help_text:MM.cache_type_desc,help_text_markdown:!0,options:[{value:ve.uV.LRU,display_name:(0,A.defineMessage)({id:"admin.cacheSettings.cacheType.lru",defaultMessage:"LRU"})},{value:ve.uV.REDIS,display_name:(0,A.defineMessage)({id:"admin.cacheSettings.cacheType.redis",defaultMessage:"Redis"})}],isDisabled:Jt(ga(_.ENVIRONMENT.HIGH_AVAILABILITY))},{type:"text",key:"CacheSettings.RedisAddress",label:MM.redis_address_title,help_text:MM.redis_address_desc,placeholder:MM.redis_address_placeholder,isDisabled:Qt(Jt(ga(_.ENVIRONMENT.HIGH_AVAILABILITY)),Jt($t("CacheSettings.CacheType",ve.uV.REDIS)))},{type:"text",key:"CacheSettings.RedisPassword",label:MM.redis_password_title,help_text:MM.redis_password_desc,isDisabled:Qt(Jt(ga(_.ENVIRONMENT.HIGH_AVAILABILITY)),Jt($t("CacheSettings.CacheType",ve.uV.REDIS)))},{type:"number",key:"CacheSettings.RedisDB",label:MM.redis_db_title,help_text:MM.redis_db_desc,placeholder:MM.redis_db_placeholder,isDisabled:Qt(Jt(ga(_.ENVIRONMENT.HIGH_AVAILABILITY)),Jt($t("CacheSettings.CacheType",ve.uV.REDIS)))},{type:"bool",key:"CacheSettings.DisableClientCache",label:MM.redis_clientcache_title,help_text:MM.redis_clientcache_desc,help_text_markdown:!1,isDisabled:Qt(Jt(ga(_.ENVIRONMENT.HIGH_AVAILABILITY)),Jt($t("CacheSettings.CacheType",ve.uV.REDIS)))}]}},rate_limiting:{url:"environment/rate_limiting",title:(0,A.defineMessage)({id:"admin.sidebar.rateLimiting",defaultMessage:"Rate Limiting"}
1),isHidden:Qt(aa("ExperimentalSettings","RestrictSystemAdmin"),Jt(ma(_.ENVIRONMENT.RATE_LIMITING))),schema:{id:"ServiceSettings",name:(0,A.defineMessage)({id:"admin.rate.title",defaultMessage:"Rate Limiting"}),settings:[{type:"banner",label:(0,A.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:"RateLimitSettings.Enable",label:(0,A.defineMessage)({id:"admin.rate.enableLimiterTitle",defaultMessage:"Enable Rate Limiting:"}),help_text:(0,A.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:Jt(ga(_.ENVIRONMENT.RATE_LIMITING))},{type:"number",key:"RateLimitSettings.PerSec",label:(0,A.defineMessage)({id:"admin.rate.queriesTitle",defaultMessage:"Maximum Queries per Second:"}),placeholder:(0,A.defineMessage)({id:"admin.rate.queriesExample",defaultMessage:'E.g.: "10"'}),help_text:(0,A.defineMessage)({id:"admin.rate.queriesDescription",defaultMessage:"Throttles API at this number of requests per second."}),isDisabled:Qt(Jt(ga(_.ENVIRONMENT.RATE_LIMITING)),$t("RateLimitSettings.Enable",!1))},{type:"number",key:"RateLimitSettings.MaxBurst",label:(0,A.defineMessage)({id:"admin.rate.maxBurst",defaultMessage:"Maximum Burst Size:"}),placeholder:(0,A.defineMessage)({id:"admin.rate.maxBurstExample",defaultMessage:'E.g.: "100"'}),help_text:(0,A.defineMessage)({id:"admin.rate.maxBurstDescription",defaultMessage:"Maximum number of requests allowed beyond the per second query limit."}),isDisabled:Qt(Jt(ga(_.ENVIRONMENT.RATE_LIMITING)),$t("RateLimitSettings.Enable",!1))},{type:"number",key:"RateLimitSettings.MemoryStoreSize",label:(0,A.defineMessage)({id:"admin.rate.memoryTitle",defaultMessage:"Memory Store Size:"}),placeholder:(0,A.defineMessage)({id:"admin.rate.memoryExample",defaultMessage:'E.g.: "10000"'}),help_text:(0,A.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" settings below.'}),isDisabled:Qt(Jt(ga(_.ENVIRONMENT.RATE_LIMITING)),$t("RateLimitSettings.Enable",!1))},{type:"bool",key:"RateLimitSettings.VaryByRemoteAddr",label:(0,A.defineMessage)({id:"admin.rate.remoteTitle",defaultMessage:"Vary rate limit by remote address:"}),help_text:(0,A.defineMessage)({id:"admin.rate.remoteDescription",defaultMessage:"When true, rate limit API access by IP address."}),isDisabled:Qt(Jt(ga(_.ENVIRONMENT.RATE_LIMITING)),$t("RateLimitSettings.Enable",!1))},{type:"bool",key:"RateLimitSettings.VaryByUser",label:(0,A.defineMessage)({id:"admin.rate.varyByUser",defaultMessage:"Vary rate limit by user:"}),help_text:(0,A.defineMessage)({id:"admin.rate.varyByUserDescription",defaultMessage:"When true, rate limit API access by user authentication token."}),isDisabled:Qt(Jt(ga(_.ENVIRONMENT.RATE_LIMITING)),$t("RateLimitSettings.Enable",!1))},{type:"text",key:"RateLimitSettings.VaryByHeader",label:(0,A.defineMessage)({id:"admin.rate.httpHeaderTitle",defaultMessage:"Vary rate limit by HTTP header:"}),placeholder:(0,A.defineMessage)({id:"admin.rate.httpHeaderExample",defaultMessage:'E.g.: "X-Real-IP", "X-Forwarded-For"'}),help_text:(0,A.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:Qt(Jt(ga(_.ENVIRONMENT.RATE_LIMITING)),$t("RateLimitSettings.Enable",!1),$t("RateLimitSettings.VaryByRemoteAddr",!0))}]}},logging:{url:"environment/logging",title:(0,A.defineMessage)({id:"admin.sidebar.logging",defaultMessage:"Logging"}
1),isHidden:Qt(aa("ExperimentalSettings","RestrictSystemAdmin"),Jt(ma(_.ENVIRONMENT.LOGGING))),schema:{id:"LogSettings",name:(0,A.defineMessage)({id:"admin.general.log",defaultMessage:"Logging"}),settings:[{type:"bool",key:"LogSettings.EnableConsole",label:(0,A.defineMessage)({id:"admin.log.consoleTitle",defaultMessage:"Output logs to console: "}),help_text:(0,A.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:Jt(ga(_.ENVIRONMENT.LOGGING))},{type:"dropdown",key:"LogSettings.ConsoleLevel",label:(0,A.defineMessage)({id:"admin.log.levelTitle",defaultMessage:"Console Log Level:"}),help_text:(0,A.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:vn,isDisabled:Qt(Jt(ga(_.ENVIRONMENT.LOGGING)),ta("LogSettings.EnableConsole"))},{type:"bool",key:"LogSettings.ConsoleJson",label:(0,A.defineMessage)({id:"admin.log.consoleJsonTitle",defaultMessage:"Output console logs as JSON:"}),help_text:(0,A.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:Qt(Jt(ga(_.ENVIRONMENT.LOGGING)),ta("LogSettings.EnableConsole"))},{type:"bool",key:"LogSettings.EnableFile",label:(0,A.defineMessage)({id:"admin.log.fileTitle",defaultMessage:"Output logs to file: "}),help_text:(0,A.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:Jt(ga(_.ENVIRONMENT.LOGGING))},{type:"dropdown",key:"LogSettings.FileLevel",label:(0,A.defineMessage)({id:"admin.log.fileLevelTitle",defaultMessage:"File Log Level:"}),help_text:(0,A.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:vn,isDisabled:Qt(Jt(ga(_.ENVIRONMENT.LOGGING)),ta("LogSettings.EnableFile"))},{type:"bool",key:"LogSettings.FileJson",label:(0,A.defineMessage)({id:"admin.log.fileJsonTitle",defaultMessage:"Output file logs as JSON:"}),help_text:(0,A.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:Qt(Jt(ga(_.ENVIRONMENT.LOGGING)),ta("LogSettings.EnableFile"))},{type:"text",key:"LogSettings.FileLocation",label:(0,A.defineMessage)({id:"admin.log.locationTitle",defaultMessage:"File Log Directory:"}),help_text:(0,A.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,A.defineMessage)({id:"admin.log.locationPlaceholder",defaultMessage:"Enter your file location"}),isDisabled:Qt(Jt(ga(_.ENVIRONMENT.LOGGING)),ta("LogSettings.EnableFile"))},{type:"bool",key:"LogSettings.EnableWebhookDebugging",label:(0,A.defineMessage)({id:"admin.log.enableWebhookDebugging",defaultMessage:"Enable Webhook Debugging:"}),help_text:(0,A.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:C.createElement("strong",null,C.createElement(A.FormattedMessage,{id:"admin.log.logLevel",defaultMessage:"Log Level"}))},isDisabled:Jt(ga(_.ENVIRONMENT.LOGGING))},{type:"bool",key:"LogSettings.EnableDiagnostics",label:(0,A.defineMessage)({id:"admin.log.enableDiagnostics",defaultMessage:"Enable Diagnostics and Error Reporting:"}),help_text:(0,A.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=>C.createElement(Ge.A,{location:"admin_console",href:ve.L0.PRIVACY_POLICY},e)},onConfigSave:e=>e,isDisabled:Jt(ga(_.ENVIRONMENT.LOGGING))},{type:"longtext",key:"LogSettings.AdvancedLoggingJSON",label:(0,A.defineMessage)({id:"admin.log.AdvancedLoggingJSONTitle",defaultMessage:"Advanced Logging:"}),help_text:(0,A.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=>C.createElement(Ge.A,{location:"admin_console",href:ve.Uk.ADVANCED_LOGGING},e)},placeholder:(0,A.defineMessage)({id:"admin.log.AdvancedLoggingJSONPlaceholder",defaultMessage:"Enter your JSON configuration"}),isDisabled:Jt(ga(_.ENVIRONMENT.LOGGING)),validate:e=>{const t=new Zt(!0,"");if(!e)return t;try{return JSON.parse(e),t}catch(e){return new Zt(!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,A.defineMessage)({id:"admin.sidebar.sessionLengths",defaultMessage:"Session Lengths"}
1),isHidden:Qt(aa("ExperimentalSettings","RestrictSystemAdmin"),Jt(ma(_.ENVIRONMENT.SESSION_LENGTHS))),searchableStrings:ng,isDisabled:Jt(ga(_.ENVIRONMENT.SESSION_LENGTHS)),schema:{id:"SessionLengths",component:class extends Na{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);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 C.createElement(A.FormattedMessage,sg.title)}renderSettings=()=>{let e,t,a,s;return this.state.extendSessionLengthWithActivity?(e=C.createElement(A.FormattedMessage,sg.webSessionHoursDesc_extendLength),t=C.createElement(A.FormattedMessage,sg.mobileSessionHoursDesc_extendLength),a=C.createElement(A.FormattedMessage,sg.ssoSessionHoursDesc_extendLength)):(e=C.createElement(A.FormattedMessage,sg.webSessionHoursDesc),t=C.createElement(A.FormattedMessage,sg.mobileSessionHoursDesc),a=C.createElement(A.FormattedMessage,sg.ssoSessionHoursDesc)),this.props.license.Compliance&&!this.state.extendSessionLengthWithActivity&&(s=C.createElement(ht,{id:"sessionIdleTimeoutInMinutes",type:"number",label:C.createElement(A.FormattedMessage,sg.sessionIdleTimeout),placeholder:(0,A.defineMessage)({id:"admin.service.sessionIdleTimeoutEx",defaultMessage:'E.g.: "60"'}),helpText:C.createElement(A.FormattedMessage,sg.sessionIdleTimeoutDesc),value:this.state.sessionIdleTimeoutInMinutes,onChange:this.handleChange,setByEnv:this.isSetByEnv("ServiceSettings.SessionIdleTimeoutInMinutes"),disabled:this.props.isDisabled})),C.createElement(gt,null,C.createElement(F,{id:"extendSessionLengthWithActivity",label:C.createElement(A.FormattedMessage,sg.extendSessionLengthActivity_label),helpText:C.createElement(A.FormattedMessage,sg.extendSessionLengthActivity_helpText),value:this.state.extendSessionLengthWithActivity,onChange:this.handleChange,setByEnv:this.isSetByEnv("ServiceSettings.ExtendSessionLengthWithActivity"),disabled:this.props.isDisabled}),C.createElement(F,{id:"terminateSessionsOnPasswordChange",label:C.createElement(A.FormattedMessage,sg.terminateSessionsOnPasswordChange_label),helpText:C.createElement(A.FormattedMessage,sg.terminateSessionsOnPasswordChange_helpText),value:this.state.terminateSessionsOnPasswordChange,onChange:this.handleChange,setByEnv:this.isSetByEnv("ServiceSettings.TerminateSessionsOnPasswordChange"),disabled:this.props.isDisabled}),C.createElement(ht,{id:"sessionLengthWebInHours",label:C.createElement(A.FormattedMessage,sg.webSessionHours),placeholder:(0,A.defineMessage)(sg.sessionHoursEx),helpText:e,value:this.state.sessionLengthWebInHours,onChange:this.handleChange,setByEnv:this.isSetByEnv("ServiceSettings.SessionLengthWebInHours"),disabled:this.props.isDisabled,type:"number"}),C.createElement(ht,{id:"sessionLengthMobileInHours",label:C.createElement(A.FormattedMessage,sg.mobileSessionHours),placeholder:(0,A.defineMessage)(sg.sessionHoursEx),helpText:t,value:this.state.sessionLengthMobileInHours,onChange:this.handleChange,setByEnv:this.isSetByEnv("ServiceSettings.SessionLengthMobileInHours"),disabled:this.props.isDisabled,type:"number"}),C.createElement(ht,{id:"sessionLengthSSOInHours",label:C.createElement(A.FormattedMessage,sg.ssoSessionHours),placeholder:(0,A.defineMessage)(sg.sessionHoursEx),helpText:a,value:this.state.sessionLengthSSOInHours,onChange:this.handleChange,setByEnv:this.isSetByEnv("ServiceSettings.SessionLengthSSOInHours"),disabled:this.props.isDisabled,type:"number"}),C.createElement(ht,{id:"sessionCacheInMinutes",label:C.createElement(A.FormattedMessage,sg.sessionCache),placeholder:(0,A.defineMessage)({id:"admin.service.sessionMinutesEx",defaultMessage:'E.g.: "10"'}),helpText:C.createElement(A.FormattedMessage,sg.sessionCacheDesc),value:this.state.sessionCacheInMinutes,onChange:this.handleChange,setByEnv:this.isSetByEnv("ServiceSettings.SessionCacheInMinutes"),disabled:this.props.isDisabled,type:"number"}),s)}}}},metrics:{url:"environment/performance_monitoring",title:(0,A.defineMessage)({id:"admin.sidebar.metrics",defaultMessage:"Performance Monitoring"}
1),isHidden:Qt(aa("ExperimentalSettings","RestrictSystemAdmin"),Jt(ma(_.ENVIRONMENT.PERFORMANCE_MONITORING))),schema:{id:"MetricsSettings",name:(0,A.defineMessage)({id:"admin.advance.metrics",defaultMessage:"Performance Monitoring"}),settings:[{type:"bool",key:"MetricsSettings.Enable",label:(0,A.defineMessage)({id:"admin.metrics.enableTitle",defaultMessage:"Enable Performance Monitoring:"}),help_text:(0,A.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=>C.createElement(Ge.A,{location:"admin_console",href:ve.Uk.SETUP_PERFORMANCE_MONITORING},e)},isDisabled:Jt(ga(_.ENVIRONMENT.PERFORMANCE_MONITORING))},{type:"bool",key:"MetricsSettings.EnableClientMetrics",label:(0,A.defineMessage)({id:"admin.metrics.enableClientMetricsTitle",defaultMessage:"Enable Client Performance Monitoring:"}),help_text:(0,A.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=>C.createElement(Ge.A,{location:"admin_console",href:ve.Uk.SETUP_PERFORMANCE_MONITORING},e)},isDisabled:Qt(Jt(ga(_.ENVIRONMENT.PERFORMANCE_MONITORING)),sa("MetricsSettings","Enable"))},{type:"custom",key:"MetricsSettings.ClientSideUserIds",component:Ui,isDisabled:Qt(Jt(ga(_.ENVIRONMENT.PERFORMANCE_MONITORING)),sa("MetricsSettings","EnableClientMetrics"))},{type:"text",key:"MetricsSettings.ListenAddress",label:(0,A.defineMessage)({id:"admin.metrics.listenAddressTitle",defaultMessage:"Listen Address:"}),placeholder:(0,A.defineMessage)({id:"admin.metrics.listenAddressEx",defaultMessage:'E.g.: ":8067"'}),help_text:(0,A.defineMessage)({id:"admin.metrics.listenAddressDesc",defaultMessage:"The address the server will listen on to expose performance metrics."}),isDisabled:Jt(ga(_.ENVIRONMENT.PERFORMANCE_MONITORING))}]}},developer:{url:"environment/developer",title:(0,A.defineMessage)({id:"admin.sidebar.developer",defaultMessage:"Developer"}
1),isHidden:Qt(aa("ExperimentalSettings","RestrictSystemAdmin"),Jt(ma(_.ENVIRONMENT.DEVELOPER))),schema:{id:"ServiceSettings",name:(0,A.defineMessage)({id:"admin.developer.title",defaultMessage:"Developer Settings"}),settings:[{type:"bool",key:"ServiceSettings.EnableTesting",label:(0,A.defineMessage)({id:"admin.service.testingTitle",defaultMessage:"Enable Testing Commands:"}),help_text:(0,A.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:Jt(ga(_.ENVIRONMENT.DEVELOPER))},{type:"bool",key:"ServiceSettings.EnableDeveloper",label:(0,A.defineMessage)({id:"admin.service.developerTitle",defaultMessage:"Enable Developer Mode: "}),help_text:(0,A.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:Jt(ga(_.ENVIRONMENT.DEVELOPER))},{type:"bool",key:"ServiceSettings.EnableClientPerformanceDebugging",label:(0,A.defineMessage)({id:"admin.service.performanceDebuggingTitle",defaultMessage:"Enable Client Performance Debugging: "}),help_text:(0,A.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:Jt(ga(_.ENVIRONMENT.DEVELOPER))},{type:"text",key:"ServiceSettings.AllowedUntrustedInternalConnections",label:(0,A.defineMessage)({id:"admin.service.internalConnectionsTitle",defaultMessage:"Allow untrusted internal connections to: "}),placeholder:(0,A.defineMessage)({id:"admin.service.internalConnectionsEx",defaultMessage:"webhooks.internal.example.com 127.0.0.1 10.0.16.0/28"}),help_text:(0,A.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=>C.createElement(Ge.A,{location:"admin_console",href:"https://mattermost.com/pl/default-allow-untrusted-internal-connections"},e)},help_text_markdown:!1,isDisabled:Jt(ga(_.ENVIRONMENT.DEVELOPER))}]}},mobile_security:{url:"environment/mobile_security",title:(0,A.defineMessage)({id:"admin.sidebar.mobileSecurity",defaultMessage:"Mobile Security"}
1),isHidden:Qt(Jt(ma(_.ENVIRONMENT.MOBILE_SECURITY)),Jt(da(ve.gS.Enterprise))),schema:{id:"MobileSecuritySettings",name:(0,A.defineMessage)({id:"admin.mobileSecurity.title",defaultMessage:"Mobile Security"}),sections:[{key:"MobileSecuritySettings.General",title:"General Mobile Security",description:(0,A.defineMessage)({id:"admin.mobileSecurity.sections.general.description",defaultMessage:"Configure device security features for the mobile app."}),settings:[{type:"bool",key:"NativeAppSettings.MobileEnableBiometrics",label:(0,A.defineMessage)({id:"admin.mobileSecurity.biometricsTitle",defaultMessage:"Enable Biometric Authentication:"}),help_text:(0,A.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,A.defineMessage)({id:"admin.mobileSecurity.screenCaptureTitle",defaultMessage:"Prevent Screen Capture:"}),help_text:(0,A.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,A.defineMessage)({id:"admin.mobileSecurity.jailbreakTitle",defaultMessage:"Enable Jailbreak/Root Protection:"}),help_text:(0,A.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,A.defineMessage)({id:"admin.mobileSecurity.secureFilePreviewTitle",defaultMessage:"Enable Secure File Preview Mode:"}),help_text:(0,A.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:C.createElement("a",{href:"../site_config/file_sharing_downloads"},C.createElement("b",null,C.createElement(A.FormattedMessage,{id:"admin.mobileSecurity.mobileAllowDownloads",defaultMessage:"Site Configuration > File Sharing and Downloads > Allow File Downloads on Mobile"})))},isHidden:Jt(da(ve.gS.EnterpriseAdvanced))},{type:"bool",key:"NativeAppSettings.MobileAllowPdfLinkNavigation",label:(0,A.defineMessage)({id:"admin.mobileSecurity.allowPdfLinkNavigationTitle",defaultMessage:"Allow Link Navigation in Secure PDFs:"}),help_text:(0,A.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:ta("NativeAppSettings.MobileEnableSecureFilePreview"),isHidden:Jt(da(ve.gS.EnterpriseAdvanced))}]},{key:"MobileSecuritySettings.Intune",title:"Microsoft Intune",description:(0,A.defineMessage)({id:"admin.mobileSecurity.sections.intune.description",defaultMessage:"Configure Microsoft Intune Mobile Application Management (MAM) for App Protection Policies."}),license_sku:ve.gS.EnterpriseAdvanced,component:bd,componentProps:{requiredSku:ve.gS.EnterpriseAdvanced,featureDiscoveryConfig:{featureName:"intune_mam",title:(0,A.defineMessage)({id:"admin.intune_feature_discovery.title",defaultMessage:"Protect mobile data with Microsoft Intune App Protection Policies (MAM) and Entra ID authentication"}),description:(0,A.defineMessage)({id:"admin.intune_feature_discovery.description",defaultMessage:"With Mattermost Enterprise Advanced, you can enable Microsoft Intune Mobile Application Management (MAM) to enforce App Protection Policies (APP) on Mattermost Mobile. Users sign in with Microsoft Entra ID (Azure AD), and Intune MAM applies data protection, selective wipe, and compliance policies on supported iOS devices."}),learnMoreURL:"https://docs.mattermost.com/deployment-guide/mobile/configure-microsoft-intune-mam.html",svgImage:e=>C.createElement("svg",{width:e.width?e.width.toString():"284",height:e.height?e.height.toString():"173",viewBox:"0 0 284 173",fill:"none",xmlns:"http://www.w3.org/2000/svg"},C.createElement("path",{d:"M18.03 4.94443L18.03 25.5L214.53 25.5",stroke:"var(--center-c
1hannel-color)",strokeOpacity:"0.32",strokeWidth:"1.5",strokeLinecap:"round"}),C.createElement("ellipse",{cx:"3",cy:"3",rx:"3",ry:"3",transform:"matrix(1 8.74228e-08 8.74228e-08 -1 15.03 6)",fill:"var(--center-channel-color)",fillOpacity:"0.48"}),C.createElement("path",{d:"M278.655 55.8479L278.655 19.4004L242.882 19.4004",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeWidth:"1.5",strokeLinecap:"round"}),C.createElement("circle",{cx:"278.655",cy:"59.2227",r:"3.37477",transform:"rotate(180 278.655 59.2227)",fill:"var(--center-channel-color)",fillOpacity:"0.48"}),C.createElement("path",{d:"M164.345 66.9186H230.528",stroke:"var(--center-channel-color)",strokeOpacity:"0.12",strokeWidth:"1.5",strokeLinecap:"round"}),C.createElement("path",{d:"M174.202 75.3676H240.386",stroke:"var(--center-channel-color)",strokeOpacity:"0.12",strokeWidth:"1.5",strokeLinecap:"round"}),C.createElement("path",{d:"M167.161 85.2247H233.345",stroke:"var(--center-channel-color)",strokeOpacity:"0.12",strokeWidth:"1.5",strokeLinecap:"round"}),C.createElement("path",{d:"M179.835 102.123H210.814",stroke:"var(--center-channel-color)",strokeOpacity:"0.12",strokeWidth:"1.5",strokeLinecap:"round"}),C.createElement("path",{d:"M158.711 58.6563H179.834",stroke:"var(--center-channel-color)",strokeOpacity:"0.12",strokeWidth:"1.5",strokeLinecap:"round"}),C.createElement("path",{d:"M184.058 58.6563H215.038",stroke:"var(--center-channel-color)",strokeOpacity:"0.12",strokeWidth:"1.5",strokeLinecap:"round"}),C.createElement("path",{d:"M219.262 58.6563H246.018",stroke:"var(--center-channel-color)",strokeOpacity:"0.12",strokeWidth:"1.5",strokeLinecap:"round"}),C.createElement("path",{d:"M199.549 110.572H226.304",stroke:"var(--center-channel-color)",strokeOpacity:"0.12",strokeWidth:"1.5",strokeLinecap:"round"}),C.createElement("path",{d:"M179.835 110.572H195.325",stroke:"var(--center-channel-color)",strokeOpacity:"0.12",strokeWidth:"1.5",strokeLinecap:"round"}),C.createElement("path",{d:"M169.977 93.2667H200.957",stroke:"var(--center-channel-color)",strokeOpacity:"0.12",strokeWidth:"1.5",strokeLinecap:"round"}),C.createElement("path",{d:"M205.181 93.2665H231.937",stroke:"var(--center-channel-color)",strokeOpacity:"0.12",strokeWidth:"1.5",strokeLinecap:"round"}),C.createElement("path",{d:"M164.344 50.7246H199.549",stroke:"var(--center-channel-color)",strokeOpacity:"0.12",strokeWidth:"1.5",strokeLinecap:"round"}),C.createElement("path",{d:"M205.181 50.7246H240.385",stroke:"var(--center-channel-color)",strokeOpacity:"0.12",strokeWidth:"1.5",strokeLinecap:"round"}),C.createElement("path",{d:"M217.677 75.5825C219.143 75.5826 220.327 76.7619 220.327 78.2231V89.8784C220.327 99.8294 215.863 107.898 205.888 107.898H197.791C187.816 107.898 183.352 99.8294 183.352 89.8784V78.2231C183.352 76.7669 184.541 75.5826 186.002 75.5825H217.677ZM199.852 82.3871V91.5024L201.718 93.3676L199.852 95.2319V97.6948H204.955V87.5463L203.529 86.1205L204.955 84.6938V82.3871H199.852Z",fill:"var(--button-bg)"}),C.createElement("path",{d:"M202.962 57.1323C210.145 57.1325 215.029 63.2033 215.029 70.6616V75.6411C215.029 77.5321 210.561 77.5346 210.561 75.6411V70.6616C210.561 65.5868 207.636 61.7212 203.619 61.7212H199.253C195.486 61.7214 192.311 65.5869 192.311 70.6616V75.6411C192.311 77.5357 187.852 77.5344 187.852 75.6411V70.6616C187.852 63.2032 192.736 57.1323 199.92 57.1323H202.962Z",fill:"var(--button-bg)"}),C.createElement("path",{d:"M99.1957 12H200.804L207 151.5H93L99.1957 12Z",fill:"var(--center-channel-color)",fillOpacity:"0.16"}),C.createElement("rect",{width:"138",height:"7.5",transform:"matrix(1 0 0 -1 81 159)",fill:"var(--center-channel-color)",fillOpacity:"0.32"}),C.createElement("rect",{x:"51",y:"3",width:"196.5",height:"129",rx:"6",fill:"var(--center-channel-bg)",stroke:"var(--center-channel-color)",strokeWidth:"6"}),C.createElement("path",{d:"M40.53 159H108.03V61.53C108.03 57.3713 104.659 54 100.5 54H48.06C43.9013 54 40.53 57.3713 40.53 61.53V159Z",fill:"var(--center-channel-color)",fillOpacity:"0.16"}),C.createElement("rect",{width:"48",height:"55.5",rx:"7.53",transform:"matrix(1 0 0 -1 219.03 135)",fill:"var(--center-c
1hannel-color)",fillOpacity:"0.16"}),C.createElement("rect",{x:"227.758",y:"76.7439",width:"49.9482",height:"94.0884",rx:"8.71189",fill:"var(--center-channel-bg)",stroke:"var(--center-channel-color)",strokeWidth:"3.48476"}),C.createElement("path",{d:"M229.5 84.875C229.5 81.3466 232.36 78.4862 235.889 78.4862H269.575C273.103 78.4862 275.963 81.3466 275.963 84.875V86.6173H229.5V84.875Z",fill:"var(--button-bg)",fillOpacity:"0.16"}),C.createElement("path",{d:"M237 117H268.5",stroke:"var(--center-channel-color)",strokeOpacity:"0.12",strokeWidth:"1.5",strokeLinecap:"round"}),C.createElement("path",{d:"M238.5 121.5H266.927",stroke:"var(--center-channel-color)",strokeOpacity:"0.12",strokeWidth:"1.5",strokeLinecap:"round"}),C.createElement("path",{d:"M237 126L270 126",stroke:"var(--center-channel-color)",strokeOpacity:"0.12",strokeWidth:"1.5",strokeLinecap:"round"}),C.createElement("path",{d:"M237 144L270 144",stroke:"var(--center-channel-color)",strokeOpacity:"0.12",strokeWidth:"1.5",strokeLinecap:"round"}),C.createElement("path",{d:"M238.5 135L267.005 135",stroke:"var(--center-channel-color)",strokeOpacity:"0.12",strokeWidth:"1.5",strokeLinecap:"round"}),C.createElement("path",{d:"M234 112.5H241.5",stroke:"var(--center-channel-color)",strokeOpacity:"0.12",strokeWidth:"1.5",strokeLinecap:"round"}),C.createElement("path",{d:"M244.5 112.5H257.806",stroke:"var(--center-channel-color)",strokeOpacity:"0.12",strokeWidth:"1.5",strokeLinecap:"round"}),C.createElement("path",{d:"M245.5 148.5H258.806",stroke:"var(--center-channel-color)",strokeOpacity:"0.12",strokeWidth:"1.5",strokeLinecap:"round"}),C.createElement("path",{d:"M261 112.5H272.492",stroke:"var(--center-channel-color)",strokeOpacity:"0.12",strokeWidth:"1.5",strokeLinecap:"round"}),C.createElement("path",{d:"M251.54 139.5H263.032",stroke:"var(--center-channel-color)",strokeOpacity:"0.12",strokeWidth:"1.5",strokeLinecap:"round"}),C.createElement("path",{d:"M241.647 139.5H248.3",stroke:"var(--center-channel-color)",strokeOpacity:"0.12",strokeWidth:"1.5",strokeLinecap:"round"}),C.createElement("path",{d:"M238.5 130.5H251.806",stroke:"var(--center-channel-color)",strokeOpacity:"0.12",strokeWidth:"1.5",strokeLinecap:"round"}),C.createElement("path",{d:"M255 130.5H266.492",stroke:"var(--center-channel-color)",strokeOpacity:"0.12",strokeWidth:"1.5",strokeLinecap:"round"}),C.createElement("path",{d:"M237 108H250.5",stroke:"var(--center-channel-color)",strokeOpacity:"0.12",strokeWidth:"1.5",strokeLinecap:"round"}),C.createElement("path",{d:"M253.5 108H268.5",stroke:"var(--center-channel-color)",strokeOpacity:"0.12",strokeWidth:"1.5",strokeLinecap:"round"}),C.createElement("path",{d:"M262.27 121.46C263.153 121.46 263.866 122.17 263.867 123.05V130.071C263.867 136.065 261.177 140.924 255.169 140.924H250.292C244.285 140.924 241.596 136.064 241.596 130.071V123.05C241.596 122.173 242.312 121.461 243.192 121.46H262.27ZM251.535 125.559V131.049L252.658 132.172L251.535 133.295V134.779H254.608V128.667L253.749 127.808L254.608 126.949V125.559H251.535Z",fill:"var(--button-bg)"}),C.createElement("path",{d:"M253.407 110.348C257.734 110.348 260.675 114.004 260.675 118.496V121.495C260.675 122.634 257.984 122.636 257.984 121.495V118.496C257.984 115.44 256.222 113.111 253.803 113.111H251.174C248.905 113.111 246.992 115.44 246.992 118.496C246.992 118.496 246.992 120.354 246.992 121.495C246.992 122.637 244.307 122.636 244.307 121.495V118.496C244.307 114.004 247.249 110.348 251.575 110.348H253.407Z",fill:"var(--button-bg)"}),C.createElement("circle",{cx:"150",cy:"67.5",r:"52.5",fill:"var(--button-bg)",fillOpacity:"0.04"}),C.createElement("g",{clipPath:"url(#clip0_3753_1225)"}
1,C.createElement("mask",{id:"mask0_3753_1225",style:{maskType:"luminance"},maskUnits:"userSpaceOnUse",x:"120",y:"37",width:"60",height:"61"},C.createElement("path",{d:"M120 37.5H180V97.5H120V37.5Z",fill:"white"})),C.createElement("g",{mask:"url(#mask0_3753_1225)"},C.createElement("path",{d:"M120 46.5675C120 38.9044 130.02 34.7096 136.64 39.601L151.03 50.2275L163.174 43.3458C169.593 39.8457 179.878 42.3563 180 51.9239V87.1833C180 94.8464 170.274 98.8416 163.655 93.9497L149.002 83.0907L136.843 89.9742C130.364 93.5077 120.01 90.7969 120.01 81.4852C120.01 70.3088 120 74.6002 120 46.5685V46.5675Z",fill:"url(#paint0_linear_3753_1225)"}),C.createElement("path",{d:"M120 46.5675C120 38.9044 130.02 34.7096 136.64 39.601L151.03 50.2275L163.174 43.3458C169.593 39.8457 179.878 42.3563 180 51.9239V87.1833C180 94.8464 170.274 98.8416 163.655 93.9497L149.002 83.0907L136.843 89.9742C130.364 93.5077 120.01 90.7969 120.01 81.4852C120.01 70.3088 120 74.6002 120 46.5685V46.5675Z",fill:"url(#paint1_radial_3753_1225)"}),C.createElement("path",{d:"M120 46.5675C120 38.9044 130.02 34.7096 136.64 39.601L151.03 50.2275L163.174 43.3458C169.593 39.8457 179.878 42.3563 180 51.9239V87.1833C180 94.8464 170.274 98.8416 163.655 93.9497L149.002 83.0907L136.843 89.9742C130.364 93.5077 120.01 90.7969 120.01 81.4852C120.01 70.3088 120 74.6002 120 46.5685V46.5675Z",fill:"url(#paint2_radial_3753_1225)"}),C.createElement("path",{d:"M136.64 39.601C130.02 34.7096 120 38.9044 120 46.5675V81.0516C120 80.2135 120.427 78.5442 120.427 78.5442C122.401 72.0905 130.794 69.6708 136.601 73.9238L163.654 93.9502C170.274 98.8416 180 94.8464 180 87.1833V51.9239C180 58.47 171.443 65.0414 163.36 59.3475L136.64 39.601Z",fill:"url(#paint3_radial_3753_1225)"}),C.createElement("path",{d:"M136.64 39.601C130.02 34.7096 120 38.9044 120 46.5675V81.0516C120 80.2135 120.427 78.5442 120.427 78.5442C122.401 72.0905 130.794 69.6708 136.601 73.9238L163.654 93.9502C170.274 98.8416 180 94.8464 180 87.1833V51.9239C180 58.47 171.443 65.0414 163.36 59.3475L136.64 39.601Z",fill:"url(#paint4_radial_3753_1225)",fillOpacity:"0.25"}),C.createElement("path",{d:"M136.64 39.601C130.02 34.7096 120 38.9044 120 46.5675V81.0516C120 80.2135 120.427 78.5442 120.427 78.5442C122.401 72.0905 130.794 69.6708 136.601 73.9238L163.654 93.9502C170.274 98.8416 180 94.8464 180 87.1833V51.9239C180 58.47 171.443 65.0414 163.36 59.3475L136.64 39.601Z",fill:"url(#paint5_radial_3753_1225)",fillOpacity:"0.55"}),C.createElement("path",{d:"M136.64 59.1434C130.02 54.2515 120 58.4468 120 66.1099V46.5677C120 38.9037 130.02 34.7088 136.64 39.6002L163.36 59.3468C171.443 65.0412 180 58.4698 180 51.9237V71.9234C180 79.5865 169.98 83.7813 163.36 78.8899L136.64 59.1434Z",fill:"url(#paint6_linear_3753_1225)"}),C.createElement("path",{d:"M136.64 59.1434C130.02 54.2515 120 58.4468 120 66.1099V46.5677C120 38.9037 130.02 34.7088 136.64 39.6002L163.36 59.3468C171.443 65.0412 180 58.4698 180 51.9237V71.9234C180 79.5865 169.98 83.7813 163.36 78.8899L136.64 59.1434Z",fill:"url(#paint7_radial_3753_1225)",fillOpacity:"0.36"}))),C.createElement("rect",{x:"99.75",y:"42.75",width:"127.5",height:"97.5",rx:"5.63698",transform:"rotate(90 99.75 42.75)",fill:"var(--center-channel-bg)",stroke:"var(--center-channel-color)",strokeWidth:"4.5"}),C.createElement("path",{d:"M4.5 46.4559C4.5 45.6518 5.15182 45 5.95588 45H96.0441C96.8482 45 97.5 45.6518 97.5 46.4559V54H4.5V46.4559Z",fill:"var(--button-bg)",fillOpacity:"0.16"}),C.createElement("path",{d:"M61.4471 101.888C62.3956 101.888 63.1618 102.651 63.162 103.596V111.138C63.162 117.577 60.2733 122.798 53.8192 122.798H48.58C42.1259 122.798 39.2372 117.577 39.2372 111.138V103.596C39.2374 102.654 40.0068 101.888 40.952 101.888H61.4471ZM49.9139 106.291V112.19L51.12 113.396L49.9139 114.602V116.197H53.2157V109.629L52.2928 108.707L53.2157 107.784V106.291H49.9139Z",fill:"var(--button-bg)"}),C.createElement("path",{d:"M51.9254 89.9496C56.5733 89.9496 59.7339 93.8775 59.7339 98.7036V101.926C59.7334 103.149 56.8439 103.151 56.8433 101.926V98.7036C56.8433 95.4199 54.9506 92.9194 52.3511 92.9194H49.5259C47.0888 92.9194 45.0338 95.4199 45.0338 98.7036C45.
10338 98.7036 45.0338 100.7 45.0338 101.926C45.0332 103.152 42.1496 103.151 42.149 101.926V98.7036C42.149 93.8775 45.3096 89.9496 49.9576 89.9496H51.9254Z",fill:"var(--button-bg)"}),C.createElement("path",{d:"M23.9415 94.5H75.9138",stroke:"var(--center-channel-color)",strokeOpacity:"0.12",strokeWidth:"1.5",strokeLinecap:"round"}),C.createElement("path",{d:"M26.4163 99H73.3185",stroke:"var(--center-channel-color)",strokeOpacity:"0.12",strokeWidth:"1.5",strokeLinecap:"round"}),C.createElement("path",{d:"M23.9413 103.5L78.3885 103.5",stroke:"var(--center-channel-color)",strokeOpacity:"0.12",strokeWidth:"1.5",strokeLinecap:"round"}),C.createElement("path",{d:"M23.9413 121.5L78.3885 121.5",stroke:"var(--center-channel-color)",strokeOpacity:"0.12",strokeWidth:"1.5",strokeLinecap:"round"}),C.createElement("path",{d:"M26.4163 112.5L73.4468 112.5",stroke:"var(--center-channel-color)",strokeOpacity:"0.12",strokeWidth:"1.5",strokeLinecap:"round"}),C.createElement("path",{d:"M18.9916 90H31.366",stroke:"var(--center-channel-color)",strokeOpacity:"0.12",strokeWidth:"1.5",strokeLinecap:"round"}),C.createElement("path",{d:"M36.3157 90H58.27",stroke:"var(--center-channel-color)",strokeOpacity:"0.12",strokeWidth:"1.5",strokeLinecap:"round"}),C.createElement("path",{d:"M38.2906 126H60.2448",stroke:"var(--center-channel-color)",strokeOpacity:"0.12",strokeWidth:"1.5",strokeLinecap:"round"}),C.createElement("path",{d:"M63.5393 90H82.4998",stroke:"var(--center-channel-color)",strokeOpacity:"0.12",strokeWidth:"1.5",strokeLinecap:"round"}),C.createElement("path",{d:"M47.9312 117H66.8917",stroke:"var(--center-channel-color)",strokeOpacity:"0.12",strokeWidth:"1.5",strokeLinecap:"round"}),C.createElement("path",{d:"M31.6083 117H42.5854",stroke:"var(--center-channel-color)",strokeOpacity:"0.12",strokeWidth:"1.5",strokeLinecap:"round"}),C.createElement("path",{d:"M26.4163 108H48.3705",stroke:"var(--center-channel-color)",strokeOpacity:"0.12",strokeWidth:"1.5",strokeLinecap:"round"}),C.createElement("path",{d:"M53.6398 108H72.6003",stroke:"var(--center-channel-color)",strokeOpacity:"0.12",strokeWidth:"1.5",strokeLinecap:"round"}),C.createElement("path",{d:"M23.9413 85.5H46.2152",stroke:"var(--center-channel-color)",strokeOpacity:"0.12",strokeWidth:"1.5",strokeLinecap:"round"}),C.createElement("path",{d:"M51.165 85.5H75.9137",stroke:"var(--center-channel-color)",strokeOpacity:"0.12",strokeWidth:"1.5",strokeLinecap:"round"}),C.createElement("defs",null,C.createElement("linearGradient",{id:"paint0_linear_3753_1225",x1:"145.622",y1:"96.0938",x2:"167.036",y2:"50.2744",gradientUnits:"userSpaceOnUse"},C.createElement("stop",{offset:"0.02",stopColor:"#1169DA"}),C.createElement("stop",{offset:"0.435",stopColor:"#0151BD"}),C.createElement("stop",{offset:"0.614",stopColor:"#014DB7"}),C.createElement("stop",{offset:"1",stopColor:"#126AD9"})),C.createElement("radialGradient",{id:"paint1_radial_3753_1225",cx:"0",cy:"0",r:"1",gradientUnits:"userSpaceOnUse",gradientTransform:"translate(173.696 29.3841) rotate(110.224) scale(43.8371 32.8375)"},C.createElement("stop",{offset:"0.423",stopColor:"#004AFF",stopOpacity:"0.1"}),C.createElement("stop",{offset:"0.729",stopColor:"#014DB9"}),C.createElement("stop",{offset:"0.836",stopColor:"#014DB9",stopOpacity:"0.9"}),C.createElement("stop",{offset:"0.955",stopColor:"#014DB9",stopOpacity:"0"})),C.createElement("radialGradient",{id:"paint2_radial_3753_1225",cx:"0",cy:"0",r:"1",gradientUnits:"userSpaceOnUse",gradientTransform:"translate(128.01 94.3032) rotate(-73.6432) scale(34.9002 42.5128)"},C.createElement("stop",{offset:"0.091",stopColor:"#004AFF",stopOpacity:"0.1"}),C.createElement("stop",{offset:"0.56",stopColor:"#014DB9"}),C.createElement("stop",{offset:"0.749",stopColor:"#014DB9",stopOpacity:"0.99"}),C.createElement("stop",{offset:"1",stopColor:"#014DB9",stopOpacity:"0"})),C.createElement("radialGradient",{id:"paint3_radial_3753_1225",cx:"0",cy:"0",r:"1",gradientUnits:"userSpaceOnUse",gradientTransform:"translate(185.814 37.5) rotate(134.068) scale(84.5934 65.1563)"},C.createElement("stop",{offset:"0.249",stopColor:"#23C0FE"}),C.createElement("stop",{offset:"0.717",stopColor:"#23C0FE"}),C.createElement("stop",{offset:"0.995",stopColor:"#1C91FF"})),C.createElement("radialGradient",{id:"paint4_radial_3753_1225",cx:"0",cy:"0",r:"1",gradientUnits:"userSpaceOnUse",gradientTransform:"translate(137.891 42.2564) rotate(45.9092) scale(60.5184 14.3969)"},C.createElement("stop",{offset:"0.165",stopColor:"#096DD6",stopOpacity:"0"}),C.createElement("stop",{offset:"0.484",stopColor:"#096DD6"}),C.createElement("stop",{offset:"0.901",stopColor:"#0876DE",stopOpacity:"0.814"}),C.createElement("stop",{offset:"1",stopColor:"#029AFF",stopOpacity:"0"})),C.createElement("radialGradient",{id:"paint5_radial_3753_1225",cx:"0",cy:"0",r:"1",gradientUnits:"userSpaceOnUse",gradientTransform:"translate(177.764 73.4433) rotate(91.61) scale(9.71986 8.75334)"},C.createElement("stop",{stopColor:"#0068B3"}),C.createElement("stop",{offset:"0.93",stopColor:"#006CB8",stopOpacity:"0"})),C.createElement("linearGradient",{id:"paint6_linear_3753_1225",x1:"137.105",y1:"51.3181",x2:"147.207",y2:"94.2443",gradientUnits:"userSpaceOnUse"},C.createElement("stop",{stopColor:"#92EEFE"}),C.createElement("stop",{offset:"0.565",stopColor:"#35DDFF"}),C.createElement("stop",{offset:"1",stopColor:"#08B1F9"})),C.createElement("radialGradient",{id:"paint7_radial_3753_1225",cx:"0",cy:"0",r:"1",gradientUnits:"userSpaceOnUse",gradientTransform:"translate(130.064 37.4999) rotate(69.461) scale(14.9496 12.0748)"},C.createElement("stop",{stopColor:"#CCF9FF",stopOpacity:"0.93"}),C.createElement("stop",{offset:"1",stopColor:"#35DDFF"})),C.createElement("clipPath",{id:"clip0_3753_1225"},C.createElement("rect",{width:"60",height:"60",fill:"white",transform:"translate(120 37.5)"}))))}},settings:[{type:"bool",key:"IntuneSettings.Enable",label:(0,A.defineMessage)({id:"admin.intune.enableTitle",defaultMessage:"Enable Microsoft Intune MAM:"}),help_text:(0,A.defineMessage)({id:"admin.intune.enableDescription",defaultMessage:"When enabled, Mattermost Mobile uses Microsoft Entra ID (Azure AD) for app authentication and policy enforcement. Users authenticate using MSAL tokens, and Intune MAM policies (App Protection Policies) are applied to protect corporate data."})},{type:"dropdown",key:"IntuneSettings.AuthService",label:(0,A.defineMessage)({id:"admin.intune.authServiceTitle",defaultMessage:"Auth Provider:"}),help_text:(0,A.defineMessage)({id:"admin.intune.authServiceDescription",defaultMessage:"Select how users authenticate into Mattermost.\n* **OpenID Connect** â Use when users sign in to Mattermost via Microsoft 365 / Entra ID using OIDC.\n* **SAML 2.0** â Use when users authenticate via a SAML provider that ultimately maps to Microsoft Entra ID.\nChoose the option that matches how y
1our organization already authenticates users into Mattermost on other clients."}),help_text_markdown:!0,options:[{value:"",display_name:(0,A.defineMessage)({id:"admin.intune.authServicePlaceholder",defaultMessage:"Select an auth provider"})},{value:"office365",display_name:(0,A.defineMessage)({id:"admin.intune.authServiceOffice365",defaultMessage:"OpenID Connect (Office 365)"}),isHidden:sa("Office365Settings","Enable")},{value:"saml",display_name:(0,A.defineMessage)({id:"admin.intune.authServiceSaml",defaultMessage:"SAML 2.0"}),isHidden:sa("SamlSettings","Enable")}],isDisabled:ta("IntuneSettings.Enable")},{type:"text",key:"IntuneSettings.TenantId",label:(0,A.defineMessage)({id:"admin.intune.tenantIdTitle",defaultMessage:"Tenant ID:"}),help_text:(0,A.defineMessage)({id:"admin.intune.tenantIdDescription",defaultMessage:"The Microsoft Entra ID (Azure AD) Tenant ID (also called the Directory ID).\nThis is the globally unique identifier that represents your organization in Microsoft Entra ID.\nMattermost uses this ID to validate tokens issued for Intune MAM."}),placeholder:(0,A.defineMessage)({id:"admin.intune.tenantIdPlaceholder",defaultMessage:'E.g.: "12345678-1234-1234-1234-123456789012"'}),isDisabled:ta("IntuneSettings.Enable"),default:(e,t,a)=>a["IntuneSettings.Enable"]&&!a["IntuneSettings.TenantId"]&&"office365"===a["IntuneSettings.AuthService"]&&t.Office365Settings?.DirectoryId?t.Office365Settings?.DirectoryId:""},{type:"text",key:"IntuneSettings.ClientId",label:(0,A.defineMessage)({id:"admin.intune.clientIdTitle",defaultMessage:"Application (Client) ID:"}),help_text:(0,A.defineMessage)({id:"admin.intune.clientIdDescription",defaultMessage:"The Application (Client) ID of your Intune MAMâenabled app registration in Microsoft Entra ID.\nThis is the client identifier that the Mattermost Mobile app uses to request MSAL tokens for Intune MAM enrollment and policy evaluation."}),placeholder:(0,A.defineMessage)({id:"admin.intune.clientIdPlaceholder",defaultMessage:'E.g.: "87654321-4321-4321-4321-210987654321"'}),isDisabled:ta("IntuneSettings.Enable"),default:(e,t,a)=>a["IntuneSettings.Enable"]&&!a["IntuneSettings.TenantId"]&&"office365"===a["IntuneSettings.AuthService"]&&t.Office365Settings?.Id?t.Office365Settings?.Id:""}]}]}},mobile_security_feature_discovery:{url:"environment/mobile_security_feature_discovery",isDiscovery:!0,title:(0,A.defineMessage)({id:"admin.sidebar.mobileSecurity",defaultMessage:"Mobile Security"}
1),isHidden:Qt(Jt(ma(_.ENVIRONMENT.MOBILE_SECURITY)),da(ve.gS.Enterprise)),schema:{id:"MobileSecurityFeatureDiscoverySettings",name:(0,A.defineMessage)({id:"admin.mobileSecurity.title",defaultMessage:"Mobile Security"}),settings:[{type:"custom",component:()=>C.createElement(dl,{featureName:"mobile_security",minimumSKURequiredForFeature:ve.gS.Enterprise,title:(0,A.defineMessage)({id:"admin.mobile_security_feature_discovery.title",defaultMessage:"Enhance mobile app security with Mattermost Enterprise"}),copy:(0,A.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:C.createElement(hl,{width:294,height:170})}),key:"MobileSecurityFeatureDiscovery",isDisabled:Jt(ga(_.ABOUT.EDITION_AND_LICENSE))}]},restrictedIndicator:Ma(!0)}}},site:{icon:C.createElement(w.CogOutlineIcon,{size:16,color:"currentColor"}),sectionTitle:(0,A.defineMessage)({id:"admin.sidebar.site",defaultMessage:"Site Configuration"}),isHidden:Jt(ua(_.SITE)),subsections:{customization:{url:"site_config/customization",title:(0,A.defineMessage)({id:"admin.sidebar.customization",defaultMessage:"Customization"}),isHidden:Jt(ma(_.SITE.CUSTOMIZATION)),schema:{id:"Customization",name:(0,A.defineMessage)({id:"admin.site.customization",defaultMessage:"Customization"}),settings:[{type:"text",key:"TeamSettings.SiteName",label:(0,A.defineMessage)({id:"admin.team.siteNameTitle",defaultMessage:"Site Name:"}),help_text:(0,A.defineMessage)({id:"admin.team.siteNameDescription",defaultMessage:'Name of service shown in login screens and UI. When not specified, it defaults to "Mattermost".'}),placeholder:(0,A.defineMessage)({id:"admin.team.siteNameExample",defaultMessage:'E.g.: "Mattermost"'}),max_length:ve.YM.MAX_SITENAME_LENGTH,isDisabled:Jt(ga(_.SITE.CUSTOMIZATION))},{type:"text",key:"TeamSettings.CustomDescriptionText",label:(0,A.defineMessage)({id:"admin.team.brandDescriptionTitle",defaultMessage:"Site Description: "}),help_text:(0,A.defineMessage)({id:"admin.team.brandDescriptionHelp",defaultMessage:'Displays as a title above the login form. When not specified, the phrase "Log in" is displayed.'}),isDisabled:Jt(ga(_.SITE.CUSTOMIZATION))},{type:"bool",key:"TeamSettings.EnableCustomBrand",label:(0,A.defineMessage)({id:"admin.team.brandTitle",defaultMessage:"Enable Custom Branding: "}),help_text:(0,A.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:Jt(ga(_.SITE.CUSTOMIZATION))},{type:"custom",component:Fi,key:"CustomBrandImage",isDisabled:Qt(Jt(ga(_.SITE.CUSTOMIZATION)),ta("TeamSettings.EnableCustomBrand"))},{type:"longtext",key:"TeamSettings.CustomBrandText",label:(0,A.defineMessage)({id:"admin.team.brandTextTitle",defaultMessage:"Custom Brand Text:"}),help_text:(0,A.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:ve.YM.MAX_CUSTOM_BRAND_TEXT_LENGTH,isDisabled:Qt(Jt(ga(_.SITE.CUSTOMIZATION)),ta("TeamSettings.EnableCustomBrand"))},{type:"bool",key:"SupportSettings.EnableAskCommunityLink",label:(0,A.defineMessage)({id:"admin.support.enableAskCommunityTitle",defaultMessage:"Enable Ask Community Link:"}),help_text:(0,A.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:Jt(ga(_.SITE.CUSTOMIZATION))},{type:"text",key:"SupportSettings.HelpLink",label:(0,A.defineMessage)({id:"admin.support.helpTitle",defaultMessage:"Help Link:"}),help_text:(0,A.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:Jt(ga(_.SITE.CUSTOMIZATION))},{type:"text",key:"SupportSettings.TermsOfServiceLink",label:(0,A.defineMessage)({id:"admin.support.termsTitle",defaultMessage:"Terms of Use Link:"}),help_text:(0,A.defineMessage)({id:"admin.support.termsDesc",defaultMessage:'Link to the terms under which users may use your online service. By default, this includes the "Mattermost Acceptable Use Policy" 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 Acceptable Use Policy for Mattermost software.'}),isDisabled:Jt(ga(_.SITE.CUSTOMIZATION)),isHidden:aa("ExperimentalSettings","RestrictSystemAdmin")},{type:"text",key:"SupportSettings.PrivacyPolicyLink",label:(0,A.defineMessage)({id:"admin.support.privacyTitle",defaultMessage:"Privacy Policy Link:"}),help_text:(0,A.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:Jt(ga(_.SITE.CUSTOMIZATION)),isHidden:aa("ExperimentalSettings","RestrictSystemAdmin")},{type:"text",key:"SupportSettings.AboutLink",label:(0,A.defineMessage)({id:"admin.support.aboutTitle",defaultMessage:"About Link:"}),help_text:(0,A.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:Jt(ga(_.SITE.CUSTOMIZATION)),isHidden:aa("ExperimentalSettings","RestrictSystemAdmin")},{type:"text",key:"SupportSettings.ForgotPasswordLink",label:(0,A.defineMessage)({id:"admin.support.forgotPasswordTitle",defaultMessage:"Forgot Password Custom Link:"}),help_text:(0,A.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:Jt(ga(_.SITE.CUSTOMIZATION)),isHidden:aa("ExperimentalSettings","RestrictSystemAdmin")},{type:"dropdown",key:"SupportSettings.ReportAProblemType",label:(0,A.defineMessage)({id:"admin.support.reportAProblemTypeTitle",defaultMessage:"Report a Problem:"}),help_text:(0,A.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,A.defineMessage)({id:"admin.support.problemType.defaultLink",defaultMessage:"Default link"}),value:"default"},{display_name:(0,A.defineMessage)({id:"admin.support.problemType.email",defaultMessage:"Email address"}),value:"email"},{display_name:(0,A.defineMessage)({id:"admin.support.problemType.customLink",defaultMessage:"Custom link"}),value:"link"},{display_name:(0,A.defineMessage)({id:"admin.support.problemType.hide",defaultMessage:"Hide link"}),value:"hidden"}]},{type:"text",key:"defaultLicensedReportAProblemLink",label:(0,A.defineMessage)({id:"admin.support.reportAProblemDefaultLinkTitle",defaultMessage:"Default Report a Problem Link:"}),help_text:(0,A.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:Kt(),isHidden:
1Qt(aa("ExperimentalSettings","RestrictSystemAdmin"),Jt(Xt("SupportSettings.ReportAProblemType",/default/)),Jt(ia))},{type:"text",key:"defaultUnlicensedReportAProblemLink",label:(0,A.defineMessage)({id:"admin.support.reportAProblemDefaultLinkTitle",defaultMessage:"Default Report a Problem Link:"}),help_text:(0,A.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:Kt(),isHidden:Qt(aa("ExperimentalSettings","RestrictSystemAdmin"),Jt(Xt("SupportSettings.ReportAProblemType",/default/)),ia)},{type:"text",key:"SupportSettings.ReportAProblemLink",label:(0,A.defineMessage)({id:"admin.support.reportAProblemLinkTitle",defaultMessage:"Custom Report a Problem Link:"}),help_text:(0,A.defineMessage)({id:"admin.support.reportAProblemLinkDescription",defaultMessage:"Enter the URL that users will be directed to when they choose âReport a Problemâ."}),isDisabled:Qt(Jt(ga(_.SITE.CUSTOMIZATION))),isHidden:Qt(aa("ExperimentalSettings","RestrictSystemAdmin"),Jt(Xt("SupportSettings.ReportAProblemType",/link/))),validate:e=>e?new Zt(!0,""):new Zt(!1,(0,A.defineMessage)({id:"admin.support.reportAProblemLinkError",defaultMessage:"Link is required"}))},{type:"text",key:"SupportSettings.ReportAProblemMail",label:(0,A.defineMessage)({id:"admin.support.reportAProblemEmailTitle",defaultMessage:"Report a Problem Email Address:"}),help_text:(0,A.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:Jt(ga(_.SITE.CUSTOMIZATION)),isHidden:Qt(aa("ExperimentalSettings","RestrictSystemAdmin"),Jt(Xt("SupportSettings.ReportAProblemType",/email/))),validate:e=>e?new Zt(!0,""):new Zt(!1,(0,A.defineMessage)({id:"admin.support.reportAProblemEmailError",defaultMessage:"Email is required"}))},{type:"bool",key:"SupportSettings.AllowDownloadLogs",label:(0,A.defineMessage)({id:"admin.support.problemAllowDownloadTitle",defaultMessage:"Allow Mobile App Log Downloads:"}),help_text:(0,A.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."}),isDisabled:Jt(ga(_.SITE.CUSTOMIZATION))},{type:"text",key:"NativeAppSettings.AppDownloadLink",label:(0,A.defineMessage)({id:"admin.customization.appDownloadLinkTitle",defaultMessage:"Mattermost Apps Download Page Link:"}),help_text:(0,A.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:Jt(ga(_.SITE.CUSTOMIZATION)),isHidden:aa("ExperimentalSettings","RestrictSystemAdmin")},{type:"text",key:"NativeAppSettings.AndroidAppDownloadLink",label:(0,A.defineMessage)({id:"admin.customization.androidAppDownloadLinkTitle",defaultMessage:"Android App Download Link:"}),help_text:(0,A.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:Jt(ga(_.SITE.CUSTOMIZATION)),isHidden:aa("ExperimentalSettings","RestrictSystemAdmin")},{type:"text",key:"NativeAppSettings.IosAppDownloadLink",label:(0,A.defineMessage)({id:"admin.customization.iosAppDownloadLinkTitle",defaultMessage:"iOS App Download Link:"}),help_text:(0,A.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:Jt(ga(_.SITE.CUSTOMIZATION)),isHidden:aa("ExperimentalSettings","RestrictSystemAdmin")},{type:"bool",key:"ServiceSettings.EnableDesktopLandingPage",label:(0,A.defineMessage)({id:"admin.customization.enableDesktopLandingPageTitle",defaultMessage:"Enable Desktop App Landing Page:"}),help_text:(0,A.defineMessage)({id:"admin.customization.enableDesktopLandingPageDesc",defaultMessage:"Whether or not to prompt a user to use the Desktop App when they first use Mattermost."}),isDisabled:Jt(ga(_.SITE.CUSTOMIZATION))},{type:"text",key:"ServiceSettings.MinimumDesktopAppVersion",label:(0,A.defineMessage)({id:"admin.customization.minimumDesktopAppVersionTitle",defaultMessage:"Minimum desktop app version:"}),placeholder:(0,A.defineMessage)({id:"admin.customization.minimumDesktopAppVersionPlaceholder",defaultMessage:"Input a version number (e.g. 5.0.0)"}),help_text:(0,A.defineMessage)({id:"admin.customization.minimumDesktopAppVersionDesc",defaultMessage:"Specify the minimum version of the Mattermost Desktop App required to connect to this server (e.g., 5.10.0). Users connecting with a Desktop App version below this minimum will be shown an update required page and will not be able to use the application until they update. Leave this field blank to allow all Desktop App versions to connect without restriction."}
1),isDisabled:Jt(ga(_.SITE.CUSTOMIZATION)),validate:e=>{const t="string"==typeof e?e.trim():e;return t&&!k().valid(t)?new Zt(!1,(0,A.defineMessage)({id:"admin.customization.minimumDesktopAppVersionError",defaultMessage:"Invalid version number. Must be a valid semantic version (e.g. 5.0.0)."})):new Zt(!0,"")}}]}},localization:{url:"site_config/localization",title:(0,A.defineMessage)({id:"admin.sidebar.localization",defaultMessage:"Localization"}),isHidden:Jt(ma(_.SITE.LOCALIZATION)),searchableStrings:xd.concat(wd),schema:{id:"LocalizationSettings",name:(0,A.defineMessage)({id:"admin.site.localization",defaultMessage:"Localization"}),settings:[{type:"custom",key:"LocalizationSettings",component:function(e){const[t,a]=(0,C.useState)(e.value),s=(0,C.useCallback)(((s,n)=>{const i={...t,[s]:n};a(i),e.onChange(e.id,i)}),[e,t]),n=(0,C.useMemo)((()=>{const e=[];for(const t of Object.values(Id))e.push({value:t.value,text:t.name,order:t.order});return e.sort(((e,t)=>e.order-t.order)),e}),[]);return C.createElement(Rd,null,C.createElement(j,null,C.createElement("hgroup",null,C.createElement("h1",{className:"localization-section-title"},C.createElement(A.FormattedMessage,Ld.langTitle)),C.createElement("h5",{className:"localization-section-description"},C.createElement(A.FormattedMessage,Ld.langDescription)))),C.createElement(W,null,C.createElement(we,{id:"DefaultServerLocale",label:C.createElement(A.FormattedMessage,Ld.serverLocaleTitle),values:n,helpText:C.createElement(A.FormattedMessage,Ld.serverLocaleDescription),value:t.DefaultServerLocale||n[0].value,disabled:e.disabled,setByEnv:e.setByEnv,onChange:s}),C.createElement(we,{id:"DefaultClientLocale",label:C.createElement(A.FormattedMessage,Ld.clientLocaleTitle),values:n,helpText:C.createElement(A.FormattedMessage,Ld.clientLocaleDescription),value:t.DefaultClientLocale||n[0].value,disabled:e.disabled,setByEnv:e.setByEnv,onChange:s}),C.createElement($e,{id:"AvailableLocales",label:C.createElement(A.FormattedMessage,Ld.availableLocalesTitle),values:n,helpText:C.createElement(A.FormattedMessage,Object.assign({},Ld.availableLocalesDescription,{values:{link:e=>C.createElement(Ge.A,{location:"admin_console",href:"https://translate.mattermost.com/"},e),strong:e=>C.createElement("strong",null,e)}})),selected:t.AvailableLocales.split(",")||[],disabled:e.disabled,setByEnv:e.setByEnv,onChange:(e,t)=>
1s(e,t.join(",")),noOptionsMessage:C.createElement(A.FormattedMessage,Ld.availableLocalesNoResults)}),C.createElement(F,{id:"EnableExperimentalLocales",label:C.createElement(A.FormattedMessage,Ld.enableExperimentalLocalesTitle),helpText:C.createElement(A.FormattedMessage,Ld.enableExperimentalLocalesDescription),value:t.EnableExperimentalLocales,disabled:e.disabled,setByEnv:e.setByEnv,onChange:s})))},isDisabled:Jt(ga(_.SITE.LOCALIZATION))},{type:"custom",key:"AutoTranslationSettings",component:function(e){const{available:t,reason:a}=(0,_d.A)(),[s,n]=(0,C.useState)((()=>{const t=e.value;return t.Provider?t:{...t,Provider:"libretranslate"}})),[i,r]=(0,C.useState)(String(s.TimeoutMs||5e3)),[l,o]=(0,C.useState)(""),d=(0,C.useCallback)(((t,a)=>{const i={...s,[t]:a};n(i),e.onChange(e.id,i)}),[e,s]),c=(0,C.useCallback)(((e,t)=>{r(t);const a=parseInt(t,10);if(""===t||isNaN(a)||a<=0)return o("Timeout must be a positive number"),void d(e,0);o(""),d(e,a)}),[d]),m=(0,C.useCallback)((()=>{const t=!s.Enable,a={...s,Enable:t};t&&!a.Provider&&(a.Provider="libretranslate"),n(a),e.onChange(e.id,a)}),[s,e]),u=(0,C.useMemo)((()=>{const e=[];for(const t of Object.values(Nd))e.push({value:t.value,text:t.name,order:t.order});return e.sort(((e,t)=>e.order-t.order)),e}),[]),g="agents"===s.Provider&&!t,p=(0,C.useMemo)((()=>C.createElement("div",{className:"auto-translation-provider-description"},C.createElement(A.FormattedMessage,{id:"admin.site.localization.autoTranslationProviderHint",defaultMessage:"Choose the provider you'd like to use for translation."}))),[]),h=(0,C.useMemo)((()=>C.createElement(A.FormattedMessage,{id:"admin.site.localization.autoTranslationProviderDescription",defaultMessage:"<strong>NOTE:</strong> If using external translation services (e.g., cloud-based LLMs), message data may be processed outside your environment.",values:{strong:e=>C.createElement("strong",null,e)}})),[]),f=C.createElement(A.FormattedMessage,{id:"admin.site.localization.auto_translation.on",defaultMessage:"On"}),E=C.createElement(A.FormattedMessage,{id:"admin.site.localization.auto_translation.off",defaultMessage:"Off"}),M=s.TargetLanguages||["en"];return C.createElement(Y,null,C.createElement(j,null,C.createElement("div",{className:"autotranslation-section-header"},C.createElement("hgroup",null,C.createElement("h1",{className:"localization-section-title"},C.createElement(A.FormattedMessage,kd.enableAutoTranslationTitle),C.createElement(Tt,{variant:"default"})),C.createElement("h5",{className:"localization-section-description"},C.createElement(A.FormattedMessage,kd.enableAutoTranslationDescription))),C.createElement("div",{className:"autotranslation-section-toggle"},C.createElement("span",{style:{marginRight:"12px"}},s.Enable?f:E),C.createElement(te.A,{size:"btn-md",disabled:e.disabled||e.setByEnv,toggled:s.Enable,id:"Enable",tabIndex:-1,toggleClassName:"btn-toggle-primary",onToggle:m})))),s.Enable&&C.createElement(W,{$compact:!0},C.createElement(Ad,null),C.createElement("div",{className:g?"autotranslation-provider-error":""},C.createElement(Ae,{label:C.createElement(A.FormattedMessage,{id:"admin.site.localization.autoTranslationProviderTitle",defaultMessage:"Translation provider"}),inputId:"Provider",setByEnv:e.setByEnv,helpText:h},C.createElement("div",{className:"auto-translation-provider-body"},p,C.createElement("select",{"data-testid":"Providerdropdown",className:"form-control",id:"Provider",value:s.Provider||"libretranslate",onChange:e=>d("Provider",e.target.value),disabled:e.disabled||e.setByEnv},C.createElement("option",{value:"libretranslate"},"LibreTranslate"),C.createElement("option",{value:"agents"},"Mattermost Agents")),g&&C.createElement("div",{className:"auto-translation-provider-error-message"},C.createElement("i",{className:"icon icon-alert-outline"}),C.createElement(A.FormattedMessage,{id:a||"admin.site.localization.autoTranslationAgentsError",defaultMessage:a?"Mattermost AI plugin is unavailable.":"Mattermost Agents plugin is either disabled or not configured properly."})),g&&C.createElement(T.Link,{to:"/admin_console/plugins/plugin_mattermost-ai",className:"agents-config-link"},C.createElement(A.FormattedMessage,{id:"admin.site.localization.goToAgentsConfig",defaultMessage:"Go to Agents plugin config"}),C.createElement("i",{className:"icon icon-chevron-right"}))))),"agents"===s.Provider&&!g&&C.createElement(Sd,Object.assign({},e,{onChange:d})),"libretranslate"===s.Provider&&C.createElement(Td,Object.assign({},e,{onChange:d})),C.createElement($e,{id:"TargetLanguages",label:C.createElement(A.FormattedMessage,{id:"admin.site.localization.targetLanguagesTitle",defaultMessage:"Languages allowed"}),values:u,helpText:C.createElement(A.FormattedMessage,{id:"admin.site.localization.targetLanguagesDescription",defaultMessage:"Choose which languages you'd like to make available for auto-translation."}),selected:M,onChange:d,disabled:e.disabled||e.setByEnv,setByEnv:e.setByEnv}),C.createElement(ht,{id:"TimeoutMs",label:C.createElement(A.FormattedMessage,{id:"admin.site.localization.autoTranslationTimeoutTitle",defaultMessage:"Translation timeout (ms):"}),placeholder:(0,A.defineMessage)({id:"admin.site.localization.autoTranslationTimeoutPlaceholder",defaultMessage:"e.g.: 5000"}),helpText:l?C.createElement("span",{className:"autotranslation-error error-message"},l):C.createElement(A.FormattedMessage,{id:"admin.site.localization.autoTranslationTimeoutDescription",defaultMessage:"Maximum time in milliseconds to wait for a translation response. Default is 5000ms (5 seconds)."}),type:"number",value:i,setByEnv:e.setByEnv,onChange:c,disabled:e.disabled}),C.createElement(F,{id:"RestrictDMAndGM",label:C.createElement(A.FormattedMessage,{id:"admin.site.localization.restrictDMAndGMTitle",defaultMessage:"Restrict auto-translation on direct messages and group messages"}),helpText:C.createElement(A.FormattedMessage,{id:"admin.site.localization.restrictDMAndGMDescription",defaultMessage:"By default, any member of a direct message or group message can enable auto-translation in those channels. If restricted, auto-translation will not be available in direct messages and group messages."}),value:s.RestrictDMAndGM,onChange:d,disabled:e.disabled||e.setByEnv,setByEnv:e.setByEnv})))}
1,isHidden:Qt(sa("FeatureFlags","AutoTranslation"),Jt(da(ve.gS.EnterpriseAdvanced)))},{type:"custom",key:"auto-translation-discovery",component:()=>C.createElement(Y,null,C.createElement(W,null,C.createElement("div",{className:"AutoTranslationFeatureDiscovery"},C.createElement(dl,{featureName:"auto-translation",showSkuTag:!0,minimumSKURequiredForFeature:ve.gS.EnterpriseAdvanced,title:(0,A.defineMessage)({id:"admin.auto_translation_feature_discovery.title",defaultMessage:"Remove language barriers with auto-translation"}),copy:(0,A.defineMessage)({id:"admin.auto_translation_feature_discovery.copy",defaultMessage:"Effortlessly collaborate across languages with auto-translation. Messages in shared channels are instantly translated based on each userâs language preferenceâno extra steps required.{br}<strong>Only available in Enterprise Advanced.</strong>",values:{strong:e=>C.createElement("strong",null,e),br:C.createElement("br",null)}}),learnMoreURL:"https://docs.mattermost.com",featureDiscoveryImage:C.createElement(El,{width:158,height:149})})))),isDisabled:Jt(ga(_.ABOUT.EDITION_AND_LICENSE)),isHidden:Qt(Kt(aa("FeatureFlags","AutoTranslation"),da(ve.gS.EnterpriseAdvanced)),sa("FeatureFlags","AutoTranslation"))}]}},users_and_teams:{url:"site_config/users_and_teams",title:(0,A.defineMessage)({id:"admin.sidebar.usersAndTeams",defaultMessage:"Users and Teams"}),isHidden:Jt(ma(_.SITE.USERS_AND_TEAMS)),schema:{id:"UserAndTeamsSettings",name:(0,A.defineMessage)({id:"admin.site.usersAndTeams",defaultMessage:"Users and Teams"}),settings:[{type:"number",key:"TeamSettings.MaxUsersPerTeam",label:(0,A.defineMessage)({id:"admin.team.maxUsersTitle",defaultMessage:"Max Users Per Team:"}),help_text:(0,A.defineMessage)({id:"admin.team.maxUsersDescription",defaultMessage:"Maximum total number of users per team, including both active and inactive users."}),placeholder:(0,A.defineMessage)({id:"admin.team.maxUsersExample",defaultMessage:'E.g.: "25"'}),isDisabled:Jt(ga(_.SITE.USERS_AND_TEAMS))},{type:"number",key:"TeamSettings.MaxChannelsPerTeam",label:(0,A.defineMessage)({id:"admin.team.maxChannelsTitle",defaultMessage:"Max Channels Per Team:"}),help_text:(0,A.defineMessage)({id:"admin.team.maxChannelsDescription",defaultMessage:"Maximum total number of channels per team, including both active and archived channels."}),placeholder:(0,A.defineMessage)({id:"admin.team.maxChannelsExample",defaultMessage:'E.g.: "100"'}),isDisabled:Jt(ga(_.SITE.USERS_AND_TEAMS))},{type:"bool",key:"TeamSettings.EnableJoinLeaveMessageByDefault",label:(0,A.defineMessage)({id:"admin.team.enableJoinLeaveMessageTitle",defaultMessage:"Enable join/leave messages by default:"}),help_text:(0,A.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:Jt(ga(_.SITE.USERS_AND_TEAMS))},{type:"dropdown",key:"TeamSettings.RestrictDirectMessage",label:(0,A.defineMessage)({id:"admin.team.restrictDirectMessage",defaultMessage:"Enable users to open Direct Message channels with:"}),help_text:(0,A.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,A.defineMessage)({id:"admin.team.restrict_direct_message_any",defaultMessage:"Any user on the Mattermost server"})},{value:"team",display_name:(0,A.defineMessage)({id:"admin.team.restrict_direct_message_team",defaultMessage:"Any member of the team"})}],isDisabled:Jt(ga(_.SITE.USERS_AND_TEAMS))},{type:"bool",key:"PrivacySettings.UseAnonymousURLs",label:(0,A.defineMessage)({id:"admin.privacy.useAnonymousURLsTitle",defaultMessage:"Use anonymous channel and team URLs:"}),help_text:(0,A.defineMessage)({id:"admin.privacy.useAnonymousURLsDescription",defaultMessage:"When true, newly created channels and team
1s use randomized, non-descriptive identifiers in their URLs instead of human-readable name slugs. This prevents channel and team names from being exposed when team, channel, or message URLs are shared. **Note:** Enabling this setting does not change the URLs of existing teams and channels. To update existing URLs to use anonymous identifiers, use the mmctl command line tool or update them manually."}),help_text_markdown:!0,isDisabled:Jt(ga(_.SITE.USERS_AND_TEAMS)),isHidden:Jt(da(ve.gS.EnterpriseAdvanced))},{type:"dropdown",key:"TeamSettings.TeammateNameDisplay",label:(0,A.defineMessage)({id:"admin.team.teammateNameDisplay",defaultMessage:"Teammate Name Display:"}),help_text:(0,A.defineMessage)({id:"admin.team.teammateNameDisplayDesc",defaultMessage:"Set how to display users' names in posts and the Direct Messages list."}),options:[{value:ve.YM.TEAMMATE_NAME_DISPLAY.SHOW_USERNAME,display_name:(0,A.defineMessage)({id:"admin.team.showUsername",defaultMessage:"Show username (default)"})},{value:ve.YM.TEAMMATE_NAME_DISPLAY.SHOW_NICKNAME_FULLNAME,display_name:(0,A.defineMessage)({id:"admin.team.showNickname",defaultMessage:"Show nickname if one exists, otherwise show first and last name"})},{value:ve.YM.TEAMMATE_NAME_DISPLAY.SHOW_FULLNAME,display_name:(0,A.defineMessage)({id:"admin.team.showFullname",defaultMessage:"Show first and last name"})}],isDisabled:Jt(ga(_.SITE.USERS_AND_TEAMS))},{type:"bool",key:"TeamSettings.LockTeammateNameDisplay",label:(0,A.defineMessage)({id:"admin.lockTeammateNameDisplay",defaultMessage:"Lock Teammate Name Display for all users: "}),help_text:(0,A.defineMessage)({id:"admin.lockTeammateNameDisplayHelpText",defaultMessage:"When true, disables users' ability to change settings under <strong>Settings > Display > Teammate Name Display</strong>."}),help_text_values:{strong:e=>C.createElement("strong",null,e)},isHidden:Jt(la("LockTeammateNameDisplay")),isDisabled:Jt(ga(_.SITE.USERS_AND_TEAMS))},{type:"bool",key:"PrivacySettings.ShowEmailAddress",label:(0,A.defineMessage)({id:"admin.privacy.showEmailTitle",defaultMessage:"Show Email Address:"}),help_text:(0,A.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:Jt(ga(_.SITE.USERS_AND_TEAMS))},{type:"bool",key:"PrivacySettings.ShowFullName",label:(0,A.defineMessage)({id:"admin.privacy.show
1FullNameTitle",defaultMessage:"Show Full Name:"}),help_text:(0,A.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:Jt(ga(_.SITE.USERS_AND_TEAMS))},{type:"bool",key:"TeamSettings.EnableCustomUserStatuses",label:(0,A.defineMessage)({id:"admin.team.customUserStatusesTitle",defaultMessage:"Enable Custom Statuses: "}),help_text:(0,A.defineMessage)({id:"admin.team.customUserStatusesDescription",defaultMessage:"When true, users can set a descriptive status message and status emoji visible to all users."}),isDisabled:Jt(ga(_.SITE.USERS_AND_TEAMS))},{type:"bool",key:"TeamSettings.EnableLastActiveTime",label:(0,A.defineMessage)({id:"admin.team.lastActiveTimeTitle",defaultMessage:"Enable last active time: "}),help_text:(0,A.defineMessage)({id:"admin.team.lastActiveTimeDescription",defaultMessage:"When enabled, last active time allows users to see when someone was last online."}),isDisabled:Jt(ga(_.SITE.USERS_AND_TEAMS))},{type:"bool",key:"ServiceSettings.EnableCustomGroups",label:(0,A.defineMessage)({id:"admin.team.customUserGroupsTitle",defaultMessage:"Enable Custom User Groups: "}),help_text:(0,A.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:Jt(ga(_.SITE.USERS_AND_TEAMS)),isHidden:Jt(Qt(da(ve.gS.Professional)))},{type:"text",key:"ServiceSettings.RefreshPostStatsRunTime",label:(0,A.defineMessage)({id:"admin.team.refreshPostStatsRunTimeTitle",defaultMessage:"User Statistics Update Time:"}),help_text:(0,A.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,A.defineMessage)({id:"admin.team.refreshPostStatsRunTimeExample",defaultMessage:'E.g.: "00:00"'}),isDisabled:Jt(ga(_.SITE.USERS_AND_TEAMS))},{type:"text",key:"ServiceSettings.DeleteAccountLink",label:(0,A.defineMessage)({id:"admin.team.deleteAccountTitle",defaultMessage:"Delete Account Link:"}),help_text:(0,A.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:Jt(ga(_.SITE.CUSTOMIZATION)),isHidden:la("Cloud")}]}},notifications:{url:"environment/notifications",title:(0,A.defineMessage)({id:"admin.sidebar.notifications",defaultMessage:"Notifications"}),isHidden:Jt(ma(_.SITE.NOTIFICATIONS)),schema:{id:"notifications",name:(0,A.defineMessage)({id:"admin.environment.notifications",defaultMessage:"Notifications"}),settings:[{type:"bool",key:"TeamSettings.EnableConfirmNotificationsToChannel",label:(0,A.defineMessage)({id:"admin.environment.notifications.enableConfirmNotificationsToChannel.label",defaultMessage:"Show @channel, @all, @here and group mention confirmation dialog:"}),help_text:(0,A.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:Jt(ga(_.SITE.NOTIFICATIONS))},{type:"bool",key:"EmailSettings.SendEmailNotifications",label:(0,A.defineMessage)({id:"admin.environment.notifications.enable.label",defaultMessage:"Enable Email Notifications:"}),help_text:(0,A.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 fal
1se to skip email setup for faster development."}),isDisabled:Jt(ga(_.SITE.NOTIFICATIONS)),isHidden:la("Cloud")},{type:"bool",key:"EmailSettings.EnablePreviewModeBanner",label:(0,A.defineMessage)({id:"admin.environment.notifications.enablePreviewModeBanner.label",defaultMessage:"Enable Preview Mode Banner:"}),help_text:(0,A.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:Qt(Jt(ga(_.SITE.NOTIFICATIONS)),ea("EmailSettings.SendEmailNotifications")),isHidden:la("Cloud")},{type:"bool",key:"EmailSettings.EnableEmailBatching",label:(0,A.defineMessage)({id:"admin.environment.notifications.enableEmailBatching.label",defaultMessage:"Enable Email Batching:"}),help_text:(0,A.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:Qt(Jt(ga(_.SITE.NOTIFICATIONS)),ta("EmailSettings.SendEmailNotifications"),aa("ClusterSettings","Enable"),sa("ServiceSettings","SiteURL")),isHidden:la("Cloud")},{type:"dropdown",key:"EmailSettings.EmailNotificationContentsType",label:(0,A.defineMessage)({id:"admin.environment.notifications.contents.label",defaultMessage:"Email Notification Contents:"}),help_text:(0,A.defineMessage)({id:"admin.environment.notifications.contents.help",defaultMessage:"**Send full message contents** - Sender name and channel are included in email notifications.\n **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,A.defineMessage)({id:"admin.environment.notifications.contents.full",defaultMessage:"Send full message contents"})},{value:"generic",display_name:(0,A.defineMessage)({id:"admin.environment.notifications.contents.generic",defaultMessage:"Send generic description with only sender name"})}],isHidden:Jt(la("EmailNotificationContents")),isDisabled:Jt(ga(_.SITE.NOTIFICATIONS))},{type:"text",key:"EmailSettings.FeedbackName",label:(0,A.defineMessage)({id:"admin.environment.notifications.notificationDisplay.label",defaultMessage:"Notification Display Name:"}),placeholder:(0,A.defineMessage)({id:"admin.environment.notifications.notificationDisplay.placeholder",defaultMessage:'Ex: "Mattermost Notification", "System", "No-Reply"'}),help_text:(0,A.defineMessage)({id:"admin.environment.notifications.notificationDisplay.help",defaultMessage:"Display name on email account used when sending notification emails from Mattermost."}),isDisabled:Qt(Jt(ga(_.SITE.NOTIFICATIONS)),ta("EmailSettings.SendEmailNotifications")),validate:ha((0,A.defineMessage)({id:"admin.environment.notifications.notificationDisplay.required",defaultMessage:'"Notification Display Name" is required'}))},{type:"text",key:"EmailSettings.FeedbackEmail",label:(0,A.defineMessage)({id:"admin.environment.notifications.feedbackEmail.label",defaultMessage:"Notification From Address:"}),placeholder:(0,A.defineMessage)({id:"admin.environment.notifications.feedbackEmail.placeholder",defaultMessage:'Ex: "[email protected]", "[email protected]"'}),help_text:(0,A.defineMessage)({id:"admin.environment.notifications.feedbackEmail.help",defaultMessage:"Email address displayed on email account used when sending notification emails from Mattermost."}),isHidden:aa("ExperimentalSettings","RestrictSystemAdmin"),isDisabled:Qt(Jt(ga(_.SITE.NOTIFICATIONS)),ta("EmailSettings.SendEmailNotifications")),validate:ha((0,A.defineMessage)({id:"admin.environment.notifications.feedbackEmail.required",defaultMessage:'"Notification From Address" is required'}))},{type:"text",key:"SupportSettings.SupportEmail",label:(0,A.defineMessage)({id:"admin.environment.notifications.supportEmail.label",defaultMessage:"Support Email Address:"}),placeholder:(0,A.defineMessage)({id:"admin.environment.notifications.supportAddress.placeholder",defaultMessage:'Ex: "supp
1[email protected]", "[email protected]"'}),help_text:(0,A.defineMessage)({id:"admin.environment.notifications.supportEmail.help",defaultMessage:"Email address displayed on support emails."}),isDisabled:Jt(ga(_.SITE.CUSTOMIZATION)),validate:ha((0,A.defineMessage)({id:"admin.environment.notifications.supportEmail.required",defaultMessage:'"Support Email Address" is required'}))},{type:"text",key:"EmailSettings.ReplyToAddress",label:(0,A.defineMessage)({id:"admin.environment.notifications.replyToAddress.label",defaultMessage:"Notification Reply-To Address:"}),placeholder:(0,A.defineMessage)({id:"admin.environment.notifications.replyToAddress.placeholder",defaultMessage:'Ex: "[email protected]", "[email protected]"'}),help_text:(0,A.defineMessage)({id:"admin.environment.notifications.replyToAddress.help",defaultMessage:"Email address used in the Reply-To header when sending notification emails from Mattermost."}),isDisabled:Qt(Jt(ga(_.SITE.NOTIFICATIONS)),ta("EmailSettings.SendEmailNotifications"))},{type:"text",key:"EmailSettings.FeedbackOrganization",label:(0,A.defineMessage)({id:"admin.environment.notifications.feedbackOrganization.label",defaultMessage:"Notification Footer Mailing Address:"}),placeholder:(0,A.defineMessage)({id:"admin.environment.notifications.feedbackOrganization.placeholder",defaultMessage:'Ex: "© ABC Corporation, 565 Knight Way, Palo Alto, California, 94305, USA"'}),help_text:(0,A.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:Qt(Jt(ga(_.SITE.NOTIFICATIONS)),ta("EmailSettings.SendEmailNotifications"))},{type:"dropdown",key:"EmailSettings.PushNotificationContents",label:(0,A.defineMessage)({id:"admin.environment.notifications.pushContents.label",defaultMessage:"Push Notification Contents:"}),help_text:(0,A.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.\n **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.\n **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,A.defineMessage)({id:"admin.environment.notifications.pushContents.genericNoChannel",defaultMessage:"Generic description with only sender name"})},{value:"generic",display_name:(0,A.defineMessage)({id:"admin.environment.notifications.pushContents.generic",defaultMessage:"Generic description with sender and channel names"})},{value:"full",display_name:(0,A.defineMessage)({id:"admin.environment.notifications.pushContents.full",defaultMessage:"Full message content sent in the notification payload"})}],isHidden:la("IDLoadedPushNotifications"),isDisabled:Jt(ga(_.SITE.NOTIFICATIONS))},{type:"dropdown",key:"EmailSettings.PushNotificationContents",label:(0,A.defineMessage)({id:"admin.environment.notifications.pushContents.label",defaultMessage:"Push Notification Contents:"}),help_text:(0,A.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.\n **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.\n **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.\n**Full message content fetched from the server on receipt** - The notification payload relayed through APNS or FCM contains
1no 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,A.defineMessage)({id:"admin.environment.notifications.pushContents.genericNoChannel",defaultMessage:"Generic description with only sender name"})},{value:"generic",display_name:(0,A.defineMessage)({id:"admin.environment.notifications.pushContents.generic",defaultMessage:"Generic description with sender and channel names"})},{value:"full",display_name:(0,A.defineMessage)({id:"admin.environment.notifications.pushContents.full",defaultMessage:"Full message content sent in the notification payload"})},{value:"id_loaded",display_name:(0,A.defineMessage)({id:"admin.environment.notifications.pushContents.idLoaded",defaultMessage:"Full message content fetched from the server on receipt"})}],isHidden:Jt(la("IDLoadedPushNotifications")),isDisabled:Jt(ga(_.SITE.NOTIFICATIONS))},{type:"bool",key:"MetricsSettings.EnableNotificationMetrics",label:(0,A.defineMessage)({id:"admin.metrics.enableNotificationMetricsTitle",defaultMessage:"Enable Notification Monitoring:"}),help_text:(0,A.defineMessage)({id:"admin.metrics.enableNotificationMetricsDescription",defaultMessage:"When true, Mattermost will enable notification data collection for web and Desktop App users."}),isDisabled:Qt(sa("MetricsSettings","Enable")),isHidden:sa("FeatureFlags","NotificationMonitoring")}]}},announcement_banner:{url:"site_config/announcement_banner",title:(0,A.defineMessage)({id:"admin.sidebar.announcement",defaultMessage:"System-wide Notifications"}
1),isHidden:Qt(Jt(la("Announcement")),Jt(ma(_.SITE.ANNOUNCEMENT_BANNER))),schema:{id:"AnnouncementSettings",name:(0,A.defineMessage)({id:"admin.site.announcementBanner",defaultMessage:"System-wide Notifications"}),settings:[{type:"bool",key:"AnnouncementSettings.EnableBanner",label:(0,A.defineMessage)({id:"admin.customization.announcement.enableBannerTitle",defaultMessage:"Enable System-wide Notifications:"}),help_text:(0,A.defineMessage)({id:"admin.customization.announcement.enableBannerDesc",defaultMessage:"Enable an announcement banner across all teams."}),isDisabled:Jt(ga(_.SITE.ANNOUNCEMENT_BANNER))},{type:"text",key:"AnnouncementSettings.BannerText",label:(0,A.defineMessage)({id:"admin.customization.announcement.bannerTextTitle",defaultMessage:"Banner Text:"}),help_text:(0,A.defineMessage)({id:"admin.customization.announcement.bannerTextDesc",defaultMessage:"Text that will appear in the announcement banner."}),isDisabled:Qt(Jt(ga(_.SITE.ANNOUNCEMENT_BANNER)),ta("AnnouncementSettings.EnableBanner"))},{type:"color",key:"AnnouncementSettings.BannerColor",label:(0,A.defineMessage)({id:"admin.customization.announcement.bannerColorTitle",defaultMessage:"Banner Color:"}),isDisabled:Qt(Jt(ga(_.SITE.ANNOUNCEMENT_BANNER)),ta("AnnouncementSettings.EnableBanner"))},{type:"color",key:"AnnouncementSettings.BannerTextColor",label:(0,A.defineMessage)({id:"admin.customization.announcement.bannerTextColorTitle",defaultMessage:"Banner Text Color:"}),isDisabled:Qt(Jt(ga(_.SITE.ANNOUNCEMENT_BANNER)),ta("AnnouncementSettings.EnableBanner"))},{type:"bool",key:"AnnouncementSettings.AllowBannerDismissal",label:(0,A.defineMessage)({id:"admin.customization.announcement.allowBannerDismissalTitle",defaultMessage:"Allow Banner Dismissal:"}),help_text:(0,A.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:Qt(Jt(ga(_.SITE.ANNOUNCEMENT_BANNER)),ta("AnnouncementSettings.EnableBanner"))}]},restrictedIndicator:Ma()},announcement_banner_feature_discovery:{url:"site_config/announcement_banner",isDiscovery:!0,title:(0,A.defineMessage)({id:"admin.sidebar.announcement",defaultMessage:"System-wide Notifications"}
1),isHidden:Qt(la("Announcement")),schema:{id:"AnnouncementSettings",name:(0,A.defineMessage)({id:"admin.site.announcementBanner",defaultMessage:"System-wide Notifications"}),settings:[{type:"custom",component:()=>C.createElement(dl,{featureName:"announcement_banner",minimumSKURequiredForFeature:ve.gS.Professional,title:(0,A.defineMessage)({id:"admin.announcement_banner_feature_discovery.title",defaultMessage:"Create custom announcement banners with Mattermost Professional"}),copy:(0,A.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:C.createElement(Qr,{width:294,height:170})}),key:"AnnouncementBannerFeatureDiscovery",isDisabled:Jt(ga(_.ABOUT.EDITION_AND_LICENSE))}]},restrictedIndicator:Ma(!0)},emoji:{url:"site_config/emoji",title:(0,A.defineMessage)({id:"admin.sidebar.emoji",defaultMessage:"Emoji"}),isHidden:Jt(ma(_.SITE.EMOJI)),schema:{id:"EmojiSettings",name:(0,A.defineMessage)({id:"admin.site.emoji",defaultMessage:"Emoji"}),settings:[{type:"bool",key:"ServiceSettings.EnableEmojiPicker",label:(0,A.defineMessage)({id:"admin.customization.enableEmojiPickerTitle",defaultMessage:"Enable Emoji Picker:"}),help_text:(0,A.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:Jt(ga(_.SITE.EMOJI))},{type:"bool",key:"ServiceSettings.EnableCustomEmoji",label:(0,A.defineMessage)({id:"admin.customization.enableCustomEmojiTitle",defaultMessage:"Enable Custom Emoji:"}),help_text:(0,A.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:Jt(ga(_.SITE.EMOJI))}]}},posts:{url:"site_config/posts",title:(0,A.defineMessage)({id:"admin.sidebar.posts",defaultMessage:"Posts"}),isHidden:Jt(ma(_.SITE.POSTS)),schema:{id:"PostSettings",name:(0,A.defineMessage)({id:"admin.site.posts",defaultMessage:"Posts"}),sections:[{key:"PostSettings.Threads",title:(0,A.defineMessage)({id:"admin.posts.sections.threads.title",defaultMessage:"Threads"}),description:(0,A.defineMessage)({id:"admin.posts.sections.threads.description",defaultMessage:"Configure threaded discussions and auto-follow defaults."}),settings:[{type:"bool",key:"ServiceSettings.ThreadAutoFollow",label:(0,A.defineMessage)({id:"admin.experimental.threadAutoFollow.title",defaultMessage:"Automatically Follow Threads"}),help_text:(0,A.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:Jt(ga(_.EXPERIMENTAL.FEATURES)),isHidden:la("Cloud")},{type:"dropdown",key:"ServiceSettings.CollapsedThreads",label:(0,A.defineMessage)({id:"admin.experimental.collapsedThreads.title",defaultMessage:"Threaded Discussions"}),help_text:(0,A.defineMessage)({id:"admin.experimental.collapsedThreads.desc",defaultMessage:"When enabled (default off), users have the option to enable Threaded Discussions in Account Settings. When enabled (default on), users see Threaded Discussions by default and have the option to disable it in Account Settings. When always on, users are required to use Threaded Discussions and cannot disable it."}),help_text_values:{linkKnownIssues:e=>C.createElement(Ge.A,{location:"admin_console",href:"https://support.mattermost.com/hc/en-us/articles/4413183568276"},e),linkCommunityChannel:e=>C.createElement(Ge.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,A.defineMessage)({id:"admin.experimental.collapsedThreads.off",defaultMessage:"Disabled"})},{value:"default_off",display_name:(0,A.defineMessage)({id:"admin.experimental.collapsedThreads.default_off",defaultMessage:"Enabled (Default Off)"})},{value:"default_on",display_name:(0,A.defineMessage)({id:"admin.experimental.collapsedThreads.default_on",defaultMessage:"Enabled (Default On)"})},{value:"always_on",display_name:(0,A.defineMessage)({id:"admin.experimental.collapsedThreads.always_on",defaultMessage:"Always On"})}],isDisabled:Jt(ga(_.EXPERIMENTAL.FEATURES))}]},{key:"PostSettings.Drafts",title:(0,A.defineMessage)({id:"admin.posts.sections.drafts.title",defaultMessage:"Drafts and Scheduled Posts"}),description:(0,A.defineMessage)({id:"admin.posts.sections.drafts.description",defaultMessage:"Control draft syncing and scheduled sending."}),settings:[{type:"bool",key:"ServiceSettings.AllowSyncedDrafts",label:(0,A.defineMessage)({id:"admin.customization.allowSyncedDrafts",defaultMessage:"Enable server syncing of message drafts:"}),help_text:(0,A.defineMessage)({id:"admin.customization.allowSyncedDraftsDesc",defaultMessage:"When enabled, users message drafts will sync
1with 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:"bool",key:"ServiceSettings.ScheduledPosts",label:(0,A.defineMessage)({id:"admin.posts.scheduledPosts.title",defaultMessage:"Scheduled Posts"}),help_text:(0,A.defineMessage)({id:"admin.posts.scheduledPosts.description",defaultMessage:"When enabled, users can schedule and send messages in the future."}),help_text_markdown:!1,isDisabled:Jt(ga(_.SITE.POSTS)),isHidden:Jt(ia)}]},{key:"PostSettings.Priority",title:(0,A.defineMessage)({id:"admin.posts.sections.priority.title",defaultMessage:"Priority & Urgent Notifications"}),description:(0,A.defineMessage)({id:"admin.posts.sections.priority.description",defaultMessage:"Set message priority and repeating notifications for urgent delivery."}),settings:[{type:"bool",key:"ServiceSettings.PostPriority",label:(0,A.defineMessage)({id:"admin.posts.postPriority.title",defaultMessage:"Message Priority"}),help_text:(0,A.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=>C.createElement(Ge.A,{location:"admin_console",href:"https://mattermost.com/pl/message-priority/"},e)},help_text_markdown:!1,isDisabled:Jt(ga(_.SITE.POSTS))},{type:"bool",key:"ServiceSettings.AllowPersistentNotifications",label:(0,A.defineMessage)({id:"admin.posts.persistentNotifications.title",defaultMessage:"Persistent Notifications"}),help_text:(0,A.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=>C.createElement(Ge.A,{location:"admin_console",href:"https://mattermost.com/pl/message-priority/"},e)},help_text_markdown:!1,isDisabled:Jt(ga(_.SITE.POSTS)),isHidden:sa("ServiceSettings","PostPriority")},{type:"number",key:"ServiceSettings.PersistentNotificationMaxRecipients",label:(0,A.defineMessage)({id:"admin.posts.persistentNotificationsMaxRecipients.title",defaultMessage:"Maximum number of recipients for persistent notifications"}),help_text:(0,A.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=>C.createElement(Ge.A,{location:"admin_console",href:"https://mattermost.com/pl/message-priority/"},e)},help_text_markdown:!1,isDisabled:Jt(ga(_.SITE.POSTS)),isHidden:Qt(sa("ServiceSettings","PostPriority"),sa("ServiceSettings","AllowPersistentNotifications"))},{type:"number",key:"ServiceSettings.PersistentNotificationIntervalMinutes",label:(0,A.defineMessage)({id:"admin.posts.persistentNotificationsInterval.title",defaultMessage:"Frequency of persistent notifications"}),help_text:(0,A.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=>C.createElement(Ge.A,{location:"admin_console",href:"https://mattermost.com/pl/message-priority/"},e)},help_text_markdown:!1,isDisabled:Jt(ga(_.SITE.POSTS)),isHidden:Qt(sa("ServiceSettings","PostPriority"),sa("ServiceSettings","AllowPersistentNotifications")),validate:fa(2,(0,A.defineMessage)({id:"admin.posts.persistentNotificationsInterval.minValue",defaultMessage:"Frequency must be at least two minutes"}))},{type:"number",key:"ServiceSettings.PersistentNotificationMaxCount",label:(0,A.defineMessage)({id:"admin.posts.persistentNotificationsMaxCount.title",defaultMessage:"Total number of persistent notification per post"}),help_text:(0,A.defineMessage)({id:"admin.posts.persistentNotificationsMaxCount.de
1sc",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=>C.createElement(Ge.A,{location:"admin_console",href:"https://mattermost.com/pl/message-priority/"},e)},help_text_markdown:!1,isDisabled:Jt(ga(_.SITE.POSTS)),isHidden:Qt(sa("ServiceSettings","PostPriority"),sa("ServiceSettings","AllowPersistentNotifications"))},{type:"bool",key:"ServiceSettings.AllowPersistentNotificationsForGuests",label:(0,A.defineMessage)({id:"admin.posts.persistentNotificationsGuests.title",defaultMessage:"Allow guests to send persistent notifications"}),help_text:(0,A.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=>C.createElement(Ge.A,{location:"admin_console",href:"https://mattermost.com/pl/message-priority/"},e)},help_text_markdown:!1,isDisabled:Jt(ga(_.SITE.POSTS)),isHidden:Qt(sa("GuestAccountsSettings","Enable"),sa("ServiceSettings","PostPriority"),sa("ServiceSettings","AllowPersistentNotifications"))}]},{key:"PostSettings.BurnOnRead",title:(0,A.defineMessage)({id:"admin.posts.sections.burnOnRead.title",defaultMessage:"Burn-on-Read Messages"}),description:(0,A.defineMessage)({id:"admin.posts.sections.burnOnRead.description",defaultMessage:"Controls for messages that delete automatically a certain time after being read."}),license_sku:ve.gS.EnterpriseAdvanced,component:bd,componentProps:{requiredSku:ve.gS.EnterpriseAdvanced,featureDiscoveryConfig:{featureName:"burn_on_read",title:(0,A.defineMessage)({id:"admin.burn_on_read_feature_discovery.title",defaultMessage:"Send burn-on-read messages that are automatically deleted after being read"}),description:(0,A.defineMessage)({id:"admin.burn_on_read_feature_discovery.description",defaultMessage:"With Mattermost Enterprise Advanced, users can send transient messages that are automatically deleted a fixed time after they are read by a recipient."}),learnMoreURL:"https://docs.mattermost.com/end-user-guide/collaborate/send-messages.html#send-burn-on-read-messages",svgImage:e=>C.createElement("svg",{width:e.width?e.width.toString():"270",height:e.height?e.height.toString():"164",viewBox:"0 0 270 164",fill:"none",xmlns:"http://www.w3.org/2000/svg"},C.createElement("rect",{width:"76.5333",height:"63.1704",rx:"3.66373",transform:"matrix(1 0 0 -1 23.3926 119.052)",fill:"var(--center-channel-color)",fillOpacity:"0.16"}),C.createElement("rect",{width:"76.5333",height:"63.1704",rx:"3.66373",transform:"matrix(1 0 0 -1 169.17 154.281)",fill:"var(--center-channel-color)",fillOpacity:"0.16"}),C.createElement("path",{d:"M14.8887 29.5156L14.8887 46.1631L203.185 46.1631",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeWidth:"1.21481",strokeLinecap:"round"}),C.createElement("ellipse",{cx:"2.42963",cy:"2.42963",rx:"2.42963",ry:"2.42963",transform:"matrix(1 8.74228e-08 8.74228e-08 -1 12.459 29.1553)",fill:"var(--center-channel-color)",fillOpacity:"0.48"}),C.createElement("path",{d:"M257.549 138.771L257.549 109.253L228.577 109.253",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeWidth:"1.21481",strokeLinecap:"round"}),C.createElement("circle",{cx:"257.549",cy:"141.503",r:"2.73315",transform:"rotate(180 257.549 141.503)",fill:"var(--center-channel-color)",fillOpacity:"0.48"}),C.createElement("rect",{x:"46.085",y:"20.103",width:"181.46",height:"118.779",rx:"6.58104",fill:"var(--center-channel-bg)",stroke:"var(--center-channel-color)",strokeWidth:"6.58104"}),C.createElement("g",{clipPath:"url(#clip0_4868_132666)"},C.createElement("rect",{width:"167.269",height:"103.86",transform:"translate(53.1797 27.7461)",fill:"var(--center-channel-bg)"}),C.createElement("rect",{x:"53.7627",y:"27.9404",width:"54.6667",height:"103.259",fill:"var(--indigo-400)",fillOpacity:"0.16"}),C.createElement("path",{d:"M72.3872 36.2832L92.6616 36.2832",stroke:"var(--center-c
1hannel-color)",strokeOpacity:"0.32",strokeWidth:"1.21481",strokeLinecap:"round"}),C.createElement("path",{d:"M72.3872 39.4834L84.125 39.4834",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeWidth:"1.21481",strokeLinecap:"round"}),C.createElement("path",{d:"M115.07 36.8174H140.68",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeWidth:"1.21481",strokeLinecap:"round"}),C.createElement("path",{d:"M58.5151 50.1553H74.5213",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeWidth:"1.21481",strokeLinecap:"round"}),C.createElement("circle",{cx:"62.3022",cy:"36.8696",r:"5.28167",fill:"var(--center-channel-color)",fillOpacity:"0.32"}),C.createElement("circle",{cx:"59.8364",cy:"55.8828",r:"2.42963",fill:"var(--center-channel-color)",fillOpacity:"0.32"}),C.createElement("path",{d:"M67.0518 55.8828H96.9299",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeWidth:"1.21481",strokeLinecap:"round"}),C.createElement("circle",{cx:"126.651",cy:"53.453",r:"6.07407",fill:"var(--center-channel-color)",fillOpacity:"0.32"}),C.createElement("path",{d:"M136.37 53.4531H200.823",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeWidth:"1.21481",strokeLinecap:"round"}),C.createElement("path",{d:"M136.37 58.3125H200.823",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeWidth:"1.21481",strokeLinecap:"round"}),C.createElement("path",{d:"M136.37 48.5938H152.376",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeWidth:"1.21481",strokeLinecap:"round"}),C.createElement("circle",{cx:"126.651",cy:"76.5331",r:"6.07407",fill:"var(--center-channel-color)",fillOpacity:"0.32"}),C.createElement("path",{d:"M136.37 76.5332H200.823",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeWidth:"1.21481",strokeLinecap:"round"}),C.createElement("path",{d:"M136.37 81.3926H200.823",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeWidth:"1.21481",strokeLinecap:"round"}),C.createElement("path",{d:"M136.37 71.6738H152.376",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeWidth:"1.21481",strokeLinecap:"round"}),C.createElement("circle",{cx:"126.651",cy:"99.6151",r:"6.07407",fill:"var(--center-channel-color)",fillOpacity:"0.32"}),C.createElement("path",{d:"M136.37 99.6152H200.823",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeWidth:"1.21481",strokeLinecap:"round"}),C.createElement("path",{d:"M136.37 104.474H200.823",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeWidth:"1.21481",strokeLinecap:"round"}),C.createElement("path",{d:"M136.37 94.7559H152.376",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeWidth:"1.21481",strokeLinecap:"round"}),C.createElement("circle",{cx:"59.8364",cy:"64.3867",r:"2.42963",fill:"var(--center-channel-color)",fillOpacity:"0.32"}),C.createElement("path",{d:"M67.0518 64.3867H90.5274",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeWidth:"1.21481",strokeLinecap:"round"}),C.createElement("circle",{cx:"59.8364",cy:"74.1035",r:"2.42963",fill:"var(--center-channel-color)",fillOpacity:"0.32"}),C.createElement("path",{d:"M67.0518 74.1035H100.131",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeWidth:"1.21481",strokeLinecap:"round"}),C.createElement("circle",{cx:"59.8364",cy:"82.6074",r:"2.42963",fill:"var(--center-channel-color)",fillOpacity:"0.32"}),C.createElement("path",{d:"M67.0518 82.6074H96.9299",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeWidth:"1.21481",strokeLinecap:"round"}),C.createElement("circle",{cx:"59.8364",cy:"91.1122",r:"2.42963",fill:"var(--center-channel-color)",fillOpacity:"0.32"}),C.createElement("path",{d:"M67.0518 91.1123H90.5274",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeWidth:"1.21481",strokeLinecap:"round"}),C.createElement("circle",{cx:"59.8364",cy:"99.6161",r:"2.42963",fill:"var(--center-channel-color)",fillOpacity:"0.32"}),C.createElement("path",{d:"M67.0518 99.6162H100.131",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeWidth:"1.21481",strokeLinecap:"round"})),C.createElement("path",{opacity:"0.16",d:"M215.941 72.889C235.062 72.889 250.563 57.3881 250.563 38.2668C250.563 19.1454 235.
1062 3.64453 215.941 3.64453C196.82 3.64453 181.319 19.1454 181.319 38.2668C181.319 57.3881 196.82 72.889 215.941 72.889Z",fill:"var(--center-channel-color)"}),C.createElement("path",{d:"M215.941 69.2444C235.062 69.2444 250.563 53.7435 250.563 34.6222C250.563 15.5009 235.062 0 215.941 0C196.82 0 181.319 15.5009 181.319 34.6222C181.319 53.7435 196.82 69.2444 215.941 69.2444Z",fill:"var(--indigo-400)"}),C.createElement("rect",{x:"202.821",y:"28.1834",width:"26.24",height:"21.9881",rx:"2.55111",stroke:"var(--center-channel-bg)",strokeWidth:"1.70074"}),C.createElement("path",{d:"M207.21 29.1559V23.0818C207.21 18.3854 211.017 14.5781 215.714 14.5781H216.169C220.866 14.5781 224.673 18.3854 224.673 23.0818V29.1559",stroke:"var(--center-channel-bg)",strokeWidth:"1.70074"}),C.createElement("defs",null,C.createElement("clipPath",{id:"clip0_4868_132666"},C.createElement("rect",{width:"167.269",height:"103.86",fill:"white",transform:"translate(53.1797 27.7461)"}))))}},settings:[{type:"bool",key:"ServiceSettings.EnableBurnOnRead",label:(0,A.defineMessage)({id:"admin.posts.burnOnRead.enable.title",defaultMessage:"Enable Burn-on-Read Messages"}),help_text:(0,A.defineMessage)({id:"admin.posts.burnOnRead.enable.desc",defaultMessage:"When enabled, users are allowed to send burn-on-read messages in channels, direct messages, and group messages. If disabled, the option to send a Burn-on-Read message will not be available."}),help_text_markdown:!1,isDisabled:Jt(ga(_.SITE.POSTS))},{type:"dropdown",key:"ServiceSettings.BurnOnReadDurationSeconds",label:(0,A.defineMessage)({id:"admin.posts.burnOnRead.duration.title",defaultMessage:"Burn-on-Read Duration"}),help_text:(0,A.defineMessage)({id:"admin.posts.burnOnRead.duration.desc",defaultMessage:"Sets the countdown duration for Burn-on-Read messages once they are revealed. After a recipient clicks to reveal a BoR message, the message will delete itself for that user after the specified duration. This setting applies to all Burn-on-Read messages."}),help_text_markdown:!1,options:[{value:String(o.AF.BURN_ON_READ.DURATION_1_MINUTE),display_name:(0,A.defineMessage)({id:"admin.posts.burnOnRead.duration.1min",defaultMessage:"1 minute"})},{value:String(o.AF.BURN_ON_READ.DURATION_5_MINUTES),display_name:(0,A.defineMessage)({id:"admin.posts.burnOnRead.duration.5min",defaultMessage:"5 minutes"})},{value:String(o.AF.BURN_ON_READ.DURATION_10_MINUTES),display_name:(0,A.defineMessage)({id:"admin.posts.burnOnRead.duration.10min",defaultMessage:"10 minutes"})},{value:String(o.AF.BURN_ON_READ.DURATION_30_MINUTES),display_name:(0,A.defineMessage)({id:"admin.posts.burnOnRead.duration.30min",defaultMessage:"30 minutes"})},{value:String(o.AF.BURN_ON_READ.DURATION_1_HOUR),display_name:(0,A.defineMessage)({id:"admin.posts.burnOnRead.duration.1hour",defaultMessage:"1 hour"})},{value:String(o.AF.BURN_ON_READ.DURATION_8_HOURS),display_name:(0,A.defineMessage)({id:"admin.posts.burnOnRead.duration.8hours",defaultMessage:"8 hours"})}],onConfigLoad:e=>String(e??o.AF.BURN_ON_READ.DURATION_DEFAULT),onConfigSave:e=>e?parseInt(e,10):o.AF.BURN_ON_READ.DURATION_DEFAULT,isDisabled:Qt(Jt(ga(_.SITE.POSTS)),ta("ServiceSettings.EnableBurnOnRead"))},{type:"dropdown",key:"ServiceSettings.BurnOnReadMaximumTimeToLiveSeconds",label:(0,A.defineMessage)({id:"admin.posts.burnOnRead.maximumTTL.title",defaultMessage:"Maximum time to live for burn-on-read messages"}),help_text:(0,A.defineMessage)({id:"admin.posts.burnOnRead.maximumTTL.desc",defaultMessage:"Sets the maximum duration that Burn-on-Read messages will be allowed to exist for after they are sent. The message will be deleted after the specified time after it is sent, even if it is not read by all recipients by then."}),help_text_markdown:!1,options:[{value:String(o.AF.BURN_ON_READ.MAX_TTL_2_MINUTES),display_name:(0,A.defineMessage)({id:"admin.posts.burnOnRead.maximumTTL.2minutes",defaultMessage:"2 minutes"})},{value:String(o.AF.BURN_ON_READ.MAX_TTL_5_MINUTES),display_name:(0,A.defineMessage)({id:"admin.posts.burnOnRead.maximumTTL.5minutes",defaultMessage:"5 minutes"})},{value:String(o.AF.BURN_ON_READ.MAX_TTL_1_DAY),display_name:(0,A.defineMessage)({id:"admin.posts.burnOnRead.maximumTTL.1day",defaultMessage:"1 day"})},{value:String(o.AF.BURN_ON_READ.MAX_TTL_3_DAYS),display_name:(0,A.defineMessage)({id:"admin.posts.burnOnRead.maximumTTL.3days",defaultMessage:"3 days"})},{value:String(o.AF.BURN_ON_READ.MAX_TTL_7_DAYS),display_name:(0,A.defineMessage)({id:"admin.posts.burnOnRead.maximumTTL.7days",defaultMessage:"7 days"})},{value:String(o.AF.BURN_ON_READ.MAX_TTL_14_DAYS),display_name:(0,A.defineMessage)({id:"admin.posts.burnOnRead.maximumTTL.14days",defaultMessage:"14 days"})},{value:String(o.AF.BURN_ON_READ.MAX_TTL_30_DAYS),display_name:(0,A.defineMessage)({id:"admin.posts.burnOnRead.maximumTTL.30days",defaultMessage:"30 days"})}],onConfigLoad:e=>String(e??o.AF.BURN_ON_READ.MAX_TTL_DEFAULT),onConfigSave:e=>e?parseInt(e,10):o.AF.BURN_ON_READ.MAX_TTL_DEFAULT,isDisabled:Qt(Jt(ga(_.SITE.POSTS)),ta("ServiceSettings.EnableBurnOnRead"))}],isHidden:sa("FeatureFlags","BurnOnRead")},{key:"PostSettings.Previews",title:(0,A.defineMessage)({id:"admin.posts.sections.previews.title",defaultMessage:"Content & Previews"}),description:(0,A.defineMessage)({id:"admin.posts.sections.previews.description",defaultMessage:"Configure link previews and how advanced formatting renders."}),settings:[{type:"bool",key:"ServiceSettings.EnableLinkPreviews",label:(0,A.defineMessage)({id:"admin.customization.enableLinkPreviewsTitle",defaultMessage:"Enable website link previews:"}),help_text:(0,A.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:Jt(ga(_.SITE.POSTS))},{type:"text",key:"ServiceSettings.RestrictLinkPreviews",label:(0,A.defineMessage)({id:"admin.customization.restrictLinkPreviewsTitle",defaultMessage:"Disable website link previews from these domains:"}),help_text:(0,A.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,A.defineMessage)({id:"admin.customization.restrictLinkPreviewsExample",defaultMessage:'E.g.: "internal.mycompany.com, images.example.com"'}),isDisabled:Qt(Jt(ga(_.SITE.POSTS)),sa("ServiceSettings","EnableLinkPreviews"))},{type:"bool",key:"ServiceSettings.EnablePermalinkPreviews",label:(0,A.defineMessage)({id:"admin.customization.enablePermalinkPreviewsTitle",defaultMessage:"Enable message link previews:"}),help_text:(0,A.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
1<link>documentation</link> for details."}),help_text_values:{link:e=>C.createElement(Ge.A,{location:"admin_console",href:ve.Uk.SHARE_LINKS_TO_MESSAGES},e)},help_text_markdown:!1,isDisabled:Jt(ga(_.SITE.POSTS))},{type:"bool",key:"ServiceSettings.EnableSVGs",label:(0,A.defineMessage)({id:"admin.customization.enableSVGsTitle",defaultMessage:"Enable SVGs:"}),help_text:(0,A.defineMessage)({id:"admin.customization.enableSVGsDesc",defaultMessage:"Enable previews for SVG file attachments and allow them to appear in messages.\n\nEnabling SVGs is not recommended in environments where not all users are trusted."}),isDisabled:Jt(ga(_.SITE.POSTS))},{type:"bool",key:"ServiceSettings.EnableLatex",label:(0,A.defineMessage)({id:"admin.customization.enableLatexTitle",defaultMessage:"Enable Latex Rendering:"}),help_text:(0,A.defineMessage)({id:"admin.customization.enableLatexDesc",defaultMessage:"Enable rendering of Latex in code blocks. If false, Latex code will be highlighted only.\n\nEnabling Latex is not recommended in environments where not all users are trusted."}),isDisabled:Jt(ga(_.SITE.POSTS))},{type:"bool",key:"ServiceSettings.EnableInlineLatex",label:(0,A.defineMessage)({id:"admin.customization.enableInlineLatexTitle",defaultMessage:"Enable Inline Latex Rendering:"}),help_text:(0,A.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
1<link>documentation</link> for details about text formatting."}),help_text_values:{link:e=>C.createElement(Ge.A,{location:"admin_console",href:ve.Uk.FORMAT_MESSAGES},e)},help_text_markdown:!1,isDisabled:Qt(Jt(ga(_.SITE.POSTS)),ta("ServiceSettings.EnableLatex"))},{type:"custom",component:$i,key:"DisplaySettings.CustomURLSchemes",isDisabled:Jt(ga(_.SITE.POSTS))},{type:"text",key:"ServiceSettings.GoogleDeveloperKey",label:(0,A.defineMessage)({id:"admin.service.googleTitle",defaultMessage:"Google API Key:"}),placeholder:(0,A.defineMessage)({id:"admin.service.googleExample",defaultMessage:'E.g.: "7rAh6iwQCkV4cA1Gsg3fgGOXJAQ43QV"'}),help_text:(0,A.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=>C.createElement(Ge.A,{location:"admin_console",href:"https://www.youtube.com/watch?v=Im69kzhpR3I"},e)},help_text_markdown:!1,isHidden:aa("ExperimentalSettings","RestrictSystemAdmin"),isDisabled:Jt(ga(_.SITE.POSTS))}]},{key:"PostSettings.Performance",title:(0,A.defineMessage)({id:"admin.posts.sections.performance.title",defaultMessage:"Performance & Limits"}),description:(0,A.defineMessage)({id:"admin.posts.sections.performance.description",defaultMessage:"Configure limits that protect client performance and rendering."}),settings:[{type:"number",key:"DisplaySettings.MaxMarkdownNodes",label:(0,A.defineMessage)({id:"admin.customization.maxMarkdownNodesTitle",defaultMessage:"Maximum Markdown Nodes:"}),help_text:(0,A.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:Jt(ga(_.SITE.POSTS))},{type:"number",key:"ServiceSettings.UniqueEmojiReactionLimitPerPost",label:(0,A.defineMessage)({id:"admin.customization.uniqueEmojiReactionLimitPerPost",defaultMessage:"Unique Emoji Reaction Limit:"}),placeholder:(0,A.defineMessage)({id:"admin.customization.uniqueEmojiReactionLimitPerPostPlaceholder",defaultMessage:"E.g.: 25"}),help_text:(0,A.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=(a=500,s=(0,A.defineMessage)({id:"admin.customization.uniqueEmojiReactionLimitPerPost.maxValue",defaultMessage:"Cannot increase the limit to a value above 500."}),e=>new Zt(e<=a,s))(e);var a,s;if(!t.isValid())return t;const n=fa(0,(0,A.defineMessage)({id:"admin.customization.uniqueEmojiReactionLimitPerPost.minValue",defaultMessage:"Cannot decrease the limit below 0."}))(e);return n.isValid()?new Zt(!0,""):n}}]}]}},content_flagging:{url:"site_config/data_spillage",title:(0,A.defineMessage)({id:"admin.sidebar.dataSpillage",defaultMessage:"Data Spillage Handling"}),searchableStrings:Me,isHidden:Qt(Jt(da(ve.gS.EnterpriseAdvanced)),Jt(ma(_.USER_MANAGEMENT.SYSTEM_ROLES)),sa("FeatureFlags","ContentFlagging")),isDisabled:Jt(ga(_.USER_MANAGEMENT.SYSTEM_ROLES)),restrictedIndicator:Ma(!1,ve.gS.EnterpriseAdvanced),schema:{id:"ContentFlaggingSettings",component:function(){const[e,t]=(0,C.useState)(!1),[a,s]=(0,C.useState)(!1),[n,i]=(0,C.useState)(""),[r,l]=(0,C.useState)();(0,C.useEffect)((()=>{r||(async()=>{try{const e=await I.mT.getAdminContentFlaggingConfig();e&&l(e)}catch(e){console.error(e)}})()}),[r]);const o=(0,C.useCallback)(((e,t)=>{const a={...r};switch(e){case"EnableContentFlagging":a.EnableContentFlagging=t;break;case"ReviewerSettings":a.ReviewerSettings=t;break;case"NotificationSettings":a.NotificationSettings=t;break;case"AdditionalSettings":a.AdditionalSettings=t}l(a),s(!0)}),[r]),d=(0,C.useCallback)((async()=>
1{if(r){t(!0);try{await I.mT.saveContentFlaggingConfig(r),s(!1),i("")}catch(e){console.error(e),e&&i(e.message)}finally{t(!1)}}}),[r]);return r?C.createElement("div",{className:"wrapper--fixed ContentFlaggingSettings"},C.createElement(fe,null,C.createElement("div",null,C.createElement(A.FormattedMessage,{id:"admin.dataSpillage.title",defaultMessage:"Data Spillage Handling"}))),C.createElement("div",{className:"admin-console__wrapper"},C.createElement("div",{className:"admin-console__content"},C.createElement("div",{className:"admin-console__setting-group"},C.createElement(F,{id:"EnableContentFlagging",label:C.createElement(A.FormattedMessage,{id:"admin.data_spillage.enableTitle",defaultMessage:"Enable Data Spillage Handling"}),value:r?.EnableContentFlagging||!1,setByEnv:!1,onChange:o,helpText:""})),C.createElement(ie,{id:"ReviewerSettings",onChange:o,value:r.ReviewerSettings,disabled:!r.EnableContentFlagging}),C.createElement(re,{id:"NotificationSettings",onChange:o,value:r.NotificationSettings,disabled:!r.EnableContentFlagging}),C.createElement(Q,{id:"AdditionalSettings",onChange:o,value:r.AdditionalSettings,disabled:!r.EnableContentFlagging}))),C.createElement(ge,{saveNeeded:a,saving:e,onClick:d,cancelLink:"",serverError:n})):null}}},wrangler:{url:"site_config/wrangler",title:(0,A.defineMessage)({id:"admin.sidebar.move_thread",defaultMessage:"Move Thread (Beta)"}
1),isHidden:Qt(Jt(ma(_.SITE.POSTS)),sa("FeatureFlags","MoveThreadsEnabled"),Jt(ia)),schema:{id:"WranglerSettings",name:(0,A.defineMessage)({id:"admin.site.move_thread",defaultMessage:"Move Thread"}),settings:[{type:"roles",multiple:!0,key:"WranglerSettings.PermittedWranglerRoles",label:(0,A.defineMessage)({id:"admin.experimental.PermittedMoveThreadRoles.title",defaultMessage:"Permitted Roles"}),help_text:(0,A.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:Jt(ga(_.EXPERIMENTAL.FEATURES))},{type:"text",key:"WranglerSettings.AllowedEmailDomain",multiple:!0,label:(0,A.defineMessage)({id:"admin.experimental.allowedEmailDomain.title",defaultMessage:"Allowed Email Domain"}),help_text:(0,A.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:Jt(ga(_.EXPERIMENTAL.FEATURES))},{type:"number",key:"WranglerSettings.MoveThreadMaxCount",label:(0,A.defineMessage)({id:"admin.experimental.moveThreadMaxCount.title",defaultMessage:"Max Thread Count Move Size"}),help_text:(0,A.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:Jt(ga(_.EXPERIMENTAL.FEATURES))},{type:"bool",key:"WranglerSettings.MoveThreadToAnotherTeamEnable",label:(0,A.defineMessage)({id:"admin.experimental.moveThreadToAnotherTeamEnable.title",defaultMessage:"Enable Moving Threads To Different Teams"}),help_text:(0,A.defineMessage)({id:"admin.experimental.moveThreadToAnotherTeamEnable.desc",defaultMessage:"Control whether move thread is permitted to move message threads from one team to another or not."}),help_text_markdown:!1,isDisabled:Jt(ga(_.EXPERIMENTAL.FEATURES))},{type:"bool",key:"WranglerSettings.MoveThreadFromPrivateChannelEnable",label:(0,A.defineMessage)({id:"admin.experimental.moveThreadFromPrivateChannelEnable.title",defaultMessage:"Enable Moving Threads From Private Channels"}),help_text:(0,A.defineMessage)({id:"admin.experimental.moveThreadFromPrivateChannelEnable.desc",defaultMessage:"Control whether move thread is permitted to move message threads from private channels or not."}),help_text_markdown:!1,isDisabled:Jt(ga(_.EXPERIMENTAL.FEATURES))},{type:"bool",key:"WranglerSettings.MoveThreadFromDirectMessageChannelEnable",label:(0,A.defineMessage)({id:"admin.experimental.moveThreadFromDirectMessageChannelEnable.title",defaultMessage:"Enable Moving Threads From Direct Message Channels"}),help_text:(0,A.defineMessage)({id:"admin.experimental.moveThreadFromDirectMessageChannelEnable.desc",defaultMessage:"Control whether move thread is permitted to move message threads from direct message channels or not."}),help_text_markdown:!1,isDisabled:Jt(ga(_.EXPERIMENTAL.FEATURES))},{type:"bool",key:"WranglerSettings.MoveThreadFromGroupMessageChannelEnable",label:(0,A.defineMessage)({id:"admin.experimental.moveThreadFromGroupMessageChannelEnable.title",defaultMessage:"Enable Moving Threads From Group Message Channels"}),help_text:(0,A.defineMessage)({id:"admin.experimental.moveThreadFromGroupMessageChannelEnable.desc",defaultMessage:"Control whether move thread is permitted to move message threads from group message channels or not."}),help_text_markdown:!1,isDisabled:Jt(ga(_.EXPERIMENTAL.FEATURES))}]}},file_sharing_downloads:{url:"site_config/file_sharing_downloads",title:(0,A.defineMessage)({id:"admin.sidebar.fileSharingDownloads",defaultMessage:"File Sharing and Downloads"}
1),isHidden:Qt(Jt(ma(_.SITE.FILE_SHARING_AND_DOWNLOADS))),schema:{id:"FileSharingDownloads",name:(0,A.defineMessage)({id:"admin.site.fileSharingDownloads",defaultMessage:"File Sharing and Downloads"}),settings:[{type:"bool",key:"FileSettings.EnableFileAttachments",label:(0,A.defineMessage)({id:"admin.file.enableFileAttachments",defaultMessage:"Allow File Sharing:"}),help_text:(0,A.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:Jt(ga(_.SITE.FILE_SHARING_AND_DOWNLOADS))},{type:"bool",key:"FileSettings.EnableMobileUpload",label:(0,A.defineMessage)({id:"admin.file.enableMobileUploadTitle",defaultMessage:"Allow File Uploads on Mobile:"}),help_text:(0,A.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:Jt(la("Compliance")),isDisabled:Jt(ga(_.SITE.FILE_SHARING_AND_DOWNLOADS))},{type:"bool",key:"FileSettings.EnableMobileDownload",label:(0,A.defineMessage)({id:"admin.file.enableMobileDownloadTitle",defaultMessage:"Allow File Downloads on Mobile:"}),help_text:(0,A.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:Jt(la("Compliance")),isDisabled:Jt(ga(_.SITE.FILE_SHARING_AND_DOWNLOADS))}]}},public_links:{url:"site_config/public_links",title:(0,A.defineMessage)({id:"admin.sidebar.publicLinks",defaultMessage:"Public Links"}
1),isHidden:Qt(aa("ExperimentalSettings","RestrictSystemAdmin"),Jt(ma(_.SITE.PUBLIC_LINKS))),schema:{id:"PublicLinkSettings",name:(0,A.defineMessage)({id:"admin.site.public_links",defaultMessage:"Public Links"}),settings:[{type:"bool",key:"FileSettings.EnablePublicLink",label:(0,A.defineMessage)({id:"admin.image.shareTitle",defaultMessage:"Enable Public File Links: "}),help_text:(0,A.defineMessage)({id:"admin.image.shareDescription",defaultMessage:"Allow users to share public links to files and images."}),isDisabled:Jt(ga(_.SITE.PUBLIC_LINKS))},{type:"generated",key:"FileSettings.PublicLinkSalt",label:(0,A.defineMessage)({id:"admin.image.publicLinkTitle",defaultMessage:"Public Link Salt:"}),help_text:(0,A.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:Jt(ga(_.SITE.PUBLIC_LINKS))}]}},notices:{url:"site_config/notices",title:(0,A.defineMessage)({id:"admin.sidebar.notices",defaultMessage:"Notices"}),isHidden:Jt(ma(_.SITE.NOTICES)),schema:{id:"NoticesSettings",name:(0,A.defineMessage)({id:"admin.site.notices",defaultMessage:"Notices"}),settings:[{type:"bool",key:"AnnouncementSettings.AdminNoticesEnabled",label:(0,A.defineMessage)({id:"admin.notices.enableAdminNoticesTitle",defaultMessage:"Enable Admin Notices: "}),help_text:(0,A.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=>C.createElement(Ge.A,{location:"admin_console",href:ve.Uk.IN_PRODUCT_NOTICES},e)},help_text_markdown:!1,isDisabled:Jt(ga(_.SITE.NOTICES))},{type:"bool",key:"AnnouncementSettings.UserNoticesEnabled",label:(0,A.defineMessage)({id:"admin.notices.enableEndUserNoticesTitle",defaultMessage:"Enable End User Notices: "}),help_text:(0,A.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=>C.createElement(Ge.A,{location:"admin_console",href:ve.Uk.IN_PRODUCT_NOTICES},e)},help_text_markdown:!1,isDisabled:Jt(ga(_.SITE.NOTICES))}]}},ip_filtering:{url:"site_config/ip_filtering",title:MM.ip_filtering_title,isHidden:Jt(Kt(aa("FeatureFlags","CloudIPFiltering"),da(ve.gS.Enterprise))),isDisabled:Jt(ga(_.SITE.IP_FILTERING)),searchableStrings:[MM.ip_filtering_title],schema:{id:"IPFiltering",component:()=>{const e=(0,s.useDispatch)(),{formatMessage:t}=(0,A.useIntl)(),[a,n]=(0,C.useState)(null),[i,r]=(0,C.useState)(null),[l,o]=(0,C.useState)(!1),[d,c]=(0,C.useState)(null),[m,u]=(0,C.useState)(!1),[g,h]=(0,C.useState)(!1),[f,E]=(0,C.useState)(""),[M,b]=(0,C.useState)(""),[_,y]=(0,C.useState)(null),v={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,C.useEffect)((()=>{N(),(0,p.pg)((e=>{n(e),r(e)})),(0,p.nn)((e=>{c(e.ip)}))}),[]),(0,C.useEffect)((()=>{if(null===a||null===i)return;const e=JSON.stringify(a)!==JSON.stringify(i);o(e)}),[a,i]);const T=()=>!g||!a?.length||null!==a&&null!==d&&function(e,t){const a=$l().parse(e);for(const e of t){const t=e.cidr_block,[s,n]=$l().parseCIDR(t);if(a.kind()===s.kind()&&a.match([s,n]))return!0}return!1}(d,a);async function N(){const a=await e((0,Sn.JN)());if(a.data){const{data:s}=a;E(s.state),""===f&&"stable"!==s.state&&(u(!0),b(v.SAVING_PREVIOUS_CHANGE),k(S.SAVING_PREVIOUS_CHANGE)),"stable"!==s.state&&function(){let a=0;const s=setInterval((async()=>
1{if(a>15)return y(C.createElement(C.Fragment,null,C.createElement(w.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(s);const n=await e((0,Sn.JN)());if(a++,n.data){const{data:e}=n;"stable"===e.state&&(u(!1),y(null),clearInterval(s)),E(e.state)}}),5e3)}()}}function k(e){y(C.createElement("div",{className:"saving-message-description"},e))}function I(e,t){n((a=>{if(!a)return[e];const s=a.findIndex((e=>e.cidr_block===t?.cidr_block));if(-1===s)return null;const n=[...a];return n[s]=e,n})),o(!0)}function R(t){e((0,Hn.O)(ve.IQ.IP_FILTERING_DELETE_CONFIRMATION_MODAL)),n((e=>e?.filter((e=>e.cidr_block!==t.cidr_block))??null)),o(!0)}function L(t){e((0,Hn.O)(ve.IQ.IP_FILTERING_ADD_EDIT_MODAL)),n((e=>[...e??[],t])),o(!0)}function x(){E("update-requested"),u(!0),b(v.SAVING_CHANGES),k(S.SAVING_CHANGES),e((0,Hn.O)(ve.IQ.IP_FILTERING_SAVE_CONFIRMATION_MODAL)),(0,p.R6)(a??[],(e=>{n(e),r(e),N()}))}return(0,C.useEffect)((()=>{a?.length&&h(a?.some((e=>!0===e.enabled))??!1)}),[a]),(0,C.useEffect)((()=>{n(!1===g?a?.map((e=>({...e,enabled:!1})))||[]:a?.map((e=>({...e,enabled:!0})))||[])}),[g]),C.createElement("div",{className:"IPFiltering wrapper--fixed"},C.createElement(fe,null,t({id:"admin.ip_filtering.ip_filtering",defaultMessage:"IP Filtering"})),C.createElement("div",{className:"MainPanel admin-console__wrapper"},C.createElement(C.Fragment,null,C.createElement(oo,{filterToggle:g,setFilterToggle:h}),null!==a&&null!==d&&g&&C.createElement(lo,{ipFilters:a,currentUsersIP:d,setShowAddModal:function(){e((0,Hn.q)({modalId:ve.IQ.IP_FILTERING_ADD_EDIT_MODAL,dialogType:eo,dialogProps:{currentIP:d,onSave:L}}))},setEditFilter:function(t){e((0,Hn.q)({modalId:ve.IQ.IP_FILTERING_ADD_EDIT_MODAL,dialogType:eo,dialogProps:{currentIP:d,onSave:I,existingRange:t}}))},handleConfirmDeleteFilter:function(t){e((0,Hn.q)({modalId:ve.IQ.IP_FILTERING_DELETE_CONFIRMATION_MODAL,dialogType:to,dialogProps:{onConfirm:R,filterToDelete:t}}))},currentIPIsInRange:T()}))),C.createElement(ge,{saving:m,saveNeeded:l||"stable"!==f,isDisabled:!T()||"stable"!==f,onClick:function(){const s={onConfirm:x};!a?.length&&g?(s.title=t({id:"admin.ip_filtering.apply_ip_filter_changes",defaultMessage:"Apply IP Filter Changes"}),s.subtitle=C.createElement(A.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=>C.createElement("strong",null,e)}}),s.buttonText=t({id:"admin.ip_filtering.apply_changes",defaultMessage:"Yes, apply changes"}),s.includeDisclaimer=!1):a?.length&&!g||!a?.length&&!g?(s.title=t({id:"admin.ip_filtering.disable_ip_filtering",defaultMessage:"Disable IP Filtering"}),s.subtitle=C.createElement(A.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=>C.createElement("strong",null,e)}}),s.buttonText=t({id:"admin.ip_filtering.yes_disable_ip_filtering",defaultMessage:"Yes, disable IP Filtering"}),s.includeDisclaimer=!1):(s.title=t({id:"admin.ip_filtering.apply_ip_filter_changes",defaultMessage:"Apply IP Filter Changes"}),s.subtitle=C.createElement(A.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=>C.createElement("strong",null,e)}}),s.buttonText=t({id:"admin.ip_filtering.apply_changes",defaultMessage:"Yes, apply changes"}),s.includeDisclaimer=!0),e((0,Hn.q)({modalId:ve.IQ.IP_FILTERING_SAVE_CONFIRMATION_MODAL,dialogType:co,dialogProps:s}))},serverError:null!==_?_:T()?void 0:C.createElement(C.Fragment,null,C.createElement(w.AlertOutlineIcon,{size:16})," ",t({id:"admin.ip_filtering.error_on_page",defaultMessage:"Your IP address is not included in your filters"})),savingMessage:M,cancelLink:""}))}}}
1,secure_connection_detail:{url:`site_config/secure_connections/:connection_id(create|${Ss.Zv})`,isHidden:Jt(Kt(aa("ConnectedWorkspacesSettings","EnableSharedChannels"),aa("ConnectedWorkspacesSettings","EnableRemoteClusterService"),la("SharedChannels"))),schema:{id:"SecureConnectionDetail",component:function(e){const{formatMessage:t}=(0,A.useIntl)(),{connection_id:a}=(0,T.useParams)(),n="create"===a,{state:i,...r}=(0,T.useLocation)(),l=(0,T.useHistory)(),o=(0,s.useDispatch)(),[d,{applyPatch:c,save:m,currentRemoteCluster:u,hasChanges:g,loading:h,saving:f,patch:E}]=((e,t)=>{const a="create"!==e,[s,n]=(0,C.useState)(t),[i,r]=(0,C.useState)({}),[l,o]=(0,C.useState)(a&&!s),[d,c]=(0,C.useState)(!1),m=Object.keys(i).length>0;return(0,C.useEffect)((()=>{a&&(async()=>{try{const t=await I.mT.getRemoteCluster(e);n(t),o(!1),r({})}catch(e){c(e)}})()}),[e]),[{...s,...i},{applyPatch:e=>{r((t=>({...t,...e})))},save:async()=>{if(s&&(0,Em.U)(i)){c(!0);try{const t=await I.mT.patchRemoteCluster(e,i);n(t),c(!1),r({})}catch(e){c(e)}c(!1)}},hasChanges:m,loading:l,saving:d,currentRemoteCluster:s,patch:i}]})(a,i),M=(0,Em.U)(E)&&(!n||Boolean(E.display_name&&E.default_team_id)),{promptCreate:b,saving:_}=(()=>{const e=(0,s.useDispatch)(),[t,a]=(0,C.useState)(!1);return{promptCreate:t=>new Promise(((s,n)=>{e((0,Hn.q)({modalId:ve.IQ.SECURE_CONNECTION_CREATE_INVITE,dialogType:iu,dialogProps:{creating:!0,onConfirm:async()=>{try{a(!0);const e=await I.mT.createRemoteCluster({...t,name:(0,Cs.aM)(t.display_name)});if(a(!1),e){const{invite:t,password:a,remote_cluster:n}=e;return s(n),{remoteCluster:n,share:{invite:t,password:a}}}}catch(e){n(e)}a(!1)}}}))})),saving:t}})(),y=_m();return(0,C.useEffect)((()=>{l.replace({...r,state:u})}),[u]),(0,C.useEffect)((()=>{o((0,p.Jb)(g))}),[g]),C.createElement("div",{className:"wrapper--fixed","data-testid":"connectedOrganizationDetailsSection"},C.createElement(fe,{withBackButton:!0},C.createElement("div",null,C.createElement(me.A,{to:"/admin_console/site_config/secure_connections",className:"fa fa-angle-left back"}),C.createElement(A.FormattedMessage,{id:"admin.secure_connection_detail.page_title",defaultMessage:"Connection Configuration"}))),C.createElement(Dm,null,C.createElement(wm,{"data-testid":"connection_detail_section"},C.createElement(Tm,null,C.createElement("hgroup",null,C.createElement(A.FormattedMessage,{tagName:Cm,id:"admin.secure_connections.details.title",defaultMessage:"Connection Details"}),C.createElement(A.FormattedMessage,{id:"admin.secure_connections.details.subtitle",defaultMessage:"Connection name and other permissions"})),u&&C.createElement(Wm,{rc:u})),C.createElement(Nm,{$compact:!0},vm(h)?C.createElement(Ta.A,null):C.createElement(C.Fragment,null,C.createElement(Um,{label:t({id:"admin.secure_connections.details.org_name.label",defaultMessage:"Organization Name"}),helpText:t({id:"admin.secure_connections.details.org_name.help",defaultMessage:"Giving the connection a recognizable name will help you remember its purpose."})},C.createElement(Fm,{type:"text","data-testid":"organization-name-input",value:d?.display_name??"",onChange:e=>{let{currentTarget:{value:t}}=e;c({display_name:t})},autoFocus:n})),C.createElement(Um,{label:t({id:"admin.secure_connections.details.team.label",defaultMessage:"Destination Team"}),helpText:C.createElement(A.FormattedMessage,{id:"admin.secure_connections.details.team.help",defaultMessage:"Select the team where new incoming channels are added. {link}",values:{link:C.createElement(Ge.A,{href:"https://mattermost.com/pl/connected-workspaces-destination",location:"secure_connection_detail"},C.createElement(A.FormattedMessage,{id:"admin.secure_connections.details.team.help.learn_more",defaultMessage:"Learn more"}))}})},C.createElement(Xm,{testId:"destination-team-input",value:d.default_team_id??"",teamsById:y,onChange:e=>{c({default_team_id:e})}}))))),!n&&C.createElement(wm,{"data-testid":"shared_channels_section"},C.createElement(Ou,{remoteId:a,rc:u}))),C.createElement(ge,{saving:vm(n?_:f),cancelLink:"/admin_console/site_config/secure_connections",saveNeeded:g&&M,onClick:n?async()=>
1{if(!M)return;const e=await b(E);e&&l.replace(ym(e))}:m,serverError:Sm(f)||Sm(_)?C.createElement(A.FormattedMessage,{id:"admin.secure_connections.details.saving_changes_error",defaultMessage:"There was an error while saving secure connection"}):void 0,savingMessage:t({id:"admin.secure_connections.details.saving_changes",defaultMessage:"Saving secure connectionâ¦"}),isDisabled:e.disabled}))}}},secure_connections:{url:"site_config/secure_connections",title:(0,A.defineMessage)({id:"admin.sidebar.secureConnections",defaultMessage:"Connected Workspaces"}),searchableStrings:Ru,isHidden:Jt(Kt(aa("ConnectedWorkspacesSettings","EnableSharedChannels"),aa("ConnectedWorkspacesSettings","EnableRemoteClusterService"),la("SharedChannels"))),schema:{id:"SecureConnections",component:function(){const[e,{loading:t,error:a,fetch:s}]=(()=>{const[e,t]=(0,C.useState)(),[a,s]=(0,C.useState)(!0),{loading:n,error:i}=(e=>{const t=vm(e);return{error:Sm(e)?e:void 0,loading:t}})(a),r=async()=>{s(!0);try{const e=await I.mT.getRemoteClusters({excludePlugins:!0});t(e?.length?e:void 0),s(!1)}catch(e){s(e)}};return(0,C.useEffect)((()=>{r()}),[]),[e,{loading:n,fetch:r,error:i}]})(),n="api.remote_cluster.service_not_enabled.app_error"===a?.server_error_id,i=t||n,r=t?C.createElement(Ta.A,null):C.createElement(Nu,{disabled:i,serviceNotRunning:n});return C.createElement("div",{className:"wrapper--fixed","data-testid":"secureConnectionsSection"},C.createElement(fe,null,C.createElement(A.FormattedMessage,Iu.pageTitle)),C.createElement(Tu,null,C.createElement(wm,null,C.createElement(Tm,null,C.createElement("hgroup",null,C.createElement(A.FormattedMessage,Object.assign({tagName:Cm},Iu.title)),C.createElement(A.FormattedMessage,Iu.subtitle)),C.createElement(wu,{disabled:i})),e?.map((e=>C.createElement(_u,{key:e.remote_id,remoteCluster:e,onDeleteSuccess:s,disabled:i})))??r)))}}}}},authentication:{icon:C.createElement(w.ShieldOutlineIcon,{size:16,color:"currentColor"}),sectionTitle:(0,A.defineMessage)({id:"admin.sidebar.authentication",defaultMessage:"Authentication"}),isHidden:Jt(ua(_.AUTHENTICATION)),subsections:{signup:{url:"authentication/signup",title:(0,A.defineMessage)({id:"admin.sidebar.signup",defaultMessage:"Signup"}),isHidden:Jt(ma(_.AUTHENTICATION.SIGNUP)),schema:{id:"SignupSettings",name:(0,A.defineMessage)({id:"admin.authentication.signup",defaultMessage:"Signup"}),settings:[{type:"bool",key:"TeamSettings.EnableUserCreation",label:(0,A.defineMessage)({id:"admin.team.userCreationTitle",defaultMessage:"Enable Account Creation: "}),help_text:(0,A.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:Jt(ga(_.AUTHENTICATION.SIGNUP))},{type:"text",key:"TeamSettings.RestrictCreationToDomains",label:(0,A.defineMessage)({id:"admin.team.restrictTitle",defaultMessage:"Restrict new system and team members to specified email domains:"}),help_text:(0,A.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,A.defineMessage)({id:"admin.team.restrictExample",defaultMessage:'E.g.: "corp.mattermost.com, mattermost.com"'}
1),isHidden:Qt(Jt(ia),oa("starter")),isDisabled:Jt(ga(_.AUTHENTICATION.SIGNUP))},{type:"bool",key:"TeamSettings.EnableOpenServer",label:(0,A.defineMessage)({id:"admin.team.openServerTitle",defaultMessage:"Enable Open Server: "}),help_text:(0,A.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:Jt(ga(_.AUTHENTICATION.SIGNUP))},{type:"bool",key:"ServiceSettings.EnableEmailInvitations",label:(0,A.defineMessage)({id:"admin.team.emailInvitationsTitle",defaultMessage:"Enable Email Invitations: "}),help_text:(0,A.defineMessage)({id:"admin.team.emailInvitationsDescription",defaultMessage:"When true users can invite others to the system using email."}),isDisabled:Jt(ga(_.AUTHENTICATION.SIGNUP)),isHidden:la("Cloud")},{type:"button",key:"InvalidateEmailInvitesButton",action:p.d2,label:(0,A.defineMessage)({id:"admin.team.invalidateEmailInvitesTitle",defaultMessage:"Invalidate pending email invites"}),help_text:(0,A.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,A.defineMessage)({id:"admin.team.invalidateEmailInvitesFail",defaultMessage:"Unable to invalidate pending email invites: {error}"}),success_message:(0,A.defineMessage)({id:"admin.team.invalidateEmailInvitesSuccess",defaultMessage:"Pending email invitations invalidated successfully"}),isDisabled:Jt(ga(_.AUTHENTICATION.SIGNUP))}]}},email:{url:"authentication/email",title:(0,A.defineMessage)({id:"admin.sidebar.email",defaultMessage:"Email"}),isHidden:Jt(ma(_.AUTHENTICATION.EMAIL)),schema:{id:"EmailSettings",name:(0,A.defineMessage)({id:"admin.authentication.email",defaultMessage:"Email"}),settings:[{type:"bool",key:"EmailSettings.EnableSignUpWithEmail",label:(0,A.defineMessage)({id:"admin.email.allowSignupTitle",defaultMessage:"Enable account creation with email:"}),help_text:(0,A.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:Jt(ga(_.AUTHENTICATION.EMAIL))},{type:"bool",key:"EmailSettings.RequireEmailVerification",label:(0,A.defineMessage)({id:"admin.email.requireVerificationTitle",defaultMessage:"Require Email Verification: "}),help_text:(0,A.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:Jt(ga(_.AUTHENTICATION.EMAIL)),isHidden:la("Cloud")},{type:"bool",key:"EmailSettings.EnableSignInWithEmail",label:(0,A.defineMessage)({id:"admin.email.allowEmailSignInTitle",defaultMessage:"Enable sign-in with email:"}),help_text:(0,A.defineMessage)({id:"admin.email.allowEmailSignInDescription",defaultMessage:"When true, Mattermost allows users to sign in using their email and password."}),isDisabled:Jt(ga(_.AUTHENTICATION.EMAIL))},{type:"bool",key:"EmailSettings.EnableSignInWithUsername",label:(0,A.defineMessage)({id:"admin.email.allowUsernameSignInTitle",defaultMessage:"Enable sign-in with username:"}),help_text:(0,A.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:Jt(ga(_.AUTHENTICATION.EMAIL))}]}},password:{url:"authentication/password",title:(0,A.defineMessage)({id:"admin.sidebar.password",defaultMessage:"Password"}),searchableStrings:zd,isHidden:Jt(ma(_.AUTHENTICATION.PASSWORD)),isDisabled:Jt(ga(_.AUTHENTICATION.PASSWORD)),schema:{id:"PasswordSettings",component:class extends Na{constructor(e){super(e),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=C.createElement(A.FormattedMessage,Object.assign({},jd(e.config.PasswordSettings.Lowercase,e.config.PasswordSettings.Uppercase,e.config.PasswordSettings.Number,e.config.PasswordSettings.Symbol),{values:{min:this.state.passwordMinimumLength||ve.Ay.MIN_PASSWORD_LENGTH,max:ve.Ay.MAX_PASSWORD_LENGTH}}))}getConfigFromState=e=>(e.PasswordSettings&&(e.PasswordSettings.MinimumLength=this.parseIntNonZero(this.state.passwordMinimumLength??"",ve.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(this.state.maximumLoginAttempts??"",ve.Ay.MAXIMUM_LOGIN_ATTEMPTS_DEFAULT)),e);getStateFromConfig(e){return{passwordMinimumLength:String(e.PasswordSettings?.MinimumLength),passwordLowercase:e.PasswordSettings?.Lowercase,passwordNumber:e.PasswordSettings?.Number,passwordUppercase:e.PasswordSettings?.Uppercase,passwordSymbol:e.PasswordSettings?.Symbol,passwordEnableForgotLink:e.PasswordSettings?.EnableForgotLink,maximumLoginAttempts:String(e.ServiceSettings?.MaximumLoginAttempts)}}getSampleErrorMsg=()=>this.props.config.PasswordSettings.MinimumLength>ve.Ay.MAX_PASSWORD_LENGTH||this.props.config.PasswordSettings.MinimumLength<ve.Ay.MIN_PASSWORD_LENGTH?C.createElement(A.FormattedMessage,Vd.passwordMinLength):C.createElement(A.FormattedMessage,Object.assign({},jd(this.state.passwordLowercase,this.state.passwordUppercase,this.state.passwordNumber,this.state.passwordSymbol),{values:{min:this.state.passwordMinimumLength||ve.Ay.MIN_PASSWORD_LENGTH,max:ve.Ay.MAX_PASSWORD_LENGTH}}));handleBooleanChange=e=>(t,a)=>{this.handleChange(e,a)};renderTitle(){return C.createElement(A.FormattedMessage,Vd.password)}renderSettings=()=>
1C.createElement(gt,null,C.createElement("div",null,C.createElement(ht,{id:"passwordMinimumLength",label:C.createElement(A.FormattedMessage,Vd.minimumLength),placeholder:(0,A.defineMessage)({id:"admin.password.minimumLengthExample",defaultMessage:'E.g.: "5"'}),helpText:C.createElement(A.FormattedMessage,Object.assign({},Vd.minimumLengthDescription,{values:{min:ve.Ay.MIN_PASSWORD_LENGTH,max:ve.Ay.MAX_PASSWORD_LENGTH}})),value:this.state.passwordMinimumLength??"",onChange:this.handleChange,setByEnv:this.isSetByEnv("PasswordSettings.MinimumLength"),disabled:this.props.isDisabled}),C.createElement(D,{label:C.createElement(A.FormattedMessage,Vd.passwordRequirements)},C.createElement("ul",{className:"admin-console__checkbox-list"},C.createElement("div",null,C.createElement($,{id:"admin.password.lowercase",label:C.createElement(A.FormattedMessage,Vd.lowercase),defaultChecked:this.state.passwordLowercase,onChange:this.handleBooleanChange("passwordLowercase"),setByEnv:this.isSetByEnv("PasswordSettings.Lowercase"),disabled:this.props.isDisabled})),C.createElement("div",null,C.createElement($,{id:"admin.password.uppercase",label:C.createElement(A.FormattedMessage,Vd.uppercase),defaultChecked:this.state.passwordUppercase,onChange:this.handleBooleanChange("passwordUppercase"),setByEnv:this.isSetByEnv("PasswordSettings.Uppercase"),disabled:this.props.isDisabled})),C.createElement("div",null,C.createElement($,{id:"admin.password.number",label:C.createElement(A.FormattedMessage,Vd.number),defaultChecked:this.state.passwordNumber,onChange:this.handleBooleanChange("passwordNumber"),setByEnv:this.isSetByEnv("PasswordSettings.Number"),disabled:this.props.isDisabled})),C.createElement("div",null,C.createElement($,{id:"admin.password.symbol",label:C.createElement(A.FormattedMessage,Vd.symbol),defaultChecked:this.state.passwordSymbol,onChange:this.handleBooleanChange("passwordSymbol"),setByEnv:this.isSetByEnv("PasswordSettings.Symbol"),disabled:this.props.isDisabled}))),C.createElement("div",null,C.createElement("br",null),C.createElement("div",{className:"password-settings__preview-heading"},C.createElement(A.FormattedMessage,Vd.preview)),this.getSampleErrorMsg()))),!this.props.config.ExperimentalSettings?.RestrictSystemAdmin&&C.createElement(ht,{id:"maximumLoginAttempts",label:C.createElement(A.FormattedMessage,Vd.attemptTitle),placeholder:(0,A.defineMessage)({id:"admin.service.attemptExample",defaultMessage:'E.g.: "10"'}),helpText:C.createElement(A.FormattedMessage,Vd.attemptDescription),value:this.state.maximumLoginAttempts??"",onChange:this.handleChange,setByEnv:this.isSetByEnv("ServiceSettings.MaximumLoginAttempts"),disabled:this.props.isDisabled}),C.createElement(F,{id:"passwordEnableForgotLink",label:C.createElement(A.FormattedMessage,{id:"admin.password.enableForgotLink.title",defaultMessage:"Enable Forgot Password Link:"}),helpText:C.createElement(A.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=>C.createElement(me.A,{to:"/admin_console/site_config/customization"},e)}}),value:this.state.passwordEnableForgotLink??!1,setByEnv:!1,onChange:this.handleChange,disabled:this.props.isDisabled}))}}},mfa:{url:"authentication/mfa",title:(0,A.defineMessage)({id:"admin.sidebar.mfa",defaultMessage:"MFA"}),isHidden:Jt(ma(_.AUTHENTICATION.MFA)),schema:{id:"ServiceSettings",name:(0,A.defineMessage)({id:"admin.authentication.mfa",defaultMessage:"Multi-factor Authentication"}),settings:[{type:"banner",label:(0,A.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=>C.createElement(Ge.A,{location:"admin_console",href:ve.Uk.MULTI_FACTOR_AUTH},e)},banner_type:"info"},{type:"bool",key:"ServiceSettings.EnableMultifactorAuthentication",label:(0,A.defineMessage)({id:"admin.service.mfaTitle",defaultMessage:"Enable Multi-factor Authentication:"}),help_text:(0,A.defineMessage)({id:"admin.service.mfaDesc",defaultMessage:"When true, users with AD/LDAP or email login can add multi-factor authentication to their account using an authenticator app."}),isDisabled:Jt(ga(_.AUTHENTICATION.MFA))},{type:"bool",key:"ServiceSettings.EnforceMultifactorAuthentication",label:(0,A.defineMessage)({id:"admin.service.enforceMfaTitle",defaultMessage:"Enforce Multi-factor Authentication:"}),help_text:(0,A.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=>C.createElement(Ge.A,{location:"admin_console",href:ve.Uk.MULTI_FACTOR_AUTH},e)},isHidden:Jt(la("MFA")),isDisabled:Qt(Jt(ga(_.AUTHENTICATION.MFA)),ta("ServiceSettings.EnableMultifactorAuthentication"))}]}},ldap:{url:"authentication/ldap",title:(0,A.defineMessage)({id:"admin.sidebar.ldap",defaultMessage:"AD/LDAP"}
1),isHidden:Qt(Jt(la("LDAP")),Jt(ma(_.AUTHENTICATION.LDAP))),schema:{id:"LdapWizard",component:Do}},ldap_feature_discovery:{url:"authentication/ldap",isDiscovery:!0,title:(0,A.defineMessage)({id:"admin.sidebar.ldap",defaultMessage:"AD/LDAP"}),isHidden:Qt(la("LDAP")),schema:{id:"LdapSettings",name:(0,A.defineMessage)({id:"admin.authentication.ldap",defaultMessage:"AD/LDAP"}),settings:[{type:"custom",component:()=>C.createElement(dl,{featureName:"ldap",minimumSKURequiredForFeature:ve.gS.Professional,title:(0,A.defineMessage)({id:"admin.ldap_feature_discovery.title",defaultMessage:"Integrate Active Directory/LDAP with Mattermost Professional"}),copy:(0,A.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:C.createElement(gl,{width:276,height:170})}),key:"LDAPFeatureDiscovery",isDisabled:Jt(ga(_.ABOUT.EDITION_AND_LICENSE))}]},restrictedIndicator:Ma(!0)},saml:{url:"authentication/saml",title:(0,A.defineMessage)({id:"admin.sidebar.saml",defaultMessage:"SAML 2.0"}
1),isHidden:Qt(Jt(la("SAML")),Jt(ma(_.AUTHENTICATION.SAML))),schema:{id:"SamlSettings",name:(0,A.defineMessage)({id:"admin.authentication.saml",defaultMessage:"SAML 2.0"}),settings:[{type:"bool",key:"SamlSettings.Enable",label:(0,A.defineMessage)({id:"admin.saml.enableTitle",defaultMessage:"Enable Login With SAML 2.0:"}),help_text:(0,A.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=>C.createElement(Ge.A,{location:"admin_console",href:"http://docs.mattermost.com/deployment/sso-saml.html"},e)},isDisabled:Jt(ga(_.AUTHENTICATION.SAML))},{type:"bool",key:"SamlSettings.EnableSyncWithLdap",label:(0,A.defineMessage)({id:"admin.saml.enableSyncWithLdapTitle",defaultMessage:"Enable Synchronizing SAML Accounts With AD/LDAP:"}),help_text:(0,A.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=>C.createElement(Ge.A,{location:"admin_console",href:ve.Uk.SETUP_LDAP},e),strong:e=>C.createElement("strong",null,e)},help_text_markdown:!1,isDisabled:Qt(Jt(ga(_.AUTHENTICATION.SAML)),ta("SamlSettings.Enable"))},{type:"bool",key:"SamlSettings.IgnoreGuestsLdapSync",label:(0,A.defineMessage)({id:"admin.saml.ignoreGuestsLdapSyncTitle",defaultMessage:"Ignore Guest Users when Synchronizing with AD/LDAP"}),help_text:(0,A.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:Qt(Jt(ga(_.AUTHENTICATION.SAML)),sa("GuestAccountsSettings","Enable"),ta("SamlSettings.EnableSyncWithLdap"),ta("SamlSettings.Enable"))},{type:"bool",key:"SamlSettings.EnableSyncWithLdapIncludeAuth",label:(0,A.defineMessage)({id:"admin.saml.enableSyncWithLdapIncludeAuthTitle",defaultMessage:"Override SAML bind data with AD/LDAP information:"}),help_text:(0,A.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=>C.createElement(Ge.A,{location:"admin_console",href:ve.Uk.CONFIGURE_OVERRIDE_SAML_BIND_DATA_WITH_LDAP},e),strong:e=>C.createElement("strong",null,e)},help_text_markdown:!1,isDisabled:Qt(Jt(ga(_.AUTHENTICATION.SAML)),ta("SamlSettings.Enable"),ta("SamlSettings.EnableSyncWithLdap"))},{type:"text",key:"SamlSettings.IdpMetadataURL",label:(0,A.defineMessage)({id:"admin.saml.idpMetadataUrlTitle",defaultMessage:"Identity Provider Metadata URL:"}),help_text:(0,A.defineMessage)({id:"admin.saml.idpMetadataUrlDesc",defaultMessage:"The URL where Mattermost sends a request to obtain metadata"}),placeholder:(0,A.defineMessage)({id:"admin.saml.idpMetadataUrlEx",defaultMessage:'E.g.: "https://idp.example.org/SAML2/saml/metadata"'}),isDisabled:Qt(Jt(ga(_.AUTHENTICATION.SAML)),ta("SamlSettings.Enable"))},{type:"button",key:"getSamlMetadataFromIDPButton",action:p.mX,label:(0,A.defineMessage)({id:"admin.saml.getSamlMetadataFromIDPUrl",defaultMessage:"Get SAML Metadata from IdP"}),loading:(0,A.defineMessage)({id:"admin.saml.getSamlMetadataFromIDPFetching",defaultMessage:"Fetching..."}),error_message:(0,A.defineMessage)({id:"admin.saml.getSamlMetadataFromIDPFail",defaultMessage:"SAML Metadata URL did not connect and pull data successfully"}),success_message:(0,A.defineMessage)({id:"admin.saml.getSamlMetadataFromIDPSuccess",defaultMessage:"SAML Metadata retrieved successfully. Two fields below have been updated"}),isDisabled:Qt(Jt(ga(_.AUTHENTICATION.SAML)),ta("SamlSettings.Enable"),$t("SamlSettings.IdpMetadataURL","")),sourceUrlKey:"SamlSettings.IdpMetadataURL",skipSaveNeeded:!0},{type:"text",key:"SamlSettings.IdpURL",label:(0,A.defineMessage)({id:"admin.saml.idpUrlTitle",defaultMessage:"SAML SSO URL:"}),help_text:(0,A.defineMessage)({id:"admin.saml.idpUrlDesc",defaultMessage:"The URL where Mattermost sends a SAML request to start login sequence."}),placeholder:(0,A.defineMessage)({id:"admin.saml.idpUrlEx",defaultMessage:'E.g.: "https://idp.example.org/SAML2/SSO/Login"'}),setFromMetadataField:"idp_url",isDisabled:Qt(Jt(ga(_.AUTHENTICATION.SAML)),ta("SamlSettings.Enable"))},{type:"text",key:"SamlSettings.IdpDescriptorURL",label:(0,A.defineMessage)({id:"admin.saml.idpDescriptorUrlTitle",defaultMessage:"Identity Provider Issuer URL:"}),help_text:(0,A.defineMessage)({id:"admin.saml.idpDescriptorUrlDesc",defaultMessage:"The issuer URL for the Identity Provider you use for SAML requests."}),placeholder:(0,A.defineMessage)({id:"admin.saml.idpDescriptorUrlEx",defaultMessage:'E.g.: "https://idp.example.org/SAML2/issuer"'}),setFromMetadataField:"idp_descriptor_url",isDisabled:Qt(Jt(ga(_.AUTHENTICATION.SAML)),ta("SamlSettings.Enable"))},{type:"fileupload",key:"SamlSettings.IdpCertificateFile",label:(0,A.defineMessage)({id:"admin.saml.idpCertificateFileTitle",defaultMessage:"Identity Provider Public Certificate:"}),help_text:(0,A.defineMessage)({id:"admin.saml.idpCertificateFileDesc",defaultMessage:"The public authentication certificate issued by your Identity Provider."}),remove_help_text:(0,A.defineMessage)({id:"admin.saml.idpCertificateFileRemoveDesc",defaultMessage:"Remove the public authentication certificate issued by your Identity Provider."}),remove_button_text:(0,A.defineMessage)({id:"admin.saml.remove.idp_certificate",defaultMessage:"Remove Identity Provider Certificate"}),removing_text:(0,A.defineMessage)({id:"admin.saml.removing.certificate",defaultMessage:"Removing Certificate..."}),uploading_text:(0,A.defineMessage)({id:"admin.saml.uploading.certificate",defaultMessage:"Uploading Certificate..."}),fileType:".crt,.cer,.cert,.pem",upload_action:p.HP,set_action:p.r5,remove_action:p.kF,setFromMetadataField:"idp_public_certificate",isDisabled:Qt(Jt(ga(_.AUTHENTICATION.SAML)),ta("SamlSettings.Enable"))},{type:"bool",key:"SamlSettings.Verify",label:(0,A.defineMessage)({id:"admin.saml.verifyTitle",defaultMessage:"Verify Signature:"}),help_text:(0,A.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:Qt(Jt(ga(_.AUTHENTICATION.SAML)),ta("SamlSettings.Enable"))},{type:"text",key:"SamlSettings.AssertionConsumerServiceURL",label:(0,A.defineMessage)({id:"admin.saml.assertionConsumerServiceURLTitle",defaultMessage:"Service Provider Login URL:"}),help_text:(0,A.defineMessage)({id:"admin.saml.assertionConsumerServiceURLPopulatedDesc",defaultMessage:"This field is also known as the Assertion Consumer Service URL."}),placeholder:(0,A.defineMessage)({id:"admin.saml.assertionConsumerServiceURLEx",defaultMessage:'E.g.: "<urlChunk>your-mattermost-url</urlChunk>"'}),placeholder_values:{urlChunk:e=>`https://'<${e}>'/login/sso/saml`},onConfigLoad:(e,t)=>{const a=t.ServiceSettings?.SiteURL||"";return a.length>0&&0===e.length?`${a}${"/"===a[a.length-1]?"":"/"}login/sso/saml`:e},isDisabled:Qt(Jt(ga(_.AUTHENTICATION.SAML)),ta("SamlSettings.Enable"))},{type:"text",key:"SamlSettings.ServiceProviderIdentifier",label:(0,A.defineMessage)({id:"admin.saml.serviceProviderIdentifierTitle",defaultMessage:"Service Provider Identifier:"}),help_text:(0,A.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,A.defineMessage)({id:"admin.saml.serviceProviderIdentifierEx",defaultMessage:'E.g.: "<urlChunk>your-mattermost-url</urlChunk>"'}),placeholder_values:{urlChunk:e=>`https://'<${e}>'/login/sso/saml`},isDisabled:Qt(Jt(ga(_.AUTHENTICATION.SAML)),ta("SamlSettings.Enable"))},{type:"bool",key:"SamlSettings.Encrypt",label:(0,A.defineMessage)({id:"admin.saml.encryptTitle",defaultMessage:"Enable Encryption:"}),help_text:(0,A.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:Qt(Jt(ga(_.AUTHENTICATION.SAML)),ta("SamlSettings.Enable"))},{type:"fileupload",key:"SamlSettings.PrivateKeyFile",label:(0,A.defineMessage)({id:"admin.saml.privateKeyFileTitle",defaultMessage:"Service Provider Private Key:"}),help_text:(0,A.defineMessage)({id:"admin.saml.privateKeyFileFileDesc",defaultMessage:"The private key used to decrypt SAML Assertions from the Identity Provider."}),remove_help_text:(0,A.defineMessage)({id:"admin.saml.privateKeyFileFileRemoveDesc",defaultMessage:"Remove the private key used to decrypt SAML Assertions from the Identity Provider."}),remove_button_text:(0,A.defineMessage)({id:"admin.saml.remove.privKey",defaultMessage:"Remove Service Provider Private Key"}),removing_text:(0,A.defineMessage)({id:"admin.saml.removing.privKey",defaultMessage:"Removing Private Key..."}),uploading_text:(0,A.defineMessage)({id:"admin.saml.uploading.privateKey",defaultMessage:"Uploading Private Key..."}),fileType:".key",upload_action:p.xA,remove_action:p.C6,isDisabled:Qt(Jt(ga(_.AUTHENTICATION.SAML)),ta("SamlSettings.Enable"),ta("SamlSettings.Encrypt"))},{type:"fileupload",key:"SamlSettings.PublicCertificateFile",label:(0,A.defineMessage)({id:"admin.saml.publicCertificateFileTitle",defaultMessage:"Service Provider Public Certificate:"}),help_text:(0,A.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,A.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,A.defineMessage)({id:"admin.saml.remove.sp_certificate",defaultMessage:"Remove Service Provider Certificate"}),removing_text:(0,A.defineMessage)({id:"admin.saml.removing.certificate",defaultMessage:"Removing Certificate..."}),uploading_text:(0,A.defineMessage)({id:"admin.saml.uploading.certificate",defaultMessage:"Uploading Certificate..."}),fileType:".crt,.cer",upload_action:p.bY,remove_action:p.wL,isDisabled:Qt(Jt(ga(_.AUTHENTICATION.SAML)),ta("SamlSettings.Enable"),ta("SamlSettings.Encrypt"))},{type:"bool",key:"SamlSettings.SignRequest",label:(0,A.defineMessage)({id:"admin.saml.signRequestTitle",defaultMessage:"Sign Request:"}),help_text:(0,A.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:Qt(Jt(ga(_.AUTHENTICATION.SAML)),ta("SamlSettings.Encrypt"),ta("SamlSettings.PrivateKeyFile"),ta("SamlSettings.PublicCertificateFile"))},{type:"dropdown",key:"SamlSettings.SignatureAlgorithm",label:(0,A.defineMessage)({id:"admin.saml.signatureAlgorithmTitle",defaultMessage:"Signature Algorithm"}),isDisabled:Qt(Jt(ga(_.AUTHENTICATION.SAML)),ta("SamlSettings.Encrypt"),ta("SamlSettings.SignRequest")),options:[{value:"RSAwithSHA1",display_name:(0,A.defineMessage)({id:"admin.saml.signatureAlgorithmDisplay.sha1",defaultMessage:"RSAwithSHA1"}),help_text:(0,A.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,A.defineMessage)({id:"admin.saml.signatureAlgorithmDisplay.sha256",defaultMessage:"RSAwithSHA256"}),help_text:(0,A.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,A.defineMessage)({id:"admin.saml.signatureAlgorithmDisplay.sha512",defaultMessage:"RSAwithSHA512"}),help_text:(0,A.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,A.defineMessage)({id:"admin.saml.canonicalAlgorithmTitle",defaultMessage:"Canonicalization Algorithm"}),options:[{value:"Canonical1.0",display_name:(0,A.defineMessage)({id:"admin.saml.canonicalAlgorithmDisplay.n10",defaultMessage:"Exclusive XML Canonicalization 1.0 (omit comments)"}),help_text:(0,A.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,A.defineMessage)({id:"admin.saml.canonicalAlgorithmDisplay.n11",defaultMessage:"Canonical XML 1.1 (omit comments)"}),help_text:(0,A.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:Qt(Jt(ga(_.AUTHENTICATION.SAML)),ta("SamlSettings.Encrypt"),ta("SamlSettings.SignRequest"))},{type:"text",key:"SamlSettings.EmailAttribute",label:(0,A.defineMessage)({id:"admin.saml.emailAttrTitle",defaultMessage:"Email Attribute:"}),placeholder:(0,A.defineMessage)({id:"admin.saml.emailAttrEx",defaultMessage:'E.g.: "Email" or "PrimaryEmail"'}),help_text:(0,A.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:Qt(Jt(ga(_.AUTHENTICATION.SAML)),ta("SamlSettings.Enable"))},{type:"text",key:"SamlSettings.UsernameAttribute",label:(0,A.defineMessage)({id:"admin.saml.usernameAttrTitle",defaultMessage:"Username Attribute:"}),placeholder:(0,A.defineMessage)({id:"admin.saml.usernameAttrEx",defaultMessage:'E.g.: "Username"'}
1),help_text:(0,A.defineMessage)({id:"admin.saml.usernameAttrDesc",defaultMessage:"The attribute in the SAML Assertion that will be used to populate the username field in Mattermost."}),isDisabled:Qt(Jt(ga(_.AUTHENTICATION.SAML)),ta("SamlSettings.Enable"))},{type:"text",key:"SamlSettings.IdAttribute",label:(0,A.defineMessage)({id:"admin.saml.idAttrTitle",defaultMessage:"Id Attribute:"}),placeholder:(0,A.defineMessage)({id:"admin.saml.idAttrEx",defaultMessage:'E.g.: "Id"'}),help_text:(0,A.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:Qt(Jt(ga(_.AUTHENTICATION.SAML)),ta("SamlSettings.Enable"))},{type:"text",key:"SamlSettings.GuestAttribute",label:(0,A.defineMessage)({id:"admin.saml.guestAttrTitle",defaultMessage:"Guest Attribute:"}),placeholder:(0,A.defineMessage)({id:"admin.saml.guestAttrEx",defaultMessage:'E.g.: "usertype=Guest" or "isGuest=true"'}),help_text:(0,A.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.\n \nNote: 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**.\n \n \nExisting 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:Qt(Jt(ga(_.AUTHENTICATION.SAML)),sa("GuestAccountsSettings","Enable"),ta("SamlSettings.Enable"))},{type:"bool",key:"SamlSettings.EnableAdminAttribute",label:(0,A.defineMessage)({id:"admin.saml.enableAdminAttrTitle",defaultMessage:"Enable Admin Attribute:"}),isDisabled:Qt(Jt(pa),ta("SamlSettings.Enable"))},{type:"text",key:"SamlSettings.AdminAttribute",label:(0,A.defineMessage)({id:"admin.saml.adminAttrTitle",defaultMessage:"Admin Attribute:"}),placeholder:(0,A.defineMessage)({id:"admin.saml.adminAttrEx",defaultMessage:'E.g.: "usertype=Admin" or "isAdmin=true"'}),help_text:(0,A.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.\n \nExisting 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**."}),help_text_markdown:!0,isDisabled:Qt(Jt(pa),ta("SamlSettings.EnableAdminAttribute"),ta("SamlSettings.Enable"))},{type:"text",key:"SamlSettings.FirstNameAttribute",label:(0,A.defineMessage)({id:"admin.saml.firstnameAttrTitle",defaultMessage:"First Name Attribute:"}),placeholder:(0,A.defineMessage)({id:"admin.saml.firstnameAttrEx",defaultMessage:'E.g.: "FirstName"'}),help_text:(0,A.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:Qt(Jt(ga(_.AUTHENTICATION.SAML)),ta("SamlSettings.Enable"))},{type:"text",key:"SamlSettings.LastNameAttribute",label:(0,A.defineMessage)({id:"admin.saml.lastnameAttrTitle",defaultMessage:"Last Name Attribute:"}),placeholder:(0,A.defineMessage)({id:"admin.saml.lastnameAttrEx",defaultMessage:'E.g.: "LastName"'}
1),help_text:(0,A.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:Qt(Jt(ga(_.AUTHENTICATION.SAML)),ta("SamlSettings.Enable"))},{type:"text",key:"SamlSettings.NicknameAttribute",label:(0,A.defineMessage)({id:"admin.saml.nicknameAttrTitle",defaultMessage:"Nickname Attribute:"}),placeholder:(0,A.defineMessage)({id:"admin.saml.nicknameAttrEx",defaultMessage:'E.g.: "Nickname"'}),help_text:(0,A.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:Qt(Jt(ga(_.AUTHENTICATION.SAML)),ta("SamlSettings.Enable"))},{type:"text",key:"SamlSettings.PositionAttribute",label:(0,A.defineMessage)({id:"admin.saml.positionAttrTitle",defaultMessage:"Position Attribute:"}),placeholder:(0,A.defineMessage)({id:"admin.saml.positionAttrEx",defaultMessage:'E.g.: "Role"'}),help_text:(0,A.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:Qt(Jt(ga(_.AUTHENTICATION.SAML)),ta("SamlSettings.Enable"))},{type:"custom",key:"SamlSettings.CustomProfileAttributes",component:Sa,isHidden:Jt(Kt(da(ve.gS.Enterprise),aa("FeatureFlags","CustomProfileAttributes")))},{type:"text",key:"SamlSettings.LocaleAttribute",label:(0,A.defineMessage)({id:"admin.saml.localeAttrTitle",defaultMessage:"Preferred Language Attribute:"}),placeholder:(0,A.defineMessage)({id:"admin.saml.localeAttrEx",defaultMessage:'E.g.: "Locale" or "PrimaryLanguage"'}),help_text:(0,A.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:Qt(Jt(ga(_.AUTHENTICATION.SAML)),ta("SamlSettings.Enable"))},{type:"text",key:"SamlSettings.LoginButtonText",label:(0,A.defineMessage)({id:"admin.saml.loginButtonTextTitle",defaultMessage:"Login Button Text:"}),placeholder:(0,A.defineMessage)({id:"admin.saml.loginButtonTextEx",defaultMessage:'E.g.: "OKTA"'}),help_text:(0,A.defineMessage)({id:"admin.saml.loginButtonTextDesc",defaultMessage:'(Optional) The text that appears in the login button on the login page. Defaults to "SAML".'}),isDisabled:Qt(Jt(ga(_.AUTHENTICATION.SAML)),ta("SamlSettings.Enable"))}]},restrictedIndicator:Ma()},saml_feature_discovery:{url:"authentication/saml",isDiscovery:!0,title:(0,A.defineMessage)({id:"admin.sidebar.saml",defaultMessage:"SAML 2.0"}
1),isHidden:Qt(la("SAML")),schema:{id:"SamlSettings",name:(0,A.defineMessage)({id:"admin.authentication.saml",defaultMessage:"SAML 2.0"}),settings:[{type:"custom",component:()=>C.createElement(dl,{featureName:"saml",minimumSKURequiredForFeature:ve.gS.Professional,title:(0,A.defineMessage)({id:"admin.saml_feature_discovery.title",defaultMessage:"Integrate SAML 2.0 with Mattermost Professional"}),copy:(0,A.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:C.createElement(gl,{width:276,height:170})}),key:"SAMLFeatureDiscovery",isDisabled:Jt(ga(_.ABOUT.EDITION_AND_LICENSE))}]},restrictedIndicator:Ma(!0)},oauth:{url:"authentication/oauth",title:(0,A.defineMessage)({id:"admin.sidebar.oauth",defaultMessage:"OAuth 2.0"}
1),isHidden:Qt(Qt(Jt(ia),oa("starter")),Kt(la("OpenId"),Jt(Ea)),Jt(ma(_.AUTHENTICATION.OPENID))),schema:{id:"OAuthSettings",name:(0,A.defineMessage)({id:"admin.authentication.oauth",defaultMessage:"OAuth 2.0"}),onConfigLoad:e=>{const t={};return e.GitLabSettings?.Enable&&(t.oauthType=ve.YM.GITLAB_SERVICE),e.Office365Settings?.Enable&&(t.oauthType=ve.YM.OFFICE365_SERVICE),e.GoogleSettings?.Enable&&(t.oauthType=ve.YM.GOOGLE_SERVICE),t["GitLabSettings.Url"]=e.GitLabSettings?.UserAPIEndpoint?.replace("/api/v4/user",""),t},onConfigSave:e=>{const t={...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===ve.YM.GITLAB_SERVICE&&(t.GitLabSettings.Enable=!0),e.oauthType===ve.YM.OFFICE365_SERVICE&&(t.Office365Settings.Enable=!0),e.oauthType===ve.YM.GOOGLE_SERVICE&&(t.GoogleSettings.Enable=!0),delete t.oauthType,t},settings:[{type:"custom",component:Hd,key:"OpenIdConvert",isHidden:Qt(Kt(Jt(la("OpenId")),Jt(ra)),Jt(Ea)),isDisabled:Jt(ga(_.AUTHENTICATION.OPENID))},{type:"dropdown",key:"oauthType",label:(0,A.defineMessage)({id:"admin.openid.select",defaultMessage:"Select service provider:"}),options:[{value:"off",display_name:(0,A.defineMessage)({id:"admin.oauth.off",defaultMessage:"Do not allow sign-in via an OAuth 2.0 provider."})},{value:ve.YM.GITLAB_SERVICE,display_name:(0,A.defineMessage)({id:"admin.oauth.gitlab",defaultMessage:"GitLab"}),help_text:(0,A.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=>`<${e}>/login/gitlab/complete`,signupUrlChunk:e=>`<${e}>/signup/gitlab/complete`},help_text_markdown:!0},{value:ve.YM.GOOGLE_SERVICE,display_name:(0,A.defineMessage)({id:"admin.oauth.google",defaultMessage:"Google Apps"}),isHidden:Kt(Jt(la("GoogleOAuth")),Jt(ra)),help_text:(0,A.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=>C.createElement(Ge.A,{location:"admin_console",href:"https://accounts.google.com/login"},e),linkConsole:e=>C.createElement(Ge.A,{location:"admin_console",href:"https://console.developers.google.com"},e),linkAPI:e=>C.createElement(Ge.A,{location:"admin_console",href:"https://console.developers.google.com/apis/library/people.googleapis.com"},e),strong:e=>C.createElement("strong",null,e)}},{value:ve.YM.OFFICE365_SERVICE,display_name:(0,A.defineMessage)({id:"admin.oauth.office365",defaultMessage:"Entra ID"}),isHidden:Kt(Jt(la("Office365OAuth")),Jt(ra)),help_text:(0,A.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=>C.createElement(Ge.A,{location:"admin_console",href:"https://entra.microsoft.com"},e),linkTenant:e=>C.createElement(Ge.A,{location:"admin_console",href:"https://msdn.microsoft.com/en-us
1/library/azure/jj573650.aspx#Anchor_0"},e),linkApps:e=>C.createElement(Ge.A,{location:"admin_console",href:"https://entra.microsoft.com"},e),strong:e=>C.createElement("strong",null,e)}}],isDisabled:Jt(ga(_.AUTHENTICATION.OPENID))},{type:"text",key:"GitLabSettings.Id",label:(0,A.defineMessage)({id:"admin.gitlab.clientIdTitle",defaultMessage:"Application ID:"}),help_text:(0,A.defineMessage)({id:"admin.gitlab.clientIdDescription",defaultMessage:"Obtain this value via the instructions above for logging into GitLab."}),placeholder:(0,A.defineMessage)({id:"admin.gitlab.clientIdExample",defaultMessage:'E.g.: "jcuS8PuvcpGhpgHhlcpT1Mx42pnqMxQY"'}),isHidden:Jt($t("oauthType","gitlab")),isDisabled:Jt(ga(_.AUTHENTICATION.OPENID))},{type:"text",key:"GitLabSettings.Secret",label:(0,A.defineMessage)({id:"admin.gitlab.clientSecretTitle",defaultMessage:"Application Secret Key:"}),help_text:(0,A.defineMessage)({id:"admin.gitlab.clientSecretDescription",defaultMessage:"Obtain this value via the instructions above for logging into GitLab."}),placeholder:(0,A.defineMessage)({id:"admin.gitlab.clientSecretExample",defaultMessage:'E.g.: "jcuS8PuvcpGhpgHhlcpT1Mx42pnqMxQY"'}),isHidden:Jt($t("oauthType","gitlab")),isDisabled:Jt(ga(_.AUTHENTICATION.OPENID))},{type:"text",key:"GitLabSettings.Url",label:(0,A.defineMessage)({id:"admin.gitlab.siteUrl",defaultMessage:"GitLab Site URL:"}),help_text:(0,A.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,A.defineMessage)({id:"admin.gitlab.siteUrlExample",defaultMessage:"E.g.: https://"}),isHidden:Jt($t("oauthType","gitlab")),isDisabled:Jt(ga(_.AUTHENTICATION.OPENID))},{type:"text",key:"GitLabSettings.UserAPIEndpoint",label:(0,A.defineMessage)({id:"admin.gitlab.userTitle",defaultMessage:"User API Endpoint:"}),dynamic_value:(e,t,a)=>a["GitLabSettings.Url"]?a["GitLabSettings.Url"].replace(/\/$/,"")+"/api/v4/user":"",isDisabled:!0,isHidden:Jt($t("oauthType","gitlab"))},{type:"text",key:"GitLabSettings.AuthEndpoint",label:(0,A.defineMessage)({id:"admin.gitlab.authTitle",defaultMessage:"Auth Endpoint:"}),dynamic_value:(e,t,a)=>a["GitLabSettings.Url"]?a["GitLabSettings.Url"].replace(/\/$/,"")+"/oauth/authorize":"",isDisabled:!0,isHidden:Jt($t("oauthType","gitlab"))},{type:"text",key:"GitLabSettings.TokenEndpoint",label:(0,A.defineMessage)({id:"admin.gitlab.tokenTitle",defaultMessage:"Token Endpoint:"}),dynamic_value:(e,t,a)=>a["GitLabSettings.Url"]?a["GitLabSettings.Url"].replace(/\/$/,"")+"/oauth/token":"",isDisabled:!0,isHidden:Jt($t("oauthType","gitlab"))},{type:"text",key:"GoogleSettings.Id",label:(0,A.defineMessage)({id:"admin.google.clientIdTitle",defaultMessage:"Client ID:"}),help_text:(0,A.defineMessage)({id:"admin.google.clientIdDescription",defaultMessage:"The Client ID you received when registering your application with Google."}),placeholder:(0,A.defineMessage)({id:"admin.google.clientIdExample",defaultMessage:'E.g.: "7602141235235-url0fhs1mayfasbmop5qlfns8dh4.apps.googleusercontent.com"'}),isHidden:Jt($t("oauthType","google")),isDisabled:Jt(ga(_.AUTHENTICATION.OPENID))},{type:"text",key:"GoogleSettings.Secret",label:(0,A.defineMessage)({id:"admin.google.clientSecretTitle",defaultMessage:"Client Secret:"}),help_text:(0,A.defineMessage)({id:"admin.google.clientSecretDescription",defaultMessage:"The Client Secret you received when registering your application with Google."}),placeholder:(0,A.defineMessage)({id:"admin.google.clientSecretExample",defaultMessage:'E.g.: "H8sz0Az-dDs2p15-7QzD231"'}),isHidden:Jt($t("oauthType","google")),isDisabled:Jt(ga(_.AUTHENTICATION.OPENID))},{type:"text",key:"GoogleSettings.UserAPIEndpoint",label:(0,A.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:Jt($t("oauthType","google"))},{type:"text",key:"GoogleSettings.AuthEndpoint",label:(0,A.defineMessage)({id:"admin.google.authTitle",defaultMessage:"Auth Endpoint:"}),dynamic_value:()=>"https://accounts.google.com/o/oauth2/v2/auth",isDisabled:!0,isHidden:Jt($t("oauthType","google"))},{type:"text",key:"GoogleSettings.TokenEndpoint",label:(0,A.defineMessage)({id:"admin.google.tokenTitle",defaultMessage:"Token Endpoint:"}),dynamic_value:()=>"https://www.googleapis.com/oauth2/v4/token",isDisabled:!0,isHidden:Jt($t("oauthType","google"))},{type:"text",key:"Office365Settings.Id",label:(0,A.defineMessage)({id:"admin.office365.clientIdTitle",defaultMessage:"Application ID:"}),help_text:(0,A.defineMessage)({id:"admin.office365.clientIdDescription",defaultMessage:"The Application/Client ID you received when registering your application with Microsoft."}),placeholder:(0,A.defineMessage)({id:"admin.office365.clientIdExample",defaultMessage:'E.g.: "adf3sfa2-ag3f-sn4n-ids0-sh1hdax192qq"'}),isHidden:Jt($t("oauthType","office365")),isDisabled:Jt(ga(_.AUTHENTICATION.OPENID))},{type:"text",key:"Office365Settings.Secret",label:(0,A.defineMessage)({id:"admin.office365.clientSecretTitle",defaultMessage:"Application Secret Password:"}),help_text:(0,A.defineMessage)({id:"admin.office365.clientSecretDescription",defaultMessage:"The Application Secret Password you generated
1when registering your application with Microsoft."}),placeholder:(0,A.defineMessage)({id:"admin.office365.clientSecretExample",defaultMessage:'E.g.: "shAieM47sNBfgl20f8ci294"'}),isHidden:Jt($t("oauthType","office365")),isDisabled:Jt(ga(_.AUTHENTICATION.OPENID))},{type:"text",key:"Office365Settings.DirectoryId",label:(0,A.defineMessage)({id:"admin.office365.directoryIdTitle",defaultMessage:"Directory (tenant) ID:"}),help_text:(0,A.defineMessage)({id:"admin.office365.directoryIdDescription",defaultMessage:"The Directory (tenant) ID you received when registering your application with Microsoft."}),placeholder:(0,A.defineMessage)({id:"admin.office365.directoryIdExample",defaultMessage:'E.g.: "adf3sfa2-ag3f-sn4n-ids0-sh1hdax192qq"'}),isHidden:Jt($t("oauthType","office365")),isDisabled:Jt(ga(_.AUTHENTICATION.OPENID))},{type:"text",key:"Office365Settings.UserAPIEndpoint",label:(0,A.defineMessage)({id:"admin.office365.userTitle",defaultMessage:"User API Endpoint:"}),dynamic_value:()=>"https://graph.microsoft.com/v1.0/me",isDisabled:!0,isHidden:Jt($t("oauthType","office365"))},{type:"text",key:"Office365Settings.AuthEndpoint",label:(0,A.defineMessage)({id:"admin.office365.authTitle",defaultMessage:"Auth Endpoint:"}),dynamic_value:(e,t,a)=>a["Office365Settings.DirectoryId"]?"https://login.microsoftonline.com/"+a["Office365Settings.DirectoryId"]+"/oauth2/v2.0/authorize":"https://login.microsoftonline.com/{directoryId}/oauth2/v2.0/authorize",isDisabled:!0,isHidden:Jt($t("oauthType","office365"))},{type:"text",key:"Office365Settings.TokenEndpoint",label:(0,A.defineMessage)({id:"admin.office365.tokenTitle",defaultMessage:"Token Endpoint:"}),dynamic_value:(e,t,a)=>a["Office365Settings.DirectoryId"]?"https://login.microsoftonline.com/"+a["Office365Settings.DirectoryId"]+"/oauth2/v2.0/token":"https://login.microsoftonline.com/{directoryId}/oauth2/v2.0/token",isDisabled:!0,isHidden:Jt($t("oauthType","office365"))}]}},openid:{url:"authentication/openid",title:(0,A.defineMessage)({id:"admin.sidebar.openid",defaultMessage:"OpenID Connect"}
1),isHidden:Qt(Kt(Jt(la("OpenId")),Jt(ra)),Jt(ma(_.AUTHENTICATION.OPENID))),schema:{id:"OpenIdSettings",name:(0,A.defineMessage)({id:"admin.authentication.openid",defaultMessage:"OpenID Connect"}),onConfigLoad:e=>{const t={};return e.Office365Settings?.Enable&&(t.openidType=ve.YM.OFFICE365_SERVICE),e.GoogleSettings?.Enable&&(t.openidType=ve.YM.GOOGLE_SERVICE),e.GitLabSettings?.Enable&&(t.openidType=ve.YM.GITLAB_SERVICE),e.OpenIdSettings?.Enable&&(t.openidType=ve.YM.OPENID_SERVICE),e.GitLabSettings?.UserAPIEndpoint?t["GitLabSettings.Url"]=e.GitLabSettings.UserAPIEndpoint.replace("/api/v4/user",""):e.GitLabSettings?.DiscoveryEndpoint&&(t["GitLabSettings.Url"]=e.GitLabSettings.DiscoveryEndpoint.replace("/.well-known/openid-configuration","")),t},onConfigSave:e=>{const t={...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 a="";return e.openidType===ve.YM.OFFICE365_SERVICE?a="Office365Settings":e.openidType===ve.YM.GOOGLE_SERVICE?a="GoogleSettings":e.openidType===ve.YM.GITLAB_SERVICE?a="GitLabSettings":e.openidType===ve.YM.OPENID_SERVICE&&(a="OpenIdSettings"),""!==a&&(t[a].Enable=!0,t[a].Scope=ve.YM.OPENID_SCOPES,t[a].UserAPIEndpoint="",t[a].AuthEndpoint="",t[a].TokenEndpoint=""),delete t.openidType,t},settings:[{type:"custom",component:Hd,key:"OpenIdConvert",isHidden:Qt(Jt(Ea)),isDisabled:Jt(ga(_.AUTHENTICATION.OPENID))},{type:"dropdown",key:"openidType",label:(0,A.defineMessage)({id:"admin.openid.select",defaultMessage:"Select service provider:"}),isHelpHidden:Kt($t("openidType",ve.YM.OPENID_SERVICE),ca),options:[{value:"off",display_name:(0,A.defineMessage)({id:"admin.openid.off",defaultMessage:"Do not allow sign-in via an OpenID provider."})},{value:ve.YM.GITLAB_SERVICE,display_name:(0,A.defineMessage)({id:"admin.openid.gitlab",defaultMessage:"GitLab"}),help_text:(0,A.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=>`<${e}>/login/gitlab/complete`,signupUrlChunk:e=>`<${e}>/signup/gitlab/complete`},help_text_markdown:!1},{value:ve.YM.GOOGLE_SERVICE,display_name:(0,A.defineMessage)({id:"admin.openid.google",defaultMessage:"Google Apps"}),help_text:(0,A.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=>C.createElement(Ge.A,{location:"admin_console",href:"https://accounts.google.com/login"},e),linkConsole:e=>C.createElement(Ge.A,{location:"admin_console",href:"https://console.developers.google.com"},e),linkAPI:e=>C.createElement(Ge.A,{location:"admin_console",href:"https://console.developers.google.com/apis/library/people.googleapis.com"},e),strong:e=>C.createElement("strong",null,e)}},{value:ve.YM.OFFICE365_SERVICE,display_name:(0,A.defineMessage)({id:"admin.openid.office365",defaultMessage:"Entra ID"}),help_text:(0,A.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=>C.createElement(Ge.A,{location:"admin_console",href:"https://entra.microsoft.com"},e),linkTenant:e=>C.createElement(Ge.A,{location:"admin_console",href:"https://msdn.microsoft.com/en-us
1/library/azure/jj573650.aspx#Anchor_0"},e),linkApps:e=>C.createElement(Ge.A,{location:"admin_console",href:"https://entra.microsoft.com"},e),strong:e=>C.createElement("strong",null,e)}},{value:ve.YM.OPENID_SERVICE,display_name:(0,A.defineMessage)({id:"admin.oauth.openid",defaultMessage:"OpenID Connect (Other)"}),help_text:(0,A.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:Jt(ga(_.AUTHENTICATION.OPENID))},{type:"text",key:"GitLabSettings.Url",label:(0,A.defineMessage)({id:"admin.gitlab.siteUrl",defaultMessage:"GitLab Site URL:"}),help_text:(0,A.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,A.defineMessage)({id:"admin.gitlab.siteUrlExample",defaultMessage:"E.g.: https://"}),isHidden:Jt($t("openidType",ve.YM.GITLAB_SERVICE)),isDisabled:Jt(ga(_.AUTHENTICATION.OPENID))},{type:"text",key:"GitLabSettings.DiscoveryEndpoint",label:(0,A.defineMessage)({id:"admin.openid.discoveryEndpointTitle",defaultMessage:"Discovery Endpoint:"}),help_text:(0,A.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,a)=>a["GitLabSettings.Url"]?a["GitLabSettings.Url"].replace(/\/$/,"")+"/.well-known/openid-configuration":"",isDisabled:!0,isHidden:Jt($t("openidType",ve.YM.GITLAB_SERVICE))},{type:"text",key:"GitLabSettings.Id",label:(0,A.defineMessage)({id:"admin.openid.clientIdTitle",defaultMessage:"Client ID:"}),help_text:(0,A.defineMessage)({id:"admin.openid.clientIdDescription",defaultMessage:"Obtaining the Client ID differs across providers. Please check you provider's documentation."}),placeholder:(0,A.defineMessage)({id:"admin.gitlab.clientIdExample",defaultMessage:'E.g.: "jcuS8PuvcpGhpgHhlcpT1Mx42pnqMxQY"'}),isHidden:Jt($t("openidType",ve.YM.GITLAB_SERVICE)),isDisabled:Jt(ga(_.AUTHENTICATION.OPENID))},{type:"text",key:"GitLabSettings.Secret",label:(0,A.defineMessage)({id:"admin.openid.clientSecretTitle",defaultMessage:"Client Secret:"}),help_text:(0,A.defineMessage)({id:"admin.openid.clientSecretDescription",defaultMessage:"Obtaining the Client Secret differs across providers. Please check you provider's documentation."}),placeholder:(0,A.defineMessage)({id:"admin.gitlab.clientSecretExample",defaultMessage:'E.g.: "jcuS8PuvcpGhpgHhlcpT1Mx42pnqMxQY"'}),isHidden:Jt($t("openidType",ve.YM.GITLAB_SERVICE)),isDisabled:Jt(ga(_.AUTHENTICATION.OPENID))},{type:"text",key:"GoogleSettings.DiscoveryEndpoint",label:(0,A.defineMessage)({id:"admin.openid.discoveryEndpointTitle",defaultMessage:"Discovery Endpoint:"}),help_text:(0,A.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:Jt($t("openidType",ve.YM.GOOGLE_SERVICE))},{type:"text",key:"GoogleSettings.Id",label:(0,A.defineMessage)({id:"admin.openid.clientIdTitle",defaultMessage:"Client ID:"}),help_text:(0,A.defineMessage)({id:"admin.openid.clientIdDescription",defaultMessage:"Obtaining the Client ID differs across providers. Please check you provider's documentation."}),placeholder:(0,A.defineMessage)({id:"admin.google.clientIdExample",defaultMessage:'E.g.: "7602141235235-url0fhs1mayfasbmop5qlfns8dh4.apps.googleusercontent.com"'}),isHidden:Jt($t("openidType",ve.YM.GOOGLE_SERVICE)),isDisabled:Jt(ga(_.AUTHENTICATION.OPENID))},{type:"text",key:"GoogleSettings.Secret",label:(0,A.defineMessage)({id:"admin.openid.clientSecretTitle",defaultMessage:"Client Secret:"}),help_text:(0,A.defineMessage)({id:"admin.openid.clientSecretDescription",defaultMessage:"Obtaining the Client Secret differs across providers. Please check you provider's documentation."}),placeholder:(0,A.defineMessage)({id:"admin.google.clientSecretExample",defaultMessage:'E.g.: "H8sz0Az-dDs2p15-7QzD231"'}),isHidden:Jt($t("openidType",ve.YM.GOOGLE_SERVICE)),isDisabled:Jt(ga(_.AUTHENTICATION.OPENID))},{type:"text",key:"Office365Settings.DirectoryId",label:(0,A.defineMessage)({id:"admin.office365.directoryIdTitle",defaultMessage:"Directory (tenant) ID:"}),help_text:(0,A.defineMessage)({id:"admin.office365.directoryIdDescription",defaultMessage:"The Directory (tenant) ID you received when registering your application with Microsoft."}),placeholder:(0,A.defineMessage)({id:"admin.office365.directoryIdExample",defaultMessage:'E.g.: "adf3sfa2-ag3f-sn4n-ids0-sh1hdax192qq"'}),isHidden:Jt($t("openidType",ve.YM.OFFICE365_SERVICE)),isDisabled:Jt(ga(_.AUTHENTICATION.OPENID))},{type:"text",key:"Office365Settings.DiscoveryEndpoint",label:(0,A.defineMessage)({id:"admin.openid.discoveryEndpointTitle",defaultMessage:"Discovery Endpoint:"}),help_text:(0,A.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,a)=>a["Office365Settings.DirectoryId"]?"https://login.microsoftonline.com/"+a["Office365Settings.DirectoryId"]+"/v2.0/.well-known/openid-configuration":"https://login.microsoftonline.com/common/v2.0/.well-known/openid-configuration",isDisabled:!0,isHidden:Jt($t("openidType",ve.YM.OFFICE365_SERVICE))},{type:"text",key:"Office365Settings.Id",label:(0,A.defineMessage)({id:"admin.openid.clientIdTitle",defaultMessage:"Client ID:"}),help_text:(0,A.defineMessage)({id:"admin.openid.clientIdDescription",defaultMessage:"Obtaining the Client ID differs across providers. Please check you provider's documentation."}),placeholder:(0,A.defineMessage)({id:"admin.office365.clientIdExample",defaultMessage:'E.g.: "adf3sfa2-ag3f-sn4n-ids0-sh1hdax192qq"'}),isHidden:Jt($t("openidType",ve.YM.OFFICE365_SERVICE)),isDisabled:Jt(ga(_.AUTHENTICATION.OPENID))},{type:"text",key:"Office365Settings.Secret",label:(0,A.defineMessage)({id:"admin.openid.clientSecretTitle",defaultMessage:"Client Secret:"}),help_text:(0,A.defineMessage)({id:"admin.openid.clientSecretDescription",defaultMessage:"Obtaining the Client Secret differs across providers. Please check you provider's documentation."}),placeholder:(0,A.defineMessage)({id:"admin.office365.clientSecretExample",defaultMessage:'E.g.: "shAieM47sNBfgl20f8ci294"'}),isHidden:Jt($t("openidType",ve.YM.OFFICE365_SERVICE)),isDisabled:Jt(ga(_.AUTHENTICATION.OPENID))},{type:"text",key:"OpenIdSettings.ButtonText",label:(0,A.defineMessage)({id:"admin.openid.buttonTextTitle",defaultMessage:"Button Name:"}),placeholder:(0,A.defineMessage)({id:"admin.openid.buttonTextEx",defaultMessage:"Custom Button Name"}),help_text:(0,A.defineMessage)({id:"admin.openid.buttonTextDesc",defaultMessage:"The text that will show on the login button."}
1),isHidden:Qt(Jt($t("openidType",ve.YM.OPENID_SERVICE)),ca),isDisabled:Jt(ga(_.AUTHENTICATION.OPENID))},{type:"color",key:"OpenIdSettings.ButtonColor",label:(0,A.defineMessage)({id:"admin.openid.buttonColorTitle",defaultMessage:"Button Color:"}),help_text:(0,A.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:Qt(Jt($t("openidType",ve.YM.OPENID_SERVICE)),ca),isDisabled:Jt(ga(_.AUTHENTICATION.OPENID))},{type:"text",key:"OpenIdSettings.DiscoveryEndpoint",label:(0,A.defineMessage)({id:"admin.openid.discoveryEndpointTitle",defaultMessage:"Discovery Endpoint:"}),placeholder:(0,A.defineMessage)({id:"admin.openid.discovery.placeholder",defaultMessage:"https://id.mydomain.com/.well-known/openid-configuration"}),help_text:(0,A.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:Qt(Jt($t("openidType",ve.YM.OPENID_SERVICE)),ca),isDisabled:Jt(ga(_.AUTHENTICATION.OPENID))},{type:"text",key:"OpenIdSettings.Id",label:(0,A.defineMessage)({id:"admin.openid.clientIdTitle",defaultMessage:"Client ID:"}),help_text:(0,A.defineMessage)({id:"admin.openid.clientIdDescription",defaultMessage:"Obtaining the Client ID differs across providers. Please check you provider's documentation."}),placeholder:(0,A.defineMessage)({id:"admin.openid.clientIdExample",defaultMessage:'E.g.: "adf3sfa2-ag3f-sn4n-ids0-sh1hdax192qq"'}
1),isHidden:Qt(Jt($t("openidType",ve.YM.OPENID_SERVICE)),ca),isDisabled:Jt(ga(_.AUTHENTICATION.OPENID))},{type:"text",key:"OpenIdSettings.Secret",label:(0,A.defineMessage)({id:"admin.openid.clientSecretTitle",defaultMessage:"Client Secret:"}),help_text:(0,A.defineMessage)({id:"admin.openid.clientSecretDescription",defaultMessage:"Obtaining the Client Secret differs across providers. Please check you provider's documentation."}),placeholder:(0,A.defineMessage)({id:"admin.openid.clientSecretExample",defaultMessage:'E.g.: "H8sz0Az-dDs2p15-7QzD231"'}),isHidden:Qt(Jt($t("openidType",ve.YM.OPENID_SERVICE)),ca),isDisabled:Jt(ga(_.AUTHENTICATION.OPENID))},{type:"bool",key:"GitLabSettings.UsePreferredUsername",label:(0,A.defineMessage)({id:"admin.openid.usePreferredUsernameTitle",defaultMessage:"Use Preferred Username:"}),help_text:(0,A.defineMessage)({id:"admin.openid.usePreferredUsernameDescription",defaultMessage:"When true, use the `preferred_username` claim as the Mattermost username for the user. The scope must include `profile` and `openid` to use this feature."}),help_text_markdown:!0,isHidden:Jt($t("openidType",ve.YM.GITLAB_SERVICE)),isDisabled:Jt(ga(_.AUTHENTICATION.OPENID))},{type:"bool",key:"Office365Settings.UsePreferredUsername",label:(0,A.defineMessage)({id:"admin.openid.usePreferredUsernameTitle",defaultMessage:"Use Preferred Username:"}),help_text:(0,A.defineMessage)({id:"admin.openid.usePreferredUsernameDescription",defaultMessage:"When true, use the `preferred_username` claim as the Mattermost username for the user. The scope must include `profile` and `openid` to use this feature."}),help_text_markdown:!0,isHidden:Jt($t("openidType",ve.YM.OFFICE365_SERVICE)),isDisabled:Jt(ga(_.AUTHENTICATION.OPENID))},{type:"bool",key:"OpenIdSettings.UsePreferredUsername",label:(0,A.defineMessage)({id:"admin.openid.usePreferredUsernameTitle",defaultMessage:"Use Preferred Username:"}),help_text:(0,A.defineMessage)({id:"admin.openid.usePreferredUsernameDescription",defaultMessage:"When true, use the `preferred_username` claim as the Mattermost username for the user. The scope must include `profile` and `openid` to use this feature."}),help_text_markdown:!0,isHidden:Jt($t("openidType",ve.YM.OPENID_SERVICE)),isDisabled:Jt(ga(_.AUTHENTICATION.OPENID))},{type:"custom",key:"OpenIDCustomFeatureDiscovery",component:()=>C.createElement(dl,{featureName:"openid",minimumSKURequiredForFeature:ve.gS.Professional,title:(0,A.defineMessage)({id:"admin.openid_custom_feature_discovery.title",defaultMessage:"Integrate OpenID Connect with Mattermost Professional"}),copy:(0,A.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:C.createElement(gl,{width:276,height:170})}),isHidden:Jt(Kt($t("openidType",ve.YM.OPENID_SERVICE),ca)),isDisabled:Jt(ga(_.AUTHENTICATION.OPENID))}]},restrictedIndicator:Ma()},openid_feature_discovery:{url:"authentication/openid",isDiscovery:!0,title:(0,A.defineMessage)({id:"admin.sidebar.openid",defaultMessage:"OpenID Connect"}
1),isHidden:Qt(Qt(la("OpenId"),ra)),schema:{id:"OpenIdSettings",name:(0,A.defineMessage)({id:"admin.authentication.openid",defaultMessage:"OpenID Connect"}),settings:[{type:"custom",component:()=>C.createElement(dl,{featureName:"openid",minimumSKURequiredForFeature:ve.gS.Professional,title:(0,A.defineMessage)({id:"admin.openid_feature_discovery.title",defaultMessage:"Integrate OpenID Connect with Mattermost Professional"}),copy:(0,A.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:C.createElement(gl,{width:276,height:170})}),key:"OpenIDFeatureDiscovery",isDisabled:Jt(ga(_.ABOUT.EDITION_AND_LICENSE))}]},restrictedIndicator:Ma(!0)},gitlab_feature_discovery:{url:"authentication/gitlab",isDiscovery:!0,title:(0,A.defineMessage)({id:"admin.sidebar.gitlab",defaultMessage:"GitLab"}
1),isHidden:Qt(la("OpenId")),schema:{id:"GitLabSettings",name:(0,A.defineMessage)({id:"admin.authentication.gitlab",defaultMessage:"GitLab"}),settings:[{type:"custom",component:()=>C.createElement(dl,{featureName:"gitlab",minimumSKURequiredForFeature:ve.gS.Professional,title:(0,A.defineMessage)({id:"admin.gitlab_feature_discovery.title",defaultMessage:"Integrate GitLab SSO with OpenID Connect in Mattermost Professional"}),copy:(0,A.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:C.createElement(gl,{width:276,height:170})}),key:"GitLabFeatureDiscovery",isDisabled:Jt(ga(_.ABOUT.EDITION_AND_LICENSE))}]},restrictedIndicator:Ma(!0)},guest_access:{url:"authentication/guest_access",title:(0,A.defineMessage)({id:"admin.sidebar.guest_access",defaultMessage:"Guest Access"}),searchableStrings:Ji,isHidden:Qt(Jt(la("GuestAccounts")),Jt(ma(_.AUTHENTICATION.GUEST_ACCESS))),schema:{id:"GuestAccountsSettings",name:(0,A.defineMessage)({id:"admin.authentication.guest_access",defaultMessage:"Guest Access"}),settings:[{type:"custom",component:e=>{let{id:t,value:a,onChange:s,cancelSubmit:n,disabled:i,setByEnv:r,showConfirm:l}=e;const o=(0,C.useCallback)((function(e,t){let a=arguments.length>2&&void 0!==arguments[2]&&arguments[2];const n=!1===t;let i="";n&&(i=C.createElement(A.FormattedMessage,{id:"admin.guest_access.disableConfirmWarning",defaultMessage:"All current guest account sessions will be revoked, and marked as inactive"})),s(e,t,n,a,i)}),[s]),d=(0,C.useCallback)((()=>{o(t,!1,!0)}),[o,t]),c=C.createElement(A.FormattedMessage,{id:"admin.guest_access.enableTitle",defaultMessage:"Enable Guest Access: "}),m=C.createElement(A.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=>C.createElement(T.Link,{to:"/admin_console/user_management/permissions/system_scheme"},e)}});return C.createElement(C.Fragment,null,C.createElement(F,{id:t,value:a,label:c,helpText:m,setByEnv:r,onChange:o,disabled:i}),C.createElement(Aa.A,{show:l&&!1===a,title:C.createElement(A.FormattedMessage,{id:"admin.guest_access.disableConfirmTitle",defaultMessage:"Save and Disable Guest Access?"}),message:C.createElement(A.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:C.createElement(A.FormattedMessage,{id:"admin.guest_access.disableConfirmButton",defaultMessage:"Save and Disable Guest Access"}),onConfirm:d,onCancel:n}))},key:"GuestAccountsSettings.Enable",isDisabled:Jt(ga(_.AUTHENTICATION.GUEST_ACCESS))},{type:"bool",key:"GuestAccountsSettings.HideTags",label:(0,A.defineMessage)({id:"admin.guest_access.hideTags",defaultMessage:"Hide guest tag"}),help_text:(0,A.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:Jt(ga(_.AUTHENTICATION.GUEST_ACCESS))},{type:"text",key:"GuestAccountsSettings.RestrictCreationToDomains",label:(0,A.defineMessage)({id:"admin.guest_access.whitelistedDomainsTitle",defaultMessage:"Whitelisted Guest Domains:"}),help_text:(0,A.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,A.defineMessage)({id:"admin.guest_access.whitelistedDomainsExample",defaultMessage:'E.g.: "company.com, othercorp.org"'}),isDisabled:Jt(ga(_.AUTHENTICATION.GUEST_ACCESS))}
1,{type:"bool",key:"GuestAccountsSettings.EnforceMultifactorAuthentication",label:(0,A.defineMessage)({id:"admin.guest_access.mfaTitle",defaultMessage:"Enforce Multi-factor Authentication: "}),help_text:(0,A.defineMessage)({id:"admin.guest_access.mfaDescriptionMFANotEnabled",defaultMessage:"[Multi-factor authentication](./mfa) is currently not enabled."}),help_text_markdown:!0,isHidden:aa("ServiceSettings","EnableMultifactorAuthentication"),isDisabled:()=>!0},{type:"bool",key:"GuestAccountsSettings.EnforceMultifactorAuthentication",label:(0,A.defineMessage)({id:"admin.guest_access.mfaTitle",defaultMessage:"Enforce Multi-factor Authentication: "}),help_text:(0,A.defineMessage)({id:"admin.guest_access.mfaDescriptionMFANotEnforced",defaultMessage:"[Multi-factor authentication](./mfa) is currently not enforced."}),help_text_markdown:!0,isHidden:Qt(sa("ServiceSettings","EnableMultifactorAuthentication"),aa("ServiceSettings","EnforceMultifactorAuthentication")),isDisabled:()=>!0},{type:"bool",key:"GuestAccountsSettings.EnforceMultifactorAuthentication",label:(0,A.defineMessage)({id:"admin.guest_access.mfaTitle",defaultMessage:"Enforce Multi-factor Authentication: "}),help_text:(0,A.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=>C.createElement(Ge.A,{location:"admin_console",href:ve.Uk.MULTI_FACTOR_AUTH},e)},help_text_markdown:!1,isHidden:Qt(sa("ServiceSettings","EnableMultifactorAuthentication"),sa("ServiceSettings","EnforceMultifactorAuthentication")),isDisabled:Jt(ga(_.AUTHENTICATION.GUEST_ACCESS))},{type:"custom",component:e=>{let{id:t,value:a,onChange:s,cancelSubmit:n,disabled:i,setByEnv:r,showConfirm:l,config:o}=e;const d=o.GuestAccountsSettings.EnableGuestMagicLink,c=(0,C.useCallback)((function(e,t){let a=arguments.length>2&&void 0!==arguments[2]&&arguments[2];const n=d&&!1===t;let i="";n&&(i=C.createElement(A.FormattedMessage,Zi.disableMagicLinkConfirmWarning)),s(e,t,n,a,i)}),[d,s]),m=(0,C.useCallback)((()=>{c(t,!1,!0)}),[c,t]),u=(0,C.useMemo)((()=>({title:C.createElement(A.FormattedMessage,Zi.disableMagicLinkConfirmTitle),message:C.createElement(A.FormattedMessage,Zi.disableMagicLinkConfirmMessage),confirmButtonText:C.createElement(A.FormattedMessage,Zi.disableMagicLinkConfirmButton),label:C.createElement(A.FormattedMessage,Zi.enableGuestMagicLinkTitle),helpText:C.createElement(A.FormattedMessage,Zi.enableGuestMagicLinkDescription)})),[]);return C.createElement(C.Fragment,null,C.createElement(F,{id:t,value:a,label:u.label,helpText:u.helpText,setByEnv:r,onChange:c,disabled:i}),C.createElement(Aa.A,{show:l&&d&&!1===a,title:u.title,message:u.message,confirmButtonText:u.confirmButtonText,onConfirm:m,onCancel:n}))},key:"GuestAccountsSettings.EnableGuestMagicLink",isDisabled:Jt(ga(_.AUTHENTICATION.GUEST_ACCESS))}]},restrictedIndicator:Ma()},guest_access_feature_discovery:{isDiscovery:!0,url:"authentication/guest_access",title:(0,A.defineMessage)({id:"admin.sidebar.guest_access",defaultMessage:"Guest Access"}
1),isHidden:Qt(la("GuestAccounts")),schema:{id:"GuestAccountsSettings",name:(0,A.defineMessage)({id:"admin.authentication.guest_access",defaultMessage:"Guest Access"}),settings:[{type:"custom",component:()=>C.createElement(dl,{featureName:"guest_access",minimumSKURequiredForFeature:ve.gS.Professional,title:(0,A.defineMessage)({id:"admin.guest_access_feature_discovery.title",defaultMessage:"Enable guest accounts with Mattermost Professional"}),copy:(0,A.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:C.createElement(pl,null)}),key:"GuestAccessFeatureDiscovery",isDisabled:Jt(ga(_.ABOUT.EDITION_AND_LICENSE))}]},restrictedIndicator:Ma(!0)}}},plugins:{icon:C.createElement(w.PowerPlugOutlineIcon,{size:16,color:"currentColor"}),sectionTitle:(0,A.defineMessage)({id:"admin.sidebar.plugins",defaultMessage:"Plugins"}),id:"plugins",isHidden:Jt(ma("plugins")),subsections:{plugin_management:{url:"plugins/plugin_management",title:(0,A.defineMessage)({id:"admin.plugins.pluginManagement",defaultMessage:"Plugin Management"}),searchableStrings:Ra,isDisabled:Jt(ga("plugins")),schema:{id:"PluginManagementSettings",component:Da}},custom:{url:"plugins/plugin_:plugin_id",isDisabled:Jt(ga("plugins")),schema:{id:"CustomPluginSettings",component:ba}}}},integrations:{icon:C.createElement(w.SitemapIcon,{size:16,color:"currentColor"}),sectionTitle:(0,A.defineMessage)({id:"admin.sidebar.integrations",defaultMessage:"Integrations"}),id:"integrations",isHidden:Jt(ua(_.INTEGRATIONS)),subsections:{integration_management:{url:"integrations/integration_management",title:(0,A.defineMessage)({id:"admin.integrations.integrationManagement",defaultMessage:"Integration Management"}),isHidden:Kt(Jt(ma(_.INTEGRATIONS.INTEGRATION_MANAGEMENT))),schema:{id:"CustomIntegrationSettings",name:(0,A.defineMessage)({id:"admin.integrations.integrationManagement.title",defaultMessage:"Integration Management"}),settings:[{type:"bool",key:"ServiceSettings.EnableIncomingWebhooks",label:(0,A.defineMessage)({id:"admin.service.webhooksTitle",defaultMessage:"Enable Incoming Webhooks: "}),help_text:(0,A.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=>C.createElement(Ge.A,{href:ve.i3.INCOMING_WEBHOOKS,location:"admin_console"},e)},help_text_markdown:!1,isDisabled:Jt(ga(_.INTEGRATIONS.INTEGRATION_MANAGEMENT))},{type:"bool",key:"ServiceSettings.EnableOutgoingWebhooks",label:(0,A.defineMessage)({id:"admin.service.outWebhooksTitle",defaultMessage:"Enable Outgoing Webhooks: "}),help_text:(0,A.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=>C.createElement(Ge.A,{location:"admin_console",href:ve.i3.OUTGOING_WEBHOOKS},e)},help_text_markdown:!1,isDisabled:Jt(ga(_.INTEGRATIONS.INTEGRATION_MANAGEMENT))},{type:"bool",key:"ServiceSettings.EnableOutgoingOAuthConnections",label:(0,A.defineMessage)({id:"admin.service.outgoingOAuthConnectionsTitle",defaultMessage:"Enable Outgoing OAuth Connections: "}),help_text:(0,A.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=>C.createElement("a",{href:"https://mattermost.com/pl/outgoing-oauth-connections"},e)},help_text_markdown:!1,isDisabled:Jt(ga(_.INTEGRATIONS.INTEGRATION_MANAGEMENT))},{type:"bool",key:"ServiceSettings.EnableCommands",label:(0,A.defineMessage)({id:"admin.service.cmdsTitle",defaultMessage:"Enable Custom Slash Commands: "}),help_text:(0,A.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=>C.createElement(Ge.A,{location:"admin_console",href:ve.i3.SETUP_CUSTOM_SLASH_COMMANDS},e)},help_text_markdown:!1,isDisabled:Jt(ga(_.INTEGRATIONS.INTEGRATION_MANAGEMENT))}
1,{type:"bool",key:"ServiceSettings.EnableOAuthServiceProvider",label:(0,A.defineMessage)({id:"admin.oauth.providerTitle",defaultMessage:"Enable OAuth 2.0 Service Provider: "}),help_text:(0,A.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=>C.createElement(Ge.A,{location:"admin_console",href:ve.i3.ENABLE_OAUTH2},e)},help_text_markdown:!1,isDisabled:Jt(ga(_.INTEGRATIONS.INTEGRATION_MANAGEMENT)),isHidden:la("Cloud")},{type:"bool",key:"ServiceSettings.EnableDynamicClientRegistration",label:(0,A.defineMessage)({id:"admin.oauth.dcrTitle",defaultMessage:"Enable OAuth 2.0 Dynamic Client Registration: "}),help_text:(0,A.defineMessage)({id:"admin.oauth.dcrDescription",defaultMessage:"When true, external applications can dynamically register as OAuth 2.0 clients with Mattermost. Only enable this if you need third-party applications to register OAuth clients programmatically."}),help_text_markdown:!1,isDisabled:Qt(Jt(ga(_.INTEGRATIONS.INTEGRATION_MANAGEMENT)),ta("ServiceSettings.EnableOAuthServiceProvider")),isHidden:la("Cloud")},{type:"text",key:"ServiceSettings.DCRRedirectURIAllowlist",multiple:!0,label:(0,A.defineMessage)({id:"admin.oauth.dcrRedirectURIAllowlistTitle",defaultMessage:"DCR Redirect URI Allowlist:"}),help_text:(0,A.defineMessage)({id:"admin.oauth.dcrRedirectURIAllowlistDesc",defaultMessage:"When Dynamic Client Registration is enabled, optionally restrict which redirect URIs can be registered. Enter comma-separated URL glob patterns (e.g. https://*.example.com/**). If empty, all valid redirect URIs are allowed. Wildcards are matched within URL components only: host wildcards apply to the host, path wildcards apply to the path, and query strings must be explicitly included if allowed."}),help_text_markdown:!1,placeholder:(0,A.defineMessage)({id:"admin.oauth.dcrRedirectURIAllowlistPlaceholder",defaultMessage:"E.g.: https://*.example.com/**, https://app.example.com/callback"}),isDisabled:Qt(Jt(ga(_.INTEGRATIONS.INTEGRATION_MANAGEMENT)),ta("ServiceSettings.EnableOAuthServiceProvider"),ta("ServiceSettings.EnableDynamicClientRegistration")),isHidden:la("Cloud")},{type:"number",key:"ServiceSettings.OutgoingIntegrationRequestsTimeout",label:(0,A.defineMessage)({id:"admin.service.integrationRequestTitle",defaultMessage:"Integration request timeout: "}),help_text:(0,A.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=>C.createElement(Ge.A,{location:"admin_console",href:ve.i3.CUSTOM_SLASH_COMMANDS},e),outgoingWebhooks:e=>C.createElement(Ge.A,{location:"admin_console",href:ve.i3.OUTGOING_WEBHOOKS},e),interactiveMessages:e=>C.createElement(Ge.A,{location:"admin_console",href:ve.i3.INTERACTIVE_MESSAGES},e),interactiveDialogs:e=>C.createElement(Ge.A,{location:"admin_console",href:ve.i3.INTERACTIVE_DIALOGS},e)},help_text_markdown:!1,isDisabled:Jt(ga(_.INTEGRATIONS.INTEGRATION_MANAGEMENT))},{type:"bool",key:"ServiceSettings.EnablePostUsernameOverride",label:(0,A.defineMessage)({id:"admin.service.overrideTitle",defaultMessage:"Enable integrations to override usernames:"}),help_text:(0,A.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:Jt(ga(_.INTEGRATIONS.INTEGRATION_MANAGEMENT))},{type:"bool",key:"ServiceSettings.EnablePostIconOverride",label:(0,A.defineMessage)({id:"admin.service.iconTitle",defaultMessage:"Enable integrations to override profile picture icons:"}),help_text:(0,A.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:Jt(ga(_.INTEGRATIONS.INTEGRATION_MANAGEMENT))}
1,{type:"bool",key:"ServiceSettings.EnableUserAccessTokens",label:(0,A.defineMessage)({id:"admin.service.userAccessTokensTitle",defaultMessage:"Enable Personal Access Tokens:"}),help_text:(0,A.defineMessage)({id:"admin.service.userAccessTokensDescription",defaultMessage:"When true, users can create <link>personal access tokens</link> for integrations in <strong>Profile > 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 <strong>System Console > User Management > Users</strong>."}),help_text_values:{link:e=>C.createElement(Ge.A,{location:"admin_console",href:ve.i3.PERSONAL_ACCESS_TOKENS},e),strong:e=>C.createElement("strong",null,e)},help_text_markdown:!1,isDisabled:Jt(ga(_.INTEGRATIONS.INTEGRATION_MANAGEMENT))}]}},bot_accounts:{url:"integrations/bot_accounts",title:(0,A.defineMessage)({id:"admin.integrations.botAccounts",defaultMessage:"Bot Accounts"}),isHidden:Kt(Jt(ma(_.INTEGRATIONS.BOT_ACCOUNTS))),schema:{id:"BotAccountSettings",name:(0,A.defineMessage)({id:"admin.integrations.botAccounts.title",defaultMessage:"Bot Accounts"}),settings:[{type:"bool",key:"ServiceSettings.EnableBotAccountCreation",label:(0,A.defineMessage)({id:"admin.service.enableBotTitle",defaultMessage:"Enable Bot Account Creation: "}),help_text:(0,A.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,Cs.vV)(),linkDocumentation:e=>C.createElement(Ge.A,{location:"admin_console",href:"https://mattermost.com/pl/default-bot-accounts"},e),linkBots:e=>C.createElement(Ge.A,{location:"admin_console",href:`${(0,Cs.vV)()}/_redirect/integrations/bots`},e)},isDisabled:Jt(ga(_.INTEGRATIONS.BOT_ACCOUNTS))},{type:"bool",key:"ServiceSettings.DisableBotsWhenOwnerIsDeactivated",label:(0,A.defineMessage)({id:"admin.service.disableBotOwnerDeactivatedTitle",defaultMessage:"Disable bot accounts when owner is deactivated:"}),help_text:(0,A.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,Cs.vV)()},isDisabled:Jt(ga(_.INTEGRATIONS.BOT_ACCOUNTS))}]}},gif:{url:"integrations/gif",title:(0,A.defineMessage)({id:"admin.sidebar.gif",defaultMessage:"GIF"}),isHidden:Kt(Jt(ma(_.INTEGRATIONS.GIF))),schema:{id:"GifSettings",name:(0,A.defineMessage)({id:"admin.integrations.gif",defaultMessage:"GIF"}),settings:[{type:"bool",key:"ServiceSettings.EnableGifPicker",label:(0,A.defineMessage)({id:"admin.customization.enableGifPickerTitle",defaultMessage:"Enable GIF Picker:"}),help_text:(0,A.defineMessage)({id:"admin.customization.enableGifPickerDesc",defaultMessage:"Allows users to select GIFs from the emoji picker."}),isDisabled:Jt(ga(_.INTEGRATIONS.GIF))}]}},cors:{url:"integrations/cors",title:(0,A.defineMessage)({id:"admin.sidebar.cors",defaultMessage:"CORS"}
1),isHidden:Qt(aa("ExperimentalSettings","RestrictSystemAdmin"),Jt(ma(_.INTEGRATIONS.CORS))),schema:{id:"CORS",name:(0,A.defineMessage)({id:"admin.integrations.cors",defaultMessage:"CORS"}),settings:[{type:"text",key:"ServiceSettings.AllowCorsFrom",label:(0,A.defineMessage)({id:"admin.service.corsTitle",defaultMessage:"Enable cross-origin requests from:"}),placeholder:(0,A.defineMessage)({id:"admin.service.corsEx",defaultMessage:"http://example.com"}),help_text:(0,A.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:Jt(ga(_.INTEGRATIONS.CORS))},{type:"text",key:"ServiceSettings.CorsExposedHeaders",label:(0,A.defineMessage)({id:"admin.service.corsExposedHeadersTitle",defaultMessage:"CORS Exposed Headers:"}),placeholder:(0,A.defineMessage)({id:"admin.service.corsHeadersEx",defaultMessage:"X-My-Header"}),help_text:(0,A.defineMessage)({id:"admin.service.corsExposedHeadersDescription",defaultMessage:"Whitelist of headers that will be accessible to the requester."}),isDisabled:Jt(ga(_.INTEGRATIONS.CORS))},{type:"bool",key:"ServiceSettings.CorsAllowCredentials",label:(0,A.defineMessage)({id:"admin.service.corsAllowCredentialsLabel",defaultMessage:"CORS Allow Credentials:"}),help_text:(0,A.defineMessage)({id:"admin.service.corsAllowCredentialsDescription",defaultMessage:"When true, requests that pass validation will include the Access-Control-Allow-Credentials header."}),isDisabled:Jt(ga(_.INTEGRATIONS.CORS))},{type:"bool",key:"ServiceSettings.CorsDebug",label:(0,A.defineMessage)({id:"admin.service.CorsDebugLabel",defaultMessage:"CORS Debug:"}),help_text:(0,A.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:Jt(ga(_.INTEGRATIONS.CORS))}]}},embedding:{url:"integrations/embedding",title:(0,A.defineMessage)({id:"admin.sidebar.embedding",defaultMessage:"Embedding"}),isHidden:Jt(ma(_.INTEGRATIONS.CORS)),schema:{id:"EmbeddingSettings",name:(0,A.defineMessage)({id:"admin.integrations.embedding",defaultMessage:"Embedding"}),settings:[{type:"text",key:"ServiceSettings.FrameAncestors",label:(0,A.defineMessage)({id:"admin.customization.frameAncestorTitle",defaultMessage:"Frame Ancestors:"}),help_text:(0,A.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:Jt(ga(_.INTEGRATIONS.CORS))}]}}}},compliance:{icon:C.createElement(w.FormatListBulletedIcon,{size:16,color:"currentColor"}),sectionTitle:(0,A.defineMessage)({id:"admin.sidebar.compliance",defaultMessage:"Compliance"}),isHidden:Jt(ua(_.COMPLIANCE)),subsections:{custom_policy_form_edit:{url:`compliance/data_retention_settings/custom_policy/:policy_id(${Ss.Zv})`,isHidden:Qt(Jt(la("DataRetention")),Jt(ma(_.COMPLIANCE.DATA_RETENTION_POLICY))),isDisabled:Jt(ga(_.COMPLIANCE.DATA_RETENTION_POLICY)),schema:{id:"CustomDataRetentionForm",component:Hr}},custom_policy_form:{url:"compliance/data_retention_settings/custom_policy",isHidden:Qt(Jt(la("DataRetention")),Jt(ma(_.COMPLIANCE.DATA_RETENTION_POLICY))),isDisabled:Jt(ga(_.COMPLIANCE.DATA_RETENTION_POLICY)),schema:{id:"CustomDataRetentionForm",component:Hr}},global_policy_form:{url:"compliance/data_retention_settings/global_policy",isHidden:Qt(Jt(la("DataRetention")),Jt(ma(_.COMPLIANCE.DATA_RETENTION_POLICY))),isDisabled:Jt(ga(_.COMPLIANCE.DATA_RETENTION_POLICY)),schema:{id:"GlobalDataRetentionForm",component:zr}},data_retention:{url:"compliance/data_retention_settings",title:(0,A.defineMessage)({id:"admin.sidebar.dataRetentionSettingsPolicies",defaultMessage:"Data Retention Policies"}
1),searchableStrings:[MM.data_retention_title,...sr],isHidden:Qt(Jt(la("DataRetention")),Jt(ma(_.COMPLIANCE.DATA_RETENTION_POLICY))),isDisabled:Jt(ga(_.COMPLIANCE.DATA_RETENTION_POLICY)),schema:{id:"DataRetentionSettings",component:rr},restrictedIndicator:Ma()},data_retention_feature_discovery:{url:"compliance/data_retention",isDiscovery:!0,title:(0,A.defineMessage)({id:"admin.sidebar.dataRetentionPolicy",defaultMessage:"Data Retention Policy"}),isHidden:Qt(la("DataRetention")),schema:{id:"DataRetentionSettings",name:MM.data_retention_title,settings:[{type:"custom",component:()=>C.createElement(dl,{featureName:"data_retention",minimumSKURequiredForFeature:ve.gS.Enterprise,title:(0,A.defineMessage)({id:"admin.data_retention_feature_discovery.title",defaultMessage:"Create data retention schedules with Mattermost Enterprise"}),copy:(0,A.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:C.createElement(ul,{width:213,height:156})}),key:"DataRetentionFeatureDiscovery",isDisabled:Jt(ga(_.ABOUT.EDITION_AND_LICENSE))}]},restrictedIndicator:Ma(!0,ve.gS.Enterprise)},message_export:{url:"compliance/export",title:(0,A.defineMessage)({id:"admin.sidebar.complianceExport",defaultMessage:"Compliance Export"}),searchableStrings:Pd,isHidden:Qt(Jt(la("MessageExport")),Jt(ma(_.COMPLIANCE.COMPLIANCE_EXPORT))),isDisabled:Jt(ga(_.COMPLIANCE.COMPLIANCE_EXPORT)),schema:{id:"MessageExportSettings",component:Od},restrictedIndicator:Ma()},compliance_export_feature_discovery:{isDiscovery:!0,url:"compliance/export",title:(0,A.defineMessage)({id:"admin.sidebar.complianceExport",defaultMessage:"Compliance Export"}
1),isHidden:Qt(la("MessageExport")),schema:{id:"MessageExportSettings",name:(0,A.defineMessage)({id:"admin.complianceExport.title",defaultMessage:"Compliance Export"}),settings:[{type:"custom",component:()=>C.createElement(dl,{featureName:"compliance_export",minimumSKURequiredForFeature:ve.gS.Enterprise,title:(0,A.defineMessage)({id:"admin.compliance_export_feature_discovery.title",defaultMessage:"Run compliance exports with Mattermost Enterprise"}),copy:(0,A.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:ve.Uk.COMPILANCE_EXPORT,featureDiscoveryImage:C.createElement(cl,{width:283,height:174})}),key:"ComplianceExportFeatureDiscovery",isDisabled:Jt(ga(_.ABOUT.EDITION_AND_LICENSE))}]},restrictedIndicator:Ma(!0,ve.gS.Enterprise)},audits:{url:"compliance/monitoring",title:(0,A.defineMessage)({id:"admin.sidebar.complianceMonitoring",defaultMessage:"Compliance Monitoring"}
1),isHidden:Qt(Jt(la("Compliance")),Jt(ma(_.COMPLIANCE.COMPLIANCE_MONITORING))),isDisabled:Jt(ga(_.COMPLIANCE.COMPLIANCE_MONITORING)),searchableStrings:Ln,schema:{id:"Audits",name:(0,A.defineMessage)({id:"admin.compliance.complianceMonitoring",defaultMessage:"Compliance Monitoring"}),component:Pn,isHidden:Jt(la("Compliance")),settings:[{type:"banner",label:(0,A.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=>C.createElement(T.Link,{to:"/admin_console/compliance/export"},e)},banner_type:"info",isHidden:Jt(la("Compliance"))},{type:"bool",key:"ComplianceSettings.Enable",label:(0,A.defineMessage)({id:"admin.compliance.enableTitle",defaultMessage:"Enable Compliance Reporting:"}),help_text:(0,A.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=>C.createElement(Ge.A,{location:"admin_console",href:ve.Uk.COMPILANCE_MONITORING},e),strong:e=>C.createElement("strong",null,e)},help_text_markdown:!1,isHidden:Jt(la("Compliance")),isDisabled:Jt(ga(_.COMPLIANCE.COMPLIANCE_MONITORING))},{type:"text",key:"ComplianceSettings.Directory",label:(0,A.defineMessage)({id:"admin.compliance.directoryTitle",defaultMessage:"Compliance Report Directory:"}),help_text:(0,A.defineMessage)({id:"admin.compliance.directoryDescription",defaultMessage:"Directory to which compliance reports are written. If blank, will be set to ./data/."}),placeholder:(0,A.defineMessage)({id:"admin.compliance.directoryExample",defaultMessage:'E.g.: "./data/"'}),isHidden:Jt(la("Compliance")),isDisabled:Qt(Jt(ga(_.COMPLIANCE.COMPLIANCE_MONITORING)),ta("ComplianceSettings.Enable"))},{type:"bool",key:"ComplianceSettings.EnableDaily",label:(0,A.defineMessage)({id:"admin.compliance.enableDailyTitle",defaultMessage:"Enable Daily Report:"}),help_text:(0,A.defineMessage)({id:"admin.compliance.enableDailyDesc",defaultMessage:"When true, Mattermost will generate a daily compliance report."}),isHidden:Jt(la("Compliance")),isDisabled:Qt(Jt(ga(_.COMPLIANCE.COMPLIANCE_MONITORING)),ta("ComplianceSettings.Enable"))}]}},audit_logging:{url:"compliance/audit_logging",title:(0,A.defineMessage)({id:"admin.sidebar.audit_logging_experimental",defaultMessage:"Audit Logging"}
1),isHidden:Qt(Jt(ma(_.EXPERIMENTAL.FEATURES)),sa("FeatureFlags","ExperimentalAuditSettingsSystemConsoleUI"),Jt(da(ve.gS.Enterprise))),schema:{id:"ExperimentalAuditSettings",isBeta:!0,name:(0,A.defineMessage)({id:"admin.auditlogging.title",defaultMessage:"Audit Logging"}),settings:[{type:"banner",label:(0,A.defineMessage)({id:"admin.info_banner.restart_required.desc",defaultMessage:"Changing properties in this section will require a server restart before taking effect."}),banner_type:"info"},{type:"bool",key:"ExperimentalAuditSettings.FileEnabled",label:(0,A.defineMessage)({id:"admin.audit_logging_experimental.file_enabled.title",defaultMessage:"File Enabled"}),help_text:(0,A.defineMessage)({id:"admin.audit_logging_experimental.file_enabled.help_text",defaultMessage:"Choose whether audit logs are written locally to a file or not."}),isDisabled:Jt(ga(_.EXPERIMENTAL.FEATURES)),isHidden:la("Cloud")},{type:"text",key:"ExperimentalAuditSettings.FileName",label:(0,A.defineMessage)({id:"admin.audit_logging_experimental.file_name.title",defaultMessage:"File Name"}),help_text:(0,A.defineMessage)({id:"admin.audit_logging_experimental.file_name.help_text",defaultMessage:"The name of the file to write to."}),isDisabled:Qt(Jt(ga(_.EXPERIMENTAL.FEATURES)),ta("ExperimentalAuditSettings.FileEnabled")),isHidden:la("Cloud")},{type:"longtext",key:"ExperimentalAuditSettings.AdvancedLoggingJSON",label:(0,A.defineMessage)({id:"admin.log.AdvancedLoggingJSONTitle",defaultMessage:"Advanced Logging:"}),help_text:(0,A.defineMessage)({id:"admin.log.AdvancedAuditLoggingJSONDescription",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=>C.createElement(Ge.A,{location:"admin_console.experimental_audit_settings",href:ve.Uk.ADVANCED_LOGGING},e)},placeholder:(0,A.defineMessage)({id:"admin.log.AdvancedLoggingJSONPlaceholder",defaultMessage:"Enter your JSON configuration"}),isDisabled:Jt(ga(_.EXPERIMENTAL.FEATURES)),validate:e=>{const t=new Zt(!0,"");if(!e)return t;try{return JSON.parse(e),t}catch(e){return new Zt(!1,e.message)}},onConfigLoad:e=>JSON.stringify(e,null," "),onConfigSave:e=>e?JSON.parse(e):{undefined:void 0}},{type:"custom",component:e=>{const{id:t,onChange:a,disabled:n,setByEnv:i,label:r,helpText:l,value:o}=e,{status:d,refetchStatus:m}=function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];const[t,a]=(0,C.useState)(""),n=(0,s.useDispatch)(),i=(0,s.useSelector)(c.Ay),r=(0,C.useCallback)((async()=>{if("true"===i.Cloud){const e=await n((0,Sn.JN)());e.data&&a(e.data.state)}else a("stable")}),[n,i]);return(0,C.useEffect)((()=>{if(r(),e&&"true"===i.Cloud){const e=setInterval(r,5e3);return()=>clearInterval(e)}}),[r,e,i]),{status:t,refetchStatus:r}}(!0),{formatMessage:u}=(0,A.useIntl)(),[g,h]=C.useState(o||null),[f,E]=C.useState(null);if(C.useEffect((()=>{o&&h(o)}),[o]),!t)return C.createElement(C.Fragment,null);const M=(e,t)=>{a(e,t)},b=(e,t)=>n||"stable"===d?t=>C.createElement(e,t):a=>C.createElement(Nt.A,{title:t},C.createElement("div",null,C.createElement(e,a))),_=u({id:"admin.audit_logging_experimental.certificate.tooltip",defaultMessage:"A previous update is still in progress. Please wait."}),y=b(st,_),v=b(Re,_);if(g){const e=(e,t)=>{(0,p.VX)((()=>{M(e,""),h(null),E(null),m()}),(e=>{t(),h(null),E(e.message),m()}))};return C.createElement(y,{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:g,onSubmit:e,disabled:n||"stable"!==d,setByEnv:i})}return C.createElement(v,{id:t,label:r,helpText:l,uploadingText:u({id:"admin.audit_logging_experimental.certificate.uploading",defaultMessage:"Uploading Certificate..."}),disabled:n||"stable"!==d,fileType:".crt,.cer,.cert,.pem",onSubmit:(e,t,a)=>{(t=>{(0,p.yr)(t,(t=>{M(e,t),h(t),E(null),m(),a&&"function"==typeof a&&a()}),(e=>{a&&"function"==typeof a&&a(e.message)}))})(t)},error:f||void 0})},label:(0,A.defineMessage)({id:"admin.audit_logging_experimental.certificate.title",defaultMessage:"Certificate"}
1),key:"ExperimentalAuditSettings.Certificate",help_text:(0,A.defineMessage)({id:"admin.audit_logging_experimental.certificate.help_text",defaultMessage:"The certificate file used for audit logging encryption."}),isDisabled:Jt(ga(_.EXPERIMENTAL.FEATURES)),isHidden:Jt(la("Cloud"))}]}},custom_terms_of_service:{url:"compliance/custom_terms_of_service",title:(0,A.defineMessage)({id:"admin.sidebar.customTermsOfService",defaultMessage:"Custom Terms of Service"}),searchableStrings:Qi,isHidden:Qt(Jt(la("CustomTermsOfService")),Jt(ma(_.COMPLIANCE.CUSTOM_TERMS_OF_SERVICE))),isDisabled:Jt(ga(_.COMPLIANCE.CUSTOM_TERMS_OF_SERVICE)),schema:{id:"TermsOfServiceSettings",component:Xi},restrictedIndicator:Ma()},custom_terms_of_service_feature_discovery:{url:"compliance/custom_terms_of_service",isDiscovery:!0,title:(0,A.defineMessage)({id:"admin.sidebar.customTermsOfService",defaultMessage:"Custom Terms of Service"}),isHidden:Qt(la("CustomTermsOfService")),schema:{id:"TermsOfServiceSettings",name:Ki.termsOfServiceTitle,settings:[{type:"custom",component:()=>C.createElement(dl,{featureName:"custom_terms_of_service",minimumSKURequiredForFeature:ve.gS.Enterprise,title:(0,A.defineMessage)({id:"admin.custom_terms_of_service_feature_discovery.title",defaultMessage:"Create custom terms of service with Mattermost Enterprise"}),copy:(0,A.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:C.createElement(ml,{width:289,height:166})}),key:"CustomTermsOfServiceFeatureDiscovery",isDisabled:Jt(ga(_.ABOUT.EDITION_AND_LICENSE))}]},restrictedIndicator:Ma(!0,ve.gS.Enterprise)}}},experimental:{icon:C.createElement(w.FlaskOutlineIcon,{size:16,color:"currentColor"}),sectionTitle:(0,A.defineMessage)({id:"admin.sidebar.experimental",defaultMessage:"Experimental"}),isHidden:Jt(ua(_.EXPERIMENTAL)),subsections:{experimental_features:{url:"experimental/features",title:(0,A.defineMessage)({id:"admin.sidebar.experimentalFeatures",defaultMessage:"Features"}),isHidden:Jt(ma(_.EXPERIMENTAL.FEATURES)),schema:{id:"ExperimentalSettings",name:(0,A.defineMessage)({id:"admin.experimental.experimentalFeatures",defaultMessage:"Experimental Features"}),settings:[{type:"color",key:"LdapSettings.LoginButtonColor",label:(0,A.defineMessage)({id:"admin.experimental.ldapSettingsLoginButtonColor.title",defaultMessage:"AD/LDAP Login Button Color:"}),help_text:(0,A.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:Jt(la("LDAP")),isDisabled:Jt(ga(_.EXPERIMENTAL.FEATURES))},{type:"color",key:"LdapSettings.LoginButtonBorderColor",label:(0,A.defineMessage)({id:"admin.experimental.ldapSettingsLoginButtonBorderColor.title",defaultMessage:"AD/LDAP Login Button Border Color:"}),help_text:(0,A.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:Jt(la("LDAP")),isDisabled:Jt(ga(_.EXPERIMENTAL.FEATURES))},{type:"color",key:"LdapSettings.LoginButtonTextColor",label:(0,A.defineMessage)({id:"admin.experimental.ldapSettingsLoginButtonTextColor.title",defaultMessage:"AD/LDAP Login Button Text Color:"}),help_text:(0,A.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:Jt(la("LDAP")),isDisabled:Jt(ga(_.EXPERIMENTAL.FEATURES))},{type:"bool",key:"ServiceSettings.ExperimentalEnableAuthenticationTransfer",label:(0,A.defineMessage)({id:"admin.experimental.experimentalEnableAuthenticationTransfer.title",defaultMessage:"Allow Authentication Transfer:"}),help_text:(0,A.defineMessage)({id:"admin.experimental.experimentalEnableAuthenticationTransfer.desc",defaultMessage:"When true, users can change their sign-in method to any that is enabled on the server, either via their Profile or the APIs. When false, Users cannot change their sign-in method, regardless of which authentication options are enabled."}
1),help_text_markdown:!1,isHidden:Qt(Jt(ia),oa("starter")),isDisabled:Jt(ga(_.EXPERIMENTAL.FEATURES))},{type:"number",key:"ExperimentalSettings.LinkMetadataTimeoutMilliseconds",label:(0,A.defineMessage)({id:"admin.experimental.linkMetadataTimeoutMilliseconds.title",defaultMessage:"Link Metadata Timeout:"}),help_text:(0,A.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,A.defineMessage)({id:"admin.experimental.linkMetadataTimeoutMilliseconds.example",defaultMessage:'E.g.: "5000"'}),isDisabled:Jt(ga(_.EXPERIMENTAL.FEATURES))},{type:"number",key:"EmailSettings.EmailBatchingBufferSize",label:(0,A.defineMessage)({id:"admin.experimental.emailBatchingBufferSize.title",defaultMessage:"Email Batching Buffer Size:"}),help_text:(0,A.defineMessage)({id:"admin.experimental.emailBatchingBufferSize.desc",defaultMessage:"Specify the maximum number of notifications batched into a single email."}),help_text_markdown:!1,placeholder:(0,A.defineMessage)({id:"admin.experimental.emailBatchingBufferSize.example",defaultMessage:'E.g.: "256"'}),isDisabled:Jt(ga(_.EXPERIMENTAL.FEATURES))},{type:"number",key:"EmailSettings.EmailBatchingInterval",label:(0,A.defineMessage)({id:"admin.experimental.emailBatchingInterval.title",defaultMessage:"Email Batching Interval:"}),help_text:(0,A.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,A.defineMessage)({id:"admin.experimental.emailBatchingInterval.example",defaultMessage:'E.g.: "30"'}),isDisabled:Jt(ga(_.EXPERIMENTAL.FEATURES))},{type:"color",key:"EmailSettings.LoginButtonColor",label:(0,A.defineMessage)({id:"admin.experimental.emailSettingsLoginButtonColor.title",defaultMessage:"Email Login Button Color:"}),help_text:(0,A.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:Jt(ga(_.EXPERIMENTAL.FEATURES))},{type:"color",key:"EmailSettings.LoginButtonBorderColor",label:(0,A.defineMessage)({id:"admin.experimental.emailSettingsLoginButtonBorderColor.title",defaultMessage:"Email Login Button Border Color:"}),help_text:(0,A.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:Jt(ga(_.EXPERIMENTAL.FEATURES))},{type:"color",key:"EmailSettings.LoginButtonTextColor",label:(0,A.defineMessage)({id:"admin.experimental.emailSettingsLoginButtonTextColor.title",defaultMessage:"Email Login Button Text Color:"}),help_text:(0,A.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:Jt(ga(_.EXPERIMENTAL.FEATURES))},{type:"bool",key:"TeamSettings.EnableUserDeactivation",label:(0,A.defineMessage)({id:"admin.experimental.enableUserDeactivation.title",defaultMessage:"Enable Account Deactivation:"}),help_text:(0,A.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:Jt(ga(_.EXPERIMENTAL.FEATURES))},{type:"bool",key:"TeamSettings.ExperimentalEnableAutomaticReplies",label:(0,A.defineMessage)({id:"admin.experimental.experimentalEnableAutomaticReplies.title",defaultMessage:"Enable Automatic Replies:"}),help_text:(0,A.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:Jt(ga(_.EXPERIMENTAL.FEATURES))},{type:"bool",key:"ServiceSettings.EnableChannelViewedMessages",label:(0,A.defineMessage)({id:"admin.experimental.enableChannelViewedMessages.title",defaultMessage:"Enable Channel Viewed WebSocket Messages:"}),help_text:(0,A.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:Jt(ga(_.EXPERIMENTAL.FEATURES))},{type:"bool",key:"ServiceSettings.ExperimentalEnableDefaultChannelLeaveJoinMessages",label:(0,A.defineMessage)({id:"admin.experimental.experimentalEnableDefaultChannelLeaveJoinMessages.title",defaultMessage:"Enable Default Channel Leave/Join System Messages:"}),help_text:(0,A.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:Jt(ga(_.EXPERIMENTAL.FEATURES))},{type:"bool",key:"ServiceSettings.ExperimentalEnableHardenedMode",label:(0,A.defineMessage)({id:"admin.experimental.experimentalEnableHardenedMode.title",defaultMessage:"Enable Hardened Mode:"}),help_text:(0,A.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=>C.createElement(Ge.A,{location:"admin_console",href:ve.Uk.ENABLE_HARDENED_MODE},e)},help_text_markdown:!1,isDisabled:Jt(ga(_.EXPERIMENTAL.FEATURES))},{type:"bool",key:"ThemeSettings.EnableThemeSelection",label:(0,A.defineMessage)({id:"admin.experimental.enableThemeSelection.title",defaultMessage:"Enable Theme Selection:"}),help_text:(0,A.defineMessage)({id:"admin.experimental.enableThemeSelection.desc",defaultMessage:"Enables the **Display > Theme** tab in Settings so users can select their theme."}
1),help_text_markdown:!0,isHidden:Qt(Jt(ia),oa("starter")),isDisabled:Jt(ga(_.EXPERIMENTAL.FEATURES))},{type:"bool",key:"ThemeSettings.AllowCustomThemes",label:(0,A.defineMessage)({id:"admin.experimental.allowCustomThemes.title",defaultMessage:"Allow Custom Themes:"}),help_text:(0,A.defineMessage)({id:"admin.experimental.allowCustomThemes.desc",defaultMessage:"Enables the **Display > Theme > Custom Theme** section in Settings."}),help_text_markdown:!0,isHidden:Qt(Jt(ia),oa("starter")),isDisabled:Qt(Jt(ga(_.EXPERIMENTAL.FEATURES)),ta("ThemeSettings.EnableThemeSelection"))},{type:"dropdown",key:"ThemeSettings.DefaultTheme",label:(0,A.defineMessage)({id:"admin.experimental.defaultTheme.title",defaultMessage:"Default Theme:"}),help_text:(0,A.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,A.defineMessage)({id:"admin.experimental.defaultTheme.options.denim",defaultMessage:"Denim"})},{value:"sapphire",display_name:(0,A.defineMessage)({id:"admin.experimental.defaultTheme.options.sapphire",defaultMessage:"Sapphire"})},{value:"quartz",display_name:(0,A.defineMessage)({id:"admin.experimental.defaultTheme.options.quartz",defaultMessage:"Quartz"})},{value:"indigo",display_name:(0,A.defineMessage)({id:"admin.experimental.defaultTheme.options.indigo",defaultMessage:"Indigo"})},{value:"onyx",display_name:(0,A.defineMessage)({id:"admin.experimental.defaultTheme.options.onyx",defaultMessage:"Onyx"})}
1],isHidden:Qt(Jt(ia),oa("starter")),isDisabled:Jt(ga(_.EXPERIMENTAL.FEATURES))},{type:"bool",key:"ServiceSettings.EnableTutorial",label:(0,A.defineMessage)({id:"admin.experimental.enableTutorial.title",defaultMessage:"Enable Tutorial:"}),help_text:(0,A.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:Jt(ga(_.EXPERIMENTAL.FEATURES))},{type:"bool",key:"ServiceSettings.EnableOnboardingFlow",label:(0,A.defineMessage)({id:"admin.experimental.enableOnboardingFlow.title",defaultMessage:"Enable Onboarding:"}),help_text:(0,A.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:Jt(ga(_.EXPERIMENTAL.FEATURES))},{type:"bool",key:"ServiceSettings.EnableUserTypingMessages",label:(0,A.defineMessage)({id:"admin.experimental.enableUserTypingMessages.title",defaultMessage:"Enable User Typing Messages:"}),help_text:(0,A.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:Jt(ga(_.EXPERIMENTAL.FEATURES))},{type:"number",key:"ServiceSettings.TimeBetweenUserTypingUpdatesMilliseconds",label:(0,A.defineMessage)({id:"admin.experimental.timeBetweenUserTypingUpdatesMilliseconds.title",defaultMessage:"User Typing Timeout:"}),help_text:(0,A.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,A.defineMessage)({id:"admin.experimental.timeBetweenUserTypingUpdatesMilliseconds.example",defaultMessage:'E.g.: "5000"'}),isDisabled:Qt(Jt(ga(_.EXPERIMENTAL.FEATURES)),ta("ServiceSettings.EnableUserTypingMessages"))},{type:"number",key:"ExperimentalSettings.UsersStatusAndProfileFetchingPollIntervalMilliseconds",label:(0,A.defineMessage)({id:"admin.experimental.UsersStatusAndProfileFetchingPollIntervalMilliseconds.title",defaultMessage:"User's Status and Profile Fetching Poll Interval:"}),help_text:(0,A.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,A.defineMessage)({id:"admin.experimental.timeBetweenUserTypingUpdatesMilliseconds.example",defaultMessage:'E.g.: "5000"'}),isDisabled:Jt(ga(_.EXPERIMENTAL.FEATURES))},{type:"text",key:"TeamSettings.ExperimentalPrimaryTeam",label:(0,A.defineMessage)({id:"admin.experimental.experimentalPrimaryTeam.title",defaultMessage:"Primary Team:"}),help_text:(0,A.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,A.defineMessage)({id:"admin.experimental.experimentalPrimaryTeam.example",defaultMessage:'E.g.: "teamname"'}),isDisabled:Jt(ga(_.EXPERIMENTAL.FEATURES))},{type:"color",key:"SamlSettings.LoginButtonColor",label:(0,A.defineMessage)({id:"admin.experimental.samlSettingsLoginButtonColor.title",defaultMessage:"SAML Login Button Color:"}),help_text:(0,A.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:Jt(la("SAML")),isDisabled:Jt(ga(_.EXPERIMENTAL.FEATURES))},{type:"color",key:"SamlSettings.LoginButtonBorderColor",label:(0,A.defineMessage)({id:"admin.experimental.samlSettingsLoginButtonBorderColor.title",defaultMessage:"SAML Login Button Border Color:"}),help_text:(0,A.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 #
1-sign before the code. This setting only applies to the mobile apps."}),help_text_markdown:!1,isHidden:Jt(la("SAML")),isDisabled:Jt(ga(_.EXPERIMENTAL.FEATURES))},{type:"color",key:"SamlSettings.LoginButtonTextColor",label:(0,A.defineMessage)({id:"admin.experimental.samlSettingsLoginButtonTextColor.title",defaultMessage:"SAML Login Button Text Color:"}),help_text:(0,A.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:Jt(la("SAML")),isDisabled:Jt(ga(_.EXPERIMENTAL.FEATURES))},{type:"bool",key:"EmailSettings.UseChannelInEmailNotifications",label:(0,A.defineMessage)({id:"admin.experimental.useChannelInEmailNotifications.title",defaultMessage:"Use Channel Name in Email Notifications:"}),help_text:(0,A.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:Jt(ga(_.EXPERIMENTAL.FEATURES))},{type:"number",key:"TeamSettings.UserStatusAwayTimeout",label:(0,A.defineMessage)({id:"admin.experimental.userStatusAwayTimeout.title",defaultMessage:"User Status Away Timeout:"}),help_text:(0,A.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,A.defineMessage)({id:"admin.experimental.userStatusAwayTimeout.example",defaultMessage:'E.g.: "300"'}),isDisabled:Jt(ga(_.EXPERIMENTAL.FEATURES))},{type:"bool",key:"ExperimentalSettings.DisableAppBar",label:(0,A.defineMessage)({id:"admin.experimental.disableAppBar.title",defaultMessage:"Disable Apps Bar:"}),help_text:(0,A.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:la("Cloud"),isDisabled:Jt(ga(_.EXPERIMENTAL.FEATURES))},{type:"bool",key:"ExperimentalSettings.DisableRefetchingOnBrowserFocus",label:(0,A.defineMessage)({id:"admin.experimental.disableRefetchingOnBrowserFocus.title",defaultMessage:"Disable data refetching on browser refocus:"}),help_text:(0,A.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:Jt(ga(_.EXPERIMENTAL.FEATURES))},{type:"bool",key:"ExperimentalSettings.DisableWakeUpReconnectHandler",label:(0,A.defineMessage)({id:"admin.experimental.disableWakeUpReconnectHandler.title",defaultMessage:"Disable Wake Up Reconnect Handler:"}),help_text:(0,A.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:Jt(ga(_.EXPERIMENTAL.FEATURES))},{type:"bool",key:"ExperimentalSettings.DelayChannelAutocomplete",label:(0,A.defineMessage)({id:"admin.experimental.delayChannelAutocomplete.title",defaultMessage:"Delay Channel Autocomplete:"}),help_text:(0,A.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:Jt(ga(_.EXPERIMENTAL.FEATURES))},{type:"bool",key:"ExperimentalSettings.YoutubeReferrerPolicy",label:(0,A.defineMessage)({id:"admin.experimental.youtubeReferrerPolicy.title",defaultMessage:"YouTube Referrer Policy:"}),help_text:(0,A.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:Jt(ga(_.EXPERIMENTAL.FEATURES))},{type:"bool",key:"ExperimentalSettings.ExperimentalChannelCategorySorting",label:(0,A.defineMessage)({id:"admin.experimental.channelCategorySorting.title",defaultMessage:"Channel Category Sorting:"}),help_text:(0,A.defineMessage)({id:"admin.experimental.channelCategorySorting.desc",defaultMessage:'When true, channels will be automatically sorted into categories based on their names using a "/" delimiter.'}),isDisabled:Jt(ga(_.EXPERIMENTAL.FEATURES))},{type:"bool",key:"ExperimentalSettings.EnableWatermark",label:(0,A.defineMessage)({id:"admin.experimental.enableWatermark.title",defaultMessage:"Enable Mobile Watermark:"}),help_text:(0,A.defineMessage)({id:"admin.experimental.enableWatermark.desc",defaultMessage:"When true, authenticated mobile sessions will display a watermark overlay showing the username, domain, date (YYYY-MM-DD), and time (HH:mm) for data loss prevention (DLP) purposes."}),help_text_markdown:!1,isHidden:Jt(da(ve.gS.Enterprise)),isDisabled:Jt(ga(_.EXPERIMENTAL.FEATURES))}]}},feature_flags:{url:"experimental/feature_flags",title:Ml.title,isHidden:
1Qt(Jt(ma(_.EXPERIMENTAL.FEATURE_FLAGS))),isDisabled:!0,searchableStrings:[Ml.title],schema:{id:"Feature Flags",component:e=>{const t=e.config.FeatureFlags;let a=null;return t&&(a=Object.keys(t).map((e=>C.createElement("tr",{key:e},C.createElement("td",{width:"20px"}),C.createElement("td",{className:"whitespace--nowrap"},e),C.createElement("td",{className:"whitespace--nowrap"},String(t[e])))))),C.createElement("div",{className:"wrapper--fixed"},C.createElement(fe,null,C.createElement(A.FormattedMessage,Ml.title)),C.createElement("div",{className:"admin-console__wrapper"},C.createElement("div",{className:"admin-console__content"},C.createElement("div",{className:"banner info"},C.createElement("div",{className:"banner__content"},C.createElement(A.FormattedMessage,{id:"admin.feature_flags.introBanner",defaultMessage:"The following feature flag values show the status of features enabled on this instance. The values are used for debugging purposes by the Mattermost support team."}))),C.createElement("div",{className:"job-table__panel"},C.createElement("div",{className:"job-table__table job-table__table--full-height"},C.createElement("table",{className:"table"},C.createElement("thead",null,C.createElement("tr",null,C.createElement("th",
1null),C.createElement("th",null,C.createElement(A.FormattedMessage,{id:"admin.feature_flags.flag",defaultMessage:"Flag"})),C.createElement("th",null,C.createElement(A.FormattedMessage,{id:"admin.feature_flags.flag_value",defaultMessage:"Value"})))),C.createElement("tbody",null,a)))))))}}}}}},_M=bM,yM=(0,v.Mz)("getAdminDefinition",(()=>_M),(e=>e.plugins.adminConsoleReducers),((e,t)=>{let a=M()(_M);for(const e of Object.values(t))a=e(a);return a})),vM=(e,t)=>e.plugins.adminConsoleCustomComponents[t]||{},SM=(e,t)=>e.plugins.adminConsoleCustomSections[t]||{},CM=(0,v.Mz)("getConsoleAccess",yM,S.ec,((e,t)=>{const a={read:{},write:{}},s=e=>{const s=y[e].filter((e=>t.has(e)));a.read[e]=0!==s.length,a.write[e]=s.some((e=>e.startsWith("sysconsole_write_")))};return Object.entries(e).forEach((e=>{let[t]=e;"object"==typeof _[t.toUpperCase()]?Object.values(_[t.toUpperCase()]).forEach((e=>{s(e)})):s(t)})),a})),AM=(0,v.Mz)("showManageUserSettings",c.Ay,(e=>e),((e,t)=>{const a=(0,S.y4)(t,{permission:b.A.SYSCONSOLE_WRITE_USERMANAGEMENT_USERS}),s=(0,qt.PL)(e);return a&&s})),TM=(0,v.Mz)("showLockedManageUserSettings",c.Ay,(e=>e),((e,t)=>{const a=(0,S.y4)(t,{permission:b.A.SYSCONSOLE_WRITE_USERMANAGEMENT_USERS}),s=(0,qt.PL)(e);return a&&!s}));var NM=a(30388),kM=a(66173),wM=a.n(kM);function IM(e){let{keyword:t="",pathname:a,children:s}=e;const n=(0,C.useRef)(null),i=(0,C.useRef)();function r(e,t){i.current=new(wM())(t),i.current.mark(e,{accuracy:"complementary",exclude:[".ignore-marking *"]})}const l=(0,C.useMemo)((()=>cr()(((e,t,a)=>{e&&a&&(t?t.unmark({done:()=>r(e,a)}):r(e,a))}),200)),[]);return(0,C.useEffect)((()=>(l(t,i.current,n.current),()=>{l.cancel(),i.current&&i.current.unmark()})),[t,a]),C.createElement("div",{ref:n},s)}var RM=a(35439),LM=a(81806);const xM=e=>{let{show:t,onConfirm:a,onCancel:s}=e;const n=C.createElement(A.FormattedMessage,{id:"discard_changes_modal.title",defaultMessage:"Discard Changes?"}),i=C.createElement(A.FormattedMessage,{id:"discard_changes_modal.message",defaultMessage:"You have unsaved changes, are you sure you want to discard them?"}),r=C.createElement(A.FormattedMessage,{id:"discard_changes_modal.leave",defaultMessage:"Yes, Discard"});return C.createElement(Aa.A,{show:t,title:n,message:i,modalClass:"discard-changes-modal",confirmButtonClass:"btn btn-primary",confirmButtonText:r,onConfirm:a,onCancel:s})},DM=C.memo(xM);var PM=a(60729),OM=a(26676),FM=a(93725),UM=a(7380),BM=a(53791);const HM=e=>{let{icon:t,title:a,action:s,children:n,definitionKey:i,name:r,parentLink:l="",sectionClass:o}=e,d=l,c=C.createElement("div",{className:"category-title category-title--active"},C.createElement("span",{className:"category-icon"},t),C.createElement("span",{className:"category-title__text"},a),s);r&&(d+="/"+r,c=C.createElement(T.NavLink,{to:d,className:"category-title",activeClassName:"category-title category-title--active"},a));let m=null;const u=he()("sections",o);if(n){const e=()=>C.createElement("ul",{className:u},C.Children.map(n,(e=>(0,C.isValidElement)(e)?C.cloneElement(e,{parentLink:d}):null)));m=C.createElement(T.Route,{path:d,render:e})}return C.createElement("li",{className:"sidebar-category","data-testid":i},c,m)},GM=e=>{let{name:t,title:a,action:s,children:n=[],definitionKey:i,type:r,parentLink:l="",subsection:o=!1,tag:d,restrictedIndicator:c}=e;const m=l+"/"+t;let u=null;n&&(u=C.createElement("ul",{className:"nav nav__sub-menu subsections"},C.Children.map(n,(e=>null===e?null:C.cloneElement(e,{parentLink:m,subsection:!0})))));const g=he()("sidebar-section",{"sidebar-subsection":o}),p=d?C.createElement("span",{className:`${g}-tag`},d):null,h=c&&C.createElement("span",{className:`${g}-indicator`},c),f=(0,L.rH)(t);let E=C.createElement(me.A,{id:f,className:`${g}-title`,activeClassName:`${g}-title ${g}-title--active`,to:m},C.createElement("span",{className:`${g}-title__text`},a,p),h,s);return"text"===r&&(E=C.createElement("div",{className:`${g}-title`},C.createElement("span",{className:`${g}-title__text`},a),s)),C.createElement("li",{className:g,"data-testid":i},E,u)};var VM=a(38724);class zM extends C.PureComponent{constructor(e){super(e),this.state={show:!0,showBannerWarning:e.showBannerWarning,packetContents:e.packetContents,loading:!1}}componentDidUpdate=e=>{this.props.showBannerWarning!==e.showBannerWarning&&this.updateBannerWarning(this.props.showBannerWarning)};doHide=()=>{this.setState({show:!1})};updateBannerWarning=e=>{this.setState({showBannerWarning:e})};hideBannerWarning=()=>{this.updateBannerWarning(!1)};updateCheckStatus=e=>{this.setState({packetContents:this.state.packetContents.map(((t,a)=>a!==e||t.mandatory?t:{...t,selected:!t.selected}))})};genereateDownloadURLWithParams=()=>{const e=new URL(I.mT.getSystemRoute()+"/support_packet");
1return 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()};extractFilename=e=>{const t=`mm_support_packet_${ei()(new Date).format("YYYY-MM-DDTHH-mm")}.zip`;if(null===e)return t;const a=/filename\*?=["']?((?:\\.|[^"'\s])+)(?=["']?)/g.exec(e);return a?a[1]:t};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(),a=t.message+": "+t.detailed_error;return void this.setState({loading:!1,error:a})}const t=await e.blob();this.setState({loading:!1});const a=window.URL.createObjectURL(t),s=document.createElement("a");s.href=a,s.setAttribute("download",this.extractFilename(e.headers.get("content-disposition"))),document.body.appendChild(s),s.click(),document.body.removeChild(s)};render(){const{showBannerWarning:e}=this.state,{isCloud:t,currentUser:a}=this.props,s=t?`https://customers.mattermost.com/cloud/contact-us?name=${a.first_name} ${a.last_name}&email=${a.email}&inquiry=technical`:"https://support.mattermost.com/hc/en-us/requests/new";return C.createElement(Gn.Modal,{id:"commercialSupportModal",dialogClassName:"a11y__modal more-modal more-direct-channels",show:this.state.show,onHide:this.doHide,onExited:this.props.onExited},C.createElement(Gn.Modal.Header,{closeButton:!0},C.createElement(Gn.Modal.Title,null,C.createElement(A.FormattedMessage,{id:"commercial_support.title",defaultMessage:"Commercial Support"}))),C.createElement(Gn.Modal.Body,null,C.createElement("div",{className:"CommercialSupportModal"},C.createElement(A.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=>C.createElement(Ge.A,{href:s,location:"commercialSupportModal"},e)}}),e&&C.createElement(Ha.A,{mode:"info",message:C.createElement(A.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=>C.createElement("strong",null,e),debugLink:e=>C.createElement(T.Link,{to:"/admin_console/environment/logging"},e)}}),onDismiss:this.hideBannerWarning}),C.createElement("div",{className:"CommercialSupportModal__packet_contents_download"},C.createElement("strong",null,C.createElement(A.FormattedMessage,{id:"commercial_support_modal.download_contents",defaultMessage:"Select your Support Packet contents to download"}))),this.state.packetContents.map(((e,t)=>C.createElement("div",{className:"CommercialSupportModal__option",key:e.id},C.createElement("input",{className:"CommercialSupportModal__options__checkbox",id:e.id,name:e.id,type:"checkbox",checked:e.selected,disabled:e.mandatory,onChange:()=>this.updateCheckStatus(t)}),C.createElement(A.FormattedMessage,{id:"mettormost.plugin.metrics.support.packet",defaultMessage:e.label},(t=>C.createElement("label",{className:"CommercialSupportModal__options_checkbox_label",htmlFor:e.id},t)))))),C.createElement("div",{className:"CommercialSupportModal__download"},this.state.error&&C.createElement("div",{className:"CommercialSupportModal__error"},C.createElement("span",{className:"error-text"},this.state.error)),C.createElement("a",{className:"btn btn-primary DownloadSupportPacket",onClick:this.downloadSupportPacket,rel:"noopener noreferrer"},this.state.loading?C.createElement(Bn.A,null):C.createElement("i",{className:"icon icon-download-outline"}),C.createElement(A.FormattedMessage,{id:"commercial_support.download_support_packet",defaultMessage:"Download Support Packet"}))))))}}const jM=(0,s.connect)((function(e){const t=(0,c.zj)(e),a="true"===(0,c.Ay)(e).Cloud,s=(0,g.HW)(e),n=("true"!==t.
1EnableFile||"DEBUG"!==t.FileLevel)&&!a,i=[{id:"basic.contents",label:"Basic contents",selected:!0,mandatory:!0},{id:"basic.server.logs",label:"Server logs",selected:!0,mandatory:!1}];for(const[t,a]of Object.entries(e.entities.admin.plugins))a.active&&void 0!==a.props&&void 0!==a.props.support_packet&&i.push({id:t,label:a.props.support_packet,selected:!1,mandatory:!1});return{isCloud:a,currentUser:s,showBannerWarning:n,packetContents:i}}))(zM),WM=(0,a(5565).A)((e=>{const{to:t,text:a}=e;return C.createElement(me.A,{to:t},a)}));WM.displayName="MenuItemBlockableLinkImpl";const YM=WM;class qM extends C.PureComponent{handleLogout=e=>{this.props.navigationBlocked?(e.preventDefault(),this.props.actions.deferNavigation(ch.BN)):ch.BN()};render(){const{locale:e,teams:t,siteName:a,isLicensed:s,isCloud:n}=this.props,{formatMessage:i}=this.props.intl,r=[];let l;if(t&&t.length>0){const a=(0,Pp.y)(t,e);for(const e of a)r.push(C.createElement(YM,{key:"team_"+e.name,to:"/"+e.name,text:i({id:"navbar_dropdown.switchTo",defaultMessage:"Switch to "})+" "+e.display_name}))}else l=C.createElement(YM,{to:"/select_team",icon:C.createElement("i",{className:"fa fa-exchange",title:i({id:"select_team.icon",defaultMessage:"Select Team Icon"})}),text:i({id:"admin.nav.switch",defaultMessage:"Team Selection"})});let o=C.createElement(er.A.ItemExternalLink,{url:"https://mattermost.com/support/",text:i({id:"admin.nav.commercialSupport",defaultMessage:"Commercial Support"})});s&&(o=C.createElement(er.A.ItemToggleModalRedux,{modalId:ve.IQ.COMMERCIAL_SUPPORT,dialogType:jM,text:i({id:"admin.nav.commercialSupport",defaultMessage:"Commercial Support"})}));let d="https://docs.mattermost.com/guides/administration.html";return n&&(d="https://docs.mattermost.com/guides/administration.html#cloud-workspace-management"),C.createElement(er.A,{ariaLabel:i({id:"admin.nav.menuAriaLabel",defaultMessage:"Admin Console Menu"})},C.createElement(er.A.Group,null,r,l),C.createElement(er.A.Group,null,C.createElement(er.A.ItemExternalLink,{url:d,text:i({id:"admin.nav.administratorsGuide",defaultMessage:"Administrator's Guide"})}),C.createElement(er.A.ItemExternalLink,{url:"https://forum.mattermost.com/t/how-to-use-the-troubleshooting-forum/150",text:i({id:"admin.nav.troubleshootingForum",defaultMessage:"Troubleshooting Forum"})}),o,C.createElement(er.A.ItemToggleModalRedux,{modalId:ve.IQ.ABOUT,dialogType:VM.A,text:i({id:"navbar_dropdown.about",defaultMessage:"About {appTitle}"},{appTitle:a||"Mattermost"})})),C.createElement(er.A.Group,null,C.createElement(er.A.ItemAction,{onClick:this.handleLogout,text:i({id:"navbar_dropdown.logout",defaultMessage:"Log Out"})})))}}const ZM=(0,A.injectIntl)(qM),JM=(0,s.connect)((function(e){const t=(0,c.Ay)(e),a="true"===t.IsLicensed,s="true"===t.Cloud;return{locale:(0,gs.k)(e),teams:(0,u.vt)(e),siteName:(0,c.zj)(e).SiteName,navigationBlocked:(0,le.$S)(e),isLicensed:a,isCloud:s}}),(function(e){return{actions:(0,n.zH)({deferNavigation:p.Ld},e)}}))(ZM);var KM=a(19477);const QM=e=>{let{currentUser:t}=e;const a=(0,A.useIntl)();let s=null;return t?(t.last_picture_update&&(s=C.createElement(Pl.A,{username:t.username,url:I.mT.getProfilePictureUrl(t.id,t.last_picture_update),size:"lg"})),C.createElement(tr.A,{className:"AdminSidebarHeader"},C.createElement("div",null,s,C.createElement("div",{className:"header__info"},C.createElement("div",{className:"team__name"},C.createElement(A.FormattedMessage,{id:"admin.sidebarHeader.systemConsole",defaultMessage:"System Console"})),C.createElement("div",{className:"user__name overflow--ellipsis whitespace--nowrap"},"@"+t.username)),C.createElement("button",{type:"button",className:"style--none","aria-label":a.formatMessage({id:"generic_icons.menu",defaultMessage:"Menu Icon"})},C.createElement(KM.A,{className:"menu-icon"}))),C.createElement(JM,null))):null},XM=(0,C.memo)(QM),$M=(0,s.connect)((function(e){return{currentUser:(0,g.HW)(e)}}))(XM);var eb=a(61452),tb=a(55161),ab=a.n(tb);function sb(e,t){const a=ib(Wt(e),t);if(e.name&&a.push(e.name),e.id&&a.push(e.id),e.settings_schema&&(e.settings_schema.footer&&a.push((0,el.eA)(e.settings_schema.footer)),e.settings_schema.header&&a.push((0,el.eA)(e.settings_schema.header)),e.settings_schema.settings)){const s=Object.values(e.settings_schema.settings);for(const e of s){const s=ib(e,t);a.push(...s)}}return a}function nb(e,t,a,s){let n;t&&(n="string"==typeof t?t:a.formatMessage(t)),n&&s&&(n=(0,el.eA)(n)),n&&e.push(n)}function ib(e,t){const a=[];return nb(a,e.label,t),nb(a,e.display_name,t),nb(a,e.help_text,t,!0),nb(a,e.key,t),a}function rb(e,t,a,s){"string"==typeof t?e.push(t):"id"in t&&e.push(a.formatMessage(t,s))}function lb(e,t){const a=[];if(e.title&&rb(a,e.title,t),"name"in e.schema&&e.schema.name&&rb(a,e.schema.name,t),e.searchableStrings)for(const s of e.searchableStrings)Array.isArray(s)?a.push(t.formatMessage(s[0],s[1])):rb(a,s,t);return e.schema&&("settings"in e.schema&&e.schema.settings?a.push(...ob(e.schema.settings,t)):"sections"in e.
1schema&&e.schema.sections&&e.schema.sections.forEach((e=>{a.push(...ob(e.settings,t))}))),a}function ob(e,t){const a=[];for(const s of Object.values(e))s.label&&rb(a,s.label,t,s.label_values),s.help_text&&rb(a,s.help_text,t,s.help_text_values),"remove_help_text"in s&&s.remove_help_text&&rb(a,s.remove_help_text,t),"remove_button_text"in s&&s.remove_button_text&&rb(a,s.remove_button_text,t);return a}function db(e,t,a){const s=new(ab());return cb(function(e,t){const a={},s=[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 s)for(const s of Object.values(e.subsections))s.isDiscovery||(a[s.url]=lb(s,t));return a}(e,t),s),cb(function(e,t){const a={},s=e||{};for(const e of Object.keys(s))a[`plugin_${e}`]=sb(s[e],t);return a}(a,t),s),s}function cb(e,t){for(const a of Object.keys(e)){let s="";for(const t of e[a])s+=" "+t;t.add(a,s)}}class mb extends C.PureComponent{static defaultProps={plugins:{}};constructor(e){super(e),this.state={sections:null,filter:""},this.idx=null,this.searchRef=C.createRef()}componentDidMount(){this.props.config.PluginSettings?.Enable&&this.props.actions.getPlugins(),this.searchRef.current&&!(0,en.J)().location.hash&&this.searchRef.current.focus(),this.updateTitle()}componentDidUpdate(e){null===this.idx||ur()(this.props.plugins,e.plugins)&&ur()(this.props.adminDefinition,e.adminDefinition)||(this.idx=db(this.props.adminDefinition,this.props.intl,this.props.plugins))}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=db(this.props.adminDefinition,this.props.intl,this.props.plugins));let a="";for(const e of t.split(" "))e.trim(),""!==e&&(a+=e+" ",a+=e+"* ");const s=this.idx.search(a);if(this.setState({sections:s,filter:t}),this.props.onSearchChange(t),!this.props.navigationBlocked&&-1===s.indexOf((0,en.J)().location.pathname.replace("/admin_console/",""))){const e=this.visibleSections();for(const t of s)if(e.has(t)){(0,en.J)().replace("/admin_console/"+t);break}}};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};visibleSections=()=>{const{config:e,license:t,buildEnterpriseReady:a,consoleAccess:s,adminDefinition:n,cloud:i}=this.props,r=n=>!(!n.schema||!n.title||n.isHidden&&n.isHidden(e,this.state,t,a,s,i)),l=new Set;for(const e of Object.values(n))for(const t of Object.values(e.subsections))r(t)&&l.add(t.url);return l};renderRootMenu=e=>{const{config:t,license:a,buildEnterpriseReady:s,consoleAccess:n,cloud:i,subscriptionProduct:r}=this.props,l=[];return Object.entries(e).forEach((e=>{let[o,d]=e,c=!1;if(d.isHidden&&(c="function"==typeof d.isHidden?d.isHidden(t,this.state,a,s,n,i):Boolean(d.isHidden)),!c){const e=[];if(Object.entries(d.subsections).forEach((l=>{let[d,c]=l;if(!c.title)return;if(c.isHidden&&("function"==typeof c.isHidden?c.isHidden(t,this.state,a,s,n,i):Boolean(c.isHidden)))return;if(null!==this.state.sections){let e=!1;for(const t of this.state.sections)t===c.url&&(e=!0);if(!e)return}const m=`${o}.${d}`;e.push(C.createElement(GM,{key:m,definitionKey:m,name:c.url,restrictedIndicator:c.restrictedIndicator?.shouldDisplay(a,r)?c.restrictedIndicator.value(i):void 0,title:"string"==typeof c.title?c.title:C.createElement(A.FormattedMessage,c.title)}))})),"plugins"===d.id){const t=this.renderPluginsMenu();e.push(...t)}if(0===e.length)return null;l.push(C.createElement(HM,{key:o,definitionKey:o,parentLink:"/admin_console",icon:d.icon,sectionClass:"",title:"string"==typeof d.sectionTitle?d.sectionTitle:C.createElement(A.FormattedMessage,d.sectionTitle)},e))}return null})),l};isPluginPresentInSections=e=>this.state.sections&&this.state.sections.indexOf(`plugin_${e.id}`)>=0;renderPluginsMenu=()=>{const{config:e,plugins:t}=this.props;return e.PluginSettings?.Enable&&t?Object.values(t).sort(((e,t)=>{const a=e.name.localeCompare(t.name);return 0!==a?a:e.id.localeCompare(t.id)})).filter((e=>null===this.state.sections||this.isPluginPresentInSections(e))).map((e=>C.createElement(GM,{key:"customplugin"+e.id,name:"plugins/plugin_"+e.id,title:e.name}))):[]};handleClearFilter=()=>{this.setState({sections:null,filter:""}),this.props.onSearchChange("")};render(){const{showTaskList:e}=this.props;return C.createElement("div",{className:"admin-sidebar"},C.createElement($M,null),C.createElement("div",{className:"filter-container"},C.createElement(Wl.A,{className:"search__icon","aria-hidden":"true"}),C.createElement(xs.A,{className:"filter "+(this.state.filter?"active":""),type:"text",onCh
1ange: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})),C.createElement(eb.A,null,C.createElement("div",{className:"nav-pills__container"},C.createElement(IM,{keyword:this.state.filter},C.createElement("ul",{className:he()("nav nav-pills nav-stacked",{"task-list-shown":e})},this.renderRootMenu(this.props.adminDefinition))))))}}const ub=(0,A.injectIntl)(mb),gb=(0,s.connect)((function(e){const t=(0,c.Ay)(e),a=(0,c.zj)(e),s="true"===a.BuildEnterpriseReady,n=a.SiteName,i=yM(e),r=CM(e),l=(0,Ba.Jz)(e,BM.XV,BM.f5.ONBOARDING_TASK_LIST_SHOW),o=(0,g.OK)(e),d=(0,UM.w3)(e),m=o&&l&&!d,u=(0,_e.Pd)(e);return{license:t,config:e.entities.admin.config,plugins:e.entities.admin.plugins,navigationBlocked:(0,le.$S)(e),buildEnterpriseReady:s,siteName:n,adminDefinition:i,consoleAccess:r,cloud:e.entities.cloud,showTaskList:m,subscriptionProduct:u}}),(function(e){return{actions:(0,n.zH)({getPlugins:i.xy},e)}}))(ub),pb=(0,s.connect)((function(e){const t="true"===(0,c.zj)(e).BuildEnterpriseReady,a=yM(e),s=NM.A.getPreviousTeamId((0,g.WR)(e)),n=(0,u.Uo)(e,s||""),i=n?`/${n.name}/channels/${o.Bz.DEFAULT_CHANNEL}`:"/",r=CM(e);return{config:d.zj(e),environmentConfig:d.Qq(e),license:(0,c.Ay)(e),buildEnterpriseReady:t,unauthorizedRoute:i,showNavigationPrompt:(0,le.kB)(e),isCurrentUserSystemAdmin:(0,g.J1)(e),currentUserHasAnAdminRole:(0,g.Z5)(e),roles:(0,m.O0)(e),adminDefinition:a,consoleAccess:r,cloud:e.entities.cloud,team:n}}),(function(e){return{actions:(0,n.zH)({getConfig:i.zj,getEnvironmentConfig:i.Qq,patchConfig:i.tn,setNavigationBlocked:p.Jb,deferNavigation:p.Ld,cancelNavigation:p.zL,confirmNavigation:p.vn,loadRolesIfNeeded:r.cF,editRole:r.D3,selectLhsItem:f.bT,selectTeam:l.Uv,setAdminConsoleUsersManagementTableProperties:h.p$},e)}})),hb=pb((e=>{const[t,a]=(0,C.useState)(""),s=(e=>{const t=(0,C.useRef)();return(0,C.useCallback)((a=>{if(!a||!e.hash||t.current===e)return;const s=decodeURIComponent(e.hash.substring(1));if(!s)return;const n=document.getElementById(s);n&&(n.focus(),document.activeElement!==n&&n.scrollIntoView({behavior:"auto"}),t.current=e)}),[e])})(e.location);(0,C.useEffect)((()=>(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","system_shared_channel_manager"]),e.actions.selectLhsItem(FM.L.None),e.actions.selectTeam(""),document.body.classList.add("console__body"),document.getElementById("root")?.classList.add("console__root"),()=>{document.body.classList.remove("console__body"),document.getElementById("root")?.classList.remove("console__root"),e.actions.setAdminConsoleUsersManagementTableProperties()})),[]);const{license:n,config:i,environmentConfig:r,showNavigationPrompt:l,roles:o}=e,{setNavigationBlocked:d,cancelNavigation:c,confirmNavigation:m,editRole:u,patchConfig:g}=e.actions;if(!e.currentUserHasAnAdminRole)return C.createElement(T.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.system_shared_channel_manager)(e.roles))return null;if(0===Object.keys(i).length)return C.createElement("div",null);if(i&&0===Object.keys(i).length&&i.constructor===Object)return C.createElement("div",{className:"admin-console__wrapper admin-console"});const p={enterpriseReady:e.buildEnterpriseReady,license:n,config:i,environmentConfig:r,setNavigationBlocked:d,roles:o,editRole:u,patchConfig:g,cloud:e.cloud,isCurrentUserSystemAdmin:e.isCurrentUserSystemAdmin};return C.createElement(C.Fragment,null,C.createElement(RM.default,null),C.createElement(OM.default,null),C.createElement(LM.A,{team:e.team}),C.createElement(gb,{onSearchChange:e=>{a(e)}}),C.createElement("div",{className:"admin-console__wrapper admin-console",id:"adminConsoleWrapper",ref:s},C.createElement(IM,{keyword:t,pathname:e.location.pathname},(a=>{const{adminDefinition:s,config:n,license:i,buildEnterpriseReady:r,consoleAccess:l,cloud:o,isCurrentUserSystemAdmin:d}=e,c=Object.values(s).flatMap((e=>{let a=!1;return a="function"==typeof e.isHidden?e.isHidden(n,{search:t},i,r,l,o,d):Boolean(e.isHidden),a?[]:Object.values(e.subsections)}));let m="";const u=c.map(((s,u)=>{if(void 0!==s.isHidden&&("function"==typeof s.isHidden?s.isHidden(n,{search:t},i,r,l,o,d):Boolean(s.isHidden)))return!1;let g;if(g="function"==typeof s.isDisabled?s.isDisabled(n,{search:t},i,r,l,o,d):Boolean(s.isDisabled),!g&&""===m){const{url:e}=c[u];e.includes(":")||(m=e)}
1return C.createElement(T.Route,{key:s.url,path:`${e.match.url}/${s.url}`,render:t=>C.createElement(zt,Object.assign({},a,t,{consoleAccess:e.consoleAccess,schema:s.schema,isDisabled:g}))})}));return C.createElement(T.Switch,null,u,C.createElement(T.Redirect,{to:`${e.match.url}/${m}`}))})(p))),C.createElement(DM,{show:l,onConfirm:m,onCancel:c}),C.createElement(PM.default,null))}))},81806(e,t,a){"use strict";a.d(t,{A:()=>l});var s=a(36418),n=a(14778),i=a(87295);function r(){const{formatMessage:e}=(0,n.useIntl)();return s.createElement("i",{className:"fa fa-angle-left",title:e({id:"generic_icons.back",defaultMessage:"Back Icon"})})}const l=e=>{let{team:t,siteName:a}=e;const l=0===t?.delete_at;return s.createElement("div",{className:"backstage-navbar"},s.createElement(i.A,{className:"backstage-navbar__back",to:`/${l?t?.name:""}`},s.createElement(r,null),s.createElement("span",null,l?s.createElement(n.FormattedMessage,{id:"backstage_navbar.backToMattermost",defaultMessage:"Back to {siteName}",values:{siteName:a??t?.display_name}}):s.createElement(n.FormattedMessage,{id:"backstage_navbar.back",defaultMessage:"Back"}))))}},45222(e,t,a){"use strict";a.d(t,{A:()=>i});var s=a(37270),n=a(26614);function i(e){return(0,s.useSelector)((t=>(0,n.Y6)(t,e)))}},25428(e,t,a){"use strict";a.d(t,{A:()=>n});var s=a(36418);const n=e=>s.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"},s.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:"var(--center-channel-color)",fillOpacity:"0.08"}),s.createElement("path",{d:"M166.523 71.0823L166.523 60.2208L28.3461 60.2208L28.3461 48.0117L8.14688 48.0117",stroke:"var(--center-channel-color)",strokeOpacity:"0.24",strokeWidth:"1.24706",strokeLinecap:"round"}),s.createElement("path",{d:"M97.2708 24.9121L97.2708 44.9461L77.6077 44.9461",stroke:"var(--center-channel-color)",strokeOpacity:"0.24",strokeWidth:"1.24706",strokeLinecap:"round"}),s.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:"var(--center-channel-color)",fillOpacity:"0.48"}),s.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:"var(--center-channel-color)",fillOpacity:"0.48"}),s.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:"var(--center-channel-color)",fillOpacity:"0.48"}),s.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:"var(--center-channel-bg)"}),s.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:"var(--center-channel-color)",fillOpacity:"0.24"}),s.createElement("rect",{x:"43.0644",y:"38.7563",width:"44.8941",height:"91.0353",fill:"var(--center-channel-bg)",stroke:"#3F4350",strokeWidth:"1.24706",strokeLinejoin:"round"}),s.createElement("rect",{x:"43.0644",y:"39.2817",width:"44.8941",height:"88.5412",fill:"var(--center-channel-bg)",stroke:"#3F4350",strokeWidth:"1.24706",strokeLinejoin:"round"}),s.createElement("rect",{x:"39.947",y:"127.199",width:"89.7882",height:"3.74118",fill:"var(--center-channel-bg)"}),s.createElement("rect",{x:"40.5706",y:"127.823",width:"88.5412",height:"2.49412",fill:"var(--center-channel-color)",fillOpacity:"0.16",stroke:"var(--center-channel-color)",strokeWidth:"1.24706"}),s.createElement("rect",{x:"40.5706",y:"35.5415",width:"49.8824",height:"3.74118",fill:"var(--center-c
1hannel-bg)",stroke:"var(--center-channel-color)",strokeWidth:"1.24706",strokeLinejoin:"round"}),s.createElement("rect",{x:"40.5706",y:"35.5415",width:"49.8824",height:"3.74118",fill:"var(--center-channel-color)",fillOpacity:"0.32",stroke:"var(--center-channel-color)",strokeWidth:"1.24706",strokeLinejoin:"round"}),s.createElement("rect",{x:"49.2998",y:"31.7993",width:"31.1765",height:"3.74118",fill:"var(--center-channel-bg)",stroke:"var(--center-channel-color)",strokeWidth:"1.24706",strokeLinejoin:"round"}),s.createElement("rect",{x:"49.2998",y:"31.7993",width:"31.1765",height:"3.74118",fill:"var(--center-channel-color)",fillOpacity:"0.32",stroke:"var(--center-channel-color)",strokeWidth:"1.24706",strokeLinejoin:"round"}),s.createElement("rect",{x:"49.9233",y:"46.1406",width:"31.1765",height:"8.72941",fill:"var(--center-channel-color)",fillOpacity:"0.16"}),s.createElement("rect",{x:"49.9233",y:"59.8594",width:"31.1765",height:"8.72941",fill:"var(--center-channel-color)",fillOpacity:"0.16"}),s.createElement("rect",{x:"49.9233",y:"73.5762",width:"31.1765",height:"8.72941",fill:"var(--center-channel-color)",fillOpacity:"0.16"}),s.createElement("rect",{x:"67.3823",y:"53.623",width:"6.23529",height:"73.5765",fill:"var(--center-channel-color)",fillOpacity:"0.16"}),s.createElement("rect",{x:"49.9233",y:"87.2949",width:"31.1765",height:"8.72941",fill:"var(--center-channel-color)",fillOpacity:"0.16"}),s.createElement("rect",{x:"49.9233",y:"101.012",width:"31.1765",height:"8.72941",fill:"var(--center-channel-color)",fillOpacity:"0.16"}),s.createElement("rect",{x:"59.8999",y:"117.223",width:"11.2235",height:"9.97647",fill:"var(--center-channel-color)",fillOpacity:"0.16"}),s.createElement("rect",{x:"71.7468",y:"54.2466",width:"58.6118",height:"76.0706",fill:"var(--center-channel-bg)",stroke:"var(--center-channel-color)",strokeWidth:"1.24706",strokeLinejoin:"round"}),s.createElement("rect",{x:"71.7468",y:"54.2466",width:"58.6118",height:"76.0706",stroke:"var(--center-channel-color)",strokeWidth:"1.24706",strokeLinejoin:"round"}),s.createElement("rect",{x:"77.3586",y:"59.8594",width:"8.72941",height:"9.97647",fill:"var(--center-channel-color)",fillOpacity:"0.16"}),s.createElement("rect",{x:"102.3",y:"59.8594",width:"8.72941",height:"9.97647",fill:"var(--center-channel-color)",fillOpacity:"0.16"}),s.createElement("rect",{x:"114.771",y:"59.8594",width:"8.72941",height:"9.97647",fill:"var(--center-channel-color)",fillOpacity:"0.16"}),s.createElement("rect",{x:"89.8293",y:"59.8594",width:"8.72941",height:"9.97647",fill:"var(--center-channel-color)",fillOpacity:"0.16"}),s.createElement("rect",{x:"77.3586",y:"73.5762",width:"8.72941",height:"9.97647",fill:"var(--center-channel-color)",fillOpacity:"0.16"}),s.createElement("rect",{x:"102.3",y:"73.5762",width:"8.72941",height:"9.97647",fill:"var(--center-channel-color)",fillOpacity:"0.16"}),s.createElement("rect",{x:"114.771",y:"73.5762",width:"8.72941",height:"9.97647",fill:"var(--center-channel-color)",fillOpacity:"0.16"}),s.createElement("rect",{x:"89.8293",y:"73.5762",width:"8.72941",height:"9.97647",fill:"var(--center-channel-color)",fillOpacity:"0.16"}),s.createElement("rect",{x:"77.3586",y:"87.2949",width:"8.72941",height:"9.97647",fill:"var(--center-channel-color)",fillOpacity:"0.16"}),s.createElement("rect",{x:"102.3",y:"87.2949",width:"8.72941",height:"9.97647",fill:"var(--center-channel-color)",fillOpacity:"0.16"}),s.createElement("rect",{x:"114.771",y:"87.2949",width:"8.72941",height:"9.97647",fill:"var(--center-channel-color)",fillOpacity:"0.16"}),s.createElement("rect",{x:"89.8293",y:"87.2949",width:"8.72941",height:"9.97647",fill:"var(--center-channel-color)",fillOpacity:"0.16"}),s.createElement("rect",{x:"77.3586",y:"101.012",width:"8.72941",height:"9.97647",fill:"var(--center-channel-color)",fillOpacity:"0.16"}),s.createElement("rect",{x:"102.3",y:"101.012",width:"8.72941",height:"9.97647",fill:"var(--center-channel-color)",fillOpacity:"0.16"}),s.createElement("rect",{x:"114.771",y:"101.012",width:"8.72941",height:"9.97647",fill:"var(--center-channel-color)",fillOpacity:"0.16"}),s.createElement("rect",{x:"89.8293",y:"101.012",width:"8.72941",height:"9.97647",fill:"var(--center-c
1hannel-color)",fillOpacity:"0.16"}),s.createElement("rect",{x:"102.3",y:"43.6465",width:"14.9647",height:"7.48235",fill:"var(--center-channel-color)",fillOpacity:"0.32"}),s.createElement("line",{x1:"7.52332",y1:"130.318",x2:"162.159",y2:"130.318",stroke:"var(--center-channel-color)",strokeWidth:"1.24706"}),s.createElement("rect",{x:"68.0059",y:"50.5063",width:"66.0941",height:"3.74118",fill:"var(--center-channel-bg)",stroke:"#3F4350",strokeWidth:"1.24706",strokeLinejoin:"round"}),s.createElement("rect",{x:"68.0059",y:"50.5063",width:"66.0941",height:"3.74118",fill:"var(--center-channel-color)",fillOpacity:"0.32",stroke:"var(--center-channel-color)",strokeWidth:"1.24706",strokeLinejoin:"round"}),s.createElement("rect",{x:"96.688",y:"115.352",width:"8.72941",height:"14.9647",fill:"var(--center-channel-color)",fillOpacity:"0.16",stroke:"var(--center-channel-color)",strokeWidth:"1.24706"}),s.createElement("rect",{x:"69.8762",y:"127.199",width:"63.6",height:"3.74118",fill:"var(--center-channel-bg)"}),s.createElement("rect",{x:"70.4998",y:"127.823",width:"62.353",height:"2.49412",fill:"var(--center-channel-color)",fillOpacity:"0.16",stroke:"var(--center-channel-color)",strokeWidth:"1.24706"}),s.createElement("rect",{x:"88.5823",y:"124.705",width:"26.1882",height:"3.74118",fill:"var(--center-channel-bg)"}),s.createElement("rect",{x:"89.2058",y:"125.329",width:"24.9412",height:"2.49412",fill:"var(--center-channel-color)",fillOpacity:"0.16",stroke:"var(--center-channel-color)",strokeWidth:"1.24706"}))},92600(e,t,a){"use strict";a.d(t,{A:()=>m});var s=a(37270),n=a(26614),i=a(68124),r=(a(15724),a(36418)),l=a(14778),o=a(85873);const d=e=>{let{fileInfo:t,fileUrl:a,canDownloadFiles:s}=e;const n=(0,l.useIntl)(),i=[];""!==t.extension&&i.push(n.formatMessage({id:"file_info_preview.type",defaultMessage:"File type "})+t.extension.toUpperCase()),t.size&&i.push(n.formatMessage({id:"file_info_preview.size",defaultMessage:"Size "})+o.O1(t.size));const d=i.join(", ");let c=null;return c=s?r.createElement("a",{className:"file-details__preview",href:a},r.createElement("span",{className:"file-details__preview-helper"}),r.createElement("img",{alt:"file preview",src:o.Xm(t)})):r.createElement("span",{className:"file-details__preview"},r.createElement("span",{className:"file-details__preview-helper"}),r.createElement("img",{alt:"file preview",src:o.Xm(t)})),r.createElement("div",{className:"file-details__container"},c,r.createElement("div",{className:"file-details"},r.createElement("div",{className:"file-details__name"},t.name),r.createElement("div",{className:"file-details__info"},d)))},c=r.memo(d),m=(0,s.connect)((function(e){const t=(0,n.zj)(e);return{canDownloadFiles:(0,i.En)(t)}}))(c)},60729(e,t,a){"use strict";a.r(t),a.d(t,{default:()=>l});var s=a(37270),n=a(32446),i=a(79751),r=(a(15724),a(36418));const l=(0,s.connect)((function(e){return{modals:e.views.modals}}),(function(e){return{actions:(0,n.zH)({closeModal:i.O},e)}}))((e=>{let{modals:t,actions:a}=e;if(!t)return null;const{modalState:s}=t,n=[];for(const e in s)if(Object.hasOwn(s,e)){const t=s[e];if(t.open){const s=r.createElement(t.dialogType,Object.assign({},t.dialogProps,{onExited:()=>{a.closeModal(e),t.dialogProps?.onExited?.()},onHide:a.closeModal.bind(void 0,e),key:`${e}_modal`}));n.push(s)}}return r.createElement(r.Fragment,null,n)}))},25660(e,t,a){"use strict";a.r(t),a.d(t,{default:()=>c}),a(15724);var s=a(46177),n=a.n(s),i=a(97792),r=(a(23100),a(36418)),l=a(92600),o=a(53654),d=a(63155);const c=(0,r.memo)((e=>{let{fileInfo:t,fileUrl:a,scale:s,handleBgClose:c}=e;const m=(0,r.useRef)({}),u=(0,r.useRef)(null),g=(0,r.useRef)(null),p=(0,r.useRef)({}),[h,f]=(0,r.useState)({pdf:null,pages:{},pagesLoaded:{},numPages:0}),[E,M]=(0,r.useState)("loading");(0,r.useEffect)((()=>{f({pdf:null,pages:{},pagesLoaded:{},numPages:0}),M("loading"),(async()=>{try{(e=>{f((t=>({...t,pdf:e,numPages:e.numPages})));for(let t=0;t<e.numPages;t++)p.current[`pdfCanvasRef-${t}`]=r.createRef();M("success")})(await i.YE({url:a,cMapUrl:(0,d.vV)()+"/static/cmaps/",cMapPacked:!0}).promise)}catch(t){e=String(t),console.log("Unable to load PDF preview: "+e),M("fail")}var e})(),m.current={}}),[a]);const b=(0,r.useCallback)((async(e,t)=>{if(h.pagesLoaded[t])return h.pages[t];const a=await e.getPage(t+1);return f((e=>({...e,pages:{...e.pages,[t]:a},pagesLoaded:{...e.pagesLoaded,[t]:!0}}))),a}),[h.pages,h.pagesLoaded]),_=(0,r.useCallback)((async e=>{const t=p.current[`pdfCanvasRef-${e}`].current;if(!t)return;if(e>=3&&!(e=>{const t=e.getBoundingClientRect(),a=u.current?.scrollTop??0,s=a+(g.current?.clientHeight??0);return t.top>=a&&t.top<=s||t.bottom>=a&&t.bottom<=s||t.top<=a&&t.bottom>=s})(t))return;if(m.current[e])return;const a=await b(h.pdf,e),n=t.getContext("2d"),i=a.getViewport({scale:s});t.height=i.height,t.width=i.width;const r={canvasContext:n,viewport:i};await a.render(r).promise,m.current[e]=!0}),[b,h.pdf,s]);(0,r.useEffect)((()=>{const e=n()((()=>
1{if("success"===E)for(let e=0;e<h.numPages;e++)_(e)}),100);return u.current&&(g.current=u.current.parentElement,g.current?.addEventListener("scroll",e)),()=>{e.cancel(),g.current&&g.current.removeEventListener("scroll",e)}}),[h.numPages,_,E]);const y=(0,r.useRef)(s);(0,r.useEffect)((()=>{if(s!==y.current&&(y.current=s,m.current={},"success"===E))for(let e=0;e<h.numPages;e++)_(e)}),[h.numPages,_,s,E]);const v=(0,r.useRef)(E);if((0,r.useEffect)((()=>{if(v.current!==E&&"success"===E)for(let e=0;e<h.numPages;e++)_(e);v.current=E}),[h.numPages,_,E]),"loading"===E)return r.createElement("div",{ref:u,className:"view-image__loading"},r.createElement(o.A,null));if("fail"===E)return r.createElement(l.A,{fileInfo:t,fileUrl:a});const S=[];for(let e=0;e<h.numPages;e++)S.push(r.createElement("canvas",{ref:p.current[`pdfCanvasRef-${e}`],key:"previewpdfcanvas"+e})),e<h.numPages-1&&h.numPages>1&&S.push(r.createElement("div",{key:"previewpdfspacer"+e,className:"pdf-preview-spacer"}));return r.createElement("div",{ref:u,className:"post-code","data-testid":"pdf-container",onClick:c},S)}))},26676(e,t,a){"use strict";a.r(t),a.d(t,{default:()=>S}),a(43617),a(99930);var s=a(37270),n=a(32446),i=a(97282),r=a(35631),l=a(26366),o=a(8361),d=a(65952),c=a(26614),m=a(77440),u=a(80635),g=a(63647);const p=[];var h=a(36418),f=a(14778),E=a(37266),M=a(81444);class b extends h.PureComponent{componentDidMount(){this.props.isSystemAdmin&&this.props.actions.getStandardAnalytics()}componentDidUpdate(e){e.isSystemAdmin!==this.props.isSystemAdmin&&this.props.isSystemAdmin&&this.props.actions.getStandardAnalytics()}getCurrentNotice=()=>{for(const e of this.props.notices)if(!this.props.dismissedNotices[e.name]&&!this.props.preferences[e.name]&&(!e.adminOnly||this.props.isSystemAdmin)&&e.show?.(this.props.serverVersion,this.props.config,this.props.license,this.props.analytics,this.props.currentChannel))return e;return null};hide=(()=>{var e=this;return function(){let t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];const a=e.getCurrentNotice();a&&(t||e.props.actions.savePreferences(e.props.currentUserId,[{user_id:e.props.currentUserId,category:M.pm.CATEGORY_SYSTEM_NOTICE,name:a.name,value:"dismissed"}]),e.props.actions.dismissNotice(a.name))}})();hideAndRemind=()=>{this.hide(!0)};hideAndForget=()=>{this.hide(!1)};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 a=e.icon||h.createElement(E.A,null);return h.createElement("div",{className:"system-notice bg--white"},h.createElement("div",{className:"system-notice__logo"},a),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"})))))}}const _=(0,f.injectIntl)(b),y=(0,m.dI)("getSystemNoticePreferences",M.pm.CATEGORY_SYSTEM_NOTICE),v=(0,o.Mz)("getPreferenceNameMap",y,(e=>{const t={};return e.forEach((e=>{t[e.name]=e})),t})),S=(0,s.connect)((function(e){const t=(0,c.Ay)(e),a=(0,c.zj)(e),s=e.entities.general.serverVersion,n=e.entities.admin.analytics;return{currentUserId:e.entities.users.currentUserId,preferences:v(e),dismissedNotices:e.views.notice.hasBeenDismissed,isSystemAdmin:(0,u.y4)(e,{permission:l.xB.MANAGE_SYSTEM}),notices:p,config:a,license:t,serverVersion:s,analytics:n,currentChannel:(0,d.Lw)(e)}}),(function(e){return{actions:(0,n.zH)({savePreferences:r.SF,dismissNotice:g.L,getStandardAnalytics:i.ur},e)}}))(_)},59181(e,t,a){"use strict";a.d(t,{A:()=>i});var s=a(36418),n=a(14778);function i(e){const{formatMessage:t}=(0,n.useIntl)();return s.createElement("span",e,s.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"})},s.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.11998
1C6.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,a){"use strict";a.d(t,{A:()=>i});var s=a(36418),n=a(14778);function i(e){const{formatMessage:t}=(0,n.useIntl)();return s.createElement("span",e,s.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"})},s.createElement("g",{stroke:"none",strokeWidth:"1",fill:"inherit",fillRule:"evenodd"},s.createElement("g",{transform:"translate(-116.000000, -175.000000)",fillRule:"nonzero",fill:"inherit"},s.createElement("g",{transform:"translate(95.000000, 0.000000)"},s.createElement("g",{transform:"translate(20.000000, 113.000000)"},s.createElement("g",{transform:"translate(1.000000, 62.000000)"},s.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,a){"use strict";a.d(t,{A:()=>i});var s=a(36418),n=a(14778);function i(e){const{formatMessage:t}=(0,n.useIntl)();return s.createElement("span",e,s.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"})},s.createElement("g",{stroke:"none",strokeWidth:"1",fill:"inherit",fillRule:"evenodd"},s.createElement("g",{transform:"translate(-188.000000, -38.000000)",fillRule:"nonzero",fill:"inherit"},s.createElement("g",null,s.createElement("g",null,s.createElement("g",{transform:"translate(188.000000, 38.000000)"},s.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"}))))))))}},34005(e,t,a){"use strict";a.d(t,{A:()=>f});var s=a(71633),n=a.n(s),i=a(36418),r=a(14778),l=a(7453),o=a(7167),d=a(71127),c=a(94231),m=a(59181),u=a(74381),g=a(53654),p=a(81444);const h=(0,r.defineMessages)({loading:{id:"widgets.channels_input.loading",defaultMessage:"Loading"},noOptions:{id:"widgets.channels_input.empty",defaultMessage:"No channels found"}});class f extends i.PureComponent{static defaultProps={loadingMessage:h.loading,noOptionsMessage:h.noOptions};constructor(e){super(e),this.selectRef=i.createRef(),this.state={options:[]}}getOptionValue=e=>e.id;handleInputChange=(e,t)=>
1{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)};optionsLoader=(e,t)=>{const a=e=>{this.setState({options:e}),t(e)},s=this.props.channelsLoader(e,a);s&&s.then&&s.then(a)};loadingMessage=()=>{const e=i.createElement(r.FormattedMessage,this.props.loadingMessage);return i.createElement(g.A,{text:e})};NoOptionsMessage=e=>{const t=e.selectProps.inputValue;if(!t)return null;const a=l.c.NoOptionsMessage;return i.createElement("div",{className:"channels-input__option channels-input__option--no-matches"},i.createElement(a,e,i.createElement(d.A,Object.assign({},this.props.noOptionsMessage,{values:{text:t}}))))};formatOptionLabel=e=>{let t=i.createElement(m.A,{className:"public-channel-icon"});return e.type===p.YM.PRIVATE_CHANNEL&&(t=i.createElement(u.A,{className:"private-channel-icon"})),i.createElement(i.Fragment,null,t,e.display_name,i.createElement("span",{className:"channel-name"},e.name))};onChange=e=>{this.props.onChange&&this.props.onChange([...e])};MultiValueRemove=e=>{const{innerProps:t,children:a}=e;return i.createElement("div",t,a||i.createElement(c.A,null))};components={NoOptionsMessage:this.NoOptionsMessage,MultiValueRemove:this.MultiValueRemove,IndicatorsContainer:()=>null};onFocus=()=>{this.selectRef.current?.onInputChange(this.props.inputValue,{prevInputValue:this.props.inputValue,action:"set-value"})};render(){return i.createElement(o.A,{ref:this.selectRef,onChange:this.onChange,loadOptions:this.optionsLoader,isMulti:!0,isClearable:!1,className:n()("ChannelsInput",{empty:""===this.props.inputValue}),classNamePrefix:"channels-input",placeholder:this.props.placeholder,components:this.components,getOptionValue:this.getOptionValue,formatOptionLabel:this.props.formatOptionLabel??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})}}},74290(e,t,a){"use strict";a.d(t,{jd:()=>l,s9:()=>r}),a(76281),a(43617),a(99930);var s=a(8361),n=a(3569);const i=["mattermost-advisor"];function r(e){return e.entities.bots.accounts}const l=(0,s.Mz)("getExternalBotAccounts",r,n.lo,((e,t)=>{const a={};return Object.values(e).forEach((e=>{const s=t[e.user_id];s&&!i.includes(s.username)&&(a[e.user_id]=e)})),a}))},54302(e,t,a){"use strict";a.d(t,{I:()=>i}),a(5673),a(30164),a(21279);var s=a(36418),n=a(81911);function i(){const{search:e}=(0,n.useLocation)();return(0,s.useMemo)((()=>new URLSearchParams(e)),[e])}},38659(e,t,a){var s={"./simpleWorker":84869,"./simpleWorker.js":84869};function n(e){return Promise.resolve().then((()=>
1{if(!a.o(s,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return a(s[e])}))}n.keys=()=>Object.keys(s),n.id=38659,e.exports=n},83288(e,t,a){var s={"./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":[52794,[]],"./model.js":[52794,[]],"./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 n(e){try{if(!a.o(s,e))return Promise.resolve().then((()=>{var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}))}catch(e){return Promise.reject(e)}var t=s[e],n=t[0];return Promise.all(t[1].map(a.e)).then((()=>a(n)))}n.keys=()=>Object.keys(s),n.id=83288,e.exports=n},32683(e,t){"use strict";var a,s;t.dQ=void 0,function(e){e.SILLY="silly",e.DEBUG="debug",e.INFO="info",e.WARN="warn",e.ERROR="error"}(a||(a={})),function(e){e.Count="count",e.LineChart="line_chart",e.DoughnutChart="doughnut_chart"}(s||(t.dQ=s={}))},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}}}]); 2//# sourceMappingURL=4331.319f594477e64923c5fb.js.map
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.