EVOLUTION-MANAGER
Edit File: 17.c08ea1b20a5df649cb46.js
(window.webpackJsonp=window.webpackJsonp||[]).push([[17],{1344:function(e,t,a){"use strict";a.d(t,"a",(function(){return n})),a.d(t,"b",(function(){return r})),a.d(t,"c",(function(){return o}));var s=a(20),i=a(10);function n(e){return(t,a)=>{const n=Object(i.getCurrentUserId)(a());return t(s.updateUserMfa(n,!0,e))}}function r(){return(e,t)=>{const a=Object(i.getCurrentUserId)(t());return e(s.updateUserMfa(a,!1))}}function o(){return(e,t)=>{const a=Object(i.getCurrentUserId)(t());return e(s.generateMfaSecret(a))}}},1349:function(e,t,a){"use strict";var s=a(309),i=a(6),n=a(20),r=a(10),o=a(13),l=(a(60),a(98),a(72),a(33)),c=a.n(l),d=a(7),u=a.n(d),m=a(1388),p=a(1106),h=a(1103),g=a(314),f=a(27),b=a(1118),E=a(14);const v=Object(m.defineMessages)({sessionRevoked:{id:Object(f.b)("audit_table.sessionRevoked"),defaultMessage:"The session with id {sessionId} was revoked"},channelCreated:{id:Object(f.b)("audit_table.channelCreated"),defaultMessage:"Created the {channelName} channel"},establishedDM:{id:Object(f.b)("audit_table.establishedDM"),defaultMessage:"Established a direct message channel with {username}"},nameUpdated:{id:Object(f.b)("audit_table.nameUpdated"),defaultMessage:"Updated the {channelName} channel name"},headerUpdated:{id:Object(f.b)("audit_table.headerUpdated"),defaultMessage:"Updated the {channelName} channel header"},channelDeleted:{id:Object(f.b)("audit_table.channelDeleted"),defaultMessage:"Archived the channel with the URL {url}"},userAdded:{id:Object(f.b)("audit_table.userAdded"),defaultMessage:"Added {username} to the {channelName} channel"},userRemoved:{id:Object(f.b)("audit_table.userRemoved"),defaultMessage:"Removed {username} to the {channelName} channel"},attemptedRegisterApp:{id:Object(f.b)("audit_table.attemptedRegisterApp"),defaultMessage:"Attempted to register a new OAuth Application with ID {id}"},attemptedAllowOAuthAccess:{id:Object(f.b)("audit_table.attemptedAllowOAuthAccess"),defaultMessage:"Attempted to allow a new OAuth service access"},successfullOAuthAccess:{id:Object(f.b)("audit_table.successfullOAuthAccess"),defaultMessage:"Successfully gave a new OAuth service access"},failedOAuthAccess:{id:Object(f.b)("audit_table.failedOAuthAccess"),defaultMessage:"Failed to allow a new OAuth service access - the redirect URI did not match the previously registered callback"},attemptedOAuthToken:{id:Object(f.b)("audit_table.attemptedOAuthToken"),defaultMessage:"Attempted to get an OAuth access token"},successfullOAuthToken:{id:Object(f.b)("audit_table.successfullOAuthToken"),defaultMessage:"Successfully added a new OAuth service"},oauthTokenFailed:{id:Object(f.b)("audit_table.oauthTokenFailed"),defaultMessage:"Failed to get an OAuth access token - {token}"},attemptedLogin:{id:Object(f.b)("audit_table.attemptedLogin"),defaultMessage:"Attempted to login"},authenticated:{id:Object(f.b)("audit_table.authenticated"),defauleMessage:"Successfully authenticated"},successfullLogin:{id:Object(f.b)("audit_table.successfullLogin"),defaultMessage:"Successfully logged in"},failedLogin:{id:Object(f.b)("audit_table.failedLogin"),defaultMessage:"FAILED login attempt"},updatePicture:{id:Object(f.b)("audit_table.updatePicture"),defaultMessage:"Updated your profile picture"},updateGeneral:{id:Object(f.b)("audit_table.updateGeneral"),defaultMessage:"Updated the general settings of your account"},attemptedPassword:{id:Object(f.b)("audit_table.attemptedPassword"),defaultMessage:"Attempted to change password"},successfullPassword:{id:Object(f.b)("audit_table.successfullPassword"),defaultMessage:"Successfully changed password"},failedPassword:{id:Object(f.b)("audit_table.failedPassword"),defaultMessage:"Failed to change password - tried to update user password who was logged in through OAuth"},updatedRol:{id:Object(f.b)("audit_table.updatedRol"),defaultMessage:"Updated user role(s) to "},member:{id:Object(f.b)("audit_table.member"),defaultMessage:"member"},accountActive:{id:Object(f.b)("audit_table.accountActive"),defaultMessage:"Account activated"},accountInactive:{id:Object(f.b)("audit_table.accountInactive"),defaultMessage:"Account deactivated"},by:{id:Object(f.b)("audit_table.by"),defaultMessage:" by {username}"},byAdmin:{id:Object(f.b)("audit_table.byAdmin"),defaultMessage:" by an admin"},sentEmail:{id:Object(f.b)("audit_table.sentEmail"),defaultMessage:"Sent an email to {email} to reset your password"},attemptedReset:{id:Object(f.b)("audit_table.attemptedReset"),defaultMessage:"Attempted to reset password"},successfullReset:{id:Object(f.b)("audit_table.successfullReset"),defaultMessage:"Successfully reset password"},updateGlobalNotifications:{id:Object(f.b)("audit_table.updateGlobalNotifications"),defaultMessage:"Updated your global notification settings"},attemptedWebhookCreate:{id:Object(f.b)("audit_table.attemptedWebhookCreate"),defaultMessage:"Attempted to create a webhook"},succcessfullWebhookCreate:{id:Object(f.b)("audit_table.successfullWebhookCreate"),defaultMessage:"Successfully created a webhook"},failedWebhookCreate:{id:Object(f.b)("audit_table.failedWebhookCreate"),defaultMessage:"Failed to create a webhook - bad channel permissions"},attemptedWebhookDelete:{id:Object(f.b)("audit_table.attemptedWebhookDelete"),defaultMessage:"Attempted to delete a webhook"},successfullWebhookDelete:{id:Object(f.b)("audit_table.successfullWebhookDelete"),defaultMessage:"Successfully deleted a webhook"},failedWebhookDelete:{id:Object(f.b)("audit_table.failedWebhookDelete"),defaultMessage:"Failed to delete a webhook - inappropriate conditions"},logout:{id:Object(f.b)("audit_table.logout"),defaultMessage:"Logged out of your account"},verified:{id:Object(f.b)("audit_table.verified"),defaultMessage:"Successfully verified your email address"},revokedAll:{id:Object(f.b)("audit_table.revokedAll"),defaultMessage:"Revoked all current sessions for the team"},loginAttempt:{id:Object(f.b)("audit_table.loginAttempt"),defaultMessage:" (Login attempt)"},loginFailure:{id:Object(f.b)("audit_table.loginFailure"),defaultMessage:" (Login failure)"},attemptedLicenseAdd:{id:Object(f.b)("audit_table.attemptedLicenseAdd"),defaultMessage:"Attempted to add new license"},successfullLicenseAdd:{id:Object(f.b)("audit_table.successfullLicenseAdd"),defaultMessage:"Successfully added new license"},failedExpiredLicenseAdd:{id:Object(f.b)("audit_table.failedExpiredLicenseAdd"),defaultMessage:"Failed to add a new license as it has either expired or not yet been started"},failedInvalidLicenseAdd:{id:Object(f.b)("audit_table.failedInvalidLicenseAdd"),defaultMessage:"Failed to add an invalid license"},licenseRemoved:{id:Object(f.b)("audit_table.licenseRemoved"),defaultMessage:"Successfully removed a license"}});class S extends u.a.PureComponent{componentDidMount(){const e=this.props.audits.map(e=>e.user_id);this.props.actions.getMissingProfilesByIds(e)}render(){const e=this.props.audits,t=this.props.showUserId,a=this.props.showIp,s=this.props.showSession;for(var i=[],n=0;n<e.length;n++){const r=e[n],o=this.formatAuditInfo(r);let l,c,d;t&&(l=u.a.createElement("td",{className:"word-break--all"},o.userId)),a&&(c=u.a.createElement("td",{className:"whitespace--nowrap word-break--all"},o.ip)),s&&(d=u.a.createElement("td",{className:"whitespace--nowrap word-break--all"},o.sessionId));let m="";-1!==o.desc.toLowerCase().indexOf("fail")&&(m=" color--error"),i[n]=u.a.createElement("tr",{key:r.id},u.a.createElement("td",{className:"whitespace--nowrap word-break--all"},o.timestamp),l,u.a.createElement("td",{className:"word-break--all"+m},o.desc),c,d)}let r,o,l;return t&&(r=u.a.createElement("th",null,u.a.createElement(p.a,{id:"audit_table.userId",defaultMessage:"User ID"}))),a&&(o=u.a.createElement("th",null,u.a.createElement(p.a,{id:"audit_table.ip",defaultMessage:"IP Address"}))),s&&(l=u.a.createElement("th",null,u.a.createElement(p.a,{id:"audit_table.session",defaultMessage:"Session ID"}))),u.a.createElement("table",{className:"table"},u.a.createElement("thead",null,u.a.createElement("tr",null,u.a.createElement("th",null,u.a.createElement(p.a,{id:"audit_table.timestamp",defaultMessage:"Timestamp"})),r,u.a.createElement("th",null,u.a.createElement(p.a,{id:"audit_table.action",defaultMessage:"Action"})),o,l)),u.a.createElement("tbody",null,i))}formatAuditInfo(e){const{formatMessage:t}=this.props.intl,a=e.action.replace(/\/api\/v[1-9]/,"");let s="";if(0===a.indexOf("/channels")){const n=e.extra_info.split(" "),r=n[0].split("=");let o,l="",c="";switch(r.indexOf("name")>=0&&(l=r[r.indexOf("name")+1],c=(o=this.props.getByName(l))?o.display_name:l),a){case"/channels/create":s=t(v.channelCreated,{channelName:c});break;case"/channels/create_direct":s=t(v.establishedDM,{username:Object(E.t)(o.id).username});break;case"/channels/update":s=t(v.nameUpdated,{channelName:c});break;case"/channels/update_desc":case"/channels/update_header":s=t(v.headerUpdated,{channelName:c});break;default:{let e=[],r="",o="";if(n[1]&&(e=n[1].split("=")).indexOf("user_id")>=0){r=e[e.indexOf("user_id")+1];var i=this.props.getUser(r);i&&(o=i.username)}/\/channels\/[A-Za-z0-9]+\/delete/.test(a)?s=t(v.channelDeleted,{url:l}):/\/channels\/[A-Za-z0-9]+\/add/.test(a)?s=t(v.userAdded,{username:o,channelName:c}):/\/channels\/[A-Za-z0-9]+\/remove/.test(a)&&(s=t(v.userRemoved,{username:o,channelName:c}));break}}}else if(0===a.indexOf("/oauth")){const i=e.extra_info.split(" ");switch(a){case"/oauth/register":{const e=i[0].split("=");"client_id"===e[0]&&(s=t(v.attemptedRegisterApp,{id:e[1]}));break}case"/oauth/allow":"attempt"===i[0]?s=t(v.attemptedAllowOAuthAccess):"success"===i[0]?s=t(v.successfullOAuthAccess):"fail - redirect_uri did not match registered callback"===i[0]&&(s=t(v.failedOAuthAccess));break;case"/oauth/access_token":if("attempt"===i[0])s=t(v.attemptedOAuthToken);else if("success"===i[0])s=t(v.successfullOAuthToken);else{const e=i[0].split("-");"fail"===e[0].trim()&&e[1]&&(s=t(e,{token:e[1].trim()}))}}}else if(0===a.indexOf("/users")){const i=e.extra_info.split(" ");switch(a){case"/users/login":"attempt"===i[0]?s=t(v.attemptedLogin):"success"===i[0]?s=t(v.successfullLogin):"authenticated"===i[0]?s=t(v.authenticated):i[0]&&(s=t(v.failedLogin));break;case"/users/revoke_session":s=t(v.sessionRevoked,{sessionId:i[0].split("=")[1]});break;case"/users/newimage":s=t(v.updatePicture);break;case"/users/update":s=t(v.updateGeneral);break;case"/users/newpassword":"attempted"===i[0]?s=t(v.attemptedPassword):"completed"===i[0]?s=t(v.successfullPassword):"failed - tried to update user password who was logged in through oauth"===i[0]&&(s=t(v.failedPassword));break;case"/users/update_roles":{const e=i[0].split("=")[1];s=t(v.updatedRol),e.trim()?s+=e:s+=t(v.member);break}case"/users/update_active":{const e=i[0].split("=")[0],a=i[0].split("=")[1];if("active"===e){"true"===a?s=t(v.accountActive):"false"===a&&(s=t(v.accountInactive));const e=i[1].split("=");if("session_user"===e[0]){const a=this.props.getUser(e[1]),i=this.props.currentUser;i&&a&&Object(E.ab)(i.roles)?s+=t(v.by,{username:a.username}):i&&a&&(s+=t(v.byAdmin))}}else"session_id"===e&&(s=t(v.sessionRevoked,{sessionId:a}));break}case"/users/send_password_reset":s=t(v.sentEmail,{email:i[0].split("=")[1]});break;case"/users/reset_password":"attempt"===i[0]?s=t(v.attemptedReset):"success"===i[0]&&(s=t(v.successfullReset));break;case"/users/update_notify":s=t(v.updateGlobalNotifications)}}else if(0===a.indexOf("/hooks")){const i=e.extra_info;switch(a){case"/hooks/incoming/create":"attempt"===i?s=t(v.attemptedWebhookCreate):"success"===i?s=t(v.succcessfullWebhookCreate):"fail - bad channel permissions"===i&&(s=t(v.failedWebhookCreate));break;case"/hooks/incoming/delete":"attempt"===i?s=t(v.attemptedWebhookDelete):"success"===i?s=t(v.successfullWebhookDelete):"fail - inappropriate conditions"===i&&(s=t(v.failedWebhookDelete))}}else if(0===a.indexOf("/license")){const i=e.extra_info;switch(a){case"/license/add":"attempt"===i?s=t(v.attemptedLicenseAdd):"success"===i?s=t(v.successfullLicenseAdd):"failed - expired or non-started license"===i?s=t(v.failedExpiredLicenseAdd):"failed - invalid license"===i&&(s=t(v.failedInvalidLicenseAdd));break;case"/license/remove":s=t(v.licenseRemoved)}}else if(0===a.indexOf("/admin/download_compliance_report"))s=Object(E.qb)(e.extra_info);else switch(a){case"/logout":s=t(v.logout);break;case"/verify_email":s=t(v.verified)}if(!s)if(e.extra_info.indexOf("revoked_all=")>=0)s=t(v.revokedAll);else{let t="";a&&-1!==a.lastIndexOf("/")&&(t=a.substring(a.lastIndexOf("/")+1).replace("_"," "),t=Object(E.qb)(t));let i="";e.extra_info&&-1!==(i=e.extra_info).indexOf("=")&&(i=i.substring(i.indexOf("=")+1)),s=t+" "+i}const n=new Date(e.create_at),r={};r.timestamp=u.a.createElement("div",null,u.a.createElement("div",null,u.a.createElement(h.a,{value:n,day:"2-digit",month:"short",year:"numeric"})),u.a.createElement("div",null,u.a.createElement(h.b,{value:n,hour:"2-digit",minute:"2-digit"})));const o=this.props.getUser(e.user_id);return r.userId=o?o.email:e.user_id,r.desc=s,r.ip=e.ip_address,r.sessionId=e.session_id,r}}var y,_,M;y=S,_="propTypes",M={intl:b.a.isRequired,audits:c.a.array.isRequired,showUserId:c.a.bool,showIp:c.a.bool,showSession:c.a.bool,currentUser:c.a.object.isRequired,getUser:c.a.func.isRequired,getByName:c.a.func.isRequired,actions:c.a.shape({getMissingProfilesByIds:c.a.func.isRequired}).isRequired},_ in y?Object.defineProperty(y,_,{value:M,enumerable:!0,configurable:!0,writable:!0}):y[_]=M;var N=Object(g.c)(S);t.a=Object(s.connect)((function(e){return{currentUser:Object(r.getCurrentUser)(e),getUser:t=>Object(r.getUser)(e,t),getByName:t=>Object(o.getChannelByName)(e,t)}}),(function(e){return{actions:Object(i.bindActionCreators)({getMissingProfilesByIds:n.getMissingProfilesByIds},e)}}))(N)},1965:function(e,t,a){"use strict";a.r(t);var s=a(309),i=a(10),n=a(33),r=a.n(n),o=a(7),l=a.n(o),c=a(6),d=a(15),u=a(19),m=a(73),p=a(20),h=a(0),g=(a(52),a(34),a(1106)),f=a(1120),b=a(14),E=a(27),v=a(1135),S=a(1146),y=a(1121),_=a(1222),M=a(12);function N(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class C extends l.a.PureComponent{constructor(e){super(e),N(this,"handleOnChange",e=>{const t=e.currentTarget.value;this.setState({joinLeaveState:t})}),N(this,"handleUpdateSection",e=>{e||this.setState({joinLeaveState:this.props.joinLeave}),this.props.onUpdateSection(e)}),N(this,"handleSubmit",()=>{const{actions:e,currentUserId:t,onUpdateSection:a}=this.props,s={category:M.Preferences.CATEGORY_ADVANCED_SETTINGS,user_id:t,name:M.Preferences.ADVANCED_FILTER_JOIN_LEAVE,value:this.state.joinLeaveState};e.savePreferences(t,[s]),a()}),this.state={joinLeaveState:e.joinLeave}}render(){const{joinLeaveState:e}=this.state;return this.props.activeSection===h.g.JOIN_LEAVE?l.a.createElement(v.a,{title:l.a.createElement(g.a,{id:"user.settings.advance.joinLeaveTitle",defaultMessage:"Enable Join/Leave Messages"}),inputs:[l.a.createElement("fieldset",{key:"joinLeaveSetting"},l.a.createElement("legend",{className:"form-legend hidden-label"},l.a.createElement(g.a,{id:"user.settings.advance.joinLeaveTitle",defaultMessage:"Enable Join/Leave Messages"})),l.a.createElement("div",{className:"radio"},l.a.createElement("label",null,l.a.createElement("input",{id:"joinLeaveOn",type:"radio",value:"true",name:h.g.JOIN_LEAVE,checked:"true"===e,onChange:this.handleOnChange}),l.a.createElement(g.a,{id:"user.settings.advance.on",defaultMessage:"On"})),l.a.createElement("br",null)),l.a.createElement("div",{className:"radio"},l.a.createElement("label",null,l.a.createElement("input",{id:"joinLeaveOff",type:"radio",value:"false",name:h.g.JOIN_LEAVE,checked:"false"===e,onChange:this.handleOnChange}),l.a.createElement(g.a,{id:"user.settings.advance.off",defaultMessage:"Off"})),l.a.createElement("br",null)),l.a.createElement("div",{className:"margin-top x3"},l.a.createElement(g.a,{id:"user.settings.advance.joinLeaveDesc",defaultMessage:'When "On", System Messages saying a user has joined or left a channel will be visible. When "Off", the System Messages about joining or leaving a channel will be hidden. A message will still show up when you are added to a channel, so you can receive a notification.'})))],setting:h.g.JOIN_LEAVE,submit:this.handleSubmit,saving:this.state.isSaving,server_error:this.state.serverError,updateSection:this.handleUpdateSection}):l.a.createElement(S.a,{title:l.a.createElement(g.a,{id:"user.settings.advance.joinLeaveTitle",defaultMessage:"Enable Join/Leave Messages"}),describe:this.props.renderOnOffLabel(e),section:h.g.JOIN_LEAVE,updateSection:this.handleUpdateSection})}}N(C,"propTypes",{activeSection:r.a.string,currentUserId:r.a.string.isRequired,joinLeave:r.a.string,onUpdateSection:r.a.func.isRequired,renderOnOffLabel:r.a.func.isRequired,actions:r.a.shape({savePreferences:r.a.func.isRequired}).isRequired});var k=Object(s.connect)((function(e){const t=Object(u.get)(e,M.Preferences.CATEGORY_ADVANCED_SETTINGS,M.Preferences.ADVANCED_FILTER_JOIN_LEAVE,"true");return{currentUserId:Object(i.getCurrentUserId)(e),joinLeave:t}}),(function(e){return{actions:Object(c.bindActionCreators)({savePreferences:m.savePreferences},e)}}))(C);function O(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const A=h.Q.PRE_RELEASE_FEATURES;class T extends l.a.PureComponent{constructor(e){super(e),O(this,"getStateFromProps",()=>{const e=this.props.advancedSettingsCategory,t={send_on_ctrl_enter:this.props.sendOnCtrlEnter,code_block_ctrl_enter:this.props.codeBlockOnCtrlEnter,formatting:this.props.formatting,join_leave:this.props.joinLeave},a=Object.keys(A);let s=0;for(const i of e)for(const e of a){const a=A[e];i.name===h.Q.FeatureTogglePrefix+a.label&&(t[i.name]=i.value,"true"===i.value&&(s+=1))}const i=this.props.enablePreviewFeatures;return{preReleaseFeatures:A,settings:t,preReleaseFeaturesKeys:a,enabledFeatures:s,isSaving:!1,previewFeaturesEnabled:i,showDeactivateAccountModal:!1}}),O(this,"updateSetting",(e,t)=>{const a=this.state.settings;a[e]=t,this.setState(a)}),O(this,"toggleFeature",(e,t)=>{const a=this.state.settings;a[h.Q.FeatureTogglePrefix+e]=String(t);let s=0;Object.keys(this.state.settings).forEach(e=>{0===e.lastIndexOf(h.Q.FeatureTogglePrefix)&&"true"===this.state.settings[e]&&s++}),this.setState({settings:a,enabledFeatures:s})}),O(this,"saveEnabledFeatures",()=>{const e=[];Object.keys(this.state.settings).forEach(t=>{0===t.lastIndexOf(h.Q.FeatureTogglePrefix)&&e.push(t)}),this.handleSubmit(e)}),O(this,"handleSubmit",async e=>{const t=[],{actions:a,currentUser:s}=this.props,i=s.id;(Array.isArray(e)?e:[e]).forEach(e=>{t.push({user_id:i,category:h.Q.Preferences.CATEGORY_ADVANCED_SETTINGS,name:e,value:this.state.settings[e]})}),this.setState({isSaving:!0}),await a.savePreferences(i,t),this.handleUpdateSection("")}),O(this,"handleDeactivateAccountSubmit",async()=>{const e=this.props.currentUser.id;this.setState({isSaving:!0}),this.props.actions.updateUserActive(e,!1).then(({error:e})=>{e&&this.setState({serverError:e.message})});const{data:t,error:a}=await this.props.actions.revokeAllSessionsForUser(e);t?Object(f.e)():a&&this.setState({serverError:a.message})}),O(this,"handleShowDeactivateAccountModal",()=>{this.setState({showDeactivateAccountModal:!0})}),O(this,"handleHideDeactivateAccountModal",()=>{this.setState({showDeactivateAccountModal:!1})}),O(this,"handleUpdateSection",e=>{e||this.setState(this.getStateFromProps()),this.setState({isSaving:!1}),this.props.updateSection(e)}),O(this,"getCtrlSendText",()=>{const e={default:{id:Object(E.b)("user.settings.advance.sendDesc"),defaultMessage:"When enabled, CTRL + ENTER will send the message and ENTER inserts a new line."},mac:{id:Object(E.b)("user.settings.advance.sendDesc.mac"),defaultMessage:"When enabled, ⌘ + ENTER will send the message and ENTER inserts a new line."}},t={default:{id:Object(E.b)("user.settings.advance.sendTitle"),defaultMessage:"Send messages on CTRL+ENTER"},mac:{id:Object(E.b)("user.settings.advance.sendTitle.mac"),defaultMessage:"Send messages on ⌘+ENTER"}};return b.X()?{ctrlSendTitle:t.mac,ctrlSendDesc:e.mac}:{ctrlSendTitle:t.default,ctrlSendDesc:e.default}}),O(this,"renderFormattingSection",()=>"formatting"===this.props.activeSection?l.a.createElement(v.a,{title:l.a.createElement(g.a,{id:"user.settings.advance.formattingTitle",defaultMessage:"Enable Post Formatting"}),inputs:[l.a.createElement("fieldset",{key:"formattingSetting"},l.a.createElement("legend",{className:"form-legend hidden-label"},l.a.createElement(g.a,{id:"user.settings.advance.formattingTitle",defaultMessage:"Enable Post Formatting"})),l.a.createElement("div",{className:"radio"},l.a.createElement("label",null,l.a.createElement("input",{id:"postFormattingOn",type:"radio",name:"formatting",checked:"false"!==this.state.settings.formatting,onChange:this.updateSetting.bind(this,"formatting","true")}),l.a.createElement(g.a,{id:"user.settings.advance.on",defaultMessage:"On"})),l.a.createElement("br",null)),l.a.createElement("div",{className:"radio"},l.a.createElement("label",null,l.a.createElement("input",{id:"postFormattingOff",type:"radio",name:"formatting",checked:"false"===this.state.settings.formatting,onChange:this.updateSetting.bind(this,"formatting","false")}),l.a.createElement(g.a,{id:"user.settings.advance.off",defaultMessage:"Off"})),l.a.createElement("br",null)),l.a.createElement("div",{className:"margin-top x3"},l.a.createElement(g.a,{id:"user.settings.advance.formattingDesc",defaultMessage:"If enabled, posts will be formatted to create links, show emoji, style the text, and add line breaks. By default, this setting is enabled."})))],setting:"formatting",submit:this.handleSubmit,saving:this.state.isSaving,server_error:this.state.serverError,updateSection:this.handleUpdateSection}):l.a.createElement(S.a,{title:l.a.createElement(g.a,{id:"user.settings.advance.formattingTitle",defaultMessage:"Enable Post Formatting"}),describe:this.renderOnOffLabel(this.state.settings.formatting),section:"formatting",updateSection:this.handleUpdateSection})),this.state=this.getStateFromProps()}renderOnOffLabel(e){return"false"===e?l.a.createElement(g.a,{id:"user.settings.advance.off",defaultMessage:"Off"}):l.a.createElement(g.a,{id:"user.settings.advance.on",defaultMessage:"On"})}renderCtrlEnterLabel(){const e=this.state.settings.send_on_ctrl_enter,t=this.state.settings.code_block_ctrl_enter;return"false"===e&&"false"===t?l.a.createElement(g.a,{id:"user.settings.advance.off",defaultMessage:"Off"}):"true"===e&&"true"===t?l.a.createElement(g.a,{id:"user.settings.advance.onForAllMessages",defaultMessage:"On for all messages"}):l.a.createElement(g.a,{id:"user.settings.advance.onForCode",defaultMessage:"On only for code blocks starting with ```"})}renderFeatureLabel(e){switch(e){case"MARKDOWN_PREVIEW":return l.a.createElement(g.a,{id:"user.settings.advance.markdown_preview",defaultMessage:"Show markdown preview option in message input box"});default:return null}}render(){const e=this.state.serverError||null;let t;const{ctrlSendTitle:a,ctrlSendDesc:s}=this.getCtrlSendText();if("advancedCtrlSend"===this.props.activeSection){const i=["true"===this.state.settings.send_on_ctrl_enter,"false"===this.state.settings.send_on_ctrl_enter&&"true"===this.state.settings.code_block_ctrl_enter,"false"===this.state.settings.send_on_ctrl_enter&&"false"===this.state.settings.code_block_ctrl_enter],n=[l.a.createElement("fieldset",{key:"ctrlSendSetting"},l.a.createElement("legend",{className:"form-legend hidden-label"},l.a.createElement(g.a,a)),l.a.createElement("div",{className:"radio"},l.a.createElement("label",null,l.a.createElement("input",{id:"ctrlSendOn",type:"radio",name:"sendOnCtrlEnter",checked:i[0],onChange:()=>{this.updateSetting("send_on_ctrl_enter","true"),this.updateSetting("code_block_ctrl_enter","true")}}),l.a.createElement(g.a,{id:"user.settings.advance.onForAllMessages",defaultMessage:"On for all messages"})),l.a.createElement("br",null)),l.a.createElement("div",{className:"radio"},l.a.createElement("label",null,l.a.createElement("input",{id:"ctrlSendOnForCode",type:"radio",name:"sendOnCtrlEnter",checked:i[1],onChange:()=>{this.updateSetting("send_on_ctrl_enter","false"),this.updateSetting("code_block_ctrl_enter","true")}}),l.a.createElement(g.a,{id:"user.settings.advance.onForCode",defaultMessage:"On only for code blocks starting with ```"})),l.a.createElement("br",null)),l.a.createElement("div",{className:"radio"},l.a.createElement("label",null,l.a.createElement("input",{id:"ctrlSendOff",type:"radio",name:"sendOnCtrlEnter",checked:i[2],onChange:()=>{this.updateSetting("send_on_ctrl_enter","false"),this.updateSetting("code_block_ctrl_enter","false")}}),l.a.createElement(g.a,{id:"user.settings.advance.off",defaultMessage:"Off"})),l.a.createElement("br",null)),l.a.createElement("div",null,l.a.createElement("br",null),l.a.createElement(g.a,s)))];t=l.a.createElement(v.a,{title:l.a.createElement(g.a,a),inputs:n,submit:this.handleSubmit.bind(this,["send_on_ctrl_enter","code_block_ctrl_enter"]),saving:this.state.isSaving,server_error:e,updateSection:this.handleUpdateSection})}else t=l.a.createElement(S.a,{title:l.a.createElement(g.a,a),describe:this.renderCtrlEnterLabel(),section:"advancedCtrlSend",updateSection:this.handleUpdateSection});const i=this.renderFormattingSection();let n,r,o=null;if(i&&(o=l.a.createElement("div",{className:"divider-light"})),this.state.previewFeaturesEnabled&&this.state.preReleaseFeaturesKeys.length>0)if(r=l.a.createElement("div",{className:"divider-light"}),"advancedPreviewFeatures"===this.props.activeSection){const t=[];this.state.preReleaseFeaturesKeys.forEach(e=>{const a=this.state.preReleaseFeatures[e];t.push(l.a.createElement("div",{key:"advancedPreviewFeatures_"+a.label},l.a.createElement("div",{className:"checkbox"},l.a.createElement("label",null,l.a.createElement("input",{id:"advancedPreviewFeatures"+a.label,type:"checkbox",checked:"true"===this.state.settings[h.Q.FeatureTogglePrefix+a.label],onChange:e=>{this.toggleFeature(a.label,e.target.checked)}}),this.renderFeatureLabel(e)))))}),t.push(l.a.createElement("div",{key:"advancedPreviewFeatures_helptext"},l.a.createElement("br",null),l.a.createElement(g.a,{id:"user.settings.advance.preReleaseDesc",defaultMessage:"Check any pre-released features you'd like to preview. You may also need to refresh the page before the setting will take effect."}))),n=l.a.createElement(v.a,{title:l.a.createElement(g.a,{id:"user.settings.advance.preReleaseTitle",defaultMessage:"Preview pre-release features"}),inputs:t,submit:this.saveEnabledFeatures,saving:this.state.isSaving,server_error:e,updateSection:this.handleUpdateSection})}else n=l.a.createElement(S.a,{title:b.gb("user.settings.advance.preReleaseTitle","Preview pre-release features"),describe:l.a.createElement(g.a,{id:"user.settings.advance.enabledFeatures",defaultMessage:"{count, number} {count, plural, one {Feature} other {Features}} Enabled",values:{count:this.state.enabledFeatures}}),section:"advancedPreviewFeatures",updateSection:this.handleUpdateSection});let c="",d="";if(""===this.props.currentUser.auth_service&&this.props.enableUserDeactivation){c="deactivateAccount"===this.props.activeSection?l.a.createElement(v.a,{title:l.a.createElement(g.a,{id:"user.settings.advance.deactivateAccountTitle",defaultMessage:"Deactivate Account"}),inputs:[l.a.createElement("div",{key:"formattingSetting"},l.a.createElement("div",null,l.a.createElement("br",null),l.a.createElement(g.a,{id:"user.settings.advance.deactivateDesc",defaultMessage:"Deactivating your account removes your ability to log in to this server and disables all email and mobile notifications. To reactivate your account, contact your System Administrator."})))],saveButtonText:"Deactivate",setting:"deactivateAccount",submit:this.handleShowDeactivateAccountModal,saving:this.state.isSaving,server_error:this.state.serverError,updateSection:this.handleUpdateSection}):l.a.createElement(S.a,{title:l.a.createElement(g.a,{id:"user.settings.advance.deactivateAccountTitle",defaultMessage:"Deactivate Account"}),describe:l.a.createElement(g.a,{id:"user.settings.advance.deactivateDescShort",defaultMessage:"Click 'Edit' to deactivate your account"}),section:"deactivateAccount",updateSection:this.handleUpdateSection});const e="btn btn-danger",t=l.a.createElement(g.a,{id:"user.settings.advance.deactivate_member_modal.deactivateButton",defaultMessage:"Yes, deactivate my account"});d=l.a.createElement(y.a,{show:this.state.showDeactivateAccountModal,title:l.a.createElement(g.a,{id:"user.settings.advance.confirmDeactivateAccountTitle",defaultMessage:"Confirm Deactivation"}),message:l.a.createElement(g.a,{id:"user.settings.advance.confirmDeactivateDesc",defaultMessage:"Are you sure you want to deactivate your account? This can only be reversed by your System Administrator."}),confirmButtonClass:e,confirmButtonText:t,onConfirm:this.handleDeactivateAccountSubmit,onCancel:this.handleHideDeactivateAccountModal})}return l.a.createElement("div",null,l.a.createElement("div",{className:"modal-header"},l.a.createElement("button",{id:"closeButton",type:"button",className:"close","data-dismiss":"modal","aria-label":"Close",onClick:this.props.closeModal},l.a.createElement("span",{"aria-hidden":"true"},"×")),l.a.createElement("h4",{className:"modal-title",ref:"title"},l.a.createElement("div",{className:"modal-back"},l.a.createElement("span",{onClick:this.props.collapseModal},l.a.createElement(_.a,null))),l.a.createElement(g.a,{id:"user.settings.advance.title",defaultMessage:"Advanced Settings"}))),l.a.createElement("div",{className:"user-settings"},l.a.createElement("h3",{className:"tab-header"},l.a.createElement(g.a,{id:"user.settings.advance.title",defaultMessage:"Advanced Settings"})),l.a.createElement("div",{className:"divider-dark first"}),t,o,i,l.a.createElement("div",{className:"divider-light"}),l.a.createElement(k,{activeSection:this.props.activeSection,onUpdateSection:this.handleUpdateSection,renderOnOffLabel:this.renderOnOffLabel}),r,n,o,c,l.a.createElement("div",{className:"divider-dark"}),d))}}O(T,"propTypes",{currentUser:r.a.object.isRequired,advancedSettingsCategory:r.a.array.isRequired,sendOnCtrlEnter:r.a.string.isRequired,codeBlockOnCtrlEnter:r.a.bool,formatting:r.a.string.isRequired,joinLeave:r.a.string.isRequired,updateSection:r.a.func,activeSection:r.a.string,closeModal:r.a.func.isRequired,collapseModal:r.a.func.isRequired,enablePreviewFeatures:r.a.bool,enableUserDeactivation:r.a.bool,actions:r.a.shape({savePreferences:r.a.func.isRequired,updateUserActive:r.a.func.isRequired,revokeAllSessionsForUser:r.a.func.isRequired}).isRequired});var w=Object(s.connect)((function(){const e=Object(u.makeGetCategory)();return t=>{const a=Object(d.getConfig)(t),s="true"===a.EnablePreviewFeatures,n="true"===a.EnableUserDeactivation;return{advancedSettingsCategory:e(t,h.B.CATEGORY_ADVANCED_SETTINGS),sendOnCtrlEnter:Object(u.get)(t,h.B.CATEGORY_ADVANCED_SETTINGS,"send_on_ctrl_enter","false"),codeBlockOnCtrlEnter:Object(u.get)(t,h.B.CATEGORY_ADVANCED_SETTINGS,"code_block_ctrl_enter","true"),formatting:Object(u.get)(t,h.B.CATEGORY_ADVANCED_SETTINGS,"formatting","true"),joinLeave:Object(u.get)(t,h.B.CATEGORY_ADVANCED_SETTINGS,"join_leave","true"),currentUser:Object(i.getCurrentUser)(t),enablePreviewFeatures:s,enableUserDeactivation:n}}}),(function(e){return{actions:Object(c.bindActionCreators)({savePreferences:m.savePreferences,updateUserActive:p.updateUserActive,revokeAllSessionsForUser:p.revokeAllSessionsForUser},e)}}))(T),I=a(593),R=a(1343),P=a(180),j=a(181),D=(a(591),a(184)),L=a(187),U=a(16),x=a(96),F=a.n(x),q=a(310),B=a.n(q),z=a(1290),G=a(1388),V=(a(1926),a(17)),H=a(1137),Y=a(1117),W=a(1174),K=(a(98),a(99),a(1464));function Q(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const J=/^#([\da-f]{3}|[\da-f]{6})$/i;class X extends l.a.PureComponent{constructor(e){super(e),Q(this,"colorPicker",void 0),Q(this,"colorInput",void 0),Q(this,"checkClick",e=>{this.colorPicker.current&&this.colorPicker.current.contains(e.target)||this.setState({isOpened:!1})}),Q(this,"togglePicker",()=>{!this.state.isOpened&&this.colorInput.current&&this.colorInput.current.focus(),this.setState({isOpened:!this.state.isOpened})}),Q(this,"handleColorChange",e=>{const{hex:t}=e,{onChange:a}=this.props;a&&a(t)}),Q(this,"ensureLongColourValue",e=>4!==e.length?e:e.split("").map((e,t)=>0===t?e:"".concat(e).concat(e)).join("")),Q(this,"onChange",e=>{let{value:t}=e.target;if(t.startsWith("#")||(t="#"+t),!J.test(t))return;this.setState({hex:t});const{onChange:a}=this.props;a&&a(this.ensureLongColourValue(t))}),Q(this,"onBlur",()=>{const{hex:e}=this.state;if(4===e.length){const t=this.ensureLongColourValue(e),{onChange:a}=this.props;a&&7===t.length&&(a(t),this.setState({hex:t.toUpperCase()}))}else this.setHex()}),Q(this,"onKeyDown",e=>{"Enter"!==e.key&&" "!==e.key||this.togglePicker()}),Q(this,"selectValue",e=>{e.target&&e.target.setSelectionRange(1,e.target.value.length)}),this.colorPicker=l.a.createRef(),this.colorInput=l.a.createRef(),this.state={isOpened:!1,hex:this.props.color.toUpperCase()}}componentWillMount(){this.setHex()}componentDidUpdate(e,t){const{isOpened:a}=t,{isOpened:s}=this.state;this.props.color!==e.color&&this.ensureLongColourValue(this.state.hex)!==this.props.color&&this.setHex(),s!==a&&(s?document.addEventListener("click",this.checkClick):document.removeEventListener("click",this.checkClick))}setHex(){this.setState({hex:this.props.color.toUpperCase()})}render(){const{color:e,id:t}=this.props,{isOpened:a,hex:s}=this.state;return l.a.createElement("div",{className:"color-input input-group"},l.a.createElement("input",{id:"".concat(t,"-inputColorValue"),ref:this.colorInput,className:"form-control",type:"text",value:s,onChange:this.onChange,onBlur:this.onBlur,onKeyDown:this.onKeyDown,onFocus:this.selectValue}),l.a.createElement("span",{id:"".concat(t,"-squareColorIcon"),className:"input-group-addon color-pad",onClick:this.togglePicker},l.a.createElement("i",{id:"".concat(t,"-squareColorIconValue"),className:"color-icon",style:{backgroundColor:e}})),a&&l.a.createElement("div",{ref:this.colorPicker,className:"color-popover",id:"".concat(t,"-ChromePickerModal")},l.a.createElement(K.ChromePicker,{color:e,onChange:this.handleColorChange,disableAlpha:!0})))}}Q(X,"propTypes",{id:r.a.string.isRequired,color:r.a.string.isRequired,onChange:r.a.func});var Z=X;function $(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class ee extends l.a.Component{constructor(...e){super(...e),$(this,"handleChange",e=>{const{id:t,onChange:a}=this.props;a&&a(t,e)})}render(){const{label:e,color:t,id:a}=this.props;return l.a.createElement("div",null,l.a.createElement("label",{className:"custom-label"},e),l.a.createElement(Z,{id:a,color:t,onChange:this.handleChange}))}}$(ee,"propTypes",{id:r.a.string.isRequired,label:r.a.node.isRequired,color:r.a.string.isRequired,onChange:r.a.func});var te=ee;function ae(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,s)}return a}function se(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?ae(a,!0).forEach((function(t){ie(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):ae(a).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function ie(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const ne=3e3,re=Object(G.defineMessages)({sidebarBg:{id:Object(E.b)("user.settings.custom_theme.sidebarBg"),defaultMessage:"Sidebar BG"},sidebarText:{id:Object(E.b)("user.settings.custom_theme.sidebarText"),defaultMessage:"Sidebar Text"},sidebarHeaderBg:{id:Object(E.b)("user.settings.custom_theme.sidebarHeaderBg"),defaultMessage:"Sidebar Header BG"},sidebarHeaderTextColor:{id:Object(E.b)("user.settings.custom_theme.sidebarHeaderTextColor"),defaultMessage:"Sidebar Header Text"},sidebarUnreadText:{id:Object(E.b)("user.settings.custom_theme.sidebarUnreadText"),defaultMessage:"Sidebar Unread Text"},sidebarTextHoverBg:{id:Object(E.b)("user.settings.custom_theme.sidebarTextHoverBg"),defaultMessage:"Sidebar Text Hover BG"},sidebarTextActiveBorder:{id:Object(E.b)("user.settings.custom_theme.sidebarTextActiveBorder"),defaultMessage:"Sidebar Text Active Border"},sidebarTextActiveColor:{id:Object(E.b)("user.settings.custom_theme.sidebarTextActiveColor"),defaultMessage:"Sidebar Text Active Color"},onlineIndicator:{id:Object(E.b)("user.settings.custom_theme.onlineIndicator"),defaultMessage:"Online Indicator"},awayIndicator:{id:Object(E.b)("user.settings.custom_theme.awayIndicator"),defaultMessage:"Away Indicator"},dndIndicator:{id:Object(E.b)("user.settings.custom_theme.dndIndicator"),defaultMessage:"Do Not Disturb Indicator"},mentionBg:{id:Object(E.b)("user.settings.custom_theme.mentionBg"),defaultMessage:"Mention Jewel BG"},mentionColor:{id:Object(E.b)("user.settings.custom_theme.mentionColor"),defaultMessage:"Mention Jewel Text"},centerChannelBg:{id:Object(E.b)("user.settings.custom_theme.centerChannelBg"),defaultMessage:"Center Channel BG"},centerChannelColor:{id:Object(E.b)("user.settings.custom_theme.centerChannelColor"),defaultMessage:"Center Channel Text"},newMessageSeparator:{id:Object(E.b)("user.settings.custom_theme.newMessageSeparator"),defaultMessage:"New Message Separator"},linkColor:{id:Object(E.b)("user.settings.custom_theme.linkColor"),defaultMessage:"Link Color"},buttonBg:{id:Object(E.b)("user.settings.custom_theme.buttonBg"),defaultMessage:"Button BG"},buttonColor:{id:Object(E.b)("user.settings.custom_theme.buttonColor"),defaultMessage:"Button Text"},errorTextColor:{id:Object(E.b)("user.settings.custom_theme.errorTextColor"),defaultMessage:"Error Text Color"},mentionHighlightBg:{id:Object(E.b)("user.settings.custom_theme.mentionHighlightBg"),defaultMessage:"Mention Highlight BG"},mentionHighlightLink:{id:Object(E.b)("user.settings.custom_theme.mentionHighlightLink"),defaultMessage:"Mention Highlight Link"},codeTheme:{id:Object(E.b)("user.settings.custom_theme.codeTheme"),defaultMessage:"Code Theme"}});class oe extends l.a.Component{constructor(e){super(e),ie(this,"handleColorChange",(e,t)=>{const{updateTheme:a,theme:s}=this.props;if(s[e]!==t){const i=se({},s,{type:"custom",[e]:t});"mentionBg"===e&&(i.mentionBj=t),a(i);const n=this.setCopyTheme(i);this.setState({copyTheme:n})}}),ie(this,"pasteBoxChange",e=>{let t,a="";if(0!==(a=window.clipboardData&&window.clipboardData.getData?window.clipboardData.getData("Text"):e.clipboardData.getData("Text")).length){try{t=JSON.parse(a)}catch(e){return}this.setState({copyTheme:JSON.stringify(t)}),t.type="custom",this.props.updateTheme(t)}}),ie(this,"onChangeHandle",e=>{e.stopPropagation()}),ie(this,"selectTheme",()=>{const e=this.refs.textarea;e.focus(),e.setSelectionRange(0,this.state.copyTheme.length)}),ie(this,"toggleSidebarStyles",e=>{e.preventDefault(),F()(this.refs.sidebarStylesHeader).toggleClass("open"),this.toggleSection(this.refs.sidebarStyles)}),ie(this,"toggleCenterChannelStyles",e=>{e.preventDefault(),F()(this.refs.centerChannelStylesHeader).toggleClass("open"),this.toggleSection(this.refs.centerChannelStyles)}),ie(this,"toggleLinkAndButtonStyles",e=>{e.preventDefault(),F()(this.refs.linkAndButtonStylesHeader).toggleClass("open"),this.toggleSection(this.refs.linkAndButtonStyles)}),ie(this,"onCodeThemeChange",e=>{const t=se({},this.props.theme,{type:"custom",codeTheme:e.target.value});this.props.updateTheme(t)}),ie(this,"copyTheme",()=>{this.selectTheme(),document.execCommand("copy"),this.showCopySuccess()}),ie(this,"showCopySuccess",()=>{const e=F()(".copy-theme-success");e.show(),setTimeout(()=>{e.hide()},ne)});const t=this.setCopyTheme(this.props.theme);this.state={copyTheme:t}}componentDidMount(){F()(".group--code").on("change",this.onCodeThemeChange)}componentWillUnmount(){F()(".group--code").off("change",this.onCodeThemeChange)}setCopyTheme(e){const t=Object.assign({},e);return delete t.type,delete t.image,JSON.stringify(t)}toggleSection(e){V.h()?F()(e).toggleClass("open"):F()(e).slideToggle()}render(){const e=this.props.theme,t=[],a=[],s=[];h.Q.THEME_ELEMENTS.forEach((i,n)=>{if("codeTheme"===i.id){const t=[];let s="";i.themes.forEach((a,n)=>{a.id===e[i.id]&&(s=a.iconURL),t.push(l.a.createElement("option",{key:"code-theme-key"+n,value:a.id},a.uiName))});var r=l.a.createElement(W.a,{popoverStyle:"info",id:"code-popover",className:"code-popover"},l.a.createElement("img",{width:"200",alt:"code theme image",src:s}));a.push(l.a.createElement("div",{className:"col-sm-6 form-group",key:"custom-theme-key"+n},l.a.createElement("label",{className:"custom-label"},l.a.createElement(g.a,re[i.id])),l.a.createElement("div",{className:"input-group theme-group group--code dropdown",id:i.id},l.a.createElement("select",{id:"codeThemeSelect",className:"form-control",type:"text",defaultValue:e[i.id]},t),l.a.createElement(Y.a,{placement:"top",overlay:r,ref:"headerOverlay"},l.a.createElement("span",{className:"input-group-addon"},l.a.createElement("img",{alt:"code theme image",src:s}))))))}else if("centerChannelElements"===i.group)a.push(l.a.createElement("div",{className:"col-sm-6 form-group element",key:"custom-theme-key"+n},l.a.createElement(te,{id:i.id,label:l.a.createElement(g.a,re[i.id]),color:e[i.id],onChange:this.handleColorChange})));else if("sidebarElements"===i.group){let a=e[i.id];a||"mentionBg"!==i.id||(a=e.mentionBj),t.push(l.a.createElement("div",{className:"col-sm-6 form-group element",key:"custom-theme-key"+n},l.a.createElement(te,{id:i.id,label:l.a.createElement(g.a,re[i.id]),color:a,onChange:this.handleColorChange})))}else s.push(l.a.createElement("div",{className:"col-sm-6 form-group element",key:"custom-theme-key"+n},l.a.createElement(te,{id:i.id,label:l.a.createElement(g.a,re[i.id]),color:e[i.id],onChange:this.handleColorChange})))});const i=l.a.createElement("div",{className:"col-sm-12"},l.a.createElement("label",{className:"custom-label"},l.a.createElement(g.a,{id:"user.settings.custom_theme.copyPaste",defaultMessage:"Copy to share or paste theme colors here:"})),l.a.createElement("textarea",{ref:"textarea",className:"form-control",id:"pasteBox",value:this.state.copyTheme,onCopy:this.showCopySuccess,onPaste:this.pasteBoxChange,onChange:this.onChangeHandle,onClick:this.selectTheme}),l.a.createElement("div",{className:"margin-top x2"},l.a.createElement("button",{className:"btn btn-link copy-theme-button",onClick:this.copyTheme},l.a.createElement(g.a,{id:"user.settings.custom_theme.copyThemeColors",defaultMessage:"Copy Theme Colors"})),l.a.createElement("span",{className:"alert alert-success copy-theme-success",role:"alert",style:{display:"none"}},l.a.createElement(g.a,{id:"user.settings.custom_theme.copied",defaultMessage:"✔ Copied"}))));return l.a.createElement("div",{className:"appearance-section padding-top"},l.a.createElement("div",{className:"theme-elements row"},l.a.createElement("div",{ref:"sidebarStylesHeader",id:"sidebarStyles",className:"theme-elements__header",onClick:this.toggleSidebarStyles},l.a.createElement(g.a,{id:"user.settings.custom_theme.sidebarTitle",defaultMessage:"Sidebar Styles"}),l.a.createElement("div",{className:"header__icon"},l.a.createElement(H.a,{className:"fa fa-plus",title:{id:Object(E.b)("generic_icons.expand"),defaultMessage:"Expand Icon"}}),l.a.createElement(H.a,{className:"fa fa-minus",title:{id:Object(E.b)("generic_icons.collapse"),defaultMessage:"Collapse Icon"}}))),l.a.createElement("div",{ref:"sidebarStyles",className:"theme-elements__body"},t)),l.a.createElement("div",{className:"theme-elements row"},l.a.createElement("div",{ref:"centerChannelStylesHeader",id:"centerChannelStyles",className:"theme-elements__header",onClick:this.toggleCenterChannelStyles},l.a.createElement(g.a,{id:"user.settings.custom_theme.centerChannelTitle",defaultMessage:"Center Channel Styles"}),l.a.createElement("div",{className:"header__icon"},l.a.createElement(H.a,{className:"fa fa-plus",title:{id:Object(E.b)("generic_icons.expand"),defaultMessage:"Expand Icon"}}),l.a.createElement(H.a,{className:"fa fa-minus",title:{id:Object(E.b)("generic_icons.collapse"),defaultMessage:"Collapse Icon"}}))),l.a.createElement("div",{ref:"centerChannelStyles",id:"centerChannelStyles",className:"theme-elements__body"},a)),l.a.createElement("div",{className:"theme-elements row"},l.a.createElement("div",{ref:"linkAndButtonStylesHeader",id:"linkAndButtonsStyles",className:"theme-elements__header",onClick:this.toggleLinkAndButtonStyles},l.a.createElement(g.a,{id:"user.settings.custom_theme.linkButtonTitle",defaultMessage:"Link and Button Styles"}),l.a.createElement("div",{className:"header__icon"},l.a.createElement(H.a,{className:"fa fa-plus",title:{id:Object(E.b)("generic_icons.expand"),defaultMessage:"Expand Icon"}}),l.a.createElement(H.a,{className:"fa fa-minus",title:{id:Object(E.b)("generic_icons.collapse"),defaultMessage:"Collapse Icon"}}))),l.a.createElement("div",{ref:"linkAndButtonStyles",className:"theme-elements__body"},s)),l.a.createElement("div",{className:"row margin-top x2"},i))}}ie(oe,"propTypes",{theme:r.a.object.isRequired,updateTheme:r.a.func.isRequired});a(60),a(72);class le extends l.a.Component{render(){const e=this.props.theme,t=[],a=this.props.allowedThemes,s=a.length>1||a[0]&&a[0].trim().length>0;for(const i in h.Q.THEMES)if(h.Q.THEMES.hasOwnProperty(i)){if(s&&a.indexOf(i)<0)continue;const n=F.a.extend(!0,{},h.Q.THEMES[i]);let r="";n.type===e.type&&(r="active"),t.push(l.a.createElement("div",{className:"col-xs-6 col-sm-3 premade-themes",key:"premade-theme-key"+i},l.a.createElement("div",{id:"premadeTheme".concat(n.type.replace(" ","")),className:r,onClick:()=>this.props.updateTheme(n)},l.a.createElement("label",null,l.a.createElement("img",{alt:"premade theme "+i,className:"img-responsive",src:n.image}),l.a.createElement("div",{className:"theme-label"},b.qb(n.type))))))}return l.a.createElement("div",{className:"row appearance-section"},l.a.createElement("div",{className:"clearfix"},t))}}le.propTypes={theme:r.a.object.isRequired,updateTheme:r.a.func.isRequired,allowedThemes:r.a.arrayOf(r.a.string)},le.defaultProps={allowedThemes:[]};var ce=Object(s.connect)((function(e){const t=Object(d.getConfig)(e);return{allowedThemes:t.AllowedThemes&&t.AllowedThemes.split(",")||[]}}))(le);function de(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,s)}return a}function ue(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?de(a,!0).forEach((function(t){me(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):de(a).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function me(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class pe extends l.a.Component{constructor(e){super(e),me(this,"submitTheme",async()=>{const e=this.state.applyToAllTeams?"":this.props.currentTeamId;this.setState({isSaving:!0}),await this.props.actions.saveTheme(e,this.state.theme),this.state.applyToAllTeams&&await this.props.actions.deleteTeamSpecificThemes(),this.props.setRequireConfirm(!1),this.originalTheme=Object.assign({},this.state.theme),this.scrollToTop(),this.props.updateSection(""),this.setState({isSaving:!1})}),me(this,"updateTheme",e=>{let t=this.state.theme.length===e.length;if(!t)for(const a in e)if(e.hasOwnProperty(a)&&this.state.theme[a]!==e[a]){t=!0;break}this.props.setRequireConfirm(t),this.setState({theme:e}),b.b(e)}),me(this,"resetFields",()=>{const e=this.getStateFromProps();e.serverError=null,this.setState(e),this.scrollToTop(),b.b(e.theme),this.props.setRequireConfirm(!1)}),me(this,"handleImportModal",()=>{z.a.handleViewAction({type:h.f.TOGGLE_IMPORT_THEME_MODAL,value:!0,callback:this.updateTheme}),this.props.setEnforceFocus(!1)}),me(this,"handleUpdateSection",e=>{this.props.updateSection(e)}),this.state=ue({},this.getStateFromProps(e),{isSaving:!1}),this.originalTheme=Object.assign({},this.state.theme)}componentDidMount(){this.props.selected&&F()(B.a.findDOMNode(this.refs[this.state.theme])).addClass("active-border")}componentDidUpdate(){this.props.selected&&(F()(".color-btn").removeClass("active-border"),F()(B.a.findDOMNode(this.refs[this.state.theme])).addClass("active-border"))}UNSAFE_componentWillReceiveProps(e){this.props.selected&&!e.selected&&this.resetFields()}componentWillUnmount(){this.props.selected&&b.b(this.props.theme)}getStateFromProps(e=this.props){const t=ue({},e.theme);return t.codeTheme||(t.codeTheme=h.j.DEFAULT_CODE_THEME),{theme:t,type:t.type||"premade",showAllTeamsCheckbox:e.showAllTeamsCheckbox,applyToAllTeams:e.applyToAllTeams}}scrollToTop(){F()(".ps-container.modal-body").scrollTop(0)}updateType(e){this.setState({type:e})}render(){let e;this.state.serverError&&(e=this.state.serverError);const t="custom"===this.state.type;let a,s,i;if(t&&this.props.allowCustomThemes?a=l.a.createElement("div",{key:"customThemeChooser"},l.a.createElement(oe,{theme:this.state.theme,updateTheme:this.updateTheme})):s=l.a.createElement("div",{key:"premadeThemeChooser"},l.a.createElement("br",null),l.a.createElement(ce,{theme:this.state.theme,updateTheme:this.updateTheme})),this.props.selected){const n=[];this.props.allowCustomThemes&&n.push(l.a.createElement("div",{className:"radio",key:"premadeThemeColorLabel"},l.a.createElement("label",null,l.a.createElement("input",{id:"standardThemes",type:"radio",name:"theme",checked:!t,onChange:this.updateType.bind(this,"premade")}),l.a.createElement(g.a,{id:"user.settings.display.theme.themeColors",defaultMessage:"Theme Colors"})),l.a.createElement("br",null))),n.push(s),this.props.allowCustomThemes&&(n.push(l.a.createElement("div",{className:"radio",key:"customThemeColorLabel"},l.a.createElement("label",null,l.a.createElement("input",{id:"customThemes",type:"radio",name:"theme",checked:t,onChange:this.updateType.bind(this,"custom")}),l.a.createElement(g.a,{id:"user.settings.display.theme.customTheme",defaultMessage:"Custom Theme"})))),n.push(a),n.push(l.a.createElement("div",{key:"otherThemes"},l.a.createElement("br",null),l.a.createElement("a",{id:"otherThemes",href:"http://docs.mattermost.com/help/settings/theme-colors.html#custom-theme-examples",target:"_blank",rel:"noopener noreferrer"},l.a.createElement(g.a,{id:"user.settings.display.theme.otherThemes",defaultMessage:"See other themes"})))),n.push(l.a.createElement("div",{key:"importSlackThemeButton",className:"padding-top"},l.a.createElement("button",{id:"slackImportTheme",className:"theme style--none color--link",onClick:this.handleImportModal},l.a.createElement(g.a,{id:"user.settings.display.theme.import",defaultMessage:"Import theme colors from Slack"})))));let r=null;this.state.showAllTeamsCheckbox&&(r=l.a.createElement("div",{className:"checkbox user-settings__submit-checkbox"},l.a.createElement("label",null,l.a.createElement("input",{id:"applyThemeToAllTeams",type:"checkbox",checked:this.state.applyToAllTeams,onChange:e=>this.setState({applyToAllTeams:e.target.checked})}),l.a.createElement(g.a,{id:"user.settings.display.theme.applyToAllTeams",defaultMessage:"Apply new theme to all my teams"})))),i=l.a.createElement(v.a,{inputs:n,submitExtra:r,submit:this.submitTheme,disableEnterSubmit:!0,saving:this.state.isSaving,server_error:e,width:"full",updateSection:this.handleUpdateSection})}else i=l.a.createElement(S.a,{title:l.a.createElement(g.a,{id:"user.settings.display.theme.title",defaultMessage:"Theme"}),describe:l.a.createElement(g.a,{id:"user.settings.display.theme.describe",defaultMessage:"Open to manage your theme"}),section:"theme",updateSection:this.handleUpdateSection,focused:this.props.focused});return i}}me(pe,"propTypes",{actions:r.a.shape({saveTheme:r.a.func.isRequired,deleteTeamSpecificThemes:r.a.func.isRequired}).isRequired,currentTeamId:r.a.string.isRequired,theme:r.a.object,selected:r.a.bool.isRequired,updateSection:r.a.func.isRequired,setRequireConfirm:r.a.func.isRequired,setEnforceFocus:r.a.func.isRequired,allowCustomThemes:r.a.bool,focused:r.a.bool.isRequired});var he=Object(s.connect)((function(){const e=Object(u.makeGetCategory)();return t=>({currentTeamId:Object(U.getCurrentTeamId)(t),theme:Object(u.getTheme)(t),applyToAllTeams:e(t,h.B.CATEGORY_THEME).length<=1,showAllTeamsCheckbox:Object(U.getMyTeamsCount)(t)>1})}),(function(e){return{actions:Object(c.bindActionCreators)({saveTheme:m.saveTheme,deleteTeamSpecificThemes:m.deleteTeamSpecificThemes},e)}}))(pe),ge=(a(137),a(1426)),fe=a(1185),be=a(1186),Ee=a(1143),ve=a(1144);class Se extends ve.a{render(){const{item:e,isSelection:t}=this.props,a=e;let s="mentions__name";return t&&(s+=" suggestion--selected"),l.a.createElement("div",Object.assign({onClick:this.handleClick,className:s,ref:e=>{this.node=e}},ve.a.baseProps),a)}}class ye extends Ee.a{handlePretextChanged(e,t){return 0===e.length?(this.displayAllTimezones(t,e),!0):!!e&&(this.filterTimezones(t,e),!0)}async displayAllTimezones(e){e({matchedPretext:"",terms:Object(D.d)(),items:Object(D.d)(),component:Se})}async filterTimezones(e,t){const a=Object(D.d)().filter(e=>Object(j.getTimezoneRegion)(e).toLowerCase().indexOf(t)>=0||e.toLowerCase().indexOf(t)>=0);e({matchedPretext:t,terms:a,items:a,component:Se})}}function _e(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,s)}return a}function Me(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class Ne extends l.a.PureComponent{constructor(e){super(e),Me(this,"onChange",e=>{this.setState({manualTimezoneInput:e.target.value})}),Me(this,"handleTimezoneSelected",e=>{e&&this.setState({manualTimezone:e,manualTimezoneInput:e})}),Me(this,"timezoneNotChanged",()=>{const{useAutomaticTimezone:e,automaticTimezone:t,manualTimezone:a}=this.state,{useAutomaticTimezone:s,automaticTimezone:i,manualTimezone:n}=this.props;return e===s&&t===i&&a===n}),Me(this,"changeTimezone",()=>{this.timezoneNotChanged()?this.props.updateSection(""):this.submitUser()}),Me(this,"submitUser",()=>{const{user:e,actions:t}=this.props,{useAutomaticTimezone:a,automaticTimezone:s,manualTimezone:i}=this.state,n=function(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?_e(a,!0).forEach((function(t){Me(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):_e(a).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}({},e,{timezone:{useAutomaticTimezone:a.toString(),automaticTimezone:s,manualTimezone:i}});t.updateMe(n).then(({data:e,error:t})=>{if(e)this.props.updateSection("");else if(t){let e;e=t.message?t.message:t,this.setState({serverError:e,isSaving:!1})}})}),Me(this,"handleAutomaticTimezone",e=>{const t=e.target.checked;let a="";t&&(a=Object(D.a)()),this.setState({useAutomaticTimezone:t,automaticTimezone:a})}),Me(this,"handleManualTimezone",e=>{this.setState({manualTimezone:e.target.value})}),this.state={useAutomaticTimezone:e.useAutomaticTimezone,automaticTimezone:e.automaticTimezone,manualTimezone:e.manualTimezone,manualTimezoneInput:e.manualTimezone,isSaving:!1}}render(){const{timezones:e}=this.props,{useAutomaticTimezone:t,automaticTimezone:a}=this.state;let s;this.state.serverError&&(s=l.a.createElement("label",{className:"has-error"},this.state.serverError));const i=[],n=l.a.createElement("div",{className:"section-describe padding-top"},t&&Object(j.getTimezoneRegion)(a)),r=0===e.length,o=l.a.createElement("div",{className:"checkbox"},l.a.createElement("label",null,l.a.createElement("input",{id:"automaticTimezoneInput",type:"checkbox",checked:t,onChange:this.handleAutomaticTimezone,disabled:r}),l.a.createElement(g.a,{id:"user.settings.timezones.automatic",defaultMessage:"Set automatically"}),n)),c=[new ye],d=l.a.createElement("div",{key:"changeTimezone"},l.a.createElement("label",{className:"control-label"},l.a.createElement(g.a,{id:"user.settings.timezones.change",defaultMessage:"Change timezone"})),l.a.createElement("div",{className:"padding-top"},l.a.createElement(fe.a,{ref:this.setSwitchBoxRef,className:"form-control focused",type:"search",onChange:this.onChange,value:this.state.manualTimezoneInput,onItemSelected:this.handleTimezoneSelected,listComponent:be.a,maxLength:"64",requiredCharacters:0,providers:c,listStyle:"bottom",completeOnTab:!1,renderDividers:!1,openOnFocus:!0,disabled:r}),s));return i.push(o),t||i.push(d),i.push(l.a.createElement("div",null,l.a.createElement("br",null),l.a.createElement(ge.a,{id:"user.settings.timezones.promote",defaultMessage:"Select the time zone used for timestamps in the user interface and email notifications."}))),l.a.createElement(v.a,{title:l.a.createElement(g.a,{id:"user.settings.display.timezone",defaultMessage:"Timezone"}),containerStyle:"timezone-container",width:"medium",submit:this.changeTimezone,saving:this.state.isSaving,inputs:i,updateSection:this.props.updateSection})}}Me(Ne,"propTypes",{user:r.a.object.isRequired,updateSection:r.a.func.isRequired,useAutomaticTimezone:r.a.bool.isRequired,automaticTimezone:r.a.string.isRequired,manualTimezone:r.a.string.isRequired,timezones:r.a.array.isRequired,actions:r.a.shape({updateMe:r.a.func.isRequired}).isRequired});var Ce=Object(s.connect)(null,(function(e){return{actions:Object(c.bindActionCreators)({updateMe:p.updateMe},e)}}))(Ne),ke=a(1221),Oe=a(1114);function Ae(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,s)}return a}function Te(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?Ae(a,!0).forEach((function(t){we(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):Ae(a).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function we(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class Ie extends l.a.Component{constructor(e){super(e),we(this,"handleContainerKeyDown",e=>{Object(b.W)(e,h.Q.KeyCodes.ESCAPE)&&this.state.openMenu&&(document.querySelector(".modal-body").classList.remove("no-scroll"),this.setState({openMenu:!1}),e.stopPropagation())}),we(this,"handleKeyDown",e=>{Object(b.W)(e,h.Q.KeyCodes.ENTER)&&(document.querySelector(".modal-body").classList.add("no-scroll"),this.setState({openMenu:!0}))}),we(this,"setLanguage",e=>{this.setState({locale:e.value,selectedOption:e})}),we(this,"changeLanguage",()=>{this.props.user.locale===this.state.locale?this.props.updateSection(""):this.submitUser(Te({},this.props.user,{locale:this.state.locale}))}),we(this,"submitUser",e=>{this.setState({isSaving:!0}),this.props.actions.updateMe(e).then(({data:e,error:t})=>{if(e);else if(t){let e;e=t.message?t.message:t,this.setState({serverError:e,isSaving:!1})}})}),we(this,"handleMenuClose",()=>{document.querySelector(".modal-body").classList.remove("no-scroll"),this.setState({openMenu:!1})}),we(this,"handleMenuOpen",()=>{document.querySelector(".modal-body").classList.add("no-scroll"),this.setState({openMenu:!0})});const t=L.d(),a=e.locale,s={value:t[a].value,label:t[a].name};this.reactSelectContainer=l.a.createRef(),this.state={locale:e.locale,selectedOption:s,isSaving:!1,openMenu:!1}}componentDidMount(){this.reactSelectContainer.current&&this.reactSelectContainer.current.addEventListener("keydown",this.handleContainerKeyDown)}componentWillUnmount(){this.reactSelectContainer.current&&this.reactSelectContainer.current.removeEventListener("keydown",this.handleContainerKeyDown)}render(){let e;this.state.serverError&&(e=l.a.createElement("label",{className:"has-error"},this.state.serverError));const t=[],a=L.d();Object.keys(a).map(e=>({value:a[e].value,name:a[e].name,order:a[e].order})).sort((e,t)=>e.order-t.order).forEach(e=>{t.push({value:e.value,label:e.name})});const s={menuPortal:e=>Te({},e,{zIndex:9999})},i=l.a.createElement("div",{key:"changeLanguage"},l.a.createElement("br",null),l.a.createElement("label",{className:"control-label",id:"changeInterfaceLanguageLabel"},l.a.createElement(g.a,{id:"user.settings.languages.change",defaultMessage:"Change interface language"})),l.a.createElement("div",{ref:this.reactSelectContainer,className:"padding-top"},l.a.createElement(ke.b,{className:"react-select react-select-top",classNamePrefix:"react-select",id:"displayLanguage",menuIsOpen:this.state.openMenu,menuPortalTarget:document.body,styles:s,options:t,clearable:!1,onChange:this.setLanguage,onKeyDown:this.handleKeyDown,value:this.state.selectedOption,onMenuClose:this.handleMenuClose,onMenuOpen:this.handleMenuOpen,"aria-labelledby":"changeInterfaceLanguageLabel"}),e),l.a.createElement("div",null,l.a.createElement("br",null),l.a.createElement(Oe.b,{id:"user.settings.languages.promote",defaultMessage:"Select which language Mattermost displays in the user interface.\\n \\nWould you like to help with translations? Join the [Mattermost Translation Server](!http://translate.mattermost.com/) to contribute."})));return l.a.createElement(v.a,{title:l.a.createElement(g.a,{id:"user.settings.display.language",defaultMessage:"Language"}),width:"medium",submit:this.changeLanguage,saving:this.state.isSaving,inputs:[i],updateSection:this.props.updateSection})}}we(Ie,"propTypes",{user:r.a.object.isRequired,locale:r.a.string.isRequired,updateSection:r.a.func.isRequired,actions:r.a.shape({updateMe:r.a.func.isRequired}).isRequired});var Re=Object(s.connect)(null,(function(e){return{actions:Object(c.bindActionCreators)({updateMe:p.updateMe},e)}}))(Ie);function Pe(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,s)}return a}function je(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?Pe(a,!0).forEach((function(t){De(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):Pe(a).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function De(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const Le=h.Q.Preferences;function Ue(e){return{militaryTime:e.militaryTime,teammateNameDisplay:e.teammateNameDisplay,channelDisplayMode:e.channelDisplayMode,messageDisplay:e.messageDisplay,collapseDisplay:e.collapseDisplay,linkPreviewDisplay:e.linkPreviewDisplay}}class xe extends l.a.Component{constructor(e){super(e),De(this,"handleSubmit",async()=>{const e=this.props.user.id,t={user_id:e,category:Le.CATEGORY_DISPLAY_SETTINGS,name:Le.USE_MILITARY_TIME,value:this.state.militaryTime},a={user_id:e,category:Le.CATEGORY_DISPLAY_SETTINGS,name:Le.NAME_NAME_FORMAT,value:this.state.teammateNameDisplay},s={user_id:e,category:Le.CATEGORY_DISPLAY_SETTINGS,name:Le.CHANNEL_DISPLAY_MODE,value:this.state.channelDisplayMode},i={user_id:e,category:Le.CATEGORY_DISPLAY_SETTINGS,name:Le.MESSAGE_DISPLAY,value:this.state.messageDisplay},n={user_id:e,category:Le.CATEGORY_DISPLAY_SETTINGS,name:Le.COLLAPSE_DISPLAY,value:this.state.collapseDisplay},r={user_id:e,category:Le.CATEGORY_DISPLAY_SETTINGS,name:Le.LINK_PREVIEW_DISPLAY,value:this.state.linkPreviewDisplay};this.setState({isSaving:!0});const o=[t,s,i,n,r,a];await this.props.actions.savePreferences(e,o),this.updateSection("")}),De(this,"handleClockRadio",e=>{this.setState({militaryTime:e})}),De(this,"handleTeammateNameDisplayRadio",e=>{this.setState({teammateNameDisplay:e})}),De(this,"updateSection",e=>{this.updateState(),this.props.updateSection(e)}),De(this,"updateState",()=>{const e=Ue(this.props);b.c(e,this.state)||this.setState(e),this.setState({isSaving:!1})}),this.state=je({},Ue(e),{isSaving:!1}),0===e.timezones.length&&e.actions.getSupportedTimezones(),this.prevSections={theme:"dummySectionName",clock:"theme",linkpreview:"clock",message_display:"linkpreview",channel_display_mode:"message_display",languages:"channel_display_mode"}}componentDidMount(){const{actions:e,enableTimezone:t,shouldAutoUpdateTimezone:a}=this.props;t&&a&&e.autoUpdateTimezone(Object(D.a)())}componentDidUpdate(e){this.props.teammateNameDisplay!==e.teammateNameDisplay&&this.updateState()}handleChannelDisplayModeRadio(e){this.setState({channelDisplayMode:e})}handlemessageDisplayRadio(e){this.setState({messageDisplay:e})}handleCollapseRadio(e){this.setState({collapseDisplay:e})}handleLinkPreviewRadio(e){this.setState({linkPreviewDisplay:e})}handleOnChange(e){this.setState(je({},e))}createSection(e){const{section:t,display:a,value:s,title:i,firstOption:n,secondOption:r,thirdOption:o,description:c,disabled:d}=e;let u=null,m=this.handleSubmit;const p=l.a.createElement(g.a,{id:n.radionButtonText.id,defaultMessage:n.radionButtonText.message});let h,f;n.radionButtonText.moreId&&(h=": ",f=l.a.createElement("span",{className:"font-weight--normal"},l.a.createElement(g.a,{id:n.radionButtonText.moreId,defaultMessage:n.radionButtonText.moreMessage})));const b=l.a.createElement(g.a,{id:r.radionButtonText.id,defaultMessage:r.radionButtonText.message});let E,y;r.radionButtonText.moreId&&(E=l.a.createElement("span",{className:"font-weight--normal"},l.a.createElement(g.a,{id:r.radionButtonText.moreId,defaultMessage:r.radionButtonText.moreMessage}))),o&&(y=l.a.createElement(g.a,{id:o.radionButtonText.id,defaultMessage:o.radionButtonText.message}));const _=l.a.createElement(g.a,{id:i.id,defaultMessage:i.message}),M=l.a.createElement(g.a,{id:c.id,defaultMessage:c.message});if(this.props.activeSection===t){const e=[!1,!1,!1];s===n.value?e[0]=!0:s===r.value?e[1]=!0:e[2]=!0;const i=t+"Format",c=t+"UserDisplay",S={};S[a]=n.value;const N={};N[a]=r.value;const C={};let k;o&&(C[a]=o.value),y&&(k=l.a.createElement("div",{className:"radio"},l.a.createElement("label",null,l.a.createElement("input",{id:i+"C",type:"radio",name:i,checked:e[2],onChange:()=>this.handleOnChange(C)}),y),l.a.createElement("br",null)));let O=[l.a.createElement("fieldset",{key:c},l.a.createElement("legend",{className:"form-legend hidden-label"},_),l.a.createElement("div",{className:"radio"},l.a.createElement("label",null,l.a.createElement("input",{id:i+"A",type:"radio",name:i,checked:e[0],onChange:()=>this.handleOnChange(S)}),p,h,f),l.a.createElement("br",null)),l.a.createElement("div",{className:"radio"},l.a.createElement("label",null,l.a.createElement("input",{id:i+"B",type:"radio",name:i,checked:e[1],onChange:()=>this.handleOnChange(N)}),b,h,E),l.a.createElement("br",null)),k,l.a.createElement("div",null,l.a.createElement("br",null),M))];return"teammateNameDisplay"===a&&d&&(u=l.a.createElement("span",null,l.a.createElement(g.a,{id:"user.settings.display.teammateNameDisplay",defaultMessage:"This field is handled through your System Administrator. If you want to change it, you need to do so through your System Administrator."})),m=null,O=[]),l.a.createElement("div",null,l.a.createElement(v.a,{title:_,inputs:O,submit:m,saving:this.state.isSaving,server_error:this.state.serverError,updateSection:this.updateSection,extraInfo:u}),l.a.createElement("div",{className:"divider-dark"}))}let N;return N=s===n.value?p:s===r.value?b:y,l.a.createElement("div",null,l.a.createElement(S.a,{title:_,describe:N,section:t,updateSection:this.updateSection}),l.a.createElement("div",{className:"divider-dark"}))}render(){const e=this.createSection({section:"collapse",display:"collapseDisplay",value:this.state.collapseDisplay,defaultDisplay:"false",title:{id:Object(E.b)("user.settings.display.collapseDisplay"),message:"Default appearance of image previews"},firstOption:{value:"false",radionButtonText:{id:Object(E.b)("user.settings.display.collapseOn"),message:"On"}},secondOption:{value:"true",radionButtonText:{id:Object(E.b)("user.settings.display.collapseOff"),message:"Off"}},description:{id:Object(E.b)("user.settings.display.collapseDesc"),message:"Set whether previews of image links and image attachment thumbnails show as expanded or collapsed by default. This setting can also be controlled using the slash commands /expand and /collapse."}});let t=null;this.props.enableLinkPreviews?(t=this.createSection({section:"linkpreview",display:"linkPreviewDisplay",value:this.state.linkPreviewDisplay,defaultDisplay:"true",title:{id:Object(E.b)("user.settings.display.linkPreviewDisplay"),message:"Website Link Previews"},firstOption:{value:"true",radionButtonText:{id:Object(E.b)("user.settings.display.linkPreviewOn"),message:"On"}},secondOption:{value:"false",radionButtonText:{id:Object(E.b)("user.settings.display.linkPreviewOff"),message:"Off"}},description:{id:Object(E.b)("user.settings.display.linkPreviewDesc"),message:"When available, the first web link in a message will show a preview of the website content below the message."}}),this.prevSections.message_display="linkpreview"):this.prevSections.message_display=this.prevSections.linkpreview;const a=this.createSection({section:"clock",display:"militaryTime",value:this.state.militaryTime,defaultDisplay:"false",title:{id:Object(E.b)("user.settings.display.clockDisplay"),message:"Clock Display"},firstOption:{value:"false",radionButtonText:{id:Object(E.b)("user.settings.display.normalClock"),message:"12-hour clock (example: 4:00 PM)"}},secondOption:{value:"true",radionButtonText:{id:Object(E.b)("user.settings.display.militaryClock"),message:"24-hour clock (example: 16:00)"}},description:{id:Object(E.b)("user.settings.display.preferTime"),message:"Select how you prefer time displayed."}}),s=this.createSection({section:Le.NAME_NAME_FORMAT,display:"teammateNameDisplay",value:this.props.lockTeammateNameDisplay?this.props.configTeammateNameDisplay:this.state.teammateNameDisplay,defaultDisplay:this.props.configTeammateNameDisplay,title:{id:Object(E.b)("user.settings.display.teammateNameDisplayTitle"),message:"Teammate Name Display"},firstOption:{value:h.Q.TEAMMATE_NAME_DISPLAY.SHOW_USERNAME,radionButtonText:{id:Object(E.b)("user.settings.display.teammateNameDisplayUsername"),message:"Show username"}},secondOption:{value:h.Q.TEAMMATE_NAME_DISPLAY.SHOW_NICKNAME_FULLNAME,radionButtonText:{id:Object(E.b)("user.settings.display.teammateNameDisplayNicknameFullname"),message:"Show nickname if one exists, otherwise show first and last name"}},thirdOption:{value:h.Q.TEAMMATE_NAME_DISPLAY.SHOW_FULLNAME,radionButtonText:{id:Object(E.b)("user.settings.display.teammateNameDisplayFullname"),message:"Show first and last name"}},description:{id:Object(E.b)("user.settings.display.teammateNameDisplayDescription"),message:"Set how to display other user's names in posts and the Direct Messages list."},disabled:this.props.lockTeammateNameDisplay});let i;if(this.props.enableTimezone&&!this.props.shouldAutoUpdateTimezone){const e=this.props.userTimezone;i="timezone"===this.props.activeSection?l.a.createElement("div",null,l.a.createElement(Ce,{user:this.props.user,timezones:this.props.timezones,useAutomaticTimezone:e.useAutomaticTimezone,automaticTimezone:e.automaticTimezone,manualTimezone:e.manualTimezone,updateSection:this.updateSection}),l.a.createElement("div",{className:"divider-dark"})):l.a.createElement("div",null,l.a.createElement(S.a,{title:l.a.createElement(g.a,{id:"user.settings.display.timezone",defaultMessage:"Timezone"}),width:"medium",describe:Object(j.getTimezoneRegion)(this.props.currentUserTimezone),section:"timezone",updateSection:this.updateSection}),l.a.createElement("div",{className:"divider-dark"}))}const n=this.createSection({section:Le.MESSAGE_DISPLAY,display:"messageDisplay",value:this.state.messageDisplay,defaultDisplay:Le.MESSAGE_DISPLAY_CLEAN,title:{id:Object(E.b)("user.settings.display.messageDisplayTitle"),message:"Message Display"},firstOption:{value:Le.MESSAGE_DISPLAY_CLEAN,radionButtonText:{id:Object(E.b)("user.settings.display.messageDisplayClean"),message:"Standard",moreId:Object(E.b)("user.settings.display.messageDisplayCleanDes"),moreMessage:"Easy to scan and read."}},secondOption:{value:Le.MESSAGE_DISPLAY_COMPACT,radionButtonText:{id:Object(E.b)("user.settings.display.messageDisplayCompact"),message:"Compact",moreId:Object(E.b)("user.settings.display.messageDisplayCompactDes"),moreMessage:"Fit as many messages on the screen as we can."}},description:{id:Object(E.b)("user.settings.display.messageDisplayDescription"),message:"Select how messages in a channel should be displayed."}}),r=this.createSection({section:Le.CHANNEL_DISPLAY_MODE,display:"channelDisplayMode",value:this.state.channelDisplayMode,defaultDisplay:Le.CHANNEL_DISPLAY_MODE_FULL_SCREEN,title:{id:Object(E.b)("user.settings.display.channelDisplayTitle"),message:"Channel Display"},firstOption:{value:Le.CHANNEL_DISPLAY_MODE_FULL_SCREEN,radionButtonText:{id:Object(E.b)("user.settings.display.fullScreen"),message:"Full width"}},secondOption:{value:Le.CHANNEL_DISPLAY_MODE_CENTERED,radionButtonText:{id:Object(E.b)("user.settings.display.fixedWidthCentered"),message:"Fixed width, centered"}},description:{id:Object(E.b)("user.settings.display.channeldisplaymode"),message:"Select the width of the center channel."}});let o,c,d=this.props.user.locale;if("languages"===this.props.activeSection)L.e(d)||(d=this.props.defaultClientLocale),o=l.a.createElement("div",null,l.a.createElement(Re,{user:this.props.user,locale:d,updateSection:this.updateSection}),l.a.createElement("div",{className:"divider-dark"}));else{let e;e=L.e(d)?L.c(d).name:L.c(this.props.defaultClientLocale).name,o=l.a.createElement("div",null,l.a.createElement(S.a,{title:l.a.createElement(g.a,{id:"user.settings.display.language",defaultMessage:"Language"}),width:"medium",describe:e,section:"languages",updateSection:this.updateSection}),l.a.createElement("div",{className:"divider-dark"}))}return 1===Object.keys(L.d()).length&&(o=null),this.props.enableThemeSelection&&(c=l.a.createElement("div",null,l.a.createElement(he,{selected:"theme"===this.props.activeSection,updateSection:this.updateSection,setRequireConfirm:this.props.setRequireConfirm,setEnforceFocus:this.props.setEnforceFocus,allowCustomThemes:this.props.allowCustomThemes}),l.a.createElement("div",{className:"divider-dark"}))),l.a.createElement("div",{id:"displaySettings"},l.a.createElement("div",{className:"modal-header"},l.a.createElement("button",{id:"closeButton",type:"button",className:"close","data-dismiss":"modal","aria-label":"Close",onClick:this.props.closeModal},l.a.createElement("span",{"aria-hidden":"true"},"×")),l.a.createElement("h4",{className:"modal-title",ref:"title"},l.a.createElement("div",{className:"modal-back"},l.a.createElement("span",{onClick:this.props.collapseModal},l.a.createElement(_.a,null))),l.a.createElement(g.a,{id:"user.settings.display.title",defaultMessage:"Display Settings"}))),l.a.createElement("div",{className:"user-settings"},l.a.createElement("h3",{id:"displaySettingsTitle",className:"tab-header"},l.a.createElement(g.a,{id:"user.settings.display.title",defaultMessage:"Display Settings"})),l.a.createElement("div",{className:"divider-dark first"}),c,a,s,i,t,e,n,r,o))}}De(xe,"propTypes",{user:r.a.object,updateSection:r.a.func,activeSection:r.a.string,closeModal:r.a.func.isRequired,collapseModal:r.a.func.isRequired,setRequireConfirm:r.a.func.isRequired,setEnforceFocus:r.a.func.isRequired,timezones:r.a.array.isRequired,userTimezone:r.a.object.isRequired,allowCustomThemes:r.a.bool,enableLinkPreviews:r.a.bool,defaultClientLocale:r.a.string,enableThemeSelection:r.a.bool,configTeammateNameDisplay:r.a.string,currentUserTimezone:r.a.string,enableTimezone:r.a.bool,shouldAutoUpdateTimezone:r.a.bool,militaryTime:r.a.string,teammateNameDisplay:r.a.string,channelDisplayMode:r.a.string,messageDisplay:r.a.string,collapseDisplay:r.a.string,linkPreviewDisplay:r.a.string,lockTeammateNameDisplay:r.a.bool,actions:r.a.shape({getSupportedTimezones:r.a.func.isRequired,autoUpdateTimezone:r.a.func.isRequired,savePreferences:r.a.func.isRequired}).isRequired});var Fe=Object(s.connect)((function(e){const t=Object(d.getConfig)(e),a=Object(d.getSupportedTimezones)(e),s=Object(i.getCurrentUserId)(e),n=Object(P.getUserTimezone)(e,s),r=n&&n.useAutomaticTimezone&&!n.automaticTimezone,o=!n||r,l="true"===t.AllowCustomThemes,c="true"===t.EnableLinkPreviews,m=t.DefaultClientLocale,p="true"===t.EnableThemeSelection,g="true"===t.ExperimentalTimezone,f="true"===Object(d.getLicense)(e).LockTeammateNameDisplay&&"true"===t.LockTeammateNameDisplay,b=t.TeammateNameDisplay;return{lockTeammateNameDisplay:f,allowCustomThemes:l,configTeammateNameDisplay:b,enableLinkPreviews:c,defaultClientLocale:m,enableThemeSelection:p,enableTimezone:g,timezones:a,userTimezone:n,shouldAutoUpdateTimezone:o,currentUserTimezone:Object(j.getUserCurrentTimezone)(n),militaryTime:Object(u.get)(e,h.B.CATEGORY_DISPLAY_SETTINGS,h.B.USE_MILITARY_TIME,h.B.USE_MILITARY_TIME_DEFAULT),teammateNameDisplay:Object(u.get)(e,h.B.CATEGORY_DISPLAY_SETTINGS,h.B.NAME_NAME_FORMAT,b),channelDisplayMode:Object(u.get)(e,h.B.CATEGORY_DISPLAY_SETTINGS,h.B.CHANNEL_DISPLAY_MODE,h.B.CHANNEL_DISPLAY_MODE_DEFAULT),messageDisplay:Object(u.get)(e,h.B.CATEGORY_DISPLAY_SETTINGS,h.B.MESSAGE_DISPLAY,h.B.MESSAGE_DISPLAY_DEFAULT),collapseDisplay:Object(u.get)(e,h.B.CATEGORY_DISPLAY_SETTINGS,h.B.COLLAPSE_DISPLAY,h.B.COLLAPSE_DISPLAY_DEFAULT),linkPreviewDisplay:Object(u.get)(e,h.B.CATEGORY_DISPLAY_SETTINGS,h.B.LINK_PREVIEW_DISPLAY,h.B.LINK_PREVIEW_DISPLAY_DEFAULT)}}),(function(e){return{actions:Object(c.bindActionCreators)({getSupportedTimezones:I.getSupportedTimezones,autoUpdateTimezone:R.autoUpdateTimezone,savePreferences:m.savePreferences},e)}}))(xe),qe=a(41),Be=(a(113),a(1103)),ze=a(314),Ge=a(53),Ve=a(311),He=a(1118),Ye=a(1425),We=a(1160);function Ke(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const Qe=Object(G.defineMessages)({usernameReserved:{id:Object(E.b)("user.settings.general.usernameReserved"),defaultMessage:"This username is reserved, please choose a new one."},usernameRestrictions:{id:Object(E.b)("user.settings.general.usernameRestrictions"),defaultMessage:"Username must begin with a letter, and contain between {min} to {max} lowercase characters made up of numbers, letters, and the symbols '.', '-', and '_'."},validEmail:{id:Object(E.b)("user.settings.general.validEmail"),defaultMessage:"Please enter a valid email address."},emailMatch:{id:Object(E.b)("user.settings.general.emailMatch"),defaultMessage:"The new emails you entered do not match."},incorrectPassword:{id:Object(E.b)("user.settings.general.incorrectPassword"),defaultMessage:"Your password is incorrect."},emptyPassword:{id:Object(E.b)("user.settings.general.emptyPassword"),defaultMessage:"Please enter your current password."},validImage:{id:Object(E.b)("user.settings.general.validImage"),defaultMessage:"Only BMP, JPG or PNG images may be used for profile pictures"},imageTooLarge:{id:Object(E.b)("user.settings.general.imageTooLarge"),defaultMessage:"Unable to upload profile image. File is too large."},uploadImage:{id:Object(E.b)("user.settings.general.uploadImage"),defaultMessage:"Click 'Edit' to upload an image."},uploadImageMobile:{id:Object(E.b)("user.settings.general.mobile.uploadImage"),defaultMessage:"Click to upload an image"},fullName:{id:Object(E.b)("user.settings.general.fullName"),defaultMessage:"Full Name"},nickname:{id:Object(E.b)("user.settings.general.nickname"),defaultMessage:"Nickname"},username:{id:Object(E.b)("user.settings.general.username"),defaultMessage:"Username"},profilePicture:{id:Object(E.b)("user.settings.general.profilePicture"),defaultMessage:"Profile Picture"},close:{id:Object(E.b)("user.settings.general.close"),defaultMessage:"Close"},position:{id:Object(E.b)("user.settings.general.position"),defaultMessage:"Position"}});class Je extends l.a.Component{constructor(e){super(e),Ke(this,"handleEmailResend",e=>{this.setState({resendStatus:"sending",showSpinner:!0}),this.props.actions.sendVerificationEmail(e).then(({data:e,error:t})=>{e?this.setState({resendStatus:"success"}):t&&this.setState({resendStatus:"failure"})})}),Ke(this,"createEmailResendLink",e=>l.a.createElement("span",{className:"resend-verification-wrapper"},l.a.createElement(We.a,{loading:this.state.showSpinner,text:b.gb("user.settings.general.sending","Sending")},l.a.createElement("a",{onClick:()=>{this.handleEmailResend(e),setTimeout(()=>{this.setState({showSpinner:!1})},500)}},l.a.createElement(g.a,{id:"user.settings.general.sendAgain",defaultMessage:"Send again"}))))),Ke(this,"submitUsername",()=>{const e=Object.assign({},this.props.user),t=this.state.username.trim().toLowerCase(),{formatMessage:a}=this.props.intl,s=b.eb(t);"Cannot use a reserved word as a username."!==s?s?this.setState({clientError:a(Qe.usernameRestrictions,{min:h.j.MIN_USERNAME_LENGTH,max:h.j.MAX_USERNAME_LENGTH}),serverError:""}):e.username!==t?(e.username=t,Object(Ve.d)("settings","user_settings_update",{field:"username"}),this.submitUser(e,!1)):this.updateSection(""):this.setState({clientError:a(Qe.usernameReserved),serverError:""})}),Ke(this,"submitNickname",()=>{const e=Object.assign({},this.props.user),t=this.state.nickname.trim();e.nickname!==t?(e.nickname=t,Object(Ve.d)("settings","user_settings_update",{field:"nickname"}),this.submitUser(e,!1)):this.updateSection("")}),Ke(this,"submitName",()=>{const e=Object.assign({},this.props.user),t=this.state.firstName.trim(),a=this.state.lastName.trim();e.first_name!==t||e.last_name!==a?(e.first_name=t,e.last_name=a,Object(Ve.d)("settings","user_settings_update",{field:"fullname"}),this.submitUser(e,!1)):this.updateSection("")}),Ke(this,"submitEmail",()=>{const e=Object.assign({},this.props.user),t=this.state.email.trim().toLowerCase(),a=this.state.confirmEmail.trim().toLowerCase(),s=this.state.currentPassword,{formatMessage:i}=this.props.intl;t!==e.email||""!==a&&a!==e.email?""!==t&&Object(Ge.isEmail)(t)?t===a?""!==s?(e.email=t,e.password=s,Object(Ve.d)("settings","user_settings_update",{field:"email"}),this.submitUser(e,!0)):this.setState({emailError:i(Qe.emptyPassword),clientError:"",serverError:""}):this.setState({emailError:i(Qe.emailMatch),clientError:"",serverError:""}):this.setState({emailError:i(Qe.validEmail),clientError:"",serverError:""}):this.updateSection("")}),Ke(this,"submitUser",(e,t)=>{const{formatMessage:a}=this.props.intl;this.setState({sectionIsSaving:!0}),this.props.actions.updateMe(e).then(({data:e,error:s})=>{if(e){this.updateSection(""),this.props.actions.getMe(),this.props.requireEmailVerification&&t&&(this.props.actions.clearErrors(),this.props.actions.logError({message:h.h.EMAIL_VERIFICATION_REQUIRED,type:h.i.SUCCESS},!0))}else if(s){let e;e=s.server_error_id&&"api.user.check_user_password.invalid.app_error"===s.server_error_id?a(Qe.incorrectPassword):s.message?s.message:s,this.setState({serverError:e,emailError:"",clientError:"",sectionIsSaving:!1})}})}),Ke(this,"setDefaultProfilePicture",async()=>{try{await this.props.actions.setDefaultProfileImage(this.props.user.id),this.updateSection(""),this.submitActive=!1}catch(e){let t;t=e.message?e.message:e,this.setState({serverError:t,emailError:"",clientError:"",sectionIsSaving:!1})}}),Ke(this,"submitPicture",()=>{if(!this.state.pictureFile)return;if(!this.submitActive)return;Object(Ve.d)("settings","user_settings_update",{field:"picture"});const{formatMessage:e}=this.props.intl,t=this.state.pictureFile;h.e.includes(t.type)?t.size>this.props.maxFileSize?this.setState({clientError:e(Qe.imageTooLarge),serverError:""}):(this.setState({loadingPicture:!0}),this.props.actions.uploadProfileImage(this.props.user.id,t).then(({data:e,error:t})=>{if(e)this.updateSection(""),this.submitActive=!1;else if(t){var a=this.setupInitialState(this.props);a.serverError=t.message,this.setState(a)}})):this.setState({clientError:e(Qe.validImage),serverError:""})}),Ke(this,"submitPosition",()=>{const e=Object.assign({},this.props.user),t=this.state.position.trim();e.position!==t?(e.position=t,Object(Ve.d)("settings","user_settings_update",{field:"position"}),this.submitUser(e,!1)):this.updateSection("")}),Ke(this,"updateUsername",e=>{this.setState({username:e.target.value})}),Ke(this,"updateFirstName",e=>{this.setState({firstName:e.target.value})}),Ke(this,"updateLastName",e=>{this.setState({lastName:e.target.value})}),Ke(this,"updateNickname",e=>{this.setState({nickname:e.target.value})}),Ke(this,"updatePosition",e=>{this.setState({position:e.target.value})}),Ke(this,"updateEmail",e=>{this.setState({email:e.target.value})}),Ke(this,"updateConfirmEmail",e=>{this.setState({confirmEmail:e.target.value})}),Ke(this,"updateCurrentPassword",e=>{this.setState({currentPassword:e.target.value})}),Ke(this,"updatePicture",e=>{e.target.files&&e.target.files[0]?(this.setState({pictureFile:e.target.files[0]}),this.submitActive=!0,this.setState({clientError:null})):this.setState({pictureFile:null})}),Ke(this,"updateSection",e=>{this.setState(Object.assign({},this.setupInitialState(this.props),{clientError:"",serverError:"",emailError:"",sectionIsSaving:!1})),this.submitActive=!1,this.props.updateSection(e)}),this.submitActive=!1,this.state=this.setupInitialState(e)}setupInitialState(e){const t=e.user;return{username:t.username,firstName:t.first_name,lastName:t.last_name,nickname:t.nickname,position:t.position,originalEmail:t.email,email:"",confirmEmail:"",currentPassword:"",pictureFile:null,loadingPicture:!1,sectionIsSaving:!1,showSpinner:!1}}createEmailSection(){const{formatMessage:e}=this.props.intl;let t;if("email"===this.props.activeSection){const a=this.props.requireEmailVerification,s=[];let i=l.a.createElement(g.a,{id:"user.settings.general.emailHelp1",defaultMessage:"Email is used for sign-in, notifications, and password reset. Email requires verification if changed."});a||(i=l.a.createElement(g.a,{id:"user.settings.general.emailHelp3",defaultMessage:"Email is used for sign-in, notifications, and password reset."}));let n=null;""===this.props.user.auth_service?(s.push(l.a.createElement("div",{key:"currentEmailSetting"},l.a.createElement("div",{className:"form-group"},l.a.createElement("label",{className:"col-sm-5 control-label"},l.a.createElement(g.a,{id:"user.settings.general.currentEmail",defaultMessage:"Current Email"})),l.a.createElement("div",{className:"col-sm-7"},l.a.createElement("label",{className:"control-label word-break--all text-left"},this.state.originalEmail))))),s.push(l.a.createElement("div",{key:"emailSetting"},l.a.createElement("div",{className:"form-group"},l.a.createElement("label",{className:"col-sm-5 control-label"},l.a.createElement(g.a,{id:"user.settings.general.newEmail",defaultMessage:"New Email"})),l.a.createElement("div",{className:"col-sm-7"},l.a.createElement("input",{autoFocus:!0,id:"primaryEmail",className:"form-control",type:"email",onChange:this.updateEmail,maxLength:h.j.MAX_EMAIL_LENGTH,value:this.state.email,"aria-label":e({id:"user.settings.general.newEmail",defaultMessage:"New Email"})}))))),s.push(l.a.createElement("div",{key:"confirmEmailSetting"},l.a.createElement("div",{className:"form-group"},l.a.createElement("label",{className:"col-sm-5 control-label"},l.a.createElement(g.a,{id:"user.settings.general.confirmEmail",defaultMessage:"Confirm Email"})),l.a.createElement("div",{className:"col-sm-7"},l.a.createElement("input",{id:"confirmEmail",className:"form-control",type:"email",onChange:this.updateConfirmEmail,maxLength:h.j.MAX_EMAIL_LENGTH,value:this.state.confirmEmail,"aria-label":e({id:"user.settings.general.confirmEmail",defaultMessage:"Confirm Email"})}))))),s.push(l.a.createElement("div",{key:"currentPassword"},l.a.createElement("div",{className:"form-group"},l.a.createElement("label",{className:"col-sm-5 control-label"},l.a.createElement(g.a,{id:"user.settings.general.currentPassword",defaultMessage:"Current Password"})),l.a.createElement("div",{className:"col-sm-7"},l.a.createElement("input",{id:"currentPassword",className:"form-control",type:"password",onChange:this.updateCurrentPassword,value:this.state.currentPassword,"aria-label":e({id:"user.settings.general.currentPassword",defaultMessage:"Current Password"})}))),i)),n=this.submitEmail):this.props.user.auth_service===h.j.GITLAB_SERVICE?s.push(l.a.createElement("div",{key:"oauthEmailInfo",className:"form-group"},l.a.createElement("div",{className:"setting-list__hint padding-bottom x2"},l.a.createElement(g.a,{id:"user.settings.general.emailGitlabCantUpdate",defaultMessage:"Login occurs through GitLab. Email cannot be updated. Email address used for notifications is {email}.",values:{email:this.state.originalEmail}})),i)):this.props.user.auth_service===h.j.GOOGLE_SERVICE?s.push(l.a.createElement("div",{key:"oauthEmailInfo",className:"form-group"},l.a.createElement("div",{className:"setting-list__hint padding-bottom x2"},l.a.createElement(g.a,{id:"user.settings.general.emailGoogleCantUpdate",defaultMessage:"Login occurs through Google Apps. Email cannot be updated. Email address used for notifications is {email}.",values:{email:this.state.originalEmail}})),i)):this.props.user.auth_service===h.j.OFFICE365_SERVICE?s.push(l.a.createElement("div",{key:"oauthEmailInfo",className:"form-group"},l.a.createElement("div",{className:"setting-list__hint padding-bottom x2"},l.a.createElement(g.a,{id:"user.settings.general.emailOffice365CantUpdate",defaultMessage:"Login occurs through Office 365. Email cannot be updated. Email address used for notifications is {email}.",values:{email:this.state.originalEmail}})),i)):this.props.user.auth_service===h.j.LDAP_SERVICE?s.push(l.a.createElement("div",{key:"oauthEmailInfo",className:"padding-bottom"},l.a.createElement("div",{className:"setting-list__hint padding-bottom x2"},l.a.createElement(g.a,{id:"user.settings.general.emailLdapCantUpdate",defaultMessage:"Login occurs through AD/LDAP. Email cannot be updated. Email address used for notifications is {email}.",values:{email:this.state.originalEmail}})))):this.props.user.auth_service===h.j.SAML_SERVICE&&s.push(l.a.createElement("div",{key:"oauthEmailInfo",className:"padding-bottom"},l.a.createElement("div",{className:"setting-list__hint padding-bottom x2"},l.a.createElement(g.a,{id:"user.settings.general.emailSamlCantUpdate",defaultMessage:"Login occurs through SAML. Email cannot be updated. Email address used for notifications is {email}.",values:{email:this.state.originalEmail}})),i)),t=l.a.createElement(v.a,{title:l.a.createElement(g.a,{id:"user.settings.general.email",defaultMessage:"Email"}),inputs:s,submit:n,saving:this.state.sectionIsSaving,serverError:this.state.serverError,clientError:this.state.emailError,updateSection:this.updateSection})}else{let e="";""===this.props.user.auth_service?e=this.props.user.email:this.props.user.auth_service===h.j.GITLAB_SERVICE?e=l.a.createElement(g.a,{id:"user.settings.general.loginGitlab",defaultMessage:"Login done through GitLab ({email})",values:{email:this.state.originalEmail}}):this.props.user.auth_service===h.j.GOOGLE_SERVICE?e=l.a.createElement(g.a,{id:"user.settings.general.loginGoogle",defaultMessage:"Login done through Google Apps ({email})",values:{email:this.state.originalEmail}}):this.props.user.auth_service===h.j.OFFICE365_SERVICE?e=l.a.createElement(g.a,{id:"user.settings.general.loginOffice365",defaultMessage:"Login done through Office 365 ({email})",values:{email:this.state.originalEmail}}):this.props.user.auth_service===h.j.LDAP_SERVICE?e=l.a.createElement(g.a,{id:"user.settings.general.loginLdap",defaultMessage:"Login done through AD/LDAP ({email})",values:{email:this.state.originalEmail}}):this.props.user.auth_service===h.j.SAML_SERVICE&&(e=l.a.createElement(g.a,{id:"user.settings.general.loginSaml",defaultMessage:"Login done through SAML ({email})",values:{email:this.state.originalEmail}})),t=l.a.createElement(S.a,{title:l.a.createElement(g.a,{id:"user.settings.general.email",defaultMessage:"Email"}),describe:e,section:"email",updateSection:this.updateSection})}return t}render(){const e=this.props.user,{formatMessage:t}=this.props.intl;let a=null;this.state.clientError&&(a=this.state.clientError);let s,i=null;this.state.serverError&&(i=this.state.serverError);const n=[];if("name"===this.props.activeSection){let e,r=null;if("ldap"===this.props.user.auth_service&&(this.props.ldapFirstNameAttributeSet||this.props.ldapLastNameAttributeSet)||this.props.user.auth_service===h.j.SAML_SERVICE&&(this.props.samlFirstNameAttributeSet||this.props.samlLastNameAttributeSet))e=l.a.createElement("span",null,l.a.createElement(g.a,{id:"user.settings.general.field_handled_externally",defaultMessage:"This field is handled through your login provider. If you want to change it, you need to do so through your login provider."}));else{n.push(l.a.createElement("div",{key:"firstNameSetting",className:"form-group"},l.a.createElement("label",{className:"col-sm-5 control-label"},l.a.createElement(g.a,{id:"user.settings.general.firstName",defaultMessage:"First Name"})),l.a.createElement("div",{className:"col-sm-7"},l.a.createElement("input",{id:"firstName",autoFocus:!0,className:"form-control",type:"text",onChange:this.updateFirstName,maxLength:h.j.MAX_FIRSTNAME_LENGTH,value:this.state.firstName,onFocus:b.ib,"aria-label":t({id:"user.settings.general.firstName",defaultMessage:"First Name"})})))),n.push(l.a.createElement("div",{key:"lastNameSetting",className:"form-group"},l.a.createElement("label",{className:"col-sm-5 control-label"},l.a.createElement(g.a,{id:"user.settings.general.lastName",defaultMessage:"Last Name"})),l.a.createElement("div",{className:"col-sm-7"},l.a.createElement("input",{id:"lastName",className:"form-control",type:"text",onChange:this.updateLastName,maxLength:h.j.MAX_LASTNAME_LENGTH,value:this.state.lastName,"aria-label":t({id:"user.settings.general.lastName",defaultMessage:"Last Name"})}))));const a=l.a.createElement("a",{href:"#",onClick:function(e){e.preventDefault(),this.updateSection(""),this.props.updateTab("notifications")}.bind(this)},l.a.createElement(g.a,{id:"user.settings.general.notificationsLink",defaultMessage:"Notifications"}));e=l.a.createElement("span",null,l.a.createElement(g.a,{id:"user.settings.general.notificationsExtra",defaultMessage:"By default, you will receive mention notifications when someone types your first name. Go to {notify} settings to change this default.",values:{notify:a}})),r=this.submitName}s=l.a.createElement(v.a,{title:t(Qe.fullName),inputs:n,submit:r,saving:this.state.sectionIsSaving,serverError:i,clientError:a,updateSection:this.updateSection,extraInfo:e})}else{let a="";e.first_name&&e.last_name?a=e.first_name+" "+e.last_name:e.first_name?a=e.first_name:e.last_name?a=e.last_name:(a=l.a.createElement(g.a,{id:"user.settings.general.emptyName",defaultMessage:"Click 'Edit' to add your full name"}),b.Y()&&(a=l.a.createElement(g.a,{id:"user.settings.general.mobile.emptyName",defaultMessage:"Click to add your full name"}))),s=l.a.createElement(S.a,{title:t(Qe.fullName),describe:a,section:"name",updateSection:this.updateSection})}let r,o,c;if("nickname"===this.props.activeSection){let e,s=null;if("ldap"===this.props.user.auth_service&&this.props.ldapNicknameAttributeSet||this.props.user.auth_service===h.j.SAML_SERVICE&&this.props.samlNicknameAttributeSet)e=l.a.createElement("span",null,l.a.createElement(g.a,{id:"user.settings.general.field_handled_externally",defaultMessage:"This field is handled through your login provider. If you want to change it, you need to do so though your login provider."}));else{let a=l.a.createElement(g.a,{id:"user.settings.general.nickname",defaultMessage:"Nickname"});b.Y()&&(a=""),n.push(l.a.createElement("div",{key:"nicknameSetting",className:"form-group"},l.a.createElement("label",{className:"col-sm-5 control-label"},a),l.a.createElement("div",{className:"col-sm-7"},l.a.createElement("input",{id:"nickname",autoFocus:!0,className:"form-control",type:"text",onChange:this.updateNickname,value:this.state.nickname,maxLength:h.j.MAX_NICKNAME_LENGTH,autoCapitalize:"off","aria-label":t({id:"user.settings.general.nickname",defaultMessage:"Nickname"})})))),e=l.a.createElement("span",null,l.a.createElement(g.a,{id:"user.settings.general.nicknameExtra",defaultMessage:"Use Nickname for a name you might be called that is different from your first name and username. This is most often used when two or more people have similar sounding names and usernames."})),s=this.submitNickname}r=l.a.createElement(v.a,{title:t(Qe.nickname),inputs:n,submit:s,saving:this.state.sectionIsSaving,serverError:i,clientError:a,updateSection:this.updateSection,extraInfo:e})}else{let a="";e.nickname?a=e.nickname:(a=l.a.createElement(g.a,{id:"user.settings.general.emptyNickname",defaultMessage:"Click 'Edit' to add a nickname"}),b.Y()&&(a=l.a.createElement(g.a,{id:"user.settings.general.mobile.emptyNickname",defaultMessage:"Click to add a nickname"}))),r=l.a.createElement(S.a,{title:t(Qe.nickname),describe:a,section:"nickname",updateSection:this.updateSection})}if("username"===this.props.activeSection){let e,s=null;if(""===this.props.user.auth_service){let a=l.a.createElement(g.a,{id:"user.settings.general.username",defaultMessage:"Username"});b.Y()&&(a=""),n.push(l.a.createElement("div",{key:"usernameSetting",className:"form-group"},l.a.createElement("label",{className:"col-sm-5 control-label"},a),l.a.createElement("div",{className:"col-sm-7"},l.a.createElement("input",{id:"username",autoFocus:!0,maxLength:h.j.MAX_USERNAME_LENGTH,className:"form-control",type:"text",onChange:this.updateUsername,value:this.state.username,autoCapitalize:"off",onFocus:b.ib,"aria-label":t({id:"user.settings.general.username",defaultMessage:"Username"})})))),e=l.a.createElement("span",null,l.a.createElement(g.a,{id:"user.settings.general.usernameInfo",defaultMessage:"Pick something easy for teammates to recognize and recall."})),s=this.submitUsername}else e=l.a.createElement("span",null,l.a.createElement(g.a,{id:"user.settings.general.field_handled_externally",defaultMessage:"This field is handled through your login provider. If you want to change it, you need to do so though your login provider."}));o=l.a.createElement(v.a,{title:t(Qe.username),inputs:n,submit:s,saving:this.state.sectionIsSaving,serverError:i,clientError:a,updateSection:this.updateSection,extraInfo:e})}else o=l.a.createElement(S.a,{title:t(Qe.username),describe:this.props.user.username,section:"username",updateSection:this.updateSection});if("position"===this.props.activeSection){let e,s=null;if(this.props.user.auth_service===h.j.LDAP_SERVICE&&this.props.ldapPositionAttributeSet||this.props.user.auth_service===h.j.SAML_SERVICE&&this.props.samlPositionAttributeSet)e=l.a.createElement("span",null,l.a.createElement(g.a,{id:"user.settings.general.field_handled_externally",defaultMessage:"This field is handled through your login provider. If you want to change it, you need to do so though your login provider."}));else{let a=l.a.createElement(g.a,{id:"user.settings.general.position",defaultMessage:"Position"});b.Y()&&(a=""),n.push(l.a.createElement("div",{key:"positionSetting",className:"form-group"},l.a.createElement("label",{className:"col-sm-5 control-label"},a),l.a.createElement("div",{className:"col-sm-7"},l.a.createElement("input",{id:"position",autoFocus:!0,className:"form-control",type:"text",onChange:this.updatePosition,value:this.state.position,maxLength:h.j.MAX_POSITION_LENGTH,autoCapitalize:"off",onFocus:b.ib,"aria-label":t({id:"user.settings.general.position",defaultMessage:"Position"})})))),e=l.a.createElement("span",null,l.a.createElement(g.a,{id:"user.settings.general.positionExtra",defaultMessage:"Use Position for your role or job title. This will be shown in your profile popover."})),s=this.submitPosition}c=l.a.createElement(v.a,{title:t(Qe.position),inputs:n,submit:s,saving:this.state.sectionIsSaving,serverError:i,clientError:a,updateSection:this.updateSection,extraInfo:e})}else{let a="";e.position?a=e.position:(a=l.a.createElement(g.a,{id:"user.settings.general.emptyPosition",defaultMessage:"Click 'Edit' to add your job title / position"}),b.Y()&&(a=l.a.createElement(g.a,{id:"user.settings.general.mobile.emptyPosition",defaultMessage:"Click to add your job title / position"}))),c=l.a.createElement(S.a,{title:t(Qe.position),describe:a,section:"position",updateSection:this.updateSection})}const d=this.createEmailSection();let u;if("picture"===this.props.activeSection)u=l.a.createElement(Ye.a,{title:t(Qe.profilePicture),onSubmit:this.submitPicture,onSetDefault:e.last_picture_update>0?this.setDefaultProfilePicture:null,src:b.M(e),defaultImageSrc:b.i(e.id),serverError:i,clientError:a,updateSection:e=>{this.updateSection(""),e.preventDefault()},file:this.state.pictureFile,onFileChange:this.updatePicture,submitActive:this.submitActive,loadingPicture:this.state.loadingPicture,maxFileSize:this.props.maxFileSize});else{let a=t(Qe.uploadImage);b.Y()&&(a=t(Qe.uploadImageMobile)),e.last_picture_update&&(a=l.a.createElement(g.a,{id:"user.settings.general.imageUpdated",defaultMessage:"Image last updated {date}",values:{date:l.a.createElement(Be.a,{value:new Date(e.last_picture_update),day:"2-digit",month:"short",year:"numeric"})}})),u=l.a.createElement(S.a,{title:t(Qe.profilePicture),describe:a,section:"picture",updateSection:this.updateSection})}return l.a.createElement("div",{id:"generalSettings"},l.a.createElement("div",{className:"modal-header"},l.a.createElement("button",{id:"closeUserSettings",type:"button",className:"close","data-dismiss":"modal","aria-label":t(Qe.close),onClick:this.props.closeModal},l.a.createElement("span",{"aria-hidden":"true"},"×")),l.a.createElement("h4",{className:"modal-title",ref:"title"},l.a.createElement("div",{className:"modal-back"},l.a.createElement(g.a,{id:"generic_icons.collapse",defaultMessage:"Collapse Icon"},e=>l.a.createElement("i",{className:"fa fa-angle-left",title:e,onClick:this.props.collapseModal}))),l.a.createElement(g.a,{id:"user.settings.general.title",defaultMessage:"General Settings"}))),l.a.createElement("div",{className:"user-settings"},l.a.createElement("h3",{id:"generalSettingsTitle",className:"tab-header"},l.a.createElement(g.a,{id:"user.settings.general.title",defaultMessage:"General Settings"})),l.a.createElement("div",{className:"divider-dark first"}),s,l.a.createElement("div",{className:"divider-light"}),o,l.a.createElement("div",{className:"divider-light"}),r,l.a.createElement("div",{className:"divider-light"}),c,l.a.createElement("div",{className:"divider-light"}),d,l.a.createElement("div",{className:"divider-light"}),u,l.a.createElement("div",{className:"divider-dark"})))}}Ke(Je,"propTypes",{intl:He.a.isRequired,user:r.a.object.isRequired,updateSection:r.a.func.isRequired,updateTab:r.a.func.isRequired,activeSection:r.a.string.isRequired,closeModal:r.a.func.isRequired,collapseModal:r.a.func.isRequired,actions:r.a.shape({logError:r.a.func.isRequired,clearErrors:r.a.func.isRequired,getMe:r.a.func.isRequired,updateMe:r.a.func.isRequired,sendVerificationEmail:r.a.func.isRequired,setDefaultProfileImage:r.a.func.isRequired,uploadProfileImage:r.a.func.isRequired}).isRequired,requireEmailVerification:r.a.bool,maxFileSize:r.a.number,ldapFirstNameAttributeSet:r.a.bool,ldapLastNameAttributeSet:r.a.bool,samlFirstNameAttributeSet:r.a.bool,samlLastNameAttributeSet:r.a.bool,ldapNicknameAttributeSet:r.a.bool,samlNicknameAttributeSet:r.a.bool,ldapPositionAttributeSet:r.a.bool,samlPositionAttributeSet:r.a.bool});var Xe=Object(ze.c)(Je);var Ze=Object(s.connect)((function(e){const t=Object(d.getConfig)(e);return{requireEmailVerification:"true"===t.RequireEmailVerification,maxFileSize:parseInt(t.MaxFileSize,10),ldapFirstNameAttributeSet:"true"===t.LdapFirstNameAttributeSet,ldapLastNameAttributeSet:"true"===t.LdapLastNameAttributeSet,samlFirstNameAttributeSet:"true"===t.SamlFirstNameAttributeSet,samlLastNameAttributeSet:"true"===t.SamlLastNameAttributeSet,ldapNicknameAttributeSet:"true"===t.LdapNicknameAttributeSet,samlNicknameAttributeSet:"true"===t.SamlNicknameAttributeSet,samlPositionAttributeSet:"true"===t.SamlPositionAttributeSet,ldapPositionAttributeSet:"true"===t.LdapPositionAttributeSet}}),(function(e){return{actions:Object(c.bindActionCreators)({logError:qe.logError,clearErrors:qe.clearErrors,getMe:p.getMe,updateMe:p.updateMe,sendVerificationEmail:p.sendVerificationEmail,setDefaultProfileImage:p.setDefaultProfileImage,uploadProfileImage:p.uploadProfileImage},e)}}))(Xe);function $e(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class et extends l.a.Component{constructor(...e){super(...e),$e(this,"handleMinUpdateSection",e=>{this.props.updateSection(e),this.props.cancel()}),$e(this,"handleMaxUpdateSection",e=>{this.props.updateSection(e)}),$e(this,"handleOnChange",e=>{const t=e.currentTarget.getAttribute("data-key"),a=e.currentTarget.getAttribute("data-value");this.props.setParentState(t,a)}),$e(this,"buildMaximizedSetting",()=>{const e=[],t=[!1,!1,!1];let a;if(this.props.activity===h.v.MENTION?t[1]=!0:this.props.activity===h.v.NONE?t[2]=!0:t[0]=!0,this.props.activity!==h.v.NONE){const e=[!1,!1];"false"===this.props.sound?e[1]=!0:e[0]=!0,a=b.K()?l.a.createElement("fieldset",null,l.a.createElement("legend",{className:"form-legend"},l.a.createElement(g.a,{id:"user.settings.notifications.desktop.sound",defaultMessage:"Notification sound"})),l.a.createElement("div",{className:"radio"},l.a.createElement("label",null,l.a.createElement("input",{id:"soundOn",type:"radio",name:"notificationSounds",checked:e[0],"data-key":"desktopSound","data-value":"true",onChange:this.handleOnChange}),l.a.createElement(g.a,{id:"user.settings.notifications.on",defaultMessage:"On"})),l.a.createElement("br",null)),l.a.createElement("div",{className:"radio"},l.a.createElement("label",null,l.a.createElement("input",{id:"soundOff",type:"radio",name:"notificationSounds",checked:e[1],"data-key":"desktopSound","data-value":"false",onChange:this.handleOnChange}),l.a.createElement(g.a,{id:"user.settings.notifications.off",defaultMessage:"Off"})),l.a.createElement("br",null)),l.a.createElement("div",{className:"margin-top x3"},l.a.createElement(g.a,{id:"user.settings.notifications.sounds_info",defaultMessage:"Notification sounds are available on IE11, Safari, Chrome and Mattermost Desktop Apps."}))):l.a.createElement("fieldset",null,l.a.createElement("legend",{className:"form-legend"},l.a.createElement(g.a,{id:"user.settings.notifications.desktop.sound",defaultMessage:"Notification sound"})),l.a.createElement("br",null),l.a.createElement(g.a,{id:"user.settings.notifications.soundConfig",defaultMessage:"Please configure notification sounds in your browser settings"}))}return e.push(l.a.createElement("div",{key:"userNotificationLevelOption"},l.a.createElement("fieldset",null,l.a.createElement("legend",{className:"form-legend"},l.a.createElement(g.a,{id:"user.settings.notifications.desktop",defaultMessage:"Send desktop notifications"})),l.a.createElement("div",{className:"radio"},l.a.createElement("label",null,l.a.createElement("input",{id:"desktopNotificationAllActivity",type:"radio",name:"desktopNotificationLevel",checked:t[0],"data-key":"desktopActivity","data-value":h.v.ALL,onChange:this.handleOnChange}),l.a.createElement(g.a,{id:"user.settings.notifications.allActivity",defaultMessage:"For all activity"})),l.a.createElement("br",null)),l.a.createElement("div",{className:"radio"},l.a.createElement("label",null,l.a.createElement("input",{id:"desktopNotificationMentions",type:"radio",name:"desktopNotificationLevel",checked:t[1],"data-key":"desktopActivity","data-value":h.v.MENTION,onChange:this.handleOnChange}),l.a.createElement(g.a,{id:"user.settings.notifications.onlyMentions",defaultMessage:"Only for mentions and direct messages"})),l.a.createElement("br",null)),l.a.createElement("div",{className:"radio"},l.a.createElement("label",null,l.a.createElement("input",{id:"desktopNotificationNever",type:"radio",name:"desktopNotificationLevel",checked:t[2],"data-key":"desktopActivity","data-value":h.v.NONE,onChange:this.handleOnChange}),l.a.createElement(g.a,{id:"user.settings.notifications.never",defaultMessage:"Never"}))),l.a.createElement("div",{className:"margin-top x3"},l.a.createElement(g.a,{id:"user.settings.notifications.info",defaultMessage:"Desktop notifications are available on Edge, Firefox, Safari, Chrome and Mattermost Desktop Apps."}))),l.a.createElement("hr",null),a)),l.a.createElement(v.a,{title:b.gb("user.settings.notifications.desktop.title","Desktop notifications"),inputs:e,submit:this.props.submit,saving:this.props.saving,server_error:this.props.error,updateSection:this.handleMaxUpdateSection})}),$e(this,"buildMinimizedSetting",()=>{let e;const t=b.K();return e=this.props.activity===h.v.MENTION?t&&"false"!==this.props.sound?{id:Object(E.b)("user.settings.notifications.desktop.mentionsSound"),defaultMessage:"For mentions and direct messages, with sound"}:t&&"false"===this.props.sound?{id:Object(E.b)("user.settings.notifications.desktop.mentionsNoSound"),defaultMessage:"For mentions and direct messages, without sound"}:{id:Object(E.b)("user.settings.notifications.desktop.mentionsSoundHidden"),defaultMessage:"For mentions and direct messages"}:this.props.activity===h.v.NONE?{id:Object(E.b)("user.settings.notifications.off"),defaultMessage:"Off"}:t&&"false"!==this.props.sound?{id:Object(E.b)("user.settings.notifications.desktop.allSound"),defaultMessage:"For all activity, with sound"}:t&&"false"===this.props.sound?{id:Object(E.b)("user.settings.notifications.desktop.allNoSound"),defaultMessage:"For all activity, without sound"}:{id:Object(E.b)("user.settings.notifications.desktop.allSoundHidden"),defaultMessage:"For all activity"},l.a.createElement(S.a,{title:b.gb("user.settings.notifications.desktop.title","Desktop notifications"),describe:l.a.createElement(g.a,e),focused:this.props.focused,section:"desktop",updateSection:this.handleMinUpdateSection})})}render(){return this.props.active?this.buildMaximizedSetting():this.buildMinimizedSetting()}}et.propTypes={activity:r.a.string.isRequired,sound:r.a.string.isRequired,updateSection:r.a.func,setParentState:r.a.func,submit:r.a.func,cancel:r.a.func,error:r.a.string,active:r.a.bool,saving:r.a.bool,focused:r.a.bool};var tt=a(101),at=a(1927);function st(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const it=60;class nt extends l.a.PureComponent{constructor(e){super(e),st(this,"handleChange",e=>{const t=e.currentTarget.getAttribute("data-enable-email");this.setState({enableEmail:t,newInterval:parseInt(e.currentTarget.getAttribute("data-email-interval"),10)}),this.props.onChange(t)}),st(this,"handleSubmit",async()=>{const{newInterval:e}=this.state;if(this.props.emailInterval===e&&this.props.enableEmail===this.state.enableEmail)this.props.updateSection("");else{const{currentUserId:t,actions:a}=this.props,s={user_id:t,category:h.B.CATEGORY_NOTIFICATIONS,name:h.B.EMAIL_INTERVAL,value:e.toString()};await a.savePreferences(t,[s]),this.props.onSubmit()}}),st(this,"handleUpdateSection",e=>{e?this.props.updateSection(e):(this.props.updateSection(""),this.setState({enableEmail:this.props.enableEmail,newInterval:this.props.emailInterval}),this.props.onCancel())}),st(this,"renderMinSettingView",()=>{const{enableEmail:e,focused:t,sendEmailNotifications:a}=this.props,{newInterval:s}=this.state;let i;if(a)if(e)switch(s){case h.B.INTERVAL_IMMEDIATE:i=l.a.createElement(g.a,{id:"user.settings.notifications.email.immediately",defaultMessage:"Immediately"});break;case h.B.INTERVAL_HOUR:i=l.a.createElement(g.a,{id:"user.settings.notifications.email.everyHour",defaultMessage:"Every hour"});break;case h.B.INTERVAL_FIFTEEN_MINUTES:i=l.a.createElement(g.a,{id:"user.settings.notifications.email.everyXMinutes",defaultMessage:"Every {count, plural, one {minute} other {{count, number} minutes}}",values:{count:s/it}});break;default:i=l.a.createElement(g.a,{id:"user.settings.notifications.email.never",defaultMessage:"Never"})}else i=l.a.createElement(g.a,{id:"user.settings.notifications.email.never",defaultMessage:"Never"});else i=l.a.createElement(g.a,{id:"user.settings.notifications.email.disabled",defaultMessage:"Email notifications are not enabled"});return l.a.createElement(S.a,{title:Object(b.gb)("user.settings.notifications.emailNotifications","Email notifications"),describe:i,focused:t,section:"email",updateSection:this.handleUpdateSection})}),st(this,"renderMaxSettingView",()=>{if(!this.props.sendEmailNotifications)return l.a.createElement(v.a,{title:Object(b.gb)("user.settings.notifications.emailNotifications","Email notifications"),inputs:[l.a.createElement("div",{key:"oauthEmailInfo",className:"padding-top"},l.a.createElement(g.a,{id:"user.settings.notifications.email.disabled_long",defaultMessage:"Email notifications have not been enabled by your System Administrator."}))],server_error:this.props.serverError,section:"email",updateSection:this.handleUpdateSection});const{newInterval:e}=this.state;let t=null,a=null;return this.props.enableEmailBatching&&(t=l.a.createElement("fieldset",null,l.a.createElement("div",{className:"radio"},l.a.createElement("label",null,l.a.createElement("input",{id:"emailNotificationMinutes",type:"radio",name:"emailNotifications",checked:e===h.B.INTERVAL_FIFTEEN_MINUTES,"data-enable-email":"true","data-email-interval":h.B.INTERVAL_FIFTEEN_MINUTES,onChange:this.handleChange}),l.a.createElement(g.a,{id:"user.settings.notifications.email.everyXMinutes",defaultMessage:"Every {count} minutes",values:{count:h.B.INTERVAL_FIFTEEN_MINUTES/it}}))),l.a.createElement("div",{className:"radio"},l.a.createElement("label",null,l.a.createElement("input",{id:"emailNotificationHour",type:"radio",name:"emailNotifications",checked:e===h.B.INTERVAL_HOUR,"data-enable-email":"true","data-email-interval":h.B.INTERVAL_HOUR,onChange:this.handleChange}),l.a.createElement(g.a,{id:"user.settings.notifications.email.everyHour",defaultMessage:"Every hour"})))),a=l.a.createElement(g.a,{id:"user.settings.notifications.emailBatchingInfo",defaultMessage:"Notifications received over the time period selected are combined and sent in a single email."})),l.a.createElement(v.a,{title:Object(b.gb)("user.settings.notifications.emailNotifications","Email notifications"),inputs:[l.a.createElement("fieldset",{key:"userNotificationEmailOptions"},l.a.createElement("legend",{className:"form-legend"},l.a.createElement(g.a,{id:"user.settings.notifications.email.send",defaultMessage:"Send email notifications"})),l.a.createElement("div",{className:"radio"},l.a.createElement("label",null,l.a.createElement("input",{id:"emailNotificationImmediately",type:"radio",name:"emailNotifications",checked:e===h.B.INTERVAL_IMMEDIATE,"data-enable-email":"true","data-email-interval":h.B.INTERVAL_IMMEDIATE,onChange:this.handleChange}),l.a.createElement(g.a,{id:"user.settings.notifications.email.immediately",defaultMessage:"Immediately"}))),t,l.a.createElement("div",{className:"radio"},l.a.createElement("label",null,l.a.createElement("input",{id:"emailNotificationNever",type:"radio",name:"emailNotifications",checked:e===h.B.INTERVAL_NEVER,"data-enable-email":"false","data-email-interval":h.B.INTERVAL_NEVER,onChange:this.handleChange}),l.a.createElement(g.a,{id:"user.settings.notifications.email.never",defaultMessage:"Never"}))),l.a.createElement("div",{className:"margin-top x2"},l.a.createElement(g.a,{id:"user.settings.notifications.emailInfo",defaultMessage:"Email notifications are sent for mentions and direct messages when you are offline or away for more than 5 minutes."})," ",a))],submit:this.handleSubmit,saving:this.props.saving,server_error:this.props.serverError,updateSection:this.handleUpdateSection})});const{emailInterval:t,enableEmail:a,enableEmailBatching:s,sendEmailNotifications:i,activeSection:n}=e;this.state={activeSection:n,emailInterval:t,enableEmail:a,enableEmailBatching:s,sendEmailNotifications:i,newInterval:Object(at.getEmailInterval)(a&&i,s,t)}}static getDerivedStateFromProps(e,t){const{emailInterval:a,enableEmail:s,enableEmailBatching:i,sendEmailNotifications:n,activeSection:r}=e;return"email"===r&&"email"!==t.activeSection?{activeSection:r,emailInterval:a,enableEmail:s,enableEmailBatching:i,sendEmailNotifications:n,newInterval:Object(at.getEmailInterval)(s&&n,i,a)}:n!==t.sendEmailNotifications||i!==t.enableEmailBatching||a!==t.emailInterval||r!==t.activeSection?{activeSection:r,emailInterval:a,enableEmail:s,enableEmailBatching:i,sendEmailNotifications:n,newInterval:Object(at.getEmailInterval)(s&&n,i,a)}:null}render(){return"email"!==this.props.activeSection?this.renderMinSettingView():this.renderMaxSettingView()}}st(nt,"propTypes",{currentUserId:r.a.string.isRequired,activeSection:r.a.string.isRequired,updateSection:r.a.func.isRequired,enableEmail:r.a.bool.isRequired,emailInterval:r.a.number.isRequired,onSubmit:r.a.func.isRequired,onCancel:r.a.func.isRequired,onChange:r.a.func.isRequired,serverError:r.a.string,saving:r.a.bool,focused:r.a.bool,sendEmailNotifications:r.a.bool,enableEmailBatching:r.a.bool,actions:r.a.shape({savePreferences:r.a.func.isRequired}).isRequired});var rt=Object(s.connect)((function(e){const t=Object(d.getConfig)(e),a=parseInt(Object(u.get)(e,M.Preferences.CATEGORY_NOTIFICATIONS,M.Preferences.EMAIL_INTERVAL,M.Preferences.INTERVAL_NOT_SET.toString()),10);return{currentUserId:Object(tt.getCurrentUserId)(e),emailInterval:a,enableEmailBatching:"true"===t.EnableEmailBatching,sendEmailNotifications:"true"===t.SendEmailNotifications}}),(function(e){return{actions:Object(c.bindActionCreators)({savePreferences:m.savePreferences},e)}}))(nt),ot=a(1403);function lt(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const ct=200;class dt extends l.a.PureComponent{constructor(...e){super(...e),lt(this,"handleAutoResponderChecked",e=>{this.props.setParentState("autoResponderActive",e.target.checked)}),lt(this,"onMessageChanged",e=>{this.props.setParentState("autoResponderMessage",e.target.value)})}render(){const{autoResponderActive:e,autoResponderMessage:t}=this.props;let a;this.props.error&&(a=l.a.createElement("label",{className:"has-error"},this.props.error));const s=[],i=l.a.createElement("div",{id:"autoResponderCheckbox",key:"autoResponderCheckbox",className:"checkbox"},l.a.createElement("label",null,l.a.createElement("input",{id:"autoResponderActive",type:"checkbox",checked:e,onChange:this.handleAutoResponderChecked}),l.a.createElement(g.a,{id:"user.settings.notifications.autoResponderEnabled",defaultMessage:"Enabled"}))),n=l.a.createElement("div",{id:"autoResponderMessage",key:"autoResponderMessage"},l.a.createElement("div",{className:"padding-top"},l.a.createElement(ot.a,{style:{resize:"none"},id:"autoResponderMessageInput",className:"form-control",rows:"5",placeholder:Object(b.gb)("user.settings.notifications.autoResponderPlaceholder","Message"),value:t,maxLength:ct,onChange:this.onMessageChanged}),a));return s.push(i),e&&s.push(n),s.push(l.a.createElement("div",{key:"autoResponderHint",className:"margin-top x3"},l.a.createElement(ge.a,{id:"user.settings.notifications.autoResponderHint",defaultMessage:"Set a custom message that will be automatically sent in response to Direct Messages. Mentions in Public and Private Channels will not trigger the automated reply. Enabling Automatic Replies sets your status to Out of Office and disables email and push notifications."}))),l.a.createElement(v.a,{title:l.a.createElement(g.a,{id:"user.settings.notifications.autoResponder",defaultMessage:"Automatic Direct Message Replies"}),width:"medium",shiftEnter:!0,submit:this.props.submit,saving:this.props.saving,inputs:s,updateSection:this.props.updateSection})}}function ut(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function mt(e){const t=e.user;let a=h.v.MENTION,s="true",i="never",n="true",r=h.v.MENTION,o=h.Q.UserStatuses.AWAY,l=!1,c=b.gb("user.settings.notifications.autoResponderDefault","Hello, I am out of office and unable to respond to messages.");t.notify_props&&(t.notify_props.desktop&&(a=t.notify_props.desktop),t.notify_props.desktop_sound&&(s=t.notify_props.desktop_sound),t.notify_props.comments&&(i=t.notify_props.comments),t.notify_props.email&&(n=t.notify_props.email),t.notify_props.push&&(r=t.notify_props.push),t.notify_props.push_status&&(o=t.notify_props.push_status),t.notify_props.auto_responder_active&&(l="true"===t.notify_props.auto_responder_active),t.notify_props.auto_responder_message&&(c=t.notify_props.auto_responder_message));let d=!1,u="",m=!1,p=!1;if(t.notify_props){if(t.notify_props.mention_keys){const e=t.notify_props.mention_keys.split(",");-1===e.indexOf(t.username)?d=!1:(d=!0,e.splice(e.indexOf(t.username),1),-1!==e.indexOf("@".concat(t.username))&&e.splice(e.indexOf("@".concat(t.username)),1)),u=e.join(",")}t.notify_props.first_name&&(m="true"===t.notify_props.first_name),t.notify_props.channel&&(p="true"===t.notify_props.channel)}return{desktopActivity:a,enableEmail:n,pushActivity:r,pushStatus:o,desktopSound:s,usernameKey:d,customKeys:u,customKeysChecked:u.length>0,firstNameKey:m,channelKey:p,autoResponderActive:l,autoResponderMessage:c,notifyCommentsLevel:i,isSaving:!1}}lt(dt,"propTypes",{autoResponderActive:r.a.bool.isRequired,autoResponderMessage:r.a.string.isRequired,updateSection:r.a.func.isRequired,setParentState:r.a.func.isRequired,submit:r.a.func.isRequired,saving:r.a.bool.isRequired,error:r.a.string});class pt extends l.a.PureComponent{constructor(e){super(e),ut(this,"handleSubmit",()=>{const e={};e.email=this.state.enableEmail,e.desktop_sound=this.state.desktopSound,e.desktop=this.state.desktopActivity,e.push=this.state.pushActivity,e.push_status=this.state.pushStatus,e.comments=this.state.notifyCommentsLevel,e.auto_responder_active=this.state.autoResponderActive.toString(),e.auto_responder_message=this.state.autoResponderMessage,e.auto_responder_message&&""!==e.auto_responder_message||(e.auto_responder_message=b.gb("user.settings.notifications.autoResponderDefault","Hello, I am out of office and unable to respond to messages."));const t=[];this.state.usernameKey&&t.push(this.props.user.username);let a=t.join(",");this.state.customKeys.length>0&&this.state.customKeysChecked&&(a+=","+this.state.customKeys),e.mention_keys=a,e.first_name=this.state.firstNameKey.toString(),e.channel=this.state.channelKey.toString(),this.setState({isSaving:!0}),this.props.actions.updateMe({notify_props:e}).then(({data:e,error:t})=>{e?(this.handleUpdateSection(""),this.setState(mt(this.props))):t&&this.setState({serverError:t.message,isSaving:!1})})}),ut(this,"handleCancel",e=>{e&&e.preventDefault(),this.setState(mt(this.props))}),ut(this,"handleUpdateSection",e=>{e?this.props.updateSection(e):this.props.updateSection(""),this.setState({isSaving:!1}),this.handleCancel()}),ut(this,"setStateValue",(e,t)=>{const a={};a[e]=t,this.setState(a)}),ut(this,"handleEmailRadio",e=>{this.setState({enableEmail:e})}),ut(this,"updateUsernameKey",e=>{this.setState({usernameKey:e})}),ut(this,"updateFirstNameKey",e=>{this.setState({firstNameKey:e})}),ut(this,"updateChannelKey",e=>{this.setState({channelKey:e})}),ut(this,"updateCustomMentionKeys",()=>{if(this.refs.customcheck.checked){const e=this.refs.custommentions.value;this.setState({customKeys:e.replace(/ /g,""),customKeysChecked:!0})}else this.setState({customKeys:"",customKeysChecked:!1})}),ut(this,"onCustomChange",()=>{this.refs.customcheck.checked=!0,this.updateCustomMentionKeys()}),ut(this,"createPushNotificationSection",()=>{if("push"===this.props.activeSection){const e=[];let t=null,a=null;if(this.props.sendPushNotifications){const s=[!1,!1,!1];this.state.pushActivity===h.v.ALL?s[0]=!0:this.state.pushActivity===h.v.NONE?s[2]=!0:s[1]=!0;const i=[!1,!1,!1];let n;this.state.pushStatus===h.Q.UserStatuses.ONLINE?i[0]=!0:this.state.pushStatus===h.Q.UserStatuses.AWAY?i[1]=!0:i[2]=!0,this.state.pushActivity!==h.v.NONE&&(n=l.a.createElement("fieldset",null,l.a.createElement("legend",{className:"form-legend"},l.a.createElement(g.a,{id:"user.settings.notifications.push_notification.status",defaultMessage:"Trigger push notifications when"})),l.a.createElement("div",{className:"radio"},l.a.createElement("label",null,l.a.createElement("input",{id:"pushNotificationOnline",type:"radio",name:"pushNotificationStatus",checked:i[0],onChange:this.handlePushStatusRadio.bind(this,h.Q.UserStatuses.ONLINE)}),l.a.createElement(g.a,{id:"user.settings.push_notification.online",defaultMessage:"Online, away or offline"}))),l.a.createElement("div",{className:"radio"},l.a.createElement("label",null,l.a.createElement("input",{id:"pushNotificationAway",type:"radio",name:"pushNotificationStatus",checked:i[1],onChange:this.handlePushStatusRadio.bind(this,h.Q.UserStatuses.AWAY)}),l.a.createElement(g.a,{id:"user.settings.push_notification.away",defaultMessage:"Away or offline"}))),l.a.createElement("div",{className:"radio"},l.a.createElement("label",null,l.a.createElement("input",{id:"pushNotificationOffline",type:"radio",name:"pushNotificationStatus",checked:i[2],onChange:this.handlePushStatusRadio.bind(this,h.Q.UserStatuses.OFFLINE)}),l.a.createElement(g.a,{id:"user.settings.push_notification.offline",defaultMessage:"Offline"})))),t=l.a.createElement("span",null,l.a.createElement(g.a,{id:"user.settings.push_notification.status_info",defaultMessage:"Notification alerts are only pushed to your mobile device when your online status matches the selection above."}))),e.push(l.a.createElement("div",null,l.a.createElement("fieldset",{key:"userNotificationLevelOption"},l.a.createElement("legend",{className:"form-legend"},l.a.createElement(g.a,{id:"user.settings.push_notification.send",defaultMessage:"Send mobile push notifications"})),l.a.createElement("div",{className:"radio"},l.a.createElement("label",null,l.a.createElement("input",{id:"pushNotificationAllActivity",type:"radio",name:"pushNotificationLevel",checked:s[0],onChange:this.handlePushRadio.bind(this,h.v.ALL)}),l.a.createElement(g.a,{id:"user.settings.push_notification.allActivity",defaultMessage:"For all activity"}))),l.a.createElement("div",{className:"radio"},l.a.createElement("label",null,l.a.createElement("input",{id:"pushNotificationMentions",type:"radio",name:"pushNotificationLevel",checked:s[1],onChange:this.handlePushRadio.bind(this,h.v.MENTION)}),l.a.createElement(g.a,{id:"user.settings.push_notification.onlyMentions",defaultMessage:"For mentions and direct messages"}))),l.a.createElement("div",{className:"radio"},l.a.createElement("label",null,l.a.createElement("input",{id:"pushNotificationNever",type:"radio",name:"pushNotificationLevel",checked:s[2],onChange:this.handlePushRadio.bind(this,h.v.NONE)}),l.a.createElement(g.a,{id:"user.settings.notifications.never",defaultMessage:"Never"}))),l.a.createElement("div",{className:"margin-top x3"},l.a.createElement(g.a,{id:"user.settings.push_notification.info",defaultMessage:"Notification alerts are pushed to your mobile device when there is activity in Mattermost."}))),l.a.createElement("hr",null),n)),a=this.handleSubmit}else e.push(l.a.createElement("div",{key:"oauthEmailInfo",className:"padding-top"},l.a.createElement(g.a,{id:"user.settings.push_notification.disabled_long",defaultMessage:"Push notifications have not been enabled by your System Administrator."})));return l.a.createElement(v.a,{title:b.gb("user.settings.notifications.push","Mobile push notifications"),extraInfo:t,inputs:e,submit:a,server_error:this.state.serverError,updateSection:this.handleUpdateSection})}let e="";return e=this.state.pushActivity===h.v.ALL?this.state.pushStatus===h.Q.UserStatuses.AWAY?l.a.createElement(g.a,{id:"user.settings.push_notification.allActivityAway",defaultMessage:"For all activity when away or offline"}):this.state.pushStatus===h.Q.UserStatuses.OFFLINE?l.a.createElement(g.a,{id:"user.settings.push_notification.allActivityOffline",defaultMessage:"For all activity when offline"}):l.a.createElement(g.a,{id:"user.settings.push_notification.allActivityOnline",defaultMessage:"For all activity when online, away or offline"}):this.state.pushActivity===h.v.NONE?l.a.createElement(g.a,{id:"user.settings.notifications.never",defaultMessage:"Never"}):this.props.sendPushNotifications?this.state.pushStatus===h.Q.UserStatuses.AWAY?l.a.createElement(g.a,{id:"user.settings.push_notification.onlyMentionsAway",defaultMessage:"For mentions and direct messages when away or offline"}):this.state.pushStatus===h.Q.UserStatuses.OFFLINE?l.a.createElement(g.a,{id:"user.settings.push_notification.onlyMentionsOffline",defaultMessage:"For mentions and direct messages when offline"}):l.a.createElement(g.a,{id:"user.settings.push_notification.onlyMentionsOnline",defaultMessage:"For mentions and direct messages when online, away or offline"}):l.a.createElement(g.a,{id:"user.settings.push_notification.disabled",defaultMessage:"Push notifications are not enabled"}),l.a.createElement(S.a,{title:b.gb("user.settings.notifications.push","Mobile push notifications"),describe:e,section:"push",updateSection:this.handleUpdateSection})}),this.state=mt(e)}handleNotifyCommentsRadio(e){this.setState({notifyCommentsLevel:e})}handlePushRadio(e){this.setState({pushActivity:e})}handlePushStatusRadio(e){this.setState({pushStatus:e})}render(){const e=this.state.serverError,t=this.props.user;let a,s,i;if("keys"===this.props.activeSection){const s=[];if(t.first_name){const e=e=>{this.updateFirstNameKey(e.target.checked)};s.push(l.a.createElement("div",{key:"userNotificationFirstNameOption"},l.a.createElement("div",{className:"checkbox"},l.a.createElement("label",null,l.a.createElement("input",{id:"notificationTriggerFirst",type:"checkbox",checked:this.state.firstNameKey,onChange:e}),l.a.createElement(g.a,{id:"user.settings.notifications.sensitiveName",defaultMessage:'Your case sensitive first name "{first_name}"',values:{first_name:t.first_name}})))))}const i=e=>{this.updateUsernameKey(e.target.checked)};s.push(l.a.createElement("div",{key:"userNotificationUsernameOption"},l.a.createElement("div",{className:"checkbox"},l.a.createElement("label",null,l.a.createElement("input",{id:"notificationTriggerUsername",type:"checkbox",checked:this.state.usernameKey,onChange:i}),l.a.createElement(g.a,{id:"user.settings.notifications.sensitiveUsername",defaultMessage:'Your non-case sensitive username "{username}"',values:{username:t.username}})))));const n=e=>{this.updateChannelKey(e.target.checked)};s.push(l.a.createElement("div",{key:"userNotificationChannelOption"},l.a.createElement("div",{className:"checkbox"},l.a.createElement("label",null,l.a.createElement("input",{id:"notificationTriggerShouts",type:"checkbox",checked:this.state.channelKey,onChange:n}),l.a.createElement(g.a,{id:"user.settings.notifications.channelWide",defaultMessage:'Channel-wide mentions "@channel", "@all", "@here"'}))))),s.push(l.a.createElement("div",{key:"userNotificationCustomOption"},l.a.createElement("div",{className:"checkbox"},l.a.createElement("label",null,l.a.createElement("input",{id:"notificationTriggerCustom",ref:"customcheck",type:"checkbox",checked:this.state.customKeysChecked,onChange:this.updateCustomMentionKeys}),l.a.createElement(g.a,{id:"user.settings.notifications.sensitiveWords",defaultMessage:"Other non-case sensitive words, separated by commas:"}))),l.a.createElement("input",{id:"notificationTriggerCustomText",autoFocus:this.state.customKeysChecked,ref:"custommentions",className:"form-control mentions-input",type:"text",defaultValue:this.state.customKeys,onChange:this.onCustomChange,onFocus:b.ib,"aria-labelledby":"notificationTriggerCustom"})));const r=l.a.createElement("span",null,l.a.createElement(g.a,{id:"user.settings.notifications.mentionsInfo",defaultMessage:"Mentions trigger when someone sends a message that includes your username (@{username}) or any of the options selected above.",values:{username:t.username}}));a=l.a.createElement(v.a,{title:b.gb("user.settings.notifications.wordsTrigger","Words that trigger mentions"),inputs:s,submit:this.handleSubmit,saving:this.state.isSaving,server_error:e,updateSection:this.handleUpdateSection,extraInfo:r})}else{let e=["@"+t.username];this.state.firstNameKey&&e.push(t.first_name),this.state.usernameKey&&e.push(t.username),this.state.channelKey&&(e.push("@channel"),e.push("@all"),e.push("@here")),this.state.customKeys.length>0&&(e=e.concat(this.state.customKeys.split(",")));let s="";for(let t=0;t<e.length;t++)""!==e[t]&&(s+='"'+e[t]+'", ');s=s.length>0?s.substring(0,s.length-2):l.a.createElement(g.a,{id:"user.settings.notifications.noWords",defaultMessage:"No words configured"}),a=l.a.createElement(S.a,{title:b.gb("user.settings.notifications.wordsTrigger","Words that trigger mentions"),describe:s,section:"keys",updateSection:this.handleUpdateSection})}if("comments"===this.props.activeSection){const t=[!1,!1,!1];"never"===this.state.notifyCommentsLevel?t[2]=!0:"root"===this.state.notifyCommentsLevel?t[1]=!0:t[0]=!0;const a=[];a.push(l.a.createElement("fieldset",{key:"userNotificationLevelOption"},l.a.createElement("legend",{className:"form-legend hidden-label"},b.gb("user.settings.notifications.comments","Reply notifications")),l.a.createElement("div",{className:"radio"},l.a.createElement("label",null,l.a.createElement("input",{id:"notificationCommentsAny",type:"radio",name:"commentsNotificationLevel",checked:t[0],onChange:this.handleNotifyCommentsRadio.bind(this,"any")}),l.a.createElement(g.a,{id:"user.settings.notifications.commentsAny",defaultMessage:"Trigger notifications on messages in reply threads that I start or participate in"})),l.a.createElement("br",null)),l.a.createElement("div",{className:"radio"},l.a.createElement("label",null,l.a.createElement("input",{id:"notificationCommentsRoot",type:"radio",name:"commentsNotificationLevel",checked:t[1],onChange:this.handleNotifyCommentsRadio.bind(this,"root")}),l.a.createElement(g.a,{id:"user.settings.notifications.commentsRoot",defaultMessage:"Trigger notifications on messages in threads that I start"})),l.a.createElement("br",null)),l.a.createElement("div",{className:"radio"},l.a.createElement("label",null,l.a.createElement("input",{id:"notificationCommentsNever",type:"radio",name:"commentsNotificationLevel",checked:t[2],onChange:this.handleNotifyCommentsRadio.bind(this,"never")}),l.a.createElement(g.a,{id:"user.settings.notifications.commentsNever",defaultMessage:"Do not trigger notifications on messages in reply threads unless I'm mentioned"})))));const i=l.a.createElement("span",null,l.a.createElement(g.a,{id:"user.settings.notifications.commentsInfo",defaultMessage:"In addition to notifications for when you're mentioned, select if you would like to receive notifications on reply threads."}));s=l.a.createElement(v.a,{title:b.gb("user.settings.notifications.comments","Reply notifications"),extraInfo:i,inputs:a,submit:this.handleSubmit,saving:this.state.isSaving,server_error:e,updateSection:this.handleUpdateSection})}else{let e="";e="never"===this.state.notifyCommentsLevel?l.a.createElement(g.a,{id:"user.settings.notifications.commentsNever",defaultMessage:"Do not trigger notifications on messages in reply threads unless I'm mentioned"}):"root"===this.state.notifyCommentsLevel?l.a.createElement(g.a,{id:"user.settings.notifications.commentsRoot",defaultMessage:"Trigger notifications on messages in threads that I start"}):l.a.createElement(g.a,{id:"user.settings.notifications.commentsAny",defaultMessage:"Trigger notifications on messages in reply threads that I start or participate in"}),s=l.a.createElement(S.a,{title:b.gb("user.settings.notifications.comments","Reply notifications"),describe:e,section:"comments",updateSection:this.handleUpdateSection})}if(this.props.enableAutoResponder)if("auto-responder"===this.props.activeSection)i=l.a.createElement("div",null,l.a.createElement(dt,{autoResponderActive:this.state.autoResponderActive,autoResponderMessage:this.state.autoResponderMessage,updateSection:this.handleUpdateSection,setParentState:this.setStateValue,submit:this.handleSubmit,error:this.state.serverError,saving:this.state.isSaving}),l.a.createElement("div",{className:"divider-dark"}));else{const e=this.state.autoResponderActive?l.a.createElement(g.a,{id:"user.settings.notifications.autoResponderEnabled",defaultMessage:"Enabled"}):l.a.createElement(g.a,{id:"user.settings.notifications.autoResponderDisabled",defaultMessage:"Disabled"});i=l.a.createElement(S.a,{title:l.a.createElement(g.a,{id:"user.settings.notifications.autoResponder",defaultMessage:"Automatic Direct Message Replies"}),width:"medium",describe:e,section:"auto-responder",updateSection:this.handleUpdateSection})}const n=this.createPushNotificationSection();return l.a.createElement("div",{id:"notificationSettings"},l.a.createElement("div",{className:"modal-header"},l.a.createElement("button",{id:"closeButton",type:"button",className:"close","data-dismiss":"modal",onClick:this.props.closeModal},l.a.createElement("span",{"aria-hidden":"true"},"×")),l.a.createElement("h4",{className:"modal-title",ref:"title"},l.a.createElement("div",{className:"modal-back"},l.a.createElement(g.a,{id:"generic_icons.collapse",defaultMessage:"Collapse Icon"},e=>l.a.createElement("i",{className:"fa fa-angle-left",title:e,onClick:this.props.collapseModal}))),l.a.createElement(g.a,{id:"user.settings.notifications.title",defaultMessage:"Notification Settings"}))),l.a.createElement("div",{ref:"wrapper",className:"user-settings"},l.a.createElement("h3",{id:"notificationSettingsTitle",className:"tab-header"},l.a.createElement(g.a,{id:"user.settings.notifications.header",defaultMessage:"Notifications"})),l.a.createElement("div",{className:"divider-dark first"}),l.a.createElement(et,{activity:this.state.desktopActivity,sound:this.state.desktopSound,updateSection:this.handleUpdateSection,setParentState:this.setStateValue,submit:this.handleSubmit,saving:this.state.isSaving,cancel:this.handleCancel,error:this.state.serverError,active:"desktop"===this.props.activeSection}),l.a.createElement("div",{className:"divider-light"}),l.a.createElement(rt,{activeSection:this.props.activeSection,updateSection:this.handleUpdateSection,enableEmail:"true"===this.state.enableEmail,onSubmit:this.handleSubmit,onCancel:this.handleCancel,onChange:this.handleEmailRadio,saving:this.state.isSaving,serverError:this.state.serverError}),l.a.createElement("div",{className:"divider-light"}),n,l.a.createElement("div",{className:"divider-light"}),a,l.a.createElement("div",{className:"divider-light"}),s,l.a.createElement("div",{className:"divider-light"}),i,l.a.createElement("div",{className:"divider-dark"})))}}ut(pt,"propTypes",{user:r.a.object,updateSection:r.a.func,activeSection:r.a.string,closeModal:r.a.func.isRequired,collapseModal:r.a.func.isRequired,sendPushNotifications:r.a.bool,enableAutoResponder:r.a.bool,actions:r.a.shape({updateMe:r.a.func.isRequired}).isRequired}),ut(pt,"defaultProps",{user:null,activeSection:"",activeTab:""});var ht=Object(s.connect)((function(e){const t=Object(d.getConfig)(e);return{sendPushNotifications:"true"===t.SendPushNotifications,enableAutoResponder:"true"===t.ExperimentalEnableAutomaticReplies}}),(function(e){return{actions:Object(c.bindActionCreators)({updateMe:p.updateMe},e)}}))(pt),gt=a(1139),ft=a(54),bt=a(1104),Et=a(323),vt=a.n(Et),St=a(1352),yt=a(1349),_t=a(1119);function Mt(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class Nt extends l.a.PureComponent{constructor(e){super(e),Mt(this,"onShow",()=>{this.props.actions.getUserAudits(this.props.currentUserId,0,200)}),Mt(this,"onHide",()=>{this.setState({show:!1})}),this.state={show:!0}}componentDidMount(){this.onShow()}render(){let e;return e=0===this.props.userAudits.length?l.a.createElement(_t.a,null):l.a.createElement(yt.a,{audits:this.props.userAudits,showIp:!0,showSession:!0}),l.a.createElement(St.a,{dialogClassName:"a11y__modal modal--scroll",show:this.state.show,onHide:this.onHide,onExited:this.props.onHide,bsSize:"large",role:"dialog","aria-labelledby":"accessHistoryModalLabel"},l.a.createElement(St.a.Header,{closeButton:!0},l.a.createElement(St.a.Title,{componentClass:"h1",id:"accessHistoryModalLabel"},l.a.createElement(g.a,{id:"access_history.title",defaultMessage:"Access History"}))),l.a.createElement(St.a.Body,null,e),l.a.createElement(St.a.Footer,{className:"modal-footer--invisible"},l.a.createElement("button",{id:"closeModalButton",type:"button",className:"btn btn-link"},l.a.createElement(g.a,{id:"general_button.close",defaultMessage:"Close"}))))}}Mt(Nt,"propTypes",{onHide:r.a.func.isRequired,actions:r.a.shape({getUserAudits:r.a.func.isRequired}).isRequired,userAudits:r.a.arrayOf(r.a.any).isRequired,currentUserId:r.a.string.isRequired});var Ct=Object(s.connect)((function(e){return{currentUserId:Object(i.getCurrentUserId)(e),userAudits:Object(i.getUserAudits)(e)||[]}}),(function(e){return{actions:Object(c.bindActionCreators)({getUserAudits:p.getUserAudits},e)}}))(Nt),kt=a(175);function Ot({locale:e,currentSession:t,moreInfo:a,handleMoreInfo:s}){if(a){const a=new Date(t.create_at);return l.a.createElement("div",null,l.a.createElement("div",null,l.a.createElement(g.a,{id:"activity_log.firstTime",defaultMessage:"First time active: {date}, {time}",values:{date:l.a.createElement(Be.a,{value:a,day:"2-digit",month:Object(E.a)(e),year:"numeric"}),time:l.a.createElement(Be.b,{value:a,hour:"2-digit",minute:"2-digit"})}})),l.a.createElement("div",null,l.a.createElement(g.a,{id:"activity_log.os",defaultMessage:"OS: {os}",values:{os:t.props.os}})),l.a.createElement("div",null,l.a.createElement(g.a,{id:"activity_log.browser",defaultMessage:"Browser: {browser}",values:{browser:t.props.browser}})),l.a.createElement("div",null,l.a.createElement(g.a,{id:"activity_log.sessionId",defaultMessage:"Session ID: {id}",values:{id:t.id}})))}return l.a.createElement("a",{className:"theme",href:"#",onClick:s},l.a.createElement(g.a,{id:"activity_log.moreInfo",defaultMessage:"More info"}))}function At(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}Ot.propTypes={locale:r.a.string.isRequired,currentSession:r.a.object.isRequired,handleMoreInfo:r.a.func.isRequired,moreInfo:r.a.bool.isRequired};class Tt extends l.a.PureComponent{constructor(e){super(e),At(this,"handleMoreInfo",()=>{this.setState({moreInfo:!0})}),At(this,"submitRevoke",e=>{this.props.submitRevoke(this.props.currentSession.id,e)}),At(this,"isMobileSession",e=>e.device_id&&(e.device_id.includes("apple")||e.device_id.includes("android"))),At(this,"mobileSessionInfo",e=>{let t,a,s,i;return e.device_id.includes("apple")?(s="fa fa-apple",i=Object(b.gb)("device_icons.apple","Apple Icon"),t=Object(E.b)("activity_log_modal.iphoneNativeClassicApp"),a="iPhone Native Classic App",e.device_id.includes(M.General.PUSH_NOTIFY_APPLE_REACT_NATIVE)&&(t=Object(E.b)("activity_log_modal.iphoneNativeApp"),a="iPhone Native App")):e.device_id.includes("android")&&(s="fa fa-android",i=Object(b.gb)("device_icons.android","Android Icon"),t=Object(E.b)("activity_log_modal.androidNativeClassicApp"),a="Android Native Classic App",e.device_id.includes(M.General.PUSH_NOTIFY_ANDROID_REACT_NATIVE)&&(t=Object(E.b)("activity_log_modal.androidNativeApp"),a="Android Native App")),{devicePicture:s,deviceTitle:i,devicePlatform:l.a.createElement(g.a,{id:t,defaultMessage:a})}}),this.state={moreInfo:!1}}render(){const{index:e,locale:t,currentSession:a}=this.props,s=new Date(a.last_activity_at);let i=a.props.platform,n="",r="";if("Windows"===a.props.platform)n="fa fa-windows",r=Object(b.gb)("device_icons.windows","Windows Icon");else if(this.isMobileSession(a)){const e=this.mobileSessionInfo(a);n=e.devicePicture,i=e.devicePlatform}else"Macintosh"===a.props.platform||"iPhone"===a.props.platform?(n="fa fa-apple",r=Object(b.gb)("device_icons.apple","Apple Icon")):"Linux"===a.props.platform?a.props.os.indexOf("Android")>=0?(i=l.a.createElement(g.a,{id:"activity_log_modal.android",defaultMessage:"Android"}),n="fa fa-android",r=Object(b.gb)("device_icons.android","Android Icon")):(n="fa fa-linux",r=Object(b.gb)("device_icons.linux","Linux Icon")):-1!==a.props.os.indexOf("Linux")&&(n="fa fa-linux",r=Object(b.gb)("device_icons.linux","Linux Icon"));return-1!==a.props.browser.indexOf("Desktop App")&&(i=l.a.createElement(g.a,{id:"activity_log_modal.desktop",defaultMessage:"Native Desktop App"})),l.a.createElement("div",{key:"activityLogEntryKey"+e,className:"activity-log__table"},l.a.createElement("div",{className:"activity-log__report"},l.a.createElement("div",{className:"report__platform"},l.a.createElement("i",{className:n,title:r}),i),l.a.createElement("div",{className:"report__info"},l.a.createElement("div",null,l.a.createElement(g.a,{id:"activity_log.lastActivity",defaultMessage:"Last activity: {date}, {time}",values:{date:l.a.createElement(Be.a,{value:s,day:"2-digit",month:Object(E.a)(t),year:"numeric"}),time:l.a.createElement(Be.b,{value:s,hour:"2-digit",minute:"2-digit"})}})),l.a.createElement(Ot,{locale:t,currentSession:a,moreInfo:this.state.moreInfo,handleMoreInfo:this.handleMoreInfo}))),l.a.createElement("div",{className:"activity-log__action"},l.a.createElement("button",{onClick:this.submitRevoke,className:"btn btn-primary"},l.a.createElement(g.a,{id:"activity_log.logout",defaultMessage:"Log Out"}))))}}function wt(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}At(Tt,"propTypes",{index:r.a.number.isRequired,locale:r.a.string.isRequired,currentSession:r.a.object.isRequired,submitRevoke:r.a.func.isRequired});class It extends l.a.PureComponent{constructor(e){super(e),wt(this,"submitRevoke",(e,t)=>{t.preventDefault();var a=F()(t.target).closest(".modal-content");a.addClass("animation--highlight"),setTimeout(()=>{a.removeClass("animation--highlight")},1500),this.props.actions.revokeSession(this.props.currentUserId,e).then(()=>{this.props.actions.getSessions(this.props.currentUserId)})}),wt(this,"onShow",()=>{this.props.actions.getSessions(this.props.currentUserId)}),wt(this,"onHide",()=>{this.setState({show:!1})}),this.state={show:!0}}componentDidMount(){this.onShow()}render(){let e;if(this.props.sessions.loading)e=l.a.createElement(_t.a,null);else{const t=this.props.sessions.reduce((e,t,a)=>"UserAccessToken"===t.props.type?e:(e.push(l.a.createElement(Tt,{key:t.id,index:a,locale:this.props.locale,currentSession:t,submitRevoke:this.submitRevoke})),e),[]);e=l.a.createElement("form",{role:"form"},t)}return l.a.createElement(St.a,{dialogClassName:"a11y__modal modal--scroll",show:this.state.show,onHide:this.onHide,onExited:this.props.onHide,bsSize:"large",role:"dialog","aria-labelledby":"activityLogModalLabel"},l.a.createElement(St.a.Header,{closeButton:!0},l.a.createElement(St.a.Title,{componentClass:"h1",id:"activityLogModalLabel"},l.a.createElement(g.a,{id:"activity_log.activeSessions",defaultMessage:"Active Sessions"}))),l.a.createElement(St.a.Body,null,l.a.createElement("p",{className:"session-help-text"},l.a.createElement(g.a,{id:"activity_log.sessionsDescription",defaultMessage:"Sessions are created when you log in to a new browser on a device. Sessions let you use Mattermost without having to log in again for a time period specified by the System Admin. If you want to log out sooner, use the 'Logout' button below to end a session."})),e),l.a.createElement(St.a.Footer,{className:"modal-footer--invisible"},l.a.createElement("button",{id:"closeModalButton",type:"button",className:"btn btn-link"},l.a.createElement(g.a,{id:"general_button.close",defaultMessage:"Close"}))))}}wt(It,"propTypes",{currentUserId:r.a.string.isRequired,sessions:r.a.oneOfType([r.a.array,r.a.object]).isRequired,locale:r.a.string.isRequired,onHide:r.a.func.isRequired,actions:r.a.shape({getSessions:r.a.func.isRequired,revokeSession:r.a.func.isRequired}).isRequired});var Rt=Object(s.connect)((function(e){return{currentUserId:Object(i.getCurrentUserId)(e),sessions:Object(i.getUserSessions)(e),locale:Object(kt.a)(e)}}),(function(e){return{actions:Object(c.bindActionCreators)({getSessions:p.getSessions,revokeSession:p.revokeSession},e)}}))(It),Pt=a(1225),jt=a(1344),Dt=a(95);function Lt(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const Ut="mfa";class xt extends l.a.PureComponent{constructor(...e){super(...e),Lt(this,"state",{serverError:null}),Lt(this,"setupMfa",e=>{e.preventDefault(),Dt.a.push("/mfa/setup")}),Lt(this,"removeMfa",async e=>{e.preventDefault();const{error:t}=await this.props.actions.deactivateMfa();t?this.setState({serverError:t.message}):this.props.mfaEnforced?Dt.a.push("/mfa/setup"):(this.props.updateSection(""),this.setState({serverError:null}))}),Lt(this,"renderTitle",()=>l.a.createElement(g.a,{id:"user.settings.mfa.title",defaultMessage:"Multi-factor Authentication"})),Lt(this,"renderDescription",()=>this.props.mfaActive?l.a.createElement(g.a,{id:"user.settings.security.active",defaultMessage:"Active"}):l.a.createElement(g.a,{id:"user.settings.security.inactive",defaultMessage:"Inactive"})),Lt(this,"renderContent",()=>{let e;if(this.props.mfaActive){let t;t=this.props.mfaEnforced?l.a.createElement(g.a,{id:"user.settings.mfa.reset",defaultMessage:"Reset MFA on Account"}):l.a.createElement(g.a,{id:"user.settings.mfa.remove",defaultMessage:"Remove MFA from Account"}),e=l.a.createElement("a",{className:"btn btn-primary",href:"#",onClick:this.removeMfa},t)}else e=l.a.createElement("a",{className:"btn btn-primary",href:"#",onClick:this.setupMfa},l.a.createElement(g.a,{id:"user.settings.mfa.add",defaultMessage:"Add MFA to Account"}));return l.a.createElement("div",{className:"padding-top"},e,l.a.createElement("br",null))}),Lt(this,"renderHelpText",()=>this.props.mfaActive?this.props.mfaEnforced?l.a.createElement(g.a,{id:"user.settings.mfa.requiredHelp",defaultMessage:"Multi-factor authentication is required on this server. Resetting is only recommended when you need to switch code generation to a new mobile device. You will be required to set it up again immediately."}):l.a.createElement(g.a,{id:"user.settings.mfa.removeHelp",defaultMessage:"Removing multi-factor authentication means you will no longer require a phone-based passcode to sign-in to your account."}):l.a.createElement(g.a,{id:"user.settings.mfa.addHelp",defaultMessage:"Adding multi-factor authentication will make your account more secure by requiring a code from your mobile phone each time you sign in."}))}render(){const e=this.renderTitle();return this.props.mfaAvailable?this.props.active?l.a.createElement(v.a,{title:e,inputs:this.renderContent(),extraInfo:this.renderHelpText(),serverError:this.state.serverError,updateSection:this.props.updateSection,width:"medium"}):l.a.createElement(S.a,{title:e,describe:this.renderDescription(),section:Ut,updateSection:this.props.updateSection}):null}}Lt(xt,"propTypes",{active:r.a.bool.isRequired,mfaActive:r.a.bool.isRequired,mfaAvailable:r.a.bool.isRequired,mfaEnforced:r.a.bool.isRequired,updateSection:r.a.func.isRequired,actions:r.a.shape({deactivateMfa:r.a.func.isRequired})});var Ft=Object(s.connect)((function(e){const t=Object(d.getLicense)(e),a=Object(d.getConfig)(e),s=t&&"true"===t.IsLicensed&&"true"===t.MFA,n="true"===a.EnableMultifactorAuthentication,r=s&&"true"===a.EnforceMultifactorAuthentication,o=Object(i.getCurrentUser)(e);let l=!1,c=!1;return o&&(l=o.mfa_active,c=n&&(""===o.auth_service||o.auth_service===h.Q.LDAP_SERVICE)),{mfaActive:l,mfaAvailable:c,mfaEnforced:r}}),(function(e){return{actions:Object(c.bindActionCreators)({deactivateMfa:jt.b},e)}}))(xt),qt=a(1150),Bt=a(1163);function zt(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const Gt="tokens",Vt="creating",Ht="created",Yt="not_creating";class Wt extends l.a.Component{constructor(e){super(e),zt(this,"startCreatingToken",()=>{this.setState({tokenCreationState:Vt})}),zt(this,"stopCreatingToken",()=>{this.setState({tokenCreationState:Yt,saving:!1})}),zt(this,"handleCreateToken",async()=>{this.handleCancelConfirm();const e=this.refs.newtokendescription?this.refs.newtokendescription.value:"";if(""===e)return void this.setState({tokenError:b.gb("user.settings.tokens.nameRequired","Please enter a description.")});this.setState({tokenError:"",saving:!0}),this.props.setRequireConfirm(!0,this.confirmCopyToken);const t=this.props.user?this.props.user.id:"",{data:a,error:s}=await this.props.actions.createUserAccessToken(t,e);a&&this.state.tokenCreationState===Vt?this.setState({tokenCreationState:Ht,newToken:a,saving:!1}):s&&this.setState({serverError:s.message,saving:!1})}),zt(this,"confirmCopyToken",e=>{this.setState({showConfirmModal:!0,confirmTitle:l.a.createElement(g.a,{id:"user.settings.tokens.confirmCopyTitle",defaultMessage:"Have you copied your token?"}),confirmMessage:e=>l.a.createElement("div",null,l.a.createElement(ge.a,{id:"user.settings.tokens.confirmCopyMessage",defaultMessage:"Make sure you have copied and saved the access token below. You won't be able to see it again!"}),l.a.createElement("br",null),l.a.createElement("br",null),e.tokenCreationState===Vt?l.a.createElement("div",null,l.a.createElement("strong",{className:"word-break--all"},l.a.createElement(g.a,{id:"user.settings.tokens.token",defaultMessage:"Access Token: "})),l.a.createElement(g.a,{id:"user.settings.tokens.tokenLoading",defaultMessage:"Loading..."})):l.a.createElement("strong",{className:"word-break--all"},l.a.createElement(g.a,{id:"user.settings.tokens.token",defaultMessage:"Access Token: "}),e.newToken.token)),confirmButton:l.a.createElement(g.a,{id:"user.settings.tokens.confirmCopyButton",defaultMessage:"Yes, I have copied the token"}),confirmComplete:()=>{this.handleCancelConfirm(),e()},confirmHideCancel:!0})}),zt(this,"handleCancelConfirm",()=>{this.setState({showConfirmModal:!1,confirmTitle:null,confirmMessage:null,confirmButton:null,confirmComplete:null,confirmHideCancel:!1})}),zt(this,"confirmCreateToken",()=>{ft.isSystemAdmin(this.props.user.roles)?this.setState({showConfirmModal:!0,confirmTitle:l.a.createElement(g.a,{id:"user.settings.tokens.confirmCreateTitle",defaultMessage:"Create System Admin Personal Access Token"}),confirmMessage:()=>l.a.createElement("div",{className:"alert alert-danger"},l.a.createElement(ge.a,{id:"user.settings.tokens.confirmCreateMessage",defaultMessage:"You are generating a personal access token with System Admin permissions. Are you sure want to create this token?"})),confirmButton:l.a.createElement(g.a,{id:"user.settings.tokens.confirmCreateButton",defaultMessage:"Yes, Create"}),confirmComplete:()=>{this.handleCreateToken(),Object(Ve.d)("settings","system_admin_create_user_access_token")}}):this.handleCreateToken()}),zt(this,"saveTokenKeyPress",e=>{b.W(e,h.Q.KeyCodes.ENTER)&&this.confirmCreateToken()}),zt(this,"confirmRevokeToken",e=>{const t=this.props.userAccessTokens[e];this.setState({showConfirmModal:!0,confirmTitle:l.a.createElement(g.a,{id:"user.settings.tokens.confirmDeleteTitle",defaultMessage:"Delete Token?"}),confirmMessage:()=>l.a.createElement("div",{className:"alert alert-danger"},l.a.createElement(Oe.b,{id:"user.settings.tokens.confirmDeleteMessage",defaultMessage:"Any integrations using this token will no longer be able to access the Mattermost API. You cannot undo this action. \\n \\nAre you sure want to delete the **{description}** token?",values:{description:t.description}})),confirmButton:l.a.createElement(g.a,{id:"user.settings.tokens.confirmDeleteButton",defaultMessage:"Yes, Delete"}),confirmComplete:()=>{this.revokeToken(e),Object(Ve.d)("settings","revoke_user_access_token")}})}),zt(this,"revokeToken",async e=>{const{error:t}=await this.props.actions.revokeUserAccessToken(e);t&&this.setState({serverError:t.message}),this.handleCancelConfirm()}),zt(this,"activateToken",async e=>{const{error:t}=await this.props.actions.enableUserAccessToken(e);t?this.setState({serverError:t.message}):Object(Ve.d)("settings","activate_user_access_token")}),zt(this,"deactivateToken",async e=>{const{error:t}=await this.props.actions.disableUserAccessToken(e);t?this.setState({serverError:t.message}):Object(Ve.d)("settings","deactivate_user_access_token")}),this.state={showConfirmModal:!1,newToken:null,tokenCreationState:Yt,tokenError:"",serverError:null,saving:!1}}componentDidMount(){this.props.actions.clearUserAccessTokens();const e=this.props.user?this.props.user.id:"";this.props.actions.getUserAccessTokensForUser(e,0,200)}UNSAFE_componentWillReceiveProps(e){!e.active&&this.props.active&&this.setState({showConfirmModal:!1,newToken:null,tokenCreationState:Yt,tokenError:"",serverError:null,saving:!1})}render(){let e="";if(!this.props.active){const e=b.gb("user.settings.tokens.clickToEdit","Click 'Edit' to manage your personal access tokens");return l.a.createElement(S.a,{title:b.gb("user.settings.tokens.title","Personal Access Tokens"),describe:e,section:Gt,updateSection:this.props.updateSection})}const t=[];let a,s,i;Object.values(this.props.userAccessTokens).forEach(e=>{if(this.state.newToken&&this.state.newToken.id===e.id)return;let a,s;e.is_active?a=l.a.createElement("a",{name:e.id+"_deactivate",href:"#",onClick:t=>{t.preventDefault(),this.deactivateToken(e.id)}},l.a.createElement(g.a,{id:"user.settings.tokens.deactivate",defaultMessage:"Disable"})):(s=l.a.createElement("span",{className:"has-error setting-box__inline-error"},l.a.createElement(g.a,{id:"user.settings.tokens.deactivatedWarning",defaultMessage:"(Disabled)"})),a=l.a.createElement("a",{name:e.id+"_activate",href:"#",onClick:t=>{t.preventDefault(),this.activateToken(e.id)}},l.a.createElement(g.a,{id:"user.settings.tokens.activate",defaultMessage:"Enable"}))),t.push(l.a.createElement("div",{key:e.id,className:"setting-box__item"},l.a.createElement("div",{className:"whitespace--nowrap overflow--ellipsis"},l.a.createElement(g.a,{id:"user.settings.tokens.tokenDesc",defaultMessage:"Token Description: "}),e.description,s),l.a.createElement("div",{className:"setting-box__token-id whitespace--nowrap overflow--ellipsis"},l.a.createElement(g.a,{id:"user.settings.tokens.tokenId",defaultMessage:"Token ID: "}),e.id),l.a.createElement("div",null,a," - ",l.a.createElement("a",{name:e.id+"_delete",href:"#",onClick:t=>{t.preventDefault(),this.confirmRevokeToken(e.id)}},l.a.createElement(g.a,{id:"user.settings.tokens.delete",defaultMessage:"Delete"}))),l.a.createElement("hr",{className:"margin-bottom margin-top x2"})))}),0===t.length&&(a=l.a.createElement(g.a,{key:"notokens",id:"user.settings.tokens.userAccessTokensNone",defaultMessage:"No personal access tokens."})),s=Object(V.n)()?l.a.createElement("span",null,l.a.createElement(Oe.b,{id:"user.settings.tokens.description_mobile",defaultMessage:"[Personal access tokens](!https://about.mattermost.com/default-user-access-tokens) function similarly to session tokens and can be used by integrations to [authenticate against the REST API](!https://about.mattermost.com/default-api-authentication). Create new tokens on your desktop."})):l.a.createElement("span",null,l.a.createElement(Oe.b,{id:"user.settings.tokens.description",defaultMessage:"[Personal access tokens](!https://about.mattermost.com/default-user-access-tokens) function similarly to session tokens and can be used by integrations to [authenticate against the REST API](!https://about.mattermost.com/default-api-authentication)."})),this.state.tokenCreationState===Vt?i=l.a.createElement("div",{className:"padding-left x2"},l.a.createElement("div",{className:"row"},l.a.createElement("label",{className:"col-sm-auto control-label padding-right x2"},l.a.createElement(g.a,{id:"user.settings.tokens.name",defaultMessage:"Token Description: "})),l.a.createElement("div",{className:"col-sm-5"},l.a.createElement("input",{autoFocus:!0,ref:"newtokendescription",className:"form-control",type:"text",maxLength:64,onKeyPress:this.saveTokenKeyPress}))),l.a.createElement("div",null,l.a.createElement("div",{className:"padding-top x2"},l.a.createElement(g.a,{id:"user.settings.tokens.nameHelp",defaultMessage:"Enter a description for your token to remember what it does."})),l.a.createElement("div",null,l.a.createElement("label",{id:"clientError",className:"has-error margin-top margin-bottom"},this.state.tokenError)),l.a.createElement(qt.a,{btnClass:"btn-primary",savingMessage:l.a.createElement(g.a,{id:"user.settings.tokens.save",defaultMessage:"Save"}),saving:this.state.saving,onClick:this.confirmCreateToken}),l.a.createElement("button",{className:"btn btn-link",onClick:this.stopCreatingToken},l.a.createElement(g.a,{id:"user.settings.tokens.cancel",defaultMessage:"Cancel"})))):this.state.tokenCreationState===Ht?(0===t.length&&(e=" hidden"),i=l.a.createElement("div",{className:"alert alert-warning"},l.a.createElement(Bt.a,{additionalClassName:"margin-right"}),l.a.createElement(g.a,{id:"user.settings.tokens.copy",defaultMessage:"Please copy the access token below. You won't be able to see it again!"}),l.a.createElement("br",null),l.a.createElement("br",null),l.a.createElement("div",{className:"whitespace--nowrap overflow--ellipsis"},l.a.createElement(g.a,{id:"user.settings.tokens.name",defaultMessage:"Token Description: "}),this.state.newToken.description),l.a.createElement("div",{className:"whitespace--nowrap overflow--ellipsis"},l.a.createElement(g.a,{id:"user.settings.tokens.id",defaultMessage:"Token ID: "}),this.state.newToken.id),l.a.createElement("strong",{className:"word-break--all"},l.a.createElement(g.a,{id:"user.settings.tokens.token",defaultMessage:"Access Token: "}),this.state.newToken.token))):i=l.a.createElement("a",{className:"btn btn-primary",href:"#",onClick:this.startCreatingToken},l.a.createElement(g.a,{id:"user.settings.tokens.create",defaultMessage:"Create Token"}));const n=[];return n.push(l.a.createElement("div",{key:"tokensSetting",className:"padding-top"},l.a.createElement("div",{key:"tokenList"},l.a.createElement("div",{className:"alert alert-transparent"+e},t,a),i))),l.a.createElement("div",null,l.a.createElement(v.a,{title:b.gb("user.settings.tokens.title","Personal Access Tokens"),inputs:n,extraInfo:s,infoPosition:"top",serverError:this.state.serverError,updateSection:this.props.updateSection,width:"full",saving:this.state.saving,cancelButtonText:l.a.createElement(g.a,{id:"user.settings.security.close",defaultMessage:"Close"})}),l.a.createElement(y.a,{title:this.state.confirmTitle,message:this.state.confirmMessage?this.state.confirmMessage(this.state):null,confirmButtonText:this.state.confirmButton,show:this.state.showConfirmModal,onConfirm:this.state.confirmComplete||(()=>null),onCancel:this.handleCancelConfirm,hideCancel:this.state.confirmHideCancel}))}}zt(Wt,"propTypes",{user:r.a.object,active:r.a.bool,updateSection:r.a.func,userAccessTokens:r.a.object,setRequireConfirm:r.a.func.isRequired,actions:r.a.shape({getUserAccessTokensForUser:r.a.func.isRequired,createUserAccessToken:r.a.func.isRequired,revokeUserAccessToken:r.a.func.isRequired,enableUserAccessToken:r.a.func.isRequired,disableUserAccessToken:r.a.func.isRequired,clearUserAccessTokens:r.a.func.isRequired}).isRequired}),zt(Wt,"defaultProps",{user:{},active:!1});var Kt=Object(s.connect)((function(e){return{userAccessTokens:e.entities.users.myUserAccessTokens}}),(function(e){return{actions:Object(c.bindActionCreators)({getUserAccessTokensForUser:p.getUserAccessTokensForUser,createUserAccessToken:p.createUserAccessToken,revokeUserAccessToken:p.revokeUserAccessToken,enableUserAccessToken:p.enableUserAccessToken,disableUserAccessToken:p.disableUserAccessToken,clearUserAccessTokens:p.clearUserAccessTokens},e)}}))(Wt);function Qt(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const Jt="mfa",Xt="password",Zt="signin",$t="apps",ea="tokens";class ta extends l.a.PureComponent{constructor(e){super(e),Qt(this,"loadAuthorizedOAuthApps",async()=>{const{data:e,error:t}=await this.props.actions.getAuthorizedOAuthApps();e?this.setState({authorizedApps:e,serverError:null}):t&&this.setState({serverError:t.message})}),Qt(this,"submitPassword",async()=>{const e=this.props.user,t=this.state.currentPassword,a=this.state.newPassword,s=this.state.confirmPassword;if(""===t)return void this.setState({passwordError:b.gb("user.settings.security.currentPasswordError","Please enter your current password."),serverError:""});const{valid:i,error:n}=b.db(a,this.props.passwordConfig);if(!i&&n)return void this.setState({passwordError:n,serverError:""});if(a!==s){const e=Object.assign(this.getDefaultState(),{passwordError:b.gb("user.settings.security.passwordMatchError","The new passwords you entered do not match."),serverError:""});return void this.setState(e)}this.setState({savingPassword:!0});const{data:r,error:o}=await this.props.actions.updateUserPassword(e.id,t,a);if(r)this.props.updateSection(""),this.props.actions.getMe(),this.setState(this.getDefaultState());else if(o){const e=this.getDefaultState();o.message?e.serverError=o.message:e.serverError=o,e.passwordError="",this.setState(e)}}),Qt(this,"updateCurrentPassword",e=>{this.setState({currentPassword:e.target.value})}),Qt(this,"updateNewPassword",e=>{this.setState({newPassword:e.target.value})}),Qt(this,"updateConfirmPassword",e=>{this.setState({confirmPassword:e.target.value})}),Qt(this,"deauthorizeApp",async e=>{e.preventDefault();const t=e.currentTarget.getAttribute("data-app"),{data:a,error:s}=await this.props.actions.deauthorizeOAuthApp(t);if(a){const e=this.state.authorizedApps.filter(e=>e.id!==t);this.setState({authorizedApps:e,serverError:null})}else s&&this.setState({serverError:s.message})}),Qt(this,"handleUpdateSection",e=>{if(e)this.props.updateSection(e);else{switch(this.props.activeSection){case Jt:case Zt:case ea:case $t:this.setState({serverError:null});break;case Xt:this.setState({currentPassword:"",newPassword:"",confirmPassword:"",serverError:null,passwordError:null})}this.props.updateSection("")}}),Qt(this,"createPasswordSection",()=>{if(this.props.activeSection===Xt){const e=[];let t;return""===this.props.user.auth_service?(t=this.submitPassword,e.push(l.a.createElement("div",{key:"currentPasswordUpdateForm",className:"form-group"},l.a.createElement("label",{className:"col-sm-5 control-label"},l.a.createElement(g.a,{id:"user.settings.security.currentPassword",defaultMessage:"Current Password"})),l.a.createElement("div",{className:"col-sm-7"},l.a.createElement("input",{id:"currentPassword",autoFocus:!0,className:"form-control",type:"password",onChange:this.updateCurrentPassword,value:this.state.currentPassword,"aria-label":b.gb("user.settings.security.currentPassword","Current Password")})))),e.push(l.a.createElement("div",{key:"newPasswordUpdateForm",className:"form-group"},l.a.createElement("label",{className:"col-sm-5 control-label"},l.a.createElement(g.a,{id:"user.settings.security.newPassword",defaultMessage:"New Password"})),l.a.createElement("div",{className:"col-sm-7"},l.a.createElement("input",{id:"newPassword",className:"form-control",type:"password",onChange:this.updateNewPassword,value:this.state.newPassword,"aria-label":b.gb("user.settings.security.newPassword","New Password")})))),e.push(l.a.createElement("div",{key:"retypeNewPasswordUpdateForm",className:"form-group"},l.a.createElement("label",{className:"col-sm-5 control-label"},l.a.createElement(g.a,{id:"user.settings.security.retypePassword",defaultMessage:"Retype New Password"})),l.a.createElement("div",{className:"col-sm-7"},l.a.createElement("input",{id:"confirmPassword",className:"form-control",type:"password",onChange:this.updateConfirmPassword,value:this.state.confirmPassword,"aria-label":b.gb("user.settings.security.retypePassword","Retype New Password")}))))):this.props.user.auth_service===h.Q.GITLAB_SERVICE?e.push(l.a.createElement("div",{key:"oauthEmailInfo",className:"form-group"},l.a.createElement("div",{className:"padding-bottom x2"},l.a.createElement(g.a,{id:"user.settings.security.passwordGitlabCantUpdate",defaultMessage:"Login occurs through GitLab. Password cannot be updated."})))):this.props.user.auth_service===h.Q.LDAP_SERVICE?e.push(l.a.createElement("div",{key:"oauthEmailInfo",className:"form-group"},l.a.createElement("div",{className:"padding-bottom x2"},l.a.createElement(g.a,{id:"user.settings.security.passwordLdapCantUpdate",defaultMessage:"Login occurs through AD/LDAP. Password cannot be updated."})))):this.props.user.auth_service===h.Q.SAML_SERVICE?e.push(l.a.createElement("div",{key:"oauthEmailInfo",className:"form-group"},l.a.createElement("div",{className:"padding-bottom x2"},l.a.createElement(g.a,{id:"user.settings.security.passwordSamlCantUpdate",defaultMessage:"This field is handled through your login provider. If you want to change it, you need to do so through your login provider."})))):this.props.user.auth_service===h.Q.GOOGLE_SERVICE?e.push(l.a.createElement("div",{key:"oauthEmailInfo",className:"form-group"},l.a.createElement("div",{className:"padding-bottom x2"},l.a.createElement(g.a,{id:"user.settings.security.passwordGoogleCantUpdate",defaultMessage:"Login occurs through Google Apps. Password cannot be updated."})))):this.props.user.auth_service===h.Q.OFFICE365_SERVICE&&e.push(l.a.createElement("div",{key:"oauthEmailInfo",className:"form-group"},l.a.createElement("div",{className:"padding-bottom x2"},l.a.createElement(g.a,{id:"user.settings.security.passwordOffice365CantUpdate",defaultMessage:"Login occurs through Office 365. Password cannot be updated."})))),l.a.createElement(v.a,{title:l.a.createElement(g.a,{id:"user.settings.security.password",defaultMessage:"Password"}),inputs:e,submit:t,saving:this.state.savingPassword,serverError:this.state.serverError,clientError:this.state.passwordError,updateSection:this.handleUpdateSection})}let e;if(""===this.props.user.auth_service){const t=new Date(this.props.user.last_password_update);e=l.a.createElement(g.a,{id:"user.settings.security.lastUpdated",defaultMessage:"Last updated {date} at {time}",values:{date:l.a.createElement(Be.a,{value:t,day:"2-digit",month:"short",year:"numeric"}),time:l.a.createElement(Be.b,{value:t,hour12:!this.props.militaryTime,hour:"2-digit",minute:"2-digit"})}})}else this.props.user.auth_service===h.Q.GITLAB_SERVICE?e=l.a.createElement(g.a,{id:"user.settings.security.loginGitlab",defaultMessage:"Login done through GitLab"}):this.props.user.auth_service===h.Q.LDAP_SERVICE?e=l.a.createElement(g.a,{id:"user.settings.security.loginLdap",defaultMessage:"Login done through AD/LDAP"}):this.props.user.auth_service===h.Q.SAML_SERVICE?e=l.a.createElement(g.a,{id:"user.settings.security.loginSaml",defaultMessage:"Login done through SAML"}):this.props.user.auth_service===h.Q.GOOGLE_SERVICE?e=l.a.createElement(g.a,{id:"user.settings.security.loginGoogle",defaultMessage:"Login done through Google Apps"}):this.props.user.auth_service===h.Q.OFFICE365_SERVICE&&(e=l.a.createElement(g.a,{id:"user.settings.security.loginOffice365",defaultMessage:"Login done through Office 365"}));return l.a.createElement(S.a,{title:l.a.createElement(g.a,{id:"user.settings.security.password",defaultMessage:"Password"}),describe:e,section:Xt,updateSection:this.handleUpdateSection,focused:!0})}),Qt(this,"createSignInSection",()=>{const e=this.props.user;if(this.props.activeSection===Zt){let t,a,s,i,n,r;if(""===e.auth_service)this.props.enableSignUpWithGitLab&&(a=l.a.createElement("div",{className:"padding-bottom x2"},l.a.createElement(bt.a,{className:"btn btn-primary",to:"/claim/email_to_oauth?email="+encodeURIComponent(e.email)+"&old_type="+e.auth_service+"&new_type="+h.Q.GITLAB_SERVICE},l.a.createElement(g.a,{id:"user.settings.security.switchGitlab",defaultMessage:"Switch to Using GitLab SSO"})),l.a.createElement("br",null))),this.props.enableSignUpWithGoogle&&(s=l.a.createElement("div",{className:"padding-bottom x2"},l.a.createElement(bt.a,{className:"btn btn-primary",to:"/claim/email_to_oauth?email="+encodeURIComponent(e.email)+"&old_type="+e.auth_service+"&new_type="+h.Q.GOOGLE_SERVICE},l.a.createElement(g.a,{id:"user.settings.security.switchGoogle",defaultMessage:"Switch to Using Google SSO"})),l.a.createElement("br",null))),this.props.enableSignUpWithOffice365&&(i=l.a.createElement("div",{className:"padding-bottom x2"},l.a.createElement(bt.a,{className:"btn btn-primary",to:"/claim/email_to_oauth?email="+encodeURIComponent(e.email)+"&old_type="+e.auth_service+"&new_type="+h.Q.OFFICE365_SERVICE},l.a.createElement(g.a,{id:"user.settings.security.switchOffice365",defaultMessage:"Switch to Using Office 365 SSO"})),l.a.createElement("br",null))),this.props.enableLdap&&(n=l.a.createElement("div",{className:"padding-bottom x2"},l.a.createElement(bt.a,{className:"btn btn-primary",to:"/claim/email_to_ldap?email="+encodeURIComponent(e.email)},l.a.createElement(g.a,{id:"user.settings.security.switchLdap",defaultMessage:"Switch to Using AD/LDAP"})),l.a.createElement("br",null))),this.props.enableSaml&&(r=l.a.createElement("div",{className:"padding-bottom x2"},l.a.createElement(bt.a,{className:"btn btn-primary",to:"/claim/email_to_oauth?email="+encodeURIComponent(e.email)+"&old_type="+e.auth_service+"&new_type="+h.Q.SAML_SERVICE},l.a.createElement(g.a,{id:"user.settings.security.switchSaml",defaultMessage:"Switch to Using SAML SSO"})),l.a.createElement("br",null)));else if(this.props.enableSignUpWithEmail){let a;a=e.auth_service===h.Q.LDAP_SERVICE?"/claim/ldap_to_email?email="+encodeURIComponent(e.email):"/claim/oauth_to_email?email="+encodeURIComponent(e.email)+"&old_type="+e.auth_service,t=l.a.createElement("div",{className:"padding-bottom x2"},l.a.createElement(bt.a,{className:"btn btn-primary",to:a},l.a.createElement(g.a,{id:"user.settings.security.switchEmail",defaultMessage:"Switch to Using Email and Password"})),l.a.createElement("br",null))}const o=[];o.push(l.a.createElement("div",{key:"userSignInOption"},t,a,s,i,n,r));const c=l.a.createElement("span",null,l.a.createElement(g.a,{id:"user.settings.security.oneSignin",defaultMessage:"You may only have one sign-in method at a time. Switching sign-in method will send an email notifying you if the change was successful."}));return l.a.createElement(v.a,{title:b.gb("user.settings.security.method","Sign-in Method"),extraInfo:c,inputs:o,serverError:this.state.serverError,updateSection:this.handleUpdateSection})}let t=l.a.createElement(g.a,{id:"user.settings.security.emailPwd",defaultMessage:"Email and Password"});return this.props.user.auth_service===h.Q.GITLAB_SERVICE?t=l.a.createElement(g.a,{id:"user.settings.security.gitlab",defaultMessage:"GitLab"}):this.props.user.auth_service===h.Q.GOOGLE_SERVICE?t=l.a.createElement(g.a,{id:"user.settings.security.google",defaultMessage:"Google"}):this.props.user.auth_service===h.Q.OFFICE365_SERVICE?t=l.a.createElement(g.a,{id:"user.settings.security.office365",defaultMessage:"Office 365"}):this.props.user.auth_service===h.Q.LDAP_SERVICE?t=l.a.createElement(g.a,{id:"user.settings.security.ldap",defaultMessage:"AD/LDAP"}):this.props.user.auth_service===h.Q.SAML_SERVICE&&(t=l.a.createElement(g.a,{id:"user.settings.security.saml",defaultMessage:"SAML"})),l.a.createElement(S.a,{title:b.gb("user.settings.security.method","Sign-in Method"),describe:t,section:Zt,updateSection:this.handleUpdateSection})}),Qt(this,"createOAuthAppsSection",()=>{if(this.props.activeSection===$t){let e;e=this.state.authorizedApps&&this.state.authorizedApps.length>0?this.state.authorizedApps.map(e=>{const t=l.a.createElement("a",{href:e.homepage,target:"_blank",rel:"noopener noreferrer"},e.homepage);return l.a.createElement("div",{key:e.id,className:"padding-bottom x2 authorized-app"},l.a.createElement("div",{className:"col-sm-10"},l.a.createElement("div",{className:"authorized-app__name"},e.name,l.a.createElement("span",{className:"authorized-app__url"}," -"," ",t)),l.a.createElement("div",{className:"authorized-app__description"},e.description),l.a.createElement("div",{className:"authorized-app__deauthorize"},l.a.createElement("a",{href:"#","data-app":e.id,onClick:this.deauthorizeApp},l.a.createElement(g.a,{id:"user.settings.security.deauthorize",defaultMessage:"Deauthorize"})))),l.a.createElement("div",{className:"col-sm-2 pull-right"},l.a.createElement("img",{alt:e.name,src:e.icon_url||vt.a})),l.a.createElement("br",null))}):l.a.createElement("div",{className:"padding-bottom x2 authorized-app"},l.a.createElement("div",{className:"setting-list__hint"},l.a.createElement(g.a,{id:"user.settings.security.noApps",defaultMessage:"No OAuth 2.0 Applications are authorized."})));const t=[];let a,s;Array.isArray(e)&&(a="authorized-apps__wrapper",s=l.a.createElement("div",{className:"authorized-apps__help"},l.a.createElement(g.a,{id:"user.settings.security.oauthAppsHelp",defaultMessage:"Applications act on your behalf to access your data based on the permissions you grant them."}))),t.push(l.a.createElement("div",{className:a,key:"authorizedApps"},e));const i=l.a.createElement("div",null,l.a.createElement(g.a,{id:"user.settings.security.oauthApps",defaultMessage:"OAuth 2.0 Applications"}),s);return l.a.createElement(v.a,{title:i,inputs:t,serverError:this.state.serverError,updateSection:this.handleUpdateSection,width:"full",cancelButtonText:l.a.createElement(g.a,{id:"user.settings.security.close",defaultMessage:"Close"})})}return l.a.createElement(S.a,{title:b.gb("user.settings.security.oauthApps","OAuth 2.0 Applications"),describe:l.a.createElement(g.a,{id:"user.settings.security.oauthAppsDescription",defaultMessage:"Click 'Edit' to manage your OAuth 2.0 Applications"}),section:$t,updateSection:this.handleUpdateSection})}),this.state=this.getDefaultState()}getDefaultState(){return{currentPassword:"",newPassword:"",confirmPassword:"",passwordError:"",serverError:"",tokenError:"",authService:this.props.user.auth_service,savingPassword:!1}}componentDidMount(){this.props.enableOAuthServiceProvider&&this.loadAuthorizedOAuthApps()}render(){const e=this.props.user,t=this.createPasswordSection();let a,s,i,n=0;return n=this.props.enableSignUpWithGitLab?n+1:n,n=this.props.enableSignUpWithGoogle?n+1:n,n=this.props.enableSignUpWithOffice365?n+1:n,n=this.props.enableLdap?n+1:n,n=this.props.enableSaml?n+1:n,(this.props.enableSignUpWithEmail||""===e.auth_service)&&n>0&&this.props.experimentalEnableAuthenticationTransfer&&(a=this.createSignInSection()),this.props.enableOAuthServiceProvider&&(s=this.createOAuthAppsSection()),this.props.canUseAccessTokens&&(i=l.a.createElement(Kt,{user:this.props.user,active:this.props.activeSection===ea,updateSection:this.handleUpdateSection,setRequireConfirm:this.props.setRequireConfirm})),l.a.createElement("div",null,l.a.createElement("div",{className:"modal-header"},l.a.createElement(g.a,{id:"user.settings.security.close",defaultMessage:"Close"},e=>l.a.createElement("button",{type:"button",className:"close","data-dismiss":"modal","aria-label":e,onClick:this.props.closeModal},l.a.createElement("span",{"aria-hidden":"true"},"×"))),l.a.createElement("h4",{className:"modal-title",ref:"title"},l.a.createElement("div",{className:"modal-back"},l.a.createElement(g.a,{id:"generic_icons.collapse",defaultMessage:"Collapse Icon"},e=>l.a.createElement("i",{className:"fa fa-angle-left",title:e,onClick:this.props.collapseModal}))),l.a.createElement(g.a,{id:"user.settings.security.title",defaultMessage:"Security Settings"}))),l.a.createElement("div",{className:"user-settings"},l.a.createElement("h3",{className:"tab-header"},l.a.createElement(g.a,{id:"user.settings.security.title",defaultMessage:"Security Settings"})),l.a.createElement("div",{className:"divider-dark first"}),t,l.a.createElement("div",{className:"divider-light"}),l.a.createElement(Ft,{active:this.props.activeSection===Jt,updateSection:this.handleUpdateSection}),l.a.createElement("div",{className:"divider-light"}),s,l.a.createElement("div",{className:"divider-light"}),i,l.a.createElement("div",{className:"divider-light"}),a,l.a.createElement("div",{className:"divider-dark"}),l.a.createElement("br",null),l.a.createElement(Pt.a,{className:"security-links color--link",dialogType:Ct},l.a.createElement(g.a,{id:"user.settings.security.viewHistory.icon",defaultMessage:"Access History Icon"},e=>l.a.createElement("i",{className:"fa fa-clock-o",title:e})),l.a.createElement(g.a,{id:"user.settings.security.viewHistory",defaultMessage:"View Access History"})),l.a.createElement(Pt.a,{className:"security-links color--link margin-top",dialogType:Rt},l.a.createElement(g.a,{id:"user.settings.security.logoutActiveSessions.icon",defaultMessage:"Active Sessions Icon"},e=>l.a.createElement("i",{className:"fa fa-clock-o",title:e})),l.a.createElement(g.a,{id:"user.settings.security.logoutActiveSessions",defaultMessage:"View and Log Out of Active Sessions"}))))}}Qt(ta,"propTypes",{user:r.a.object,activeSection:r.a.string,updateSection:r.a.func,closeModal:r.a.func.isRequired,collapseModal:r.a.func.isRequired,setRequireConfirm:r.a.func.isRequired,canUseAccessTokens:r.a.bool,enableOAuthServiceProvider:r.a.bool,enableSignUpWithEmail:r.a.bool,enableSignUpWithGitLab:r.a.bool,enableSignUpWithGoogle:r.a.bool,enableLdap:r.a.bool,enableSaml:r.a.bool,enableSignUpWithOffice365:r.a.bool,experimentalEnableAuthenticationTransfer:r.a.bool,passwordConfig:r.a.object,militaryTime:r.a.bool,actions:r.a.shape({getMe:r.a.func.isRequired,updateUserPassword:r.a.func.isRequired,getAuthorizedOAuthApps:r.a.func.isRequired,deauthorizeOAuthApp:r.a.func.isRequired}).isRequired}),Qt(ta,"defaultProps",{user:{},activeSection:""});var aa=Object(s.connect)((function(e,t){const a=Object(d.getConfig)(e),s="true"===a.EnableUserAccessTokens,i=ft.hasUserAccessTokenRole(t.user.roles)||ft.isSystemAdmin(t.user.roles);return{canUseAccessTokens:s&&i,enableOAuthServiceProvider:"true"===a.EnableOAuthServiceProvider,enableSignUpWithEmail:"true"===a.EnableSignUpWithEmail,enableSignUpWithGitLab:"true"===a.EnableSignUpWithGitLab,enableSignUpWithGoogle:"true"===a.EnableSignUpWithGoogle,enableLdap:"true"===a.EnableLdap,enableSaml:"true"===a.EnableSaml,enableSignUpWithOffice365:"true"===a.EnableSignUpWithOffice365,experimentalEnableAuthenticationTransfer:"true"===a.ExperimentalEnableAuthenticationTransfer,passwordConfig:Object(b.D)(a),militaryTime:Object(u.getBool)(e,h.B.CATEGORY_DISPLAY_SETTINGS,h.B.USE_MILITARY_TIME,!1)}}),(function(e){return{actions:Object(c.bindActionCreators)({getMe:p.getMe,updateUserPassword:p.updateUserPassword,getAuthorizedOAuthApps:gt.getAuthorizedOAuthApps,deauthorizeOAuthApp:gt.deauthorizeOAuthApp},e)}}))(ta);function sa(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class ia extends l.a.Component{constructor(e){super(e),sa(this,"getStateFromProps",()=>{const{closeUnusedDirectMessages:e,channelSwitcherOption:t,sidebarPreference:{grouping:a,sorting:s},unreadsAtTop:i,favoriteAtTop:n}=this.props;return{settings:{close_unused_direct_messages:e,channel_switcher_section:t,grouping:a,unreadsAtTop:i,favoriteAtTop:n,sorting:s},isSaving:!1}}),sa(this,"trackSettingChangeIfNecessary",e=>{this.state.settings[e]!==this.props.sidebarPreference[e]&&Object(Ve.d)("settings","user_settings_update",{field:"sidebar."+e,value:this.state.settings[e]})}),sa(this,"updateSetting",(e,t)=>{const a=this.state.settings;a[e]=t,this.setState(a)}),sa(this,"handleSubmit",e=>{const{actions:t,user:a}=this.props,s=[];if("channel_grouping"===e||"channel_sorting"===e){const e={grouping:this.state.settings.grouping,unreads_at_top:this.state.settings.unreadsAtTop,favorite_at_top:this.state.settings.favoriteAtTop,sorting:this.state.settings.sorting};s.push({user_id:a.id,category:h.Q.Preferences.CATEGORY_SIDEBAR_SETTINGS,name:"",value:JSON.stringify(e)}),this.trackSettingChangeIfNecessary("grouping"),this.trackSettingChangeIfNecessary("sorting"),this.trackSettingChangeIfNecessary("unreadsAtTop"),this.trackSettingChangeIfNecessary("favoriteAtTop")}else s.push({user_id:a.id,category:h.Q.Preferences.CATEGORY_SIDEBAR_SETTINGS,name:e,value:this.state.settings[e]}),Object(Ve.d)("settings","user_settings_update",{field:"sidebar."+e,value:this.state.settings[e]});this.setState({isSaving:!0}),t.savePreferences(a.id,s).then(()=>{this.updateSection("")})}),sa(this,"getPreviousSection",e=>{const{showChannelOrganization:t}=this.props;switch(e){case"autoCloseDM":return"channelSwitcher";case"groupChannels":return"dummySectionName";case"channelSwitcher":return t?"groupChannels":"dummySectionName";default:return null}}),sa(this,"updateSection",e=>{this.setState(this.getStateFromProps()),this.setState({isSaving:!1}),this.props.updateSection(e)}),sa(this,"renderAutoCloseDMLabel",e=>"after_seven_days"===e?l.a.createElement(g.a,{id:"user.settings.sidebar.after_seven_days",defaultMessage:"After 7 days with no new messages"}):l.a.createElement(g.a,{id:"user.settings.sidebar.never",defaultMessage:"Never"})),sa(this,"renderAutoCloseDMSection",()=>{let e;return e="autoCloseDM"===this.props.activeSection?l.a.createElement(v.a,{title:l.a.createElement(g.a,{id:"user.settings.sidebar.autoCloseDMTitle",defaultMessage:"Automatically Close Direct Messages"}),inputs:[l.a.createElement("fieldset",{key:"autoCloseDMSetting"},l.a.createElement("div",{className:"radio"},l.a.createElement("label",null,l.a.createElement("input",{id:"autoCloseDMAfterSevenDays",type:"radio",name:"autoCloseDM",checked:"after_seven_days"===this.state.settings.close_unused_direct_messages,onChange:this.updateSetting.bind(this,"close_unused_direct_messages","after_seven_days")}),l.a.createElement(g.a,{id:"user.settings.sidebar.after_seven_days",defaultMessage:"After 7 days with no new messages"}))),l.a.createElement("div",{className:"radio"},l.a.createElement("label",null,l.a.createElement("input",{id:"autoCloseDMNever",type:"radio",name:"autoCloseDM",checked:"never"===this.state.settings.close_unused_direct_messages,onChange:this.updateSetting.bind(this,"close_unused_direct_messages","never")}),l.a.createElement(g.a,{id:"user.settings.sidebar.never",defaultMessage:"Never"}))),l.a.createElement("div",{className:"margin-top x3"},l.a.createElement(g.a,{id:"user.settings.sidebar.autoCloseDMDesc",defaultMessage:"Direct Message conversations can be reopened with the “+” button in the sidebar or using the Channel Switcher (CTRL+K)."})))],setting:"close_unused_direct_messages",submit:this.handleSubmit,saving:this.state.isSaving,server_error:this.state.serverError,updateSection:this.updateSection}):l.a.createElement(S.a,{title:l.a.createElement(g.a,{id:"user.settings.sidebar.autoCloseDMTitle",defaultMessage:"Automatically Close Direct Messages"}),describe:this.renderAutoCloseDMLabel(this.state.settings.close_unused_direct_messages),section:"autoCloseDM",updateSection:this.updateSection}),l.a.createElement(l.a.Fragment,null,e,l.a.createElement("div",{className:"divider-dark"}))}),sa(this,"renderOrganizationLabel",()=>{const{sidebarPreference:{sorting:e,grouping:t},unreadsAtTop:a,favoriteAtTop:s}=this.props,i=[];let n,r;"by_type"===t?i.push(l.a.createElement(g.a,{key:"by_type",id:"user.settings.sidebar.groupByTypeShort",defaultMessage:"Group by channel type"})):i.push(l.a.createElement(g.a,{key:"none",id:"user.settings.sidebar.groupByNoneShort",defaultMessage:"No grouping"})),"alpha"===e?(n=Object(E.b)("user.settings.sidebar.sortAlphaShort"),r="sorted alphabetically"):(n=Object(E.b)("user.settings.sidebar.sortRecentShort"),r="sorted by recency"),i.push(l.a.createElement("span",{key:"comma"},", ")),i.push(l.a.createElement(g.a,{key:"sorting",id:n,defaultMessage:r}));let o=null,c=null;return"true"===a&&"false"===s?(o=Object(E.b)("user.settings.sidebar.unreadsShort"),c="Unreads grouped separately"):"false"===a&&"true"===s?(o=Object(E.b)("user.settings.sidebar.favoritesShort"),c="Favorites grouped separately"):"true"===a&&"true"===s&&(o=Object(E.b)("user.settings.sidebar.unreadsFavoritesShort"),c="Unreads and favorites grouped separately"),o&&(i.push(l.a.createElement("br",{key:"break"})),i.push(l.a.createElement(g.a,{key:"atTop",id:o,defaultMessage:c}))),i}),sa(this,"renderChannelSwitcherLabel",e=>"true"===e?l.a.createElement(g.a,{id:"user.settings.sidebar.on",defaultMessage:"On"}):l.a.createElement(g.a,{id:"user.settings.sidebar.off",defaultMessage:"Off"})),sa(this,"renderChannelOrganizationSection",()=>{const{grouping:e,sorting:t}=this.state.settings;let a;if("groupChannels"===this.props.activeSection){const s=[];s.push(l.a.createElement("fieldset",{key:"groupingSectionSetting"},l.a.createElement("legend",{className:"form-legend"},l.a.createElement(g.a,{id:"user.settings.sidebar.groupChannelsTitle",defaultMessage:"Channel grouping"})),l.a.createElement("div",{className:"radio"},l.a.createElement("label",null,l.a.createElement("input",{id:"byTypeOption",type:"radio",name:"groupChannels",checked:"by_type"===e,onChange:this.updateSetting.bind(this,"grouping","by_type")}),l.a.createElement(g.a,{id:"user.settings.sidebar.groupByType",defaultMessage:"Channels grouped by type"}))),l.a.createElement("div",{className:"radio"},l.a.createElement("label",null,l.a.createElement("input",{id:"noneOption",type:"radio",name:"groupChannels",checked:"none"===e,onChange:this.updateSetting.bind(this,"grouping","none")}),l.a.createElement(g.a,{id:"user.settings.sidebar.groupByNone",defaultMessage:"Combine all channel types"}))),l.a.createElement("div",{className:"margin-top x3"},l.a.createElement(g.a,{id:"user.settings.sidebar.groupDesc",defaultMessage:"Group channels by type, or combine all types into a list."})))),s.push(l.a.createElement("hr",{key:"sortingDivider"})),s.push(l.a.createElement("fieldset",{key:"sortingOptions"},l.a.createElement("legend",{className:"form-legend"},l.a.createElement(g.a,{id:"user.settings.sidebar.sortChannelsTitle",defaultMessage:"Channel sorting"})),l.a.createElement("div",{className:"radio"},l.a.createElement("label",null,l.a.createElement("input",{id:"recentSectionEnabled",type:"radio",name:"sortChannels",checked:"recent"===t,onChange:this.updateSetting.bind(this,"sorting","recent")}),l.a.createElement(g.a,{id:"user.settings.sidebar.sortRecent",defaultMessage:"Recency"}))),l.a.createElement("div",{className:"radio"},l.a.createElement("label",null,l.a.createElement("input",{id:"alphaSectionEnabled",type:"radio",name:"sortChannels",checked:"alpha"===t,onChange:this.updateSetting.bind(this,"sorting","alpha")}),l.a.createElement(g.a,{id:"user.settings.sidebar.sortAlpha",defaultMessage:"Alphabetically"}))),l.a.createElement("div",{className:"margin-top x3"},l.a.createElement(g.a,{id:"user.settings.sidebar.sortDesc",defaultMessage:"Sort channels alphabetically, or by most recent post."})))),s.push(l.a.createElement("hr",{key:"divider"})),s.push(l.a.createElement("fieldset",{key:"unreadOption"},l.a.createElement("div",{className:"checkbox"},l.a.createElement("label",null,l.a.createElement("input",{id:"unreadAtTopOption",type:"checkbox",checked:"true"===this.state.settings.unreadsAtTop,onChange:e=>this.updateSetting("unreadsAtTop",e.target.checked.toString())}),l.a.createElement(g.a,{id:"user.settings.sidebar.unreads",defaultMessage:"Unreads grouped separately"}))),l.a.createElement("div",{className:"margin-top x3"},l.a.createElement(g.a,{id:"user.settings.sidebar.unreadsDesc",defaultMessage:"Group unread channels separately until read."})))),s.push(l.a.createElement("hr",{key:"groupingDivider"})),s.push(l.a.createElement("fieldset",{key:"favoriteOption"},l.a.createElement("div",{className:"checkbox"},l.a.createElement("label",null,l.a.createElement("input",{id:"favoriteAtTopOption",type:"checkbox",checked:"true"===this.state.settings.favoriteAtTop,onChange:e=>this.updateSetting("favoriteAtTop",e.target.checked.toString())}),l.a.createElement(g.a,{id:"user.settings.sidebar.favorites",defaultMessage:"Favorites grouped separately"}))),l.a.createElement("div",null,l.a.createElement("br",null),l.a.createElement(g.a,{id:"user.settings.sidebar.favoritesDesc",defaultMessage:"Channels marked as favorites will be grouped separately."})))),a=l.a.createElement(v.a,{title:l.a.createElement(g.a,{id:"user.settings.sidebar.groupAndSortChannelsTitle",defaultMessage:"Channel grouping and sorting"}),inputs:s,setting:"channel_grouping",submit:this.handleSubmit,saving:this.state.isSaving,server_error:this.state.serverError,updateSection:this.updateSection})}else a=l.a.createElement(S.a,{title:l.a.createElement(g.a,{id:"user.settings.sidebar.groupAndSortChannelsTitle",defaultMessage:"Channel grouping and sorting"}),describe:this.renderOrganizationLabel(),section:"groupChannels",updateSection:this.updateSection});return l.a.createElement(l.a.Fragment,null,a,l.a.createElement("div",{className:"divider-light"}))}),sa(this,"renderChannelSwitcherSection",()=>{let e=Object(E.b)("user.settings.sidebar.channelSwitcherSectionDesc.windows"),t="The channel switcher is shown at the bottom of the sidebar and is used to jump between channels quickly. It can also be accessed using CTRL + K.";Object(b.X)()&&(e=Object(E.b)("user.settings.sidebar.channelSwitcherSectionDesc.mac"),t="The channel switcher is shown at the bottom of the sidebar and is used to jump between channels quickly. It can also be accessed using CMD + K.");const a=l.a.createElement(g.a,{id:e,defaultMessage:t});return"channelSwitcher"===this.props.activeSection?l.a.createElement(v.a,{title:l.a.createElement(g.a,{id:"user.settings.sidebar.channelSwitcherSectionTitle",defaultMessage:"Channel Switcher"}),inputs:[l.a.createElement("fieldset",{key:"channelSwitcherSectionSetting"},l.a.createElement("legend",{className:"form-legend hidden-label"},l.a.createElement(g.a,{id:"user.settings.sidebar.channelSwitcherSectionTitle",defaultMessage:"Channel Switcher"})),l.a.createElement("div",{id:"channelSwitcherRadioOn",className:"radio"},l.a.createElement("label",null,l.a.createElement("input",{id:"channelSwitcherSectionEnabled",type:"radio",name:"channelSwitcher",checked:"true"===this.state.settings.channel_switcher_section,onChange:this.updateSetting.bind(this,"channel_switcher_section","true")}),l.a.createElement(g.a,{id:"user.settings.sidebar.on",defaultMessage:"On"})),l.a.createElement("br",null)),l.a.createElement("div",{id:"channelSwitcherRadioOff",className:"radio"},l.a.createElement("label",null,l.a.createElement("input",{id:"channelSwitcherSectionOff",type:"radio",name:"channelSwitcher",checked:"false"===this.state.settings.channel_switcher_section,onChange:this.updateSetting.bind(this,"channel_switcher_section","false")}),l.a.createElement(g.a,{id:"user.settings.sidebar.off",defaultMessage:"Off"})),l.a.createElement("br",null)),l.a.createElement("div",{id:"channelSwitcherHelpText"},l.a.createElement("br",null),a))],setting:"channel_switcher_section",submit:this.handleSubmit,saving:this.state.isSaving,server_error:this.state.serverError,updateSection:this.updateSection}):l.a.createElement(S.a,{title:l.a.createElement(g.a,{id:"user.settings.sidebar.channelSwitcherSectionTitle",defaultMessage:"Channel Switcher"}),describe:this.renderChannelSwitcherLabel(this.props.channelSwitcherOption),section:"channelSwitcher",updateSection:this.updateSection})}),this.state=this.getStateFromProps()}render(){const{showUnusedOption:e,showChannelOrganization:t}=this.props,a=t?this.renderChannelOrganizationSection():null,s=e?this.renderAutoCloseDMSection():null,i=this.renderChannelSwitcherSection();return l.a.createElement("div",null,l.a.createElement("div",{className:"modal-header"},l.a.createElement("button",{id:"closeButton",type:"button",className:"close","data-dismiss":"modal","aria-label":"Close",onClick:this.props.closeModal},l.a.createElement("span",{"aria-hidden":"true"},"×")),l.a.createElement("h4",{className:"modal-title",ref:"title"},l.a.createElement("div",{className:"modal-back"},l.a.createElement(H.a,{className:"fa fa-angle-left",title:{id:Object(E.b)("generic_icons.collapse"),defaultMessage:"Collapse Icon"}})),l.a.createElement(g.a,{id:"user.settings.sidebar.title",defaultMessage:"Sidebar Settings"}))),l.a.createElement("div",{id:"sidebarTitle",className:"user-settings"},l.a.createElement("h3",{className:"tab-header"},l.a.createElement(g.a,{id:"user.settings.sidebar.title",defaultMessage:"Sidebar Settings"})),l.a.createElement("div",{className:"divider-dark first"}),a,i,e?l.a.createElement("div",{className:"divider-light"}):l.a.createElement("div",{className:"divider-dark"}),s))}}sa(ia,"propTypes",{actions:r.a.shape({savePreferences:r.a.func.isRequired}).isRequired,user:r.a.object,closeUnusedDirectMessages:r.a.string.isRequired,showUnusedOption:r.a.bool.isRequired,showChannelOrganization:r.a.bool.isRequired,channelSwitcherOption:r.a.string.isRequired,sidebarPreference:r.a.shape({grouping:r.a.string.isRequired,sorting:r.a.string.isRequired}).isRequired,unreadsAtTop:r.a.string.isRequired,favoriteAtTop:r.a.string.isRequired,updateSection:r.a.func,activeSection:r.a.string,closeModal:r.a.func.isRequired,collapseModal:r.a.func.isRequired});var na,ra,oa,la=Object(s.connect)((function(e){const t=Object(d.getConfig)(e),a=Object(u.get)(e,M.Preferences.CATEGORY_SIDEBAR_SETTINGS,"close_unused_direct_messages","after_seven_days"),s=Object(u.get)(e,M.Preferences.CATEGORY_SIDEBAR_SETTINGS,"channel_switcher_section","true"),n=Object(u.getSidebarPreferences)(e);return{closeUnusedDirectMessages:a,sidebarPreference:n,unreadsAtTop:n.unreads_at_top,favoriteAtTop:n.favorite_at_top,channelSwitcherOption:s,showChannelOrganization:"true"===t.ExperimentalChannelOrganization,showUnusedOption:"true"===t.CloseUnusedDirectMessages,user:Object(i.getCurrentUser)(e)}}),(function(e){return{actions:Object(c.bindActionCreators)({savePreferences:m.savePreferences},e)}}))(ia);class ca extends l.a.PureComponent{render(){return"general"===this.props.activeTab?l.a.createElement("div",null,l.a.createElement(Ze,{user:this.props.user,activeSection:this.props.activeSection,updateSection:this.props.updateSection,updateTab:this.props.updateTab,closeModal:this.props.closeModal,collapseModal:this.props.collapseModal})):"security"===this.props.activeTab?l.a.createElement("div",null,l.a.createElement(aa,{user:this.props.user,activeSection:this.props.activeSection,updateSection:this.props.updateSection,closeModal:this.props.closeModal,collapseModal:this.props.collapseModal,setRequireConfirm:this.props.setRequireConfirm})):"notifications"===this.props.activeTab?l.a.createElement("div",null,l.a.createElement(ht,{user:this.props.user,activeSection:this.props.activeSection,updateSection:this.props.updateSection,closeModal:this.props.closeModal,collapseModal:this.props.collapseModal})):"display"===this.props.activeTab?l.a.createElement("div",null,l.a.createElement(Fe,{user:this.props.user,activeSection:this.props.activeSection,updateSection:this.props.updateSection,closeModal:this.props.closeModal,collapseModal:this.props.collapseModal,setEnforceFocus:this.props.setEnforceFocus,setRequireConfirm:this.props.setRequireConfirm})):"sidebar"===this.props.activeTab?l.a.createElement("div",null,l.a.createElement(la,{activeSection:this.props.activeSection,updateSection:this.props.updateSection,closeModal:this.props.closeModal,collapseModal:this.props.collapseModal})):"advanced"===this.props.activeTab?l.a.createElement("div",null,l.a.createElement(w,{activeSection:this.props.activeSection,updateSection:this.props.updateSection,closeModal:this.props.closeModal,collapseModal:this.props.collapseModal})):l.a.createElement("div",null)}}na=ca,ra="propTypes",oa={user:r.a.object.isRequired,activeTab:r.a.string,activeSection:r.a.string,updateSection:r.a.func,updateTab:r.a.func,closeModal:r.a.func.isRequired,collapseModal:r.a.func.isRequired,setEnforceFocus:r.a.func.isRequired,setRequireConfirm:r.a.func.isRequired},ra in na?Object.defineProperty(na,ra,{value:oa,enumerable:!0,configurable:!0,writable:!0}):na[ra]=oa;t.default=Object(s.connect)((function(e){return{user:Object(i.getCurrentUser)(e)}}))(ca)}}]); //# sourceMappingURL=17.c08ea1b20a5df649cb46.js.map