PageSourceSearch

https://himberger.de/static/6445.be43bc3703530cb26452.js

js himberger.de collected 2026-09-27 06:02:03 UTC 186,837 bytes, 2 lines download raw bytes

1"use strict";(self.webpackChunkmattermost_webapp=self.webpackChunkmattermost_webapp||[]).push([[6445,9163],{83469(e,t,s){s.d(t,{OA:()=>l,_D:()=>n,n:()=>r});var a=s(17085),i=s(7430);function n(e){return(t,s)=>{const n=(0,i.WR)(s());return t(a.BX(n,!0,e))}}function r(){return(e,t)=>{const s=(0,i.WR)(t());return e(a.BX(s,!1))}}function l(){return(e,t)=>{const s=(0,i.WR)(t());return e(a.OA(s))}}},61295(e,t,s){s.d(t,{A:()=>r});var a=s(36418),i=s(47011),n=s(11038);class r extends a.PureComponent{constructor(e){super(e),this.colorPicker=a.createRef(),this.colorInput=a.createRef(),this.state={focused:!1,isOpened:!1,value:e.value}}static getDerivedStateFromProps(e,t){return t.focused||e.value===t.value?null:{value:e.value}}componentDidUpdate(e,t){const{isOpened:s}=t,{isOpened:a}=this.state;a!==s&&(a?document.addEventListener("click",this.checkClick,{capture:!0}):document.removeEventListener("click",this.checkClick))}checkClick=e=>{this.colorPicker.current&&this.colorPicker.current.contains(e.target)||this.setState({isOpened:!1})};togglePicker=()=>{!this.state.isOpened&&this.colorInput.current&&this.colorInput.current.focus(),this.setState({isOpened:!this.state.isOpened})};handleColorChange=e=>{this.setState({focused:!1}),this.props.onChange(e.hex)};onChange=e=>{const t=e.target.value,s=(0,n.A)(t),a="#"+s.toHex();s.isValid()&&this.props.onChange(a),this.setState({value:t})};onFocus=e=>{this.setState({focused:!0}),e.target&&e.target.setSelectionRange(1,e.target.value.length)};onBlur=()=>{const e=this.state.value,t=(0,n.A)(e),s="#"+t.toHex();t.isValid()?(this.props.onChange(s),this.setState({value:s})):this.setState({value:this.props.value}),this.setState({focused:!1})};onKeyDown=e=>{"Enter"!==e.key&&" "!==e.key||this.togglePicker()};render(){const{id:e}=this.props,{isOpened:t,value:s}=this.state;return a.createElement("div",{className:"color-input input-group"},a.createElement("input",{id:`${e}-inputColorValue`,ref:this.colorInput,className:"form-control",type:"text",value:s,onChange:this.onChange,onBlur:this.onBlur,onFocus:this.onFocus,onKeyDown:this.onKeyDown,maxLength:7,disabled:this.props.isDisabled,"data-testid":"color-inputColorValue"}),!this.props.isDisabled&&a.createElement("span",{id:`${e}-squareColorIcon`,className:"input-group-addon color-pad",onClick:this.togglePicker},a.createElement("i",{id:`${e}-squareColorIconValue`,className:"color-icon",style:{backgroundColor:s}})),t&&a.createElement("div",{ref:this.colorPicker,className:"color-popover",id:`${e}-ChromePickerModal`},a.createElement(i.xk,{color:s,onChange:this.handleColorChange,disableAlpha:!0})))}}},61544(e,t,s){s.r(t),s.d(t,{default:()=>u});var a=s(37270),i=s(7380),n=(s(43617),s(81975),s(93991),s(94985),s(80569),s(71633)),r=s.n(n),l=s(36418),o=s(14778),c=s(81444),d=s(19513);class m extends l.PureComponent{constructor(e){super(e),this.buttonRefs=new Map}getVisibleTabs(){return[...this.props.tabs.filter((e=>!1!==e.display)),...this.props.pluginTabs?.filter((e=>!1!==e.display))||[]]}handleClick=(e,t)=>{t.preventDefault(),this.props.updateTab(e.name),t.target.closest(".settings-modal")?.classList.add("display--content")};handleKeyDown=(e,t)=>{if(!(0,d.e)(t,c.Ay.KeyCodes.UP)&&!(0,d.e)(t,c.Ay.KeyCodes.DOWN))return;t.preventDefault();const s=this.getVisibleTabs();if(0===s.length)return;const a=s.findIndex((t=>t.name===e.name));if(-1===a)return;let i;i=(0,d.e)(t,c.Ay.KeyCodes.UP)?a>0?a-1:s.length-1:a<s.length-1?a+1:0;const n=s[i];this.props.updateTab(n.name);const r=this.buttonRefs.get(n.name);r&&r.focus()};renderTab(e){const t=`${e.name}_li`,s=this.props.activeTab===e.name;let a;return a="string"==typeof e.icon?l.createElement("i",{className:e.icon,title:e.iconTitle}):l.createElement("img",{src:e.icon.url,alt:e.iconTitle,className:"icon"}),l.createElement(l.Fragment,{key:t},e.newGroup&&l.createElement("hr",null),l.createElement("button",{"data-testid":`${e.name}-tab-button`,ref:t=>{t?this.buttonRefs.set(e.name,t):this.buttonRefs.delete(e.name)},id:`${e.name}Button`,className:r()("cursor--pointer style--none nav-pills__tab",{active:s}),onClick:this.handleClick.bind(null,e),onKeyDown:this.handleKeyDown.bind(null,e),"aria-label":e.uiName.toLowerCase(),role:"tab","aria-selected":s,tabIndex:s||this.props.isMobileView?0:-1,"aria-controls":`${e.name}Settings`},a,e.uiName))}render(){const e=this.props.tabs.filter((e=>!1!==e.display)).map((e=>this.renderTab(e)));let t;if(this.props.pluginTabs?.length){const e=this.props.pluginTabs.filter((e=>!1!==e.display));e.length&&(t=l.createElement(l.Fragment,null,l.createElement("hr",null),l.createElement("div",{role:"group","aria-labelledby":"userSettingsModal.pluginPreferences.header"},l.createElement("div",{key:"plugin preferences heading",role:"heading",className:"header","aria-level":3,id:"userSettingsModal_pluginPreferences_header"},l.createElement(o.FormattedMessage,{id:"userSettingsModal.pluginPreferences.header",defaultMessage:"PLUGIN PREFERENCES"})),e.map((e=>
1this.renderTab(e))))))}return l.createElement("div",{id:"tabList",className:"nav nav-pills nav-stacked",role:"tablist","aria-orientation":"vertical"},l.createElement("div",{role:"group"},e),t)}}const u=(0,a.connect)((function(e){return{isMobileView:(0,i.w3)(e)}}))(m)},15330(e,t,s){s.r(t),s.d(t,{default:()=>Jt}),s(43617),s(93991);var a=s(36418),i=s(40140),n=s(14778),r=s(14696),l=s(17461),o=s(61544),c=s(37270),d=s(32446),m=s(35631),u=s(17085),p=s(26614),h=s(77440),g=s(7430),E=s(81444),f=(s(15724),s(99930),s(91767)),v=s(48729),S=s(98362),M=s(4715),y=s(85873),b=s(26366),A=s(94112);class _ extends a.PureComponent{constructor(e){super(e),this.state={joinLeaveState:e.joinLeave},this.minRef=a.createRef()}focusEditButton(){this.minRef.current?.focus()}componentDidUpdate(e){e.active&&!this.props.active&&this.props.areAllSectionsInactive&&this.focusEditButton()}handleOnChange=e=>{const t=e.currentTarget.value;this.setState({joinLeaveState:t}),(0,y.b6)(e.currentTarget)};handleUpdateSection=e=>{e||this.setState({joinLeaveState:this.props.joinLeave}),this.props.onUpdateSection(e)};handleSubmit=()=>{const{actions:e,userId:t,onUpdateSection:s}=this.props,a={category:b.pm.CATEGORY_ADVANCED_SETTINGS,user_id:t,name:b.pm.ADVANCED_FILTER_JOIN_LEAVE,value:this.state.joinLeaveState};e.savePreferences(t,[a]),s()};render(){const{joinLeaveState:e}=this.state;return this.props.active?a.createElement(S.A,{title:a.createElement(n.FormattedMessage,{id:"user.settings.advance.joinLeaveTitle",defaultMessage:"Enable Join/Leave Messages"}),inputs:[a.createElement("fieldset",{key:"joinLeaveSetting"},a.createElement("legend",{className:"form-legend hidden-label"},a.createElement(n.FormattedMessage,{id:"user.settings.advance.joinLeaveTitle",defaultMessage:"Enable Join/Leave Messages"})),a.createElement("div",{className:"radio"},a.createElement("label",null,a.createElement("input",{id:"joinLeaveOn",type:"radio",value:"true",name:E.bo.JOIN_LEAVE,checked:"true"===e,onChange:this.handleOnChange}),a.createElement(n.FormattedMessage,{id:"user.settings.advance.on",defaultMessage:"On"})),a.createElement("br",null)),a.createElement("div",{className:"radio"},a.createElement("label",null,a.createElement("input",{id:"joinLeaveOff",type:"radio",value:"false",name:E.bo.JOIN_LEAVE,checked:"false"===e,onChange:this.handleOnChange}),a.createElement(n.FormattedMessage,{id:"user.settings.advance.off",defaultMessage:"Off"})),a.createElement("br",null)),a.createElement("div",{className:"mt-5"},a.createElement(n.FormattedMessage,{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:E.bo.JOIN_LEAVE,submit:this.handleSubmit,saving:this.state.isSaving,serverError:this.state.serverError,updateSection:this.handleUpdateSection}):a.createElement(A.A,{title:a.createElement(n.FormattedMessage,{id:"user.settings.advance.joinLeaveTitle",defaultMessage:"Enable Join/Leave Messages"}),describe:this.props.renderOnOffLabel(e),section:E.bo.JOIN_LEAVE,updateSection:this.handleUpdateSection,ref:this.minRef})}}const T=(0,c.connect)((function(e,t){const s="true"===(0,p.zj)(e).EnableJoinLeaveMessageByDefault,a=t.adminMode&&t.userPreferences?t.userPreferences:void 0;return{userId:t.adminMode?t.userId:(0,g.WR)(e),joinLeave:(0,h.Jt)(e,b.pm.CATEGORY_ADVANCED_SETTINGS,b.pm.ADVANCED_FILTER_JOIN_LEAVE,s.toString(),a)}}),(function(e){return{actions:(0,d.zH)({savePreferences:m.SF},e)}}))(_),C=a.forwardRef(((e,t)=>{let s,i=0;return e.disableClientPlugins&&(i+=1),e.disableTypingMessages&&(i+=1),s=0===i?a.createElement(n.FormattedMessage,{id:"user.settings.advance.performance.noneEnabled",defaultMessage:"No settings enabled"}):a.createElement(n.FormattedMessage,{id:"user.settings.advance.performance.settingsEnabled",defaultMessage:"{count, number} {count, plural, one {setting} other {settings}} enabled",values:{count:i}}),a.createElement(A.A,{title:a.createElement(n.FormattedMessage,{id:"user.settings.advance.performance.title",defaultMessage:"Performance Debugging"}),describe:s,section:E.bo.PERFORMANCE_DEBUGGING,updateSection:e.onUpdateSection,ref:t})}));function N(e){const[t,s]=(0,a.useState)(e.disableClientPlugins),[i,r]=(0,a.useState)(e.disableTypingMessages),l=(0,a.useCallback)((()=>
1{if(!e.userId)return;const s=[];t!==e.disableClientPlugins&&s.push({user_id:e.userId,category:b.pm.CATEGORY_PERFORMANCE_DEBUGGING,name:b.pm.NAME_DISABLE_CLIENT_PLUGINS,value:t.toString()}),i!==e.disableTypingMessages&&s.push({user_id:e.userId,category:b.pm.CATEGORY_PERFORMANCE_DEBUGGING,name:b.pm.NAME_DISABLE_TYPING_MESSAGES,value:i.toString()}),0!==s.length&&e.userId&&e.savePreferences(e.userId,s),e.onUpdateSection("")}),[e.userId,e.onUpdateSection,e.savePreferences,t,i]);return a.createElement(S.A,{title:a.createElement(n.FormattedMessage,{id:"user.settings.advance.performance.title",defaultMessage:"Performance Debugging"}),inputs:[a.createElement("fieldset",{key:"settings"},a.createElement("div",{className:"checkbox"},a.createElement("label",null,a.createElement("input",{type:"checkbox",checked:t,onChange:e=>{s(e.target.checked)}}),a.createElement(n.FormattedMessage,{id:"user.settings.advance.performance.disableClientPlugins",defaultMessage:"Disable Client-side Plugins"}))),a.createElement("div",{className:"checkbox"},a.createElement("label",null,a.createElement("input",{type:"checkbox",checked:i,onChange:e=>{r(e.target.checked)}}),a.createElement(n.FormattedMessage,{id:"user.settings.advance.performance.disableTypingMessages",defaultMessage:'Disable "User is typing..." messages'}))),a.createElement("div",{className:"mt-5"},a.createElement(n.FormattedMessage,{id:"user.settings.advance.performance.info1",defaultMessage:"You may enable these settings temporarily to help isolate performance issues while debugging. We don't recommend leaving these settings enabled for an extended period of time as they can negatively impact your user experience."}),a.createElement("br",null),a.createElement("br",null),a.createElement(n.FormattedMessage,{id:"user.settings.advance.performance.info2",defaultMessage:"You may need to refresh the page before these settings take effect."})))],submit:l,updateSection:e.onUpdateSection})}const k={savePreferences:m.SF},w=(0,c.connect)((function(e,t){const s=t.adminMode&&t.userId?(0,h.oE)(e,t.userId):void 0;return{userId:t.adminMode?t.userId:(0,g.WR)(e),disableClientPlugins:(0,h.Jz)(e,b.pm.CATEGORY_PERFORMANCE_DEBUGGING,b.pm.NAME_DISABLE_CLIENT_PLUGINS,void 0,s),disableTypingMessages:(0,h.Jz)(e,b.pm.CATEGORY_PERFORMANCE_DEBUGGING,b.pm.NAME_DISABLE_TYPING_MESSAGES,void 0,s),performanceDebuggingEnabled:(0,p.iy)(e)}}),k)((function(e){const t=(0,a.useRef)(null),s=(0,a.useRef)(!1);if((0,a.useEffect)((()=>{s.current&&!e.active&&e.areAllSectionsInactive&&t.current?.focus()})),(0,a.useEffect)((()=>{s.current=e.active}),[e.active]),!e.performanceDebuggingEnabled)return null;let i;return i=e.active?a.createElement(N,e):a.createElement(C,Object.assign({},e,{ref:t})),a.createElement(a.Fragment,null,i,a.createElement("div",{className:"divider-light"}))}));var I=s(93247),P=s(98113);class F extends a.PureComponent{constructor(e){super(e),this.state=this.getStateFromProps()}getStateFromProps=()=>({settings:{send_on_ctrl_enter:this.props.sendOnCtrlEnter,code_block_ctrl_enter:this.props.codeBlockOnCtrlEnter,formatting:this.props.formatting,join_leave:this.props.joinLeave,sync_drafts:this.props.syncDrafts,[E.pm.UNREAD_SCROLL_POSITION]:this.props.unreadScrollPosition},isSaving:!1,showDeactivateAccountModal:!1,serverError:""});updateSetting=(e,t,s)=>{const a=this.state.settings;a[e]=t,this.setState((e=>({...e,...a}))),(0,y.b6)(s?.currentTarget)};handleSubmit=async e=>{if(!this.props.user)return;const t=[],{actions:s,user:a}=this.props,i=a.id;(Array.isArray(e)?e:[e]).forEach((e=>{t.push({user_id:i,category:E.Ay.Preferences.CATEGORY_ADVANCED_SETTINGS,name:e,value:this.state.settings[e]})})),this.setState({isSaving:!0}),await s.savePreferences(i,t),this.handleUpdateSection("")};handleDeactivateAccountSubmit=async()=>{const e=this.props.user.id;this.setState({isSaving:!0}),this.props.actions.updateUserActive(e,!1).then((e=>{let{error:t}=e;t&&this.setState({serverError:t.message})}));const{data:t,error:s}=await this.props.actions.revokeAllSessionsForUser(e);t?(0,f.BN)():s&&this.setState({serverError:s.message})};handleShowDeactivateAccountModal=()=>{this.setState({showDeactivateAccountModal:!0})};handleHideDeactivateAccountModal=()=>{this.setState({showDeactivateAccountModal:!1})};handleUpdateSection=e=>{e||this.setState(this.getStateFromProps()),this.setState({isSaving:!1}),this.props.updateSection(e)};getCtrlSendText=()=>{const e=(0,n.defineMessages)({default:{id:"user.settings.advance.sendDesc",defaultMessage:"When enabled, CTRL + ENTER will send the message and ENTER inserts a new line."},mac:{id:"user.settings.advance.sendDesc.mac",defaultMessage:"When enabled, ⌘ + ENTER will send the message and ENTER inserts a new line."}}),t=(0,n.defineMessages)({default:{id:"user.settings.advance.sendTitle",defaultMessage:"Send Messages on CTRL+ENTER"},mac:{id:"user.settings.advance.sendTitle.mac",defaultMessage:"Send Messages on ⌘+ENTER"}});return(0,M.cX)()?{ctrlSendTitle:t.mac,ctrlSendDesc:e.mac}:{ctrlSendTitle:t.default,ctrlSendDesc:e.default}};renderOnOffLabel(e){return"false"===e?a.createElement(n.FormattedMessage,{id:"user.settings.advance.off",defaultMessage:"Off"}):a.createElement(n.FormattedMessage,{id:"user.settings.advance.on",defaultMessage:"On"})}renderUnreadScrollPositionLabel(e){return e===E.pm.UNREAD_SCROLL_POSITION_START_FROM_LEFT?a.createElement(n.FormattedMessage,{id:"user.settings.advance.startFromLeftOff",defaultMessage:"Start me where I left off"}):a.createElement(n.FormattedMessage,{id:"user.settings.advance.startFromNewest",defaultMessage:"Start me at the newest message"})}renderCtrlEnterLabel(){const e=this.state.settings.send_on_ctrl_enter,t=this.state.settings.code_block_ctrl_enter;return"false"===e&&"false"===t?a.createElement(n.FormattedMessage,{id:"user.settings.advance.off",defaultMessage:"Off"}):"true"===e&&"true"===t?a.createElement(n.FormattedMessage,{id:"user.settings.advance.onForAllMessages",defaultMessage:"On for all messages"}):a.createElement(n.FormattedMessage,{id:"user.settings.advance.onForCode",defaultMessage:"On only for code blocks starting with ```"})}renderFormattingSection=()=>{const e="formatting"===this.props.activeSection;let t=null;return e&&(t=a.createElement(S.A,{title:a.createElement(n.FormattedMessage,{id:"user.settings.advance.formattingTitle",defaultMessage:"Enable Post Formatting"}),inputs:[a.createElement("fieldset",{key:"formattingSetting"},a.createElement("legend",{className:"form-legend hidden-label"},a.createElement(n.FormattedMessage,{id:"user.settings.advance.formattingTitle",defaultMessage:"Enable Post Formatting"})),a.createElement("div",{className:"radio"},a.createElement("label",null,a.createElement("input",{id:"postFormattingOn",type:"radio",name:"formatting",checked:"false"!==this.state.settings.formatting,onChange:this.updateSetting.bind(this,"formatting","true")}),a.createElement(n.FormattedMessage,{id:"user.settings.advance.on",defaultMessage:"On"})),a.createElement("br",null)),a.createElement("div",{className:"radio"},a.createElement("label",null,a.createElement("input",{id:"postFormattingOff",type:"radio",name:"formatting",checked:"false"===this.state.settings.formatting,onChange:this.updateSetting.bind(this,"formatting","false")}),a.createElement(n.FormattedMessage,{id:"user.settings.advance.off",defaultMessage:"Off"})),a.createElement("br",null)),a.createElement("div",{className:"mt-5"},a.createElement(n.FormattedMessage,{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."})))],submit:this.handleSubmit.bind(this,["formatting"]),saving:this.state.isSaving,serverError:this.state.serverError,updateSection:this.handleUpdateSection})),a.createElement(v.A,{active:e,areAllSectionsInactive:""===this.props.activeSection,title:a.createElement(n.FormattedMessage,{id:"user.settings.advance.formattingTitle",defaultMessage:"Enable Post Formatting"}),describe:this.renderOnOffLabel(this.state.settings.formatting),section:"formatting",updateSection:this.handleUpdateSection,max:t})};renderUnreadScrollPositionSection=()=>{const e=this.props.activeSection===E.pm.UNREAD_SCROLL_POSITION;let t=null;return e&&(t=a.createElement(S.A,{title:a.createElement(n.FormattedMessage,{id:"user.settings.advance.unreadScrollPositionTitle",defaultMessage:"Scroll position when viewing an unread channel"}),inputs:[a.createElement("fieldset",{key:"unreadScrollPositionSetting"},a.createElement("legend",{className:"form-legend hidden-label"},a.createElement(n.FormattedMessage,{id:"user.settings.advance.unreadScrollPositionTitle",defaultMessage:"Scroll position when viewing an unread channel"})),a.createElement("div",{className:"radio"},a.createElement("label",null,a.createElement("input",{id:"unreadPositionStartFromLeftOff",type:"radio",name:"unreadScrollPosition",checked:this.state.settings.unread_scroll_position===E.pm.UNREAD_SCROLL_POSITION_START_FROM_LEFT,onCh
1ange:this.updateSetting.bind(this,E.pm.UNREAD_SCROLL_POSITION,E.pm.UNREAD_SCROLL_POSITION_START_FROM_LEFT)}),a.createElement(n.FormattedMessage,{id:"user.settings.advance.startFromLeftOff",defaultMessage:"Start me where I left off"})),a.createElement("br",null)),a.createElement("div",{className:"radio"},a.createElement("label",null,a.createElement("input",{id:"unreadPositionStartFromNewest",type:"radio",name:"unreadScrollPosition",checked:this.state.settings.unread_scroll_position===E.pm.UNREAD_SCROLL_POSITION_START_FROM_NEWEST,onChange:this.updateSetting.bind(this,E.pm.UNREAD_SCROLL_POSITION,E.pm.UNREAD_SCROLL_POSITION_START_FROM_NEWEST)}),a.createElement(n.FormattedMessage,{id:"user.settings.advance.startFromNewest",defaultMessage:"Start me at the newest message"})),a.createElement("br",null)),a.createElement("div",{className:"mt-5"},a.createElement(n.FormattedMessage,{id:"user.settings.advance.unreadScrollPositionDesc",defaultMessage:"Choose your scroll position when you view an unread channel. Channels will always be marked as read when viewed."})))],submit:this.handleSubmit.bind(this,[E.pm.UNREAD_SCROLL_POSITION]),saving:this.state.isSaving,serverError:this.state.serverError,updateSection:this.handleUpdateSection})),a.createElement(v.A,{active:e,areAllSectionsInactive:""===this.props.activeSection,title:a.createElement(n.FormattedMessage,{id:"user.settings.advance.unreadScrollPositionTitle",defaultMessage:"Scroll position when viewing an unread channel"}),describe:this.renderUnreadScrollPositionLabel(this.state.settings[E.pm.UNREAD_SCROLL_POSITION]),section:E.pm.UNREAD_SCROLL_POSITION,updateSection:this.handleUpdateSection,max:t})};renderSyncDraftsSection=()=>{const e=this.props.activeSection===E.bo.SYNC_DRAFTS;let t=null;return e&&(t=a.createElement(S.A,{title:a.createElement(n.FormattedMessage,{id:"user.settings.advance.syncDrafts.Title",defaultMessage:"Allow message drafts to sync with the server"}),inputs:[a.createElement("fieldset",{key:"syncDraftsSetting"},a.createElement("legend",{className:"form-legend hidden-label"},a.createElement(n.FormattedMessage,{id:"user.settings.advance.syncDrafts.Title",defaultMessage:"Allow message drafts to sync with the server"})),a.createElement("div",{className:"radio"},a.createElement("label",null,a.createElement("input",{id:"syncDraftsOn",type:"radio",name:"syncDrafts",checked:"false"!==this.state.settings.sync_drafts,onChange:this.updateSetting.bind(this,"sync_drafts","true")}),a.createElement(n.FormattedMessage,{id:"user.settings.advance.on",defaultMessage:"On"})),a.createElement("br",null)),a.createElement("div",{className:"radio"},a.createElement("label",null,a.createElement("input",{id:"syncDraftsOff",type:"radio",name:"syncDrafts",checked:"false"===this.state.settings.sync_drafts,onChange:this.updateSetting.bind(this,"sync_drafts","false")}),a.createElement(n.FormattedMessage,{id:"user.settings.advance.off",defaultMessage:"Off"})),a.createElement("br",null)),a.createElement("div",{className:"mt-5"},a.createElement(n.FormattedMessage,{id:"user.settings.advance.syncDrafts.Desc",defaultMessage:"When enabled, message drafts are synced with the server so they can be accessed from any device. When disabled, message drafts are only saved locally on the device where they are composed."})))],setting:E.bo.SYNC_DRAFTS,submit:this.handleSubmit.bind(this,["sync_drafts"]),saving:this.state.isSaving,serverError:this.state.serverError,updateSection:this.handleUpdateSection})),a.createElement(v.A,{active:e,areAllSectionsInactive:""===this.props.activeSection,title:a.createElement(n.FormattedMessage,{id:"user.settings.advance.syncDrafts.Title",defaultMessage:"Allow message drafts to sync with the server"}),describe:this.renderOnOffLabel(this.state.settings.sync_drafts),section:E.bo.SYNC_DRAFTS,updateSection:this.handleUpdateSection,max:t})};renderCtrlSendSection=()=>{const e="advancedCtrlSend"===this.props.activeSection,t=this.state.serverError||null,{ctrlSendTitle:s,ctrlSendDesc:i}=this.getCtrlSendText();let r=null;if(e){const e=["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],l=[a.createElement("fieldset",{key:"ctrlSendSetting"},a.createElement("legend",{className:"form-legend hidden-label"},a.createElement(n.FormattedMessage,s)),a.createElement("div",{className:"radio"},a.createElement("label",null,a.createElement("input",{id:"ctrlSendOn",type:"radio",name:"sendOnCtrlEnter",checked:e[0],onChange:e=>{this.updateSetting("send_on_ctrl_enter","true"),this.updateSetting("code_block_ctrl_enter","true"),(0,y.b6)(e.currentTarget)}}),a.createElement(n.FormattedMessage,{id:"user.settings.advance.onForAllMessages",defaultMessage:"On for all messages"})),a.createElement("br",null)),a.createElement("div",{className:"radio"},a.createElement("label",null,a.createElement("input",{id:"ctrlSendOnForCode",type:"radio",name:"sendOnCtrlEnter",checked:e[1],onChange:e=>{this.updateSetting("send_on_ctrl_enter","false"),this.updateSetting("code_block_ctrl_enter","true"),(0,y.b6)(e.currentTarget)}}),a.createElement(n.FormattedMessage,{id:"user.settings.advance.onForCode",defaultMessage:"On only for code blocks starting with ```"})),a.createElement("br",null)),a.createElement("div",{className:"radio"},a.createElement("label",null,a.createElement("input",{id:"ctrlSendOff",type:"radio",name:"sendOnCtrlEnter",checked:e[2],onChange:e=>{this.updateSetting("send_on_ctrl_enter","false"),this.updateSetting("code_block_ctrl_enter","false"),(0,y.b6)(e.currentTarget)}}),a.createElement(n.FormattedMessage,{id:"user.settings.advance.off",defaultMessage:"Off"})),a.createElement("br",null)),a.createElement("div",null,a.createElement("br",null),a.createElement(n.FormattedMessage,i)))];r=a.createElement(S.A,{title:a.createElement(n.FormattedMessage,s),inputs:l,submit:this.handleSubmit.bind(this,["send_on_ctrl_enter","code_block_ctrl_enter"]),saving:this.state.isSaving,serverError:t,updateSection:this.handleUpdateSection})}return a.createElement(v.A,{active:e,areAllSectionsInactive:""===this.props.activeSection,title:a.createElement(n.FormattedMessage,s),describe:this.renderCtrlEnterLabel(),section:"advancedCtrlSend",updateSection:this.handleUpdateSection,max:r})};render(){const e=this.renderCtrlSendSection(),t=this.renderFormattingSection();let s=null;t&&(s=a.createElement("div",{className:"divider-light"}));let i="",r="";if(""===this.props.user.auth_service&&this.props.enableUserDeactivation&&!this.props.adminMode){const e="deactivateAccount"===this.props.activeSection;let t=null;e&&(t=a.createElement(S.A,{title:a.createElement(n.FormattedMessage,{id:"user.settings.advance.deactivateAccountTitle",defaultMessage:"Deactivate Account"}),inputs:[a.createElement("div",{key:"formattingSetting"},a.createElement("div",null,a.createElement("br",null),a.createElement(n.FormattedMessage,{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",saveButtonClassName:"btn-danger",setting:"deactivateAccount",submit:this.handleShowDeactivateAccountModal,saving:this.state.isSaving,serverError:this.state.serverError,updateSection:this.handleUpdateSection})),i=a.createElement(v.A,{active:e,areAllSectionsInactive:""===this.props.activeSection,title:a.createElement(n.FormattedMessage,{id:"user.settings.advance.deactivateAccountTitle",defaultMessage:"Deactivate Account"}),describe:a.createElement(n.FormattedMessage,{id:"user.settings.advance.deactivateDescShort",defaultMessage:"Click 'Edit' to deactivate your account"}),section:"deactivateAccount",updateSection:this.handleUpdateSection,max:t});const s="btn btn-danger",o=a.createElement(n.FormattedMessage,{id:"user.settings.advance.deactivate_member_modal.deactivateButton",defaultMessage:"Yes, deactivate my account"});r=a.createElement(l.A,{show:this.state.showDeactivateAccountModal,title:a.createElement(n.FormattedMessage,{id:"user.settings.advance.confirmDeactivateAccountTitle",defaultMessage:"Confirm Deactivation"}),message:a.createElement(n.FormattedMessage,{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:s,confirmButtonText:o,onConfirm:this.handleDeactivateAccountSubmit,onCancel:this.handleHideDeactivateAccountModal})}const o=this.renderUnreadScrollPositionSection();let c=null;o&&(c=a.createElement("div",{className:"divider-light"}));let d=null,m=null;return this.props.syncedDraftsAreAllowed&&(d=this.renderSyncDraftsSection(),d&&(m=a.createElement("div",{className:"divider-light"}))),a.createElement("div",{id:"advancedSettings","aria-labelledby":"advancedButton",role:"tabpanel"},a.createElement(P.A,{closeModal:this.props.closeModal,collapseModal:this.props.collapseModal,text:a.createElement(n.FormattedMessage,{id:"user.settings.advance.title",defaultMessage:"Advanced Settings"})}),a.createElement("div",{className:"user-settings"},a.createElement(I.A,{text:a.createElement(n.FormattedMessage,{id:"user.settings.advance.title",defaultMessage:"Advanced Settings"})}),a.createElement("div",{className:"divider-dark first"}),e,s,t,a.createElement("div",{className:"divider-light"}),a.createElement(T,{active:this.props.activeSection===E.bo.JOIN_LEAVE,areAllSectionsInactive:""===this.props.activeSection,onUpdateSection:this.handleUpdateSection,renderOnOffLabel:this.renderOnOffLabel,adminMode:this.props.adminMode,userPreferences:this.props.userPreferences,userId:this.props.user.id}),a.createElement(w,{active:this.props.activeSection===E.bo.PERFORMANCE_DEBUGGING,onUpdateSection:this.handleUpdateSection,areAllSectionsInactive:""===this.props.activeSection,adminMode:this.props.adminMode,userId:this.props.user.id}),c,o,m,d,s,i,a.createElement("div",{className:"divider-dark"}),r))}}const D=(0,h.dI)("getAdvancedSettingsCategory",E.pm.CATEGORY_ADVANCED_SETTINGS),L=(0,c.connect)((function(){const e=(0,h.cK)("getAdvancedSettingsCategory",E.pm.CATEGORY_ADVANCED_SETTINGS);return(t,s)=>{const a=(0,p.zj)(t),i="true"===a.EnableUserDeactivation,n="true"===a.EnableJoinLeaveMessageByDefault,r=s.adminMode&&s.userPreferences?s.userPreferences:void 0;return{advancedSettingsCategory:r?e(t,s.user.id):D(t),sendOnCtrlEnter:(0,h.Jt)(t,E.pm.CATEGORY_ADVANCED_SETTINGS,"send_on_ctrl_enter","false",r),codeBlockOnCtrlEnter:(0,h.Jt)(t,E.pm.CATEGORY_ADVANCED_SETTINGS,"code_block_ctrl_enter","true",r),formatting:(0,h.Jt)(t,E.pm.CATEGORY_ADVANCED_SETTINGS,"formatting","true",r),joinLeave:(0,h.Jt)(t,E.pm.CATEGORY_ADVANCED_SETTINGS,"join_leave",n.toString(),r),syncDrafts:(0,h.Jt)(t,E.pm.CATEGORY_ADVANCED_SETTINGS,"sync_drafts","true",r),user:s.adminMode&&s.user?s.user:(0,g.HW)(t),unreadScrollPosition:(0,h.z0)(t,r),enableUserDeactivation:i,syncedDraftsAreAllowed:(0,h.p2)(t)}}}
1),(function(e){return{actions:(0,d.zH)({savePreferences:m.SF,updateUserActive:u.tS,revokeAllSessionsForUser:u.V_},e)}}))(F);var O=s(56121),R=s(83604),x=s(90926),U=s(90239),B=s(24994),G=s(90478),Y=s(62757),z=s.n(Y),V=s(14776),H=s(79751),j=s(17518),W=(s(26502),s(66184),s(19540),s(63324)),J=s(87131),K=s(61295);function q(e){return a.createElement(a.Fragment,null,a.createElement("label",{className:"custom-label",htmlFor:`${e.id}-inputColorValue`},e.label),a.createElement(K.A,{id:e.id,value:e.value,onChange:t=>{e.onChange?.(e.id,t)}}))}const $=(0,n.defineMessages)({sidebarBg:{id:"user.settings.custom_theme.sidebarBg",defaultMessage:"Sidebar BG"},sidebarText:{id:"user.settings.custom_theme.sidebarText",defaultMessage:"Sidebar Text"},sidebarHeaderBg:{id:"user.settings.custom_theme.sidebarHeaderBg",defaultMessage:"Sidebar Header BG"},sidebarTeamBarBg:{id:"user.settings.custom_theme.sidebarTeamBarBg",defaultMessage:"Team Sidebar BG"},sidebarHeaderTextColor:{id:"user.settings.custom_theme.sidebarHeaderTextColor",defaultMessage:"Sidebar Header Text"},sidebarUnreadText:{id:"user.settings.custom_theme.sidebarUnreadText",defaultMessage:"Sidebar Unread Text"},sidebarTextHoverBg:{id:"user.settings.custom_theme.sidebarTextHoverBg",defaultMessage:"Sidebar Text Hover BG"},sidebarTextActiveBorder:{id:"user.settings.custom_theme.sidebarTextActiveBorder",defaultMessage:"Sidebar Text Active Border"},sidebarTextActiveColor:{id:"user.settings.custom_theme.sidebarTextActiveColor",defaultMessage:"Sidebar Text Active Color"},onlineIndicator:{id:"user.settings.custom_theme.onlineIndicator",defaultMessage:"Online Indicator"},awayIndicator:{id:"user.settings.custom_theme.awayIndicator",defaultMessage:"Away Indicator"},dndIndicator:{id:"user.settings.custom_theme.dndIndicator",defaultMessage:"Do Not Disturb Indicator"},mentionBg:{id:"user.settings.custom_theme.mentionBg",defaultMessage:"Mention Jewel BG"},mentionColor:{id:"user.settings.custom_theme.mentionColor",defaultMessage:"Mention Jewel Text"},centerChannelBg:{id:"user.settings.custom_theme.centerChannelBg",defaultMessage:"Center Channel BG"},centerChannelColor:{id:"user.settings.custom_theme.centerChannelColor",defaultMessage:"Center Channel Text"},newMessageSeparator:{id:"user.settings.custom_theme.newMessageSeparator",defaultMessage:"New Message Separator"},linkColor:{id:"user.settings.custom_theme.linkColor",defaultMessage:"Link Color"},buttonBg:{id:"user.settings.custom_theme.buttonBg",defaultMessage:"Button BG"},buttonColor:{id:"user.settings.custom_theme.buttonColor",defaultMessage:"Button Text"},errorTextColor:{id:"user.settings.custom_theme.errorTextColor",defaultMessage:"Error Text Color"},mentionHighlightBg:{id:"user.settings.custom_theme.mentionHighlightBg",defaultMessage:"Mention Highlight BG"},mentionHighlightLink:{id:"user.settings.custom_theme.mentionHighlightLink",defaultMessage:"Mention Highlight Link"},codeTheme:{id:"user.settings.custom_theme.codeTheme",defaultMessage:"Code Theme"}});class X extends a.PureComponent{constructor(e){super(e),this.textareaRef=(0,a.createRef)(),this.sidebarStylesHeaderRef=(0,a.createRef)(),this.centerChannelStylesHeaderRef=(0,a.createRef)(),this.linkAndButtonStylesHeaderRef=(0,a.createRef)(),this.sidebarStylesRef=(0,a.createRef)(),this.centerChannelStylesRef=(0,a.createRef)(),this.linkAndButtonStylesRef=(0,a.createRef)();const t=this.setCopyTheme(this.props.theme);this.state={copyTheme:t}}handleColorChange=(e,t)=>
1{const{updateTheme:s,theme:a}=this.props;if(a[e]!==t){const i={...a,type:"custom",[e]:t};"mentionBg"===e&&(i.mentionBj=t),s(i);const n=this.setCopyTheme(i);this.setState({copyTheme:n})}};setCopyTheme(e){const t=Object.assign({},e);return delete t.type,delete t.image,JSON.stringify(t)}pasteBoxChange=e=>{let t,s="";if(s=window.clipboardData&&window.clipboardData.getData?window.clipboardData.getData("Text"):e.clipboardData.getData("Text"),0!==s.length){try{t=JSON.parse(s)}catch(e){return}t=(0,W._1)(t),this.setState({copyTheme:JSON.stringify(t)}),t.type="custom",this.props.updateTheme(t)}};onChangeHandle=e=>e.stopPropagation();selectTheme=()=>{this.textareaRef.current?.focus(),this.textareaRef.current?.setSelectionRange(0,this.state.copyTheme.length)};toggleSidebarStyles=e=>{e.preventDefault(),this.sidebarStylesHeaderRef.current?.classList.toggle("open");const t=this.sidebarStylesHeaderRef.current?.classList.contains("open");this.sidebarStylesHeaderRef.current?.setAttribute("aria-expanded",`${t}`),this.toggleSection(this.sidebarStylesRef.current)};toggleCenterChannelStyles=e=>{e.preventDefault(),this.centerChannelStylesHeaderRef.current?.classList.toggle("open");const t=this.centerChannelStylesHeaderRef.current?.classList.contains("open");this.centerChannelStylesHeaderRef.current?.setAttribute("aria-expanded",`${t}`),this.toggleSection(this.centerChannelStylesRef.current)};toggleLinkAndButtonStyles=e=>{e.preventDefault(),this.linkAndButtonStylesHeaderRef.current?.classList.toggle("open");const t=this.linkAndButtonStylesHeaderRef.current?.classList.contains("open");this.linkAndButtonStylesHeaderRef.current?.setAttribute("aria-expanded",`${t}`),this.toggleSection(this.linkAndButtonStylesRef.current)};toggleSection(e){e&&(e.classList.toggle("open"),e.ontransitionend=()=>{e.classList.contains("open")?e.style.overflowY="inherit":e.style.overflowY="hidden"})}onCodeThemeChange=e=>{const t={...this.props.theme,type:"custom",codeTheme:e.target.value};this.props.updateTheme(t)};copyTheme=()=>{this.selectTheme(),document.execCommand("copy"),this.showCopySuccess()};showCopySuccess=()=>{const e=document.querySelector(".copy-theme-success");e&&(e.style.display="inline-block",setTimeout((()=>{e.style.display="none"}),3e3))};render(){const{intl:e,theme:t}=this.props,s=[],i=[],r=[];E.Ay.THEME_ELEMENTS.forEach(((e,l)=>{if("codeTheme"===e.id){const s=[];let r="";e.themes?.forEach(((i,n)=>{i.id===t[e.id]&&(r=i.iconURL),s.push(a.createElement("option",{key:"code-theme-key"+n,value:i.id},i.uiName))})),i.push(a.createElement("div",{className:"col-sm-6 form-group",key:"custom-theme-key"+l},a.createElement("label",{className:"custom-label",htmlFor:"codeThemeSelect"},a.createElement(n.FormattedMessage,$[e.id])),a.createElement("div",{className:"input-group theme-group group--code dropdown",id:e.id},a.createElement("select",{id:"codeThemeSelect",className:"form-control",defaultValue:t[e.id],onChange:this.onCodeThemeChange},s),a.createElement(J.A,{title:a.createElement("div",{className:"code-popover"},a.createElement("img",{width:"200",alt:"code theme image",src:r}))},a.createElement("span",{className:"input-group-addon"},a.createElement("img",{alt:"code theme image",src:r}))))))}else if("centerChannelElements"===e.group)i.push(a.createElement("div",{className:"col-sm-6 form-group element",key:"custom-theme-key"+l},a.createElement(q,{id:e.id,label:a.createElement(n.FormattedMessage,$[e.id]),value:t[e.id]||"",onChange:this.handleColorChange})));else if("sidebarElements"===e.group){let i=t[e.id];i||"mentionBg"!==e.id||(i=t.mentionBj),s.push(a.createElement("div",{className:"col-sm-6 form-group element",key:"custom-theme-key"+l},a.createElement(q,{id:e.id,label:a.createElement(n.FormattedMessage,$[e.id]),value:i||"",onChange:this.handleColorChange})))}else r.push(a.createElement("div",{className:"col-sm-6 form-group element",key:"custom-theme-key"+l},a.createElement(q,{id:e.id,label:a.createElement(n.FormattedMessage,$[e.id]),value:t[e.id]||"",onChange:this.handleColorChange})))}));const l=a.createElement("div",{className:"col-sm-12"},a.createElement("label",{className:"custom-label",htmlFor:"pasteBox"},a.createElement(n.FormattedMessage,{id:"user.settings.custom_theme.copyPaste",defaultMessage:"Copy and paste to share theme colors:"})),a.createElement("textarea",{ref:this.textareaRef,className:"form-control",id:"pasteBox",value:this.state.copyTheme,onCopy:this.showCopySuccess,onPaste:this.pasteBoxChange,onChange:this.onChangeHandle,onClick:this.selectTheme}),a.createElement("div",{className:"mt-3"},a.createElement("button",{className:"btn btn-tertiary",onClick:this.copyTheme},a.createElement(n.FormattedMessage,{id:"user.settings.custom_theme.copyThemeColors",defaultMessage:"Copy Theme Colors"})),a.createElement("span",{className:"alert alert-success copy-theme-success",role:"alert",style:{display:"none"}},a.createElement(n.FormattedMessage,{id:"user.settings.custom_theme.copied",defaultMessage:"✔ Copied"}))));return a.createElement("div",{id:"customThemesSection",className:"appearance-section pt-2","aria-labelledby":"
1customThemes"},a.createElement("div",{className:"theme-elements row"},a.createElement("h4",{className:"theme-elements__header"},a.createElement("button",{ref:this.sidebarStylesHeaderRef,id:"sidebarStylesAccordion",onClick:this.toggleSidebarStyles,"aria-expanded":!1,"aria-controls":"sidebarStylesSection",className:"theme-elements__header"},a.createElement(n.FormattedMessage,{id:"user.settings.custom_theme.sidebarTitle",defaultMessage:"Sidebar Styles"}),a.createElement("div",{className:"header__icon"},a.createElement("i",{className:"fa fa-plus","aria-hidden":!0,title:e.formatMessage({id:"generic_icons.expand",defaultMessage:"Expand Icon"})}),a.createElement("i",{className:"fa fa-minus","aria-hidden":!0,title:e.formatMessage({id:"generic_icons.collapse",defaultMessage:"Collapse Icon"})})))),a.createElement("div",{ref:this.sidebarStylesRef,id:"sidebarStylesSection","aria-labelledby":"sidebarStylesAccordion",className:"theme-elements__body"},s)),a.createElement("div",{className:"theme-elements row"},a.createElement("h4",{className:"theme-elements__header"},a.createElement("button",{ref:this.centerChannelStylesHeaderRef,id:"centerChannelStylesAccordion",onClick:this.toggleCenterChannelStyles,"aria-expanded":!1,"aria-controls":"centerChannelStylesSection",className:"theme-elements__header"},a.createElement(n.FormattedMessage,{id:"user.settings.custom_theme.centerChannelTitle",defaultMessage:"Center Channel Styles"}),a.createElement("div",{className:"header__icon"},a.createElement("i",{className:"fa fa-plus","aria-hidden":!0,title:e.formatMessage({id:"generic_icons.expand",defaultMessage:"Expand Icon"})}),a.createElement("i",{className:"fa fa-minus","aria-hidden":!0,title:e.formatMessage({id:"generic_icons.collapse",defaultMessage:"Collapse Icon"})})))),a.createElement("div",{ref:this.centerChannelStylesRef,id:"centerChannelStylesSection",className:"theme-elements__body","aria-labelledby":"centerChannelStylesAccordion"},i)),a.createElement("div",{className:"theme-elements row"},a.createElement("h4",{className:"theme-elements__header"},a.createElement("button",{ref:this.linkAndButtonStylesHeaderRef,id:"linkAndButtonsStylesAccordion",onClick:this.toggleLinkAndButtonStyles,"aria-expanded":!1,"aria-controls":"linkAndButtonsStylesSection",className:"theme-elements__header"},a.createElement(n.FormattedMessage,{id:"user.settings.custom_theme.linkButtonTitle",defaultMessage:"Link and Button Styles"}),a.createElement("div",{className:"header__icon"},a.createElement("i",{className:"fa fa-plus","aria-hidden":!0,title:e.formatMessage({id:"generic_icons.expand",defaultMessage:"Expand Icon"})}),a.createElement("i",{className:"fa fa-minus","aria-hidden":!0,title:e.formatMessage({id:"generic_icons.collapse",defaultMessage:"Collapse Icon"})})))),a.createElement("div",{id:"linkAndButtonsStylesSection",ref:this.linkAndButtonStylesRef,className:"theme-elements__body","aria-labelledby":"linkAndButtonsStylesAccordion"},r)),a.createElement("div",{className:"row mt-3"},l))}}const Q=(0,n.injectIntl)(X),Z=function(e){let{themeName:t,themeKey:s,sidebarBg:i="#174AB5",sidebarText:n="#86A1D9",sidebarUnreadText:r="white",onlineIndicator:l="#3DB887",awayIndicator:o="#FFBC1F",dndIndicator:c="#D24B4E",centerChannelColor:d="#E0E1E3",centerChannelBg:m="white",newMessageSeparator:u="#1C58D9",buttonBg:p="#15B7B7"}=e;return a.createElement("svg",{width:"112",height:"86",viewBox:"0 0 112 86",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":`${s}-theme-icon`,role:"img"},a.createElement("title",{id:`${s}-theme-icon`},`${t} theme icon`),a.createElement("rect",{style:{fill:m},x:"0",y:"0",width:"112",height:"86"}),a.createElement("g",null,a.createElement("rect",{style:{fill:m},x:"50",y:"-1",width:"63",height:"88"}),a.createElement("g",null,a.createElement("rect",{style:{fill:d},x:"55",y:"75",width:"52",height:"6",rx:"3"}),a.createElement("rect",{style:{fill:m},x:"56",y:"76",width:"50",height:"4",rx:"2"})),a.createElement("rect",{style:{fill:p},x:"71",y:"65",width:"22",height:"5",rx:"2.5"}),a.createElement("rect",{style:{fill:u},x:"50",y:"32",width:"62",height:"1"}),a.createElement("g",{style:{fill:d}},a.createElement("rect",{x:"55",y:"5",width:"52",height:"4",rx:"2"}),a.createElement("rect",{x:"55",y:"14",width:"52",height:"4",rx:"2"}),a.createElement("rect",{x:"55",y:"23",width:"52",height:"4",rx:"2"}),a.createElement("rect",{x:"55",y:"38",width:"52",height:"4",rx:"2"}),a.createElement("rect",{x:"55",y:"47",width:"52",height:"4",rx:"2"}),a.createElement("rect",{x:"55",y:"56",width:"52",height:"4",rx:"2"}))),a.createElement("g",null,a.createElement("rect",{style:{fill:i},x:"-1",y:"-1",width:"51",height:"88"}),a.createElement("g",{style:{fill:n}},a.createElement("circle",{cx:"7",cy:"61",r:"2"}),a.createElement("circle",{cx:"7",cy:"70",r:"2"}),a.createElement("circle",{cx:"7",cy:"43",r:"2"}),a.createElement("circle",{cx:"7",cy:"34",r:"2"}),a.createElement("circle",{cx:"7",cy:"16",r:"2"}),a.createElement("circle",{cx:"7",cy:"7",r:"2"}),a.createElement("rect",{x:"11",y:"5",width:"28",height:"4",rx:"2"}),a.createElement("rect",{x:"11",y:"14",width:"28",height:"4",rx:"2"}),a.createElement("rect",{x:"11",y:"32",width:"28",height:"4",rx:"2"}),a.createElement("rect",{x:"11",y:"41",width:"28",height:"4",rx:"2"}),a.createElement("rect",{x:"11",y:"50",width:"28",height:"4",rx:"2"}),a.createElement("rect",{x:"11",y:"59",width:"28",height:"4",rx:"2"}),a.createElement("rect",{x:"11",y:"68",width:"28",height:"4",rx:"2"}),a.createElement("rect",{x:"11",y:"77",width:"28",height:"4",rx:"2"})),a.createElement("circle",{style:{fill:c},cx:"7",cy:"79",r:"2"}),a.createElement("circle",{style:{fill:o},cx:"7",cy:"52",r:"2"}),a.createElement("circle",{style:{fill:l},cx:"7",cy:"25",r:"2"}),a.createElement("g",{style:{fill:r}},a.createElement("circle",{cx:"43",cy:"25",r:"2"}),a.createElement("rect",{x:"11",y:"23",width:"28",height:"4",rx:"2"}))))},ee=(0,c.connect)((function(e){const t=(0,p.zj)(e);return{allowedThemes:t.AllowedThemes&&t.AllowedThemes.split(",")||[]}}
1))((e=>{let{theme:t,updateTheme:s,allowedThemes:i=[]}=e;const n=[],r=i.length>1||i[0]&&i[0].trim().length>0;for(const e in b.pm.THEMES)if(Object.hasOwn(b.pm.THEMES,e)){if(r&&i.indexOf(e)<0)continue;const l=Object.assign({},b.pm.THEMES[e]);let o="";l.type===t.type&&(o="active"),n.push(a.createElement("div",{className:"col-xs-6 col-sm-3 premade-themes",key:"premade-theme-key"+e},a.createElement("button",{id:`premadeTheme${l.type?.replace(" ","")}`,className:`premadeThemeButton ${o}`,onClick:()=>s(l)},a.createElement("label",null,a.createElement(Z,{themeKey:e,themeName:l.type,sidebarBg:l.sidebarBg,sidebarText:(0,W.Q)(l.sidebarText,.48),sidebarUnreadText:l.sidebarUnreadText,onlineIndicator:l.onlineIndicator,awayIndicator:l.awayIndicator,dndIndicator:l.dndIndicator,centerChannelColor:(0,W.Q)(l.centerChannelColor,.16),centerChannelBg:l.centerChannelBg,newMessageSeparator:l.newMessageSeparator,buttonBg:l.buttonBg}),a.createElement("div",{className:"theme-label"},(0,y.Sn)(l.type||""))))))}return a.createElement("div",{id:"premadeThemesSection",className:"row appearance-section","aria-labelledby":"standardThemes"},a.createElement("div",{className:"clearfix"},n))}));class te extends a.PureComponent{constructor(e){super(e),this.state={...this.getStateFromProps(e),isSaving:!1,serverError:""},this.originalTheme=Object.assign({},this.state.theme),this.minRef=a.createRef()}componentDidUpdate(e){e.selected&&!this.props.selected&&this.resetFields(),e.selected&&!this.props.selected&&this.props.areAllSectionsInactive&&this.focusEditButton()}componentWillUnmount(){this.props.selected&&(0,y.AZ)(this.props.theme)}getStateFromProps(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.props;const t={...e.theme};return t.codeTheme||(t.codeTheme=E.YM.DEFAULT_CODE_THEME),{theme:t,type:t.type||"premade",showAllTeamsCheckbox:e.showAllTeamsCheckbox,applyToAllTeams:e.applyToAllTeams,serverError:"",isSaving:!1}}focusEditButton(){this.minRef.current?.focus()}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.props.updateSection(""),this.setState({isSaving:!1})};updateTheme=e=>{let t=this.state.theme.length===e.length;if(!t)for(const s in e)if(Object.hasOwn(e,s)&&this.state.theme[s]!==e[s]){t=!0;break}this.props.setRequireConfirm?.(t),this.setState({theme:e}),(0,y.AZ)(e)};updateType=e=>this.setState({type:e});resetFields=()=>{const e=this.getStateFromProps();e.serverError="",this.setState(e),(0,y.AZ)(e.theme),this.props.setRequireConfirm?.(!1)};handleUpdateSection=e=>this.props.updateSection(e);render(){let e;this.state.serverError&&(e=this.state.serverError);const t="custom"===this.state.type;let s,i,r;if(t&&this.props.allowCustomThemes?s=a.createElement("div",{key:"customThemeChooser"},a.createElement(Q,{theme:this.state.theme,updateTheme:this.updateTheme})):i=a.createElement("div",{key:"premadeThemeChooser"},a.createElement("br",null),a.createElement(ee,{theme:this.state.theme,updateTheme:this.updateTheme})),this.props.selected){const l=[];this.props.allowCustomThemes?(l.push(a.createElement("div",{key:"premadeCustom",className:"user-settings__radio-group-inline"},a.createElement("div",{className:"radio radio-inline"},a.createElement("label",null,a.createElement("input",{id:"standardThemes",type:"radio",name:"theme",checked:!t,onChange:this.updateType.bind(this,"premade")}),a.createElement(n.FormattedMessage,{id:"user.settings.display.theme.premadeThemes",defaultMessage:"Premade Themes"}))),a.createElement("div",{className:"radio radio-inline"},a.createElement("label",null,a.createElement("input",{id:"customThemes",type:"radio",name:"theme",checked:t,onChange:this.updateType.bind(this,"custom")}),a.createElement(n.FormattedMessage,{id:"user.settings.display.theme.customTheme",defaultMessage:"Custom Theme"}))))),l.push(i,s),l.push(a.createElement("div",{key:"otherThemes"},a.createElement("br",null),a.createElement(j.A,{id:"otherThemes",href:"http://docs.mattermost.com/help/settings/theme-colors.html#custom-theme-examples",location:"user_settings_theme"},a.createElement(n.FormattedMessage,{id:"user.settings.display.theme.otherThemes",defaultMessage:"See other themes"}))))):l.push(i);let o=null;this.state.showAllTeamsCheckbox&&(o=a.createElement("div",{className:"checkbox user-settings__submit-checkbox"},a.createElement("label",null,a.createElement("input",{id:"applyThemeToAllTeams",type:"checkbox",checked:this.state.applyToAllTeams,onChange:e=>this.setState({applyToAllTeams:e.target.checked})}),a.createElement(n.FormattedMessage,{id:"user.settings.display.theme.applyToAllTeams",defaultMessage:"Apply new theme to all my teams"})))),r=a.createElement(S.A,{title:a.createElement(n.FormattedMessage,{id:"user.settings.display.theme.title",defaultMessage:"Theme"}),inputs:a.createElement("fieldset",null,a.createElement("legend",{className:"hidden-label"},a.createElement(n.FormattedMessage,{id:"user.settings.display.theme.title",defaultMessage:"Theme"})),a.createElement("div",null,l)),submitExtra:o,submit:this.submitTheme,disableEnterSubmit:!0,saving:this.state.isSaving,serverError:e,isFullWidth:!0,updateSection:this.handleUpdateSection})}else r=a.createElement(A.A,{title:a.createElement(n.FormattedMessage,{id:"user.settings.display.theme.title",defaultMessage:"Theme"}),describe:a.createElement(n.FormattedMessage,{id:"user.settings.display.theme.describe",defaultMessage:"Open to manage your theme"}),section:"theme",updateSection:this.handleUpdateSection,ref:this.minRef});return r}}const se=(0,c.connect)((function(e){return{currentTeamId:(0,V.Sy)(e),theme:(0,h.O4)(e),applyToAllTeams:(0,h.m3)(e).length<=1,showAllTeamsCheckbox:(0,V.aw)(e)>1}}),(function(e){return{actions:(0,d.zH)({saveTheme:m.hy,deleteTeamSpecificThemes:m.Hp,openModal:H.q},e)}}))(te);var ae=s(90327),ie=s(7481),ne=s(19513);class re extends a.PureComponent{constructor(e){super(e);const t=e.locale,s={value:e.locales[t].value,label:e.locales[t].name};this.reactSelectContainer=a.createRef(),this.state={locale:e.locale,selectedOption:s,isSaving:!1,openMenu:!1}}componentDidMount(){const e=this.reactSelectContainer.current;e&&e.addEventListener("keydown",this.handleContainerKeyDown)}componentWillUnmount(){this.reactSelectContainer.current&&this.reactSelectContainer.current.removeEventListener("keydown",this.handleContainerKeyDown)}handleContainerKeyDown=e=>{const t=document.querySelector(".modal-body");(0,ne.e)(e,E.Ay.KeyCodes.ESCAPE)&&this.state.openMenu&&(t?.classList.remove("no-scroll"),this.setState({openMenu:!1}),e.stopPropagation())};handleKeyDown=e=>{const t=document.querySelector(".modal-body");
1(0,ne.e)(e,E.Ay.KeyCodes.ENTER)&&(t?.classList.add("no-scroll"),this.setState({openMenu:!0}))};setLanguage=e=>{e&&"value"in e&&this.setState({locale:e.value,selectedOption:e})};changeLanguage=()=>{this.props.user.locale===this.state.locale?this.props.updateSection(""):this.submitUser({...this.props.user,locale:this.state.locale})};submitUser=e=>{this.setState({isSaving:!0}),(this.props.adminMode?this.props.actions.patchUser:this.props.actions.updateMe)(e).then((e=>{if("data"in e)this.setState({isSaving:!1});else if("error"in e){let t;const{error:s}=e;t=s instanceof Error?s.message:s,this.setState({serverError:t,isSaving:!1})}}))};handleMenuClose=()=>{const e=document.querySelector(".modal-body");e&&e.classList.remove("no-scroll"),this.setState({openMenu:!1})};handleMenuOpen=()=>{const e=document.querySelector(".modal-body");e&&e.classList.add("no-scroll"),this.setState({openMenu:!0})};render(){const{intl:e,locales:t}=this.props;let s;this.state.serverError&&(s=a.createElement("label",{className:"has-error"},this.state.serverError));const i=[];Object.keys(t).map((e=>({value:t[e].value,name:t[e].name,order:t[e].order}))).sort(((e,t)=>
1e.order-t.order)).forEach((e=>{i.push({value:e.value,label:e.name})}));const r=e.formatMessage({id:"user.settings.languages.dropdown.arialabel",defaultMessage:"Dropdown selector to change the interface language"}),l=a.createElement("div",{key:"changeLanguage"},a.createElement("br",null),a.createElement("label",{"aria-label":r,className:"control-label",id:"changeInterfaceLanguageLabel",htmlFor:"displayLanguage"},a.createElement(n.FormattedMessage,{id:"user.settings.languages.change",defaultMessage:"Change interface language"})),a.createElement("div",{ref:this.reactSelectContainer,className:"pt-2"},a.createElement(ie.Ay,{className:"react-select react-select-top",classNamePrefix:"react-select",ariaLiveMessages:{onFocus:e=>{let{focused:t}=e;return`option ${t.label} focused`},onChange:e=>`option ${e.label} selected`},id:"displayLanguage",menuIsOpen:this.state.openMenu,menuPortalTarget:document.body,styles:{menuPortal:e=>({...e,zIndex:9999})},options:i,isClearable:!1,onChange:this.setLanguage,onKeyDown:this.handleKeyDown,value:this.state.selectedOption,onMenuClose:this.handleMenuClose,onMenuOpen:this.handleMenuOpen,"aria-labelledby":"changeInterfaceLanguageLabel","aria-live":"assertive"}),s),a.createElement("div",null,a.createElement("br",null),a.createElement(n.FormattedMessage,{id:"user.settings.languages.promote1",defaultMessage:"Select which language Mattermost displays in the user interface."}),a.createElement("p",null),a.createElement(n.FormattedMessage,{id:"user.settings.languages.promote2",defaultMessage:"Would you like to help with translations? Join the <link>Mattermost Translation Server</link> to contribute.",values:{link:e=>a.createElement(j.A,{href:"http://translate.mattermost.com",location:"manage_languages"},e)}})));return a.createElement(S.A,{title:a.createElement(n.FormattedMessage,{id:"user.settings.display.language",defaultMessage:"Language"}),submit:this.changeLanguage,saving:this.state.isSaving,inputs:[l],updateSection:this.props.updateSection,disableEnterSubmit:!0})}}const le=(0,n.injectIntl)(re),oe=(0,c.connect)((function(e){return{locales:(0,G.kG)(e)}}),(function(e){return{actions:(0,d.zH)({updateMe:u.Me,patchUser:u.WJ},e)}}))(le);class ce extends a.PureComponent{constructor(e){super(e),this.state={useAutomaticTimezone:e.useAutomaticTimezone,automaticTimezone:e.automaticTimezone,manualTimezone:e.manualTimezone,isSaving:!1,openMenu:!1,selectedOption:{label:e.timezoneLabel,value:e.useAutomaticTimezone?e.automaticTimezone:e.manualTimezone}}}onChange=e=>{e&&"value"in e&&this.setState({manualTimezone:e.value,selectedOption:e})};timezoneNotChanged=()=>{const{useAutomaticTimezone:e,automaticTimezone:t,manualTimezone:s}=this.state,{useAutomaticTimezone:a,automaticTimezone:i,manualTimezone:n}=this.props;return e===a&&t===i&&s===n};changeTimezone=()=>{this.timezoneNotChanged()?this.props.updateSection(""):this.submitUser()};submitUser=()=>{const{user:e}=this.props,{useAutomaticTimezone:t,automaticTimezone:s,manualTimezone:a}=this.state,i={...e,timezone:{useAutomaticTimezone:t.toString(),automaticTimezone:s,manualTimezone:a}};(this.props.adminMode?this.props.actions.patchUser:this.props.actions.updateMe)(i).then((e=>{if("data"in e)this.props.updateSection("");else if("error"in e){const{error:t}=e;let s;s=t instanceof Error?t.message:t,this.setState({serverError:s,isSaving:!1})}}))};handleAutomaticTimezone=e=>{const t=e.target.checked;let s,a,i="";t?(i=(0,ae.C7)(),s=(0,B.Ug)(this.props.timezones,i),a=i):(s=(0,B.Ug)(this.props.timezones,(0,ae.C7)()),a=(0,ae.C7)(),this.setState({manualTimezone:(0,ae.C7)()})),this.setState({useAutomaticTimezone:t,automaticTimezone:i,selectedOption:{label:s,value:a}})};render(){const{timezones:e}=this.props,{useAutomaticTimezone:t}=this.state;let s,i=0;const r=this.props.timezones.map((e=>(e.utc[i]===s?.utc[i]?i++:i=0===i?i:0,s=e,{value:e.utc[i],label:e.text})));let l;this.state.serverError&&(l=a.createElement("label",{className:"has-error"},this.state.serverError));const o=[],c=0===e.length,d=a.createElement("div",{className:"checkbox",key:1},a.createElement("label",null,a.createElement("input",{id:"automaticTimezoneInput",type:"checkbox",checked:t,onChange:this.handleAutomaticTimezone,disabled:c}),a.createElement(n.FormattedMessage,{id:"user.settings.timezones.automatic",defaultMessage:"Automatic"}
1))),m=a.createElement("div",{className:"pt-2",key:2},a.createElement(ie.Ay,{className:"react-select react-select-top",classNamePrefix:"react-select",id:"displayTimezone",menuPortalTarget:document.body,styles:{menuPortal:e=>({...e,zIndex:9999})},options:r,isClearable:!1,onChange:this.onChange,value:this.state.selectedOption,"aria-labelledby":"changeInterfaceTimezoneLabel",isDisabled:t}),l);return o.push(d),o.push(m),o.push(a.createElement("div",{key:3},a.createElement("br",null),a.createElement(n.FormattedMessage,{id:"user.settings.timezones.promote",defaultMessage:"Select the timezone used for timestamps in the user interface and email notifications."}))),a.createElement(S.A,{title:a.createElement(n.FormattedMessage,{id:"user.settings.display.timezone",defaultMessage:"Timezone"}),containerStyle:"timezone-container",submit:this.changeTimezone,saving:this.state.isSaving,inputs:o,updateSection:this.props.updateSection,disableEnterSubmit:!0})}}const de=(0,c.connect)((function(e){const t=(0,U.nQ)(e);return{timezones:O,timezoneLabel:t}}),(function(e){return{actions:(0,d.zH)({updateMe:u.Me,patchUser:u.WJ},e)}}))(ce),me=(0,c.connect)(null,(function(e){return{actions:(0,d.zH)({savePreferences:m.SF},e)}}))((e=>{let{user:t,renderEmoticonsAsEmoji:s,updateSection:i,actions:r}=e;const[l,o]=(0,a.useState)(s),[c,d]=(0,a.useState)(!1),m=(0,a.useCallback)((e=>{o(e.currentTarget.value)}),[]),u=(0,a.useCallback)((()=>{d(!0);const e={user_id:t.id,category:b.pm.CATEGORY_DISPLAY_SETTINGS,name:b.pm.RENDER_EMOTICONS_AS_EMOJI,value:l};r.savePreferences(t.id,[e]),d(!1),i("")}),[t.id,i,r,l]),p=(0,a.useCallback)((()=>{l!==s?u():i("")}),[s,i,l,u]),h=a.createElement("fieldset",{key:"renderEmoticonsAsEmojiSetting"},a.createElement("legend",{className:"form-legend hidden-label"},a.createElement(n.FormattedMessage,{id:"user.settings.display.renderEmoticonsAsEmojiTitle",defaultMessage:"Render emoticons as emojis"})),[{option:"true",inputId:"renderEmoticonsAsEmojiOn",messageId:"user.settings.advance.on",defaultMessage:"On"},{option:"false",inputId:"renderEmoticonsAsEmojiOff",messageId:"user.settings.advance.off",defaultMessage:"Off"}].map((e=>{let{option:t,inputId:s,messageId:i,defaultMessage:r}=e;return a.createElement("div",{className:"radio",key:t},a.createElement("label",null,a.createElement("input",{id:s,type:"radio",name:"renderEmoticonsAsEmoji",value:t,checked:l===t,onChange:m}),a.createElement(n.FormattedMessage,{id:i,defaultMessage:r})),a.createElement("br",null))})),a.createElement("div",{className:"mt-5"},a.createElement(n.FormattedMessage,{id:"user.settings.display.renderEmoticonsAsEmojiDesc",defaultMessage:"When enabled, text emoticons in messages will automatically be rendered as emojis (For example :D as 😄)"})));return a.createElement(S.A,{title:a.createElement(n.FormattedMessage,{id:"user.settings.display.renderEmoticonsAsEmojiTitle",defaultMessage:"Render emoticons as emojis"}),inputs:[h],submit:p,saving:c,updateSection:i,disableEnterSubmit:!0})})),ue=E.Ay.Preferences;function pe(e){return{militaryTime:e.militaryTime,teammateNameDisplay:e.teammateNameDisplay,availabilityStatusOnPosts:e.availabilityStatusOnPosts,channelDisplayMode:e.channelDisplayMode,messageDisplay:e.messageDisplay,colorizeUsernames:e.colorizeUsernames,collapseDisplay:e.collapseDisplay,collapsedReplyThreads:e.collapsedReplyThreads,linkPreviewDisplay:e.linkPreviewDisplay,lastActiveDisplay:e.lastActiveDisplay.toString(),oneClickReactionsOnPosts:e.oneClickReactionsOnPosts,clickToReply:e.clickToReply}}class he extends a.PureComponent{constructor(e){super(e),this.state={...pe(e),isSaving:!1},this.prevSections={theme:"dummySectionName",clock:"theme",linkpreview:"clock",message_display:"linkpreview",channel_display_mode:"message_display",languages:"channel_display_mode"}}componentDidMount(){const{actions:e,shouldAutoUpdateTimezone:t}=this.props;t&&e.autoUpdateTimezone((0,ae.C7)())}componentDidUpdate(e){this.props.teammateNameDisplay!==e.teammateNameDisplay&&this.updateState()}submitLastActive=()=>{const{user:e,actions:t}=this.props,{lastActiveDisplay:s}=this.state,a={...e,props:{...e.props,show_last_active:s}};(this.props.adminMode?t.patchUser:t.updateMe)(a).then((e=>{if("data"in e)this.props.updateSection("");else if("error"in e){const{error:t}=e;let s;s=t instanceof Error?t.message:t,this.setState({serverError:s,isSaving:!1})}}))};handleSubmit=async()=>{const e=this.props.user.id,t={user_id:e,category:ue.CATEGORY_DISPLAY_SETTINGS,name:ue.USE_MILITARY_TIME,value:this.state.militaryTime},s={user_id:e,category:ue.CATEGORY_DISPLAY_SETTINGS,name:ue.AVAILABILITY_STATUS_ON_POSTS,value:this.state.availabilityStatusOnPosts},a={user_id:e,category:ue.CATEGORY_DISPLAY_SETTINGS,name:ue.NAME_NAME_FORMAT,value:this.state.teammateNameDisplay},i={user_id:e,category:ue.CATEGORY_DISPLAY_SETTINGS,name:ue.CHANNEL_DISPLAY_MODE,value:this.state.channelDisplayMode},n={user_id:e,category:ue.CATEGORY_DISPLAY_SETTINGS,name:ue.MESSAGE_DISPLAY,value:this.state.messageDisplay},r={user_id:e,category:ue.CATEGORY_DISPLAY_SETTINGS,name:ue.COLORIZE_USERNAMES,value:this.state.colorizeUsernames},l={user_id:e,category:ue.CATEGORY_DISPLAY_SETTINGS,name:ue.COLLAPSE_DISPLAY,value:this.state.collapseDisplay},o={user_id:e,category:ue.CATEGORY_DISPLAY_SETTINGS,name:ue.COLLAPSED_REPLY_THREADS,value:this.state.collapsedReplyThreads},c={user_id:e,category:ue.CATEGORY_DISPLAY_SETTINGS,name:ue.LINK_PREVIEW_DISPLAY,value:this.state.linkPreviewDisplay},d={user_id:e,category:ue.CATEGORY_DISPLAY_SETTINGS,name:ue.ONE_CLICK_REACTIONS_ENABLED,value:this.state.oneClickReactionsOnPosts},m={user_id:e,category:ue.CATEGORY_DISPLAY_SETTINGS,name:ue.CLICK_TO_REPLY,value:this.state.clickToReply};this.setState({isSaving:!0});const u=[t,i,n,o,m,l,c,a,s,d,r];await this.props.actions.savePreferences(e,u),this.updateSection("")};handleClockRadio=e=>{this.setState({militaryTime:e})};handleTeammateNameDisplayRadio=e=>{this.setState({teammateNameDisplay:e})};handleAvailabilityStatusRadio=e=>{this.setState({availabilityStatusOnPosts:e})};handleChannelDisplayModeRadio(e){this.setState({channelDisplayMode:e})}handlemessageDisplayRadio(e){this.setState({messageDisplay:e})}handleCollapseRadio(e){this.setState({collapseDisplay:e})}handleCollapseReplyThreadsRadio(e){this.setState({collapsedReplyThreads:e})}handleLastActiveRadio(e){this.setState({lastActiveDisplay:e})}handleLinkPreviewRadio(e){this.setState({linkPreviewDisplay:e})}handleOneClickReactionsRadio=e=>{this.setState({oneClickReactionsOnPosts:e})};handleClickToReplyRadio=e=>{this.setState({clickToReply:e})};handleOnChange(e,t){this.setState({...t}),(0,y.b6)(e.currentTarget)}updateSection=e=>{this.updateState(),this.props.updateSection(e)};updateState=()=>{const e=pe(this.props);z()(e,this.state)||this.setState(e),this.setState({isSaving:!1})};createSection(e){const{section:t,display:s,value:i,title:r,firstOption:l,secondOption:o,thirdOption:c,description:d,disabled:m,onSubmit:u}=e;let p=null,h=u||this.handleSubmit;const g=a.createElement(n.FormattedMessage,{id:l.radionButtonText.label.id,defaultMessage:l.radionButtonText.label.defaultMessage});let E,f;l.radionButtonText.more?.id&&(E=": ",f=a.createElement("span",{className:"font-weight--normal"},a.createElement(n.FormattedMessage,{id:l.radionButtonText.more.id,defaultMessage:l.radionButtonText.more.defaultMessage})));const M=a.createElement(n.FormattedMessage,{id:o.radionButtonText.label.id,defaultMessage:o.radionButtonText.label.defaultMessage});let y,b;o.radionButtonText.more?.id&&(y=a.createElement("span",{className:"font-weight--normal"},a.createElement(n.FormattedMessage,{id:o.radionButtonText.more.id,defaultMessage:o.radionButtonText.more.defaultMessage}))),c&&(b=a.createElement(n.FormattedMessage,{id:c.radionButtonText.label.id,defaultMessage:c.radionButtonText.label.defaultMessage}));const A=a.createElement(n.FormattedMessage,{id:r.id,defaultMessage:r.defaultMessage}),_=a.createElement(n.FormattedMessage,{id:d.id,defaultMessage:d.defaultMessage}),T=this.props.activeSection===t;let C,N=null;
1if(T){const e=[!1,!1,!1];let r;i===l.value?(e[0]=!0,r=l.childOption):i===o.value?(e[1]=!0,r=o.childOption):(e[2]=!0,c&&(r=c.childOption));const d=t+"Format",u=t+"UserDisplay",v={[s]:l.value},T={[s]:o.value};let C,k;if(c&&b){const t={[s]:c.value};C=a.createElement("div",{className:"radio"},a.createElement("label",null,a.createElement("input",{id:d+"C",type:"radio",name:d,checked:e[2],onChange:e=>this.handleOnChange(e,t)}),b),a.createElement("br",null))}if(r){const e=r.display;k=a.createElement("div",{className:"checkbox"},a.createElement("hr",null),a.createElement("label",null,a.createElement("input",{id:d+"childOption",type:"checkbox",name:r.label.id,checked:"true"===r.value,onChange:t=>{this.handleOnChange(t,{[e]:t.target.checked?"true":"false"})}}),a.createElement(n.FormattedMessage,{id:r.label.id,defaultMessage:r.label.defaultMessage}),E,a.createElement("span",{className:"font-weight--normal"},a.createElement(n.FormattedMessage,{id:r.more.id,defaultMessage:r.more.defaultMessage}))),a.createElement("br",null))}let w=[a.createElement("fieldset",{key:u},a.createElement("legend",{className:"form-legend hidden-label"},A),a.createElement("div",{className:"radio"},a.createElement("label",null,a.createElement("input",{id:d+"A",type:"radio",name:d,checked:e[0],onChange:e=>this.handleOnChange(e,v)}),g,E,f),a.createElement("br",null)),a.createElement("div",{className:"radio"},a.createElement("label",null,a.createElement("input",{id:d+"B",type:"radio",name:d,checked:e[1],onChange:e=>this.handleOnChange(e,T)}),M,E,y),a.createElement("br",null)),C,a.createElement("div",null,a.createElement("br",null),_),k)];"teammateNameDisplay"===s&&m&&(p=a.createElement("span",null,a.createElement(n.FormattedMessage,{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."})),h=null,w=[]),N=a.createElement(S.A,{title:A,inputs:w,submit:h,saving:this.state.isSaving,serverError:this.state.serverError,extraInfo:p,updateSection:this.updateSection})}return C=i===l.value?g:i===o.value?M:b,a.createElement("div",null,a.createElement(v.A,{active:T,areAllSectionsInactive:""===this.props.activeSection,title:A,describe:C,section:t,updateSection:this.updateSection,max:N}),a.createElement("div",{className:"divider-dark"}))}render(){const e=this.createSection({section:"collapse",display:"collapseDisplay",value:this.state.collapseDisplay,defaultDisplay:"false",title:(0,n.defineMessage)({id:"user.settings.display.collapseDisplay",defaultMessage:"Default Appearance of Image Previews"}),firstOption:{value:"false",radionButtonText:{label:(0,n.defineMessage)({id:"user.settings.display.collapseOn",defaultMessage:"Expanded"})}},secondOption:{value:"true",radionButtonText:{label:(0,n.defineMessage)({id:"user.settings.display.collapseOff",defaultMessage:"Collapsed"})}},description:(0,n.defineMessage)({id:"user.settings.display.collapseDesc",defaultMessage:"Set whether previews of image links and image attachment thumbnails show as expanded or collapsed by default. This setting can also be c
1ontrolled 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:(0,n.defineMessage)({id:"user.settings.display.linkPreviewDisplay",defaultMessage:"Website Link Previews"}),firstOption:{value:"true",radionButtonText:{label:(0,n.defineMessage)({id:"user.settings.display.linkPreviewOn",defaultMessage:"On"})}},secondOption:{value:"false",radionButtonText:{label:(0,n.defineMessage)({id:"user.settings.display.linkPreviewOff",defaultMessage:"Off"})}},description:(0,n.defineMessage)({id:"user.settings.display.linkPreviewDesc",defaultMessage:"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;let s=null;this.props.lastActiveTimeEnabled&&(s=this.createSection({section:"lastactive",display:"lastActiveDisplay",value:this.state.lastActiveDisplay,defaultDisplay:"true",title:(0,n.defineMessage)({id:"user.settings.display.lastActiveDisplay",defaultMessage:"Share last active time"}),firstOption:{value:"true",radionButtonText:{label:(0,n.defineMessage)({id:"user.settings.display.lastActiveOn",defaultMessage:"On"})}},secondOption:{value:"false",radionButtonText:{label:(0,n.defineMessage)({id:"user.settings.display.lastActiveOff",defaultMessage:"Off"})}},description:(0,n.defineMessage)({id:"user.settings.display.lastActiveDesc",defaultMessage:"When enabled, other users will see when you were last active."}),onSubmit:this.submitLastActive}));const i=this.createSection({section:"clock",display:"militaryTime",value:this.state.militaryTime,defaultDisplay:"false",title:(0,n.defineMessage)({id:"user.settings.display.clockDisplay",defaultMessage:"Clock Display"}),firstOption:{value:"false",radionButtonText:{label:(0,n.defineMessage)({id:"user.settings.display.normalClock",defaultMessage:"12-hour clock (example: 4:00 PM)"})}},secondOption:{value:"true",radionButtonText:{label:(0,n.defineMessage)({id:"user.settings.display.militaryClock",defaultMessage:"24-hour clock (example: 16:00)"})}},description:(0,n.defineMessage)({id:"user.settings.display.preferTime",defaultMessage:"Select how you prefer time displayed."})}),r=this.createSection({section:ue.NAME_NAME_FORMAT,display:"teammateNameDisplay",value:this.props.lockTeammateNameDisplay?this.props.configTeammateNameDisplay:this.state.teammateNameDisplay,defaultDisplay:this.props.configTeammateNameDisplay,title:(0,n.defineMessage)({id:"user.settings.display.teammateNameDisplayTitle",defaultMessage:"Teammate Name Display"}),firstOption:{value:E.Ay.TEAMMATE_NAME_DISPLAY.SHOW_USERNAME,radionButtonText:{label:(0,n.defineMessage)({id:"user.settings.display.teammateNameDisplayUsername",defaultMessage:"Show username"})}},secondOption:{value:E.Ay.TEAMMATE_NAME_DISPLAY.SHOW_NICKNAME_FULLNAME,radionButtonText:{label:(0,n.defineMessage)({id:"user.settings.display.teammateNameDisplayNicknameFullname",defaultMessage:"Show nickname if one exists, otherwise show first and last name"})}},thirdOption:{value:E.Ay.TEAMMATE_NAME_DISPLAY.SHOW_FULLNAME,radionButtonText:{label:(0,n.defineMessage)({id:"user.settings.display.teammateNameDisplayFullname",defaultMessage:"Show first and last name"})}},description:(0,n.defineMessage)({id:"user.settings.display.teammateNameDisplayDescription",defaultMessage:"Set how to display other user's names in posts and the Direct Messages list."}),disabled:this.props.lockTeammateNameDisplay}),l=this.createSection({section:"availabilityStatus",display:"availabilityStatusOnPosts",value:this.state.availabilityStatusOnPosts,defaultDisplay:"true",title:(0,n.defineMessage)({id:"user.settings.display.availabilityStatusOnPostsTitle",defaultMessage:"Show online availability on profile images"}),firstOption:{value:"true",radionButtonText:{label:(0,n.defineMessage)({id:"user.settings.sidebar.on",defaultMessage:"On"})}},secondOption:{value:"false",radionButtonText:{label:(0,n.defineMessage)({id:"user.settings.sidebar.off",defaultMessage:"Off"})}},description:(0,n.defineMessage)({id:"user.settings.display.availabilityStatusOnPostsDescription",defaultMessage:"When enabled, online availability is displayed on profile images in the message list."})});let o;if(!this.props.shouldAutoUpdateTimezone){const e=this.props.userTimezone,t="timezone"===this.props.activeSection;let s=null;t&&(s=a.createElement(de,{user:this.props.user,useAutomaticTimezone:Boolean(e.useAutomaticTimezone),automaticTimezone:e.automaticTimezone,manualTimezone:e.manualTimezone,updateSection:this.updateSection,adminMode:this.props.adminMode})),o=a.createElement("div",null,a.createElement(v.A,{active:t,areAllSectionsInactive:""===this.props.activeSection,title:a.createElement(n.FormattedMessage,{id:"user.settings.display.timezone",defaultMessage:"Timezone"}),describe:this.props.timezoneLabel,section:"timezone",updateSection:this.updateSection,max:s}),a.createElement("div",{className:"divider-dark"}))}const c=this.createSection({section:ue.MESSAGE_DISPLAY,display:"messageDisplay",value:this.state.messageDisplay,defaultDisplay:ue.MESSAGE_DISPLAY_CLEAN,title:(0,n.defineMessage)({id:"user.settings.display.messageDisplayTitle",defaultMessage:"Message Display"}),firstOption:{value:ue.MESSAGE_DISPLAY_CLEAN,radionButtonText:{label:(0,n.defineMessage)({id:"user.settings.display.messageDisplayClean",defaultMessage:"Standard"}),more:(0,n.defineMessage)({id:"user.settings.display.messageDisplayCleanDes",defaultMessage:"Easy to scan and read."})}},secondOption:{value:ue.MESSAGE_DISPLAY_COMPACT,radionButtonText:{label:(0,n.defineMessage)({id:"user.settings.display.messageDisplayCompact",defaultMessage:"Compact"}),more:(0,n.defineMessage)({id:"user.settings.display.messageDisplayCompactDes",defaultMessage:"Fit as many messages on the screen as we can."})},childOption:{label:(0,n.defineMessage)({id:"user.settings.display.colorize",defaultMessage:"Colorize usernames"}),value:this.state.colorizeUsernames,display:"colorizeUsernames",more:(0,n.defineMessage)({id:"user.settings.display.colorizeDes",defaultMessage:"Use colors to distinguish users in compact mode"})}},description:(0,n.defineMessage)({id:"user.settings.display.messageDisplayDescription",defaultMessage:"Select how messages in a channel should be displayed."})});let d;this.props.collapsedReplyThreadsAllowUserPreference&&(d=this.createSection({section:ue.COLLAPSED_REPLY_THREADS,display:"collapsedReplyThreads",value:this.state.collapsedReplyThreads,defaultDisplay:ue.COLLAPSED_REPLY_THREADS_FALLBACK_DEFAULT,title:(0,n.defineMessage)({id:"user.settings.display.collapsedReplyThreadsTitle",defaultMessage:"Threaded Discussions"}),firstOption:{value:ue.COLLAPSED_REPLY_THREADS_ON,radionButtonText:{label:(0,n.defineMessage)({id:"user.settings.display.collapsedReplyThreadsOn",defaultMessage:"On"})}},secondOption:{value:ue.COLLAPSED_REPLY_THREADS_OFF,radionButtonText:{label:(0,n.defineMessage)({id:"user.settings.display.collapsedReplyThreadsOff",defaultMessage:"Off"})}},description:(0,n.defineMessage)({id:"user.settings.display.collapsedReplyThreadsDescription",defaultMessage:"When enabled, reply messages are not shown in the channel and you'll be notified about threads you're following in the \"Threads\" view."})}));const m=this.createSection({section:ue.CLICK_TO_REPLY,display:"clickToReply",value:this.state.clickToReply,defaultDisplay:"true",title:(0,n.defineMessage)({id:"user.settings.display.clickToReply",defaultMessage:"Click to open threads"}),firstOption:{value:"true",radionButtonText:{label:(0,n.defineMessage)({id:"user.settings.sidebar.on",defaultMessage:"On"})}},secondOption:{value:"false",radionButtonText:{label:(0,n.defineMessage)({id:"user.settings.sidebar.off",defaultMessage:"Off"})}},description:(0,n.defineMessage)({id:"user.settings.display.clickToReplyDescription",defaultMessage:"When enabled, click anyw
1here on a message to open the reply thread."})}),u=this.createSection({section:ue.CHANNEL_DISPLAY_MODE,display:"channelDisplayMode",value:this.state.channelDisplayMode,defaultDisplay:ue.CHANNEL_DISPLAY_MODE_FULL_SCREEN,title:(0,n.defineMessage)({id:"user.settings.display.channelDisplayTitle",defaultMessage:"Channel Display"}),firstOption:{value:ue.CHANNEL_DISPLAY_MODE_FULL_SCREEN,radionButtonText:{label:(0,n.defineMessage)({id:"user.settings.display.fullScreen",defaultMessage:"Full width"})}},secondOption:{value:ue.CHANNEL_DISPLAY_MODE_CENTERED,radionButtonText:{label:(0,n.defineMessage)({id:"user.settings.display.fixedWidthCentered",defaultMessage:"Fixed width, centered"})}},description:(0,n.defineMessage)({id:"user.settings.display.channeldisplaymode",defaultMessage:"Select the width of the center channel."})});let p;const h=this.props.userLocale,g=(0,G.vL)(h).name;let f,S;p=a.createElement("div",null,a.createElement(v.A,{active:"languages"===this.props.activeSection,areAllSectionsInactive:""===this.props.activeSection,title:a.createElement(n.FormattedMessage,{id:"user.settings.display.language",defaultMessage:"Language"}),describe:g,section:"languages",updateSection:this.updateSection,max:a.createElement(oe,{user:this.props.user,locale:h,updateSection:this.updateSection,adminMode:this.props.adminMode})}),a.createElement("div",{className:"divider-dark"})),1===Object.keys(this.props.locales).length&&(p=null),this.props.enableThemeSelection&&!this.props.adminMode&&(f=a.createElement("div",null,a.createElement(se,{selected:"theme"===this.props.activeSection,areAllSectionsInactive:""===this.props.activeSection,updateSection:this.updateSection,setRequireConfirm:this.props.setRequireConfirm,allowCustomThemes:this.props.allowCustomThemes}),a.createElement("div",{className:"divider-dark"}))),this.props.emojiPickerEnabled&&(S=this.createSection({section:ue.ONE_CLICK_REACTIONS_ENABLED,display:"oneClickReactionsOnPosts",value:this.state.oneClickReactionsOnPosts,defaultDisplay:"true",title:(0,n.defineMessage)({id:"user.settings.display.oneClickReactionsOnPostsTitle",defaultMessage:"Quick reactions on messages"}),firstOption:{value:"true",radionButtonText:{label:(0,n.defineMessage)({id:"user.settings.sidebar.on",defaultMessage:"On"})}},secondOption:{value:"false",radionButtonText:{label:(0,n.defineMessage)({id:"user.settings.sidebar.off",defaultMessage:"Off"})}},description:(0,n.defineMessage)({id:"user.settings.display.oneClickReactionsOnPostsDescription",defaultMessage:"When enabled, you can react quickly with recently used reactions when hovering over a message."})}));const M=a.createElement("div",null,a.createElement(v.A,{active:"renderEmoticonsAsEmoji"===this.props.activeSection,areAllSectionsInactive:""===this.props.activeSection,title:a.createElement(n.FormattedMessage,{id:"user.settings.display.renderEmoticonsAsEmojiTitle",defaultMessage:"Render emoticons as emojis"}),describe:"true"===this.props.renderEmoticonsAsEmoji?a.createElement(n.FormattedMessage,{id:"user.settings.advance.on",defaultMessage:"On"}):a.createElement(n.FormattedMessage,{id:"user.settings.advance.off",defaultMessage:"Off"}),section:"renderEmoticonsAsEmoji",updateSection:this.updateSection,max:a.createElement(me,{renderEmoticonsAsEmoji:this.props.renderEmoticonsAsEmoji,user:this.props.user,updateSection:this.updateSection})}),a.createElement("div",{className:"divider-dark"}));return a.createElement("div",{id:"displaySettings","aria-labelledby":"displayButton",role:"tabpanel"},a.createElement(P.A,{closeModal:this.props.closeModal,collapseModal:this.props.collapseModal,text:a.createElement(n.FormattedMessage,{id:"user.settings.display.title",defaultMessage:"Display Settings"})}),a.createElement("div",{className:"user-settings"},a.createElement(I.A,{id:"displaySettingsTitle",text:a.createElement(n.FormattedMessage,{id:"user.settings.display.title",defaultMessage:"Display Settings"})}),a.createElement("div",{className:"divider-dark first"}),f,d,i,r,l,s,o,t,e,c,m,u,S,M,p))}}const ge=(0,c.connect)((function(){return(e,t)=>{const s=(0,p.zj)(e),a=(0,g.WR)(e),i=t.adminMode?(0,U.zx)(t.user):(0,U.GR)(e),n=i&&i.useAutomaticTimezone&&!i.automaticTimezone,r=!i||n,l=t.adminMode?(0,U.YU)((0,B.os)(i)):(0,U.nQ)(e),o="true"===s.AllowCustomThemes,c="true"===s.EnableLinkPreviews,d="true"===s.EnableThemeSelection,m="true"===(0,p.Ay)(e).LockTeammateNameDisplay&&"true"===s.LockTeammateNameDisplay,u=s.TeammateNameDisplay,f="true"===s.EnableEmojiPicker,v="true"===s.EnableLastActiveTime,S=t.adminMode&&t.userPreferences?t.userPreferences:void 0;let M=!0;const y=t.adminMode?t.user:(0,g.wz)(e,a);"false"===y.props?.show_last_active&&(M=!1);let b=t.user.locale;return(0,G.IU)(e,b)||(b=s.DefaultClientLocale),{lockTeammateNameDisplay:m,allowCustomThemes:o,configTeammateNameDisplay:u,enableLinkPreviews:c,locales:(0,G.kG)(e),userLocale:b,enableThemeSelection:d,timezones:O,timezoneLabel:l,userTimezone:i,shouldAutoUpdateTimezone:r,availabilityStatusOnPosts:(0,h.Jt)(e,E.pm.CATEGORY_DISPLAY_SETTINGS,E.pm.AVAILABILITY_STATUS_ON_POSTS,E.pm.AVAILABILITY_STATUS_ON_POSTS_DEFAULT,S),militaryTime:(0,h.Jt)(e,E.pm.CATEGORY_DISPLAY_SETTINGS,E.pm.USE_MILITARY_TIME,E.pm.USE_MILITARY_TIME_DEFAULT,S),teammateNameDisplay:(0,h.Jt)(e,E.pm.CATEGORY_DISPLAY_SETTINGS,E.pm.NAME_NAME_FORMAT,u,S),channelDisplayMode:(0,h.Jt)(e,E.pm.CATEGORY_DISPLAY_SETTINGS,E.pm.CHANNEL_DISPLAY_MODE,E.pm.CHANNEL_DISPLAY_MODE_DEFAULT,S),messageDisplay:(0,h.Jt)(e,E.pm.CATEGORY_DISPLAY_SETTINGS,E.pm.MESSAGE_DISPLAY,E.pm.MESSAGE_DISPLAY_DEFAULT,S),colorizeUsernames:(0,h.Jt)(e,E.pm.CATEGORY_DISPLAY_SETTINGS,E.pm.COLORIZE_USERNAMES,E.pm.COLORIZE_USERNAMES_DEFAULT,S),collapseDisplay:(0,h.Jt)(e,E.pm.CATEGORY_DISPLAY_SETTINGS,E.pm.COLLAPSE_DISPLAY,E.pm.COLLAPSE_DISPLAY_DEFAULT,S),collapsedReplyThreadsAllowUserPreference:(0,h.Vu)(e)&&(0,p.zj)(e).CollapsedThreads!==R.$I.ALWAYS_ON,collapsedReplyThreads:(0,h.QD)(e),clickToReply:(0,h.Jt)(e,E.pm.CATEGORY_DISPLAY_SETTINGS,E.pm.CLICK_TO_REPLY,E.pm.CLICK_TO_REPLY_DEFAULT,S),linkPreviewDisplay:(0,h.Jt)(e,E.pm.CATEGORY_DISPLAY_SETTINGS,E.pm.LINK_PREVIEW_DISPLAY,E.pm.LINK_PREVIEW_DISPLAY_DEFAULT,S),oneClickReactionsOnPosts:(0,h.Jt)(e,E.pm.CATEGORY_DISPLAY_SETTINGS,E.pm.ONE_CLICK_REACTIONS_ENABLED,E.pm.ONE_CLICK_REACTIONS_ENABLED_DEFAULT,S),renderEmoticonsAsEmoji:(0,h.Jt)(e,E.pm.CATEGORY_DISPLAY_SETTINGS,E.pm.RENDER_EMOTICONS_AS_EMOJI,E.pm.RENDER_EMOTICONS_AS_EMOJI_DEFAULT,S),emojiPickerEnabled:f,lastActiveDisplay:M,lastActiveTimeEnabled:v}}}),(function(e){return{actions:(0,d.zH)({autoUpdateTimezone:x.o,savePreferences:m.
1SF,updateMe:u.Me,patchUser:u.WJ},e)}}))(he);var Ee=s(1418),fe=s(7380),ve=s(52231),Se=(s(76281),s(81975),s(73242),s(78546)),Me=s(21650),ye=(s(5673),s(30164),s(21279),s(85990)),be=s(55476),Ae=s(68124);class _e extends a.Component{static defaultProps={imageContext:"profile"};constructor(e){super(e),this.settingList=(0,a.createRef)(),this.selectInput=(0,a.createRef)(),this.confirmButton=(0,a.createRef)(),this.previewBlob=null,this.state={image:null,removeSrc:!1,setDefaultSrc:!1}}focusFirstElement(){this.settingList.current?.focus()}componentDidMount(){this.focusFirstElement(),this.selectInput.current&&this.selectInput.current.addEventListener("input",this.handleFileSelected)}componentDidUpdate(e){this.props.file&&e.file!==this.props.file&&this.setPicture(this.props.file)}componentWillUnmount(){this.previewBlob&&URL.revokeObjectURL(this.previewBlob),this.selectInput.current&&this.selectInput.current.removeEventListener("input",this.handleFileSelected)}handleCancel=e=>{this.setState({removeSrc:!1,setDefaultSrc:!1}),this.props.updateSection?.(e)};handleFileSelected=()=>{this.confirmButton.current&&this.confirmButton.current.focus()};handleSave=e=>{e.preventDefault(),this.props.loadingPicture||(this.state.removeSrc?this.props.onRemove?.():this.state.setDefaultSrc?this.props.onSetDefault?.():this.props.onSubmit?.())};handleRemoveSrc=e=>{e.preventDefault(),this.setState({removeSrc:!0}),this.focusFirstElement()};handleSetDefaultSrc=e=>{e.preventDefault(),this.setState({setDefaultSrc:!0}),this.focusFirstElement()};handleFileChange=e=>{this.setState({removeSrc:!1,setDefaultSrc:!1}),this.props.onFileChange?.(e)};handleInputFile=()=>{this.selectInput.current&&(this.selectInput.current.value="",this.selectInput.current.click())};setPicture=e=>{if(e){this.previewBlob=URL.createObjectURL(e);const t=new FileReader;t.onload=e=>{const t=Ae.hM(e.target.result),s=Ae.R6(t);this.setState({image:this.previewBlob,orientationStyles:s})},t.readAsArrayBuffer(e)}};renderImg=()=>{const e=this.props.imageContext;if(this.props.file){const t={backgroundImage:"url("+this.state.image+")",...this.state.orientationStyles};return a.createElement("div",{className:`${e}-img-preview`},a.createElement("div",{className:"img-preview__image"},a.createElement("div",{style:t,className:`${e}-img-preview`})))}if(this.state.setDefaultSrc)return a.createElement("img",{className:`${e}-img`,alt:`${e} image`,src:this.props.defaultImageSrc});if(this.props.src&&!this.state.removeSrc){const t=a.createElement("img",{className:`${e}-img`,alt:`${e} image`,src:this.props.src});if(!this.props.onRemove&&!this.props.onSetDefault)return t;let s,i;return this.props.onRemove?(s=a.createElement(n.FormattedMessage,{id:"setting_picture.remove",defaultMessage:"Remove This Icon"}),i=this.handleRemoveSrc):this.props.onSetDefault&&(s=a.createElement(n.FormattedMessage,{id:"setting_picture.remove_profile_picture",defaultMessage:"Remove Profile Picture"}),i=this.handleSetDefaultSrc),a.createElement("div",{className:`${e}-img__container`},a.createElement("div",{className:"img-preview__image","aria-hidden":!0},t),a.createElement(J.A,{title:s??"",disabled:!s},a.createElement("button",{"data-testid":"removeSettingPicture",className:`${e}-img__remove`,onClick:i},a.createElement("span",{"aria-hidden":!0},"×"),a.createElement("span",{className:"sr-only"},s))))}return null};render(){const e=this.renderImg();let t,s,i="btn",r=!1;return this.props.submitActive||this.state.removeSrc||this.state.setDefaultSrc?i+=" btn-primary":(i+=" btn-inactive disabled",r=!0),e&&(t=a.createElement("li",{className:"setting-list-item",role:"presentation"},e)),this.props.onSubmit&&(s=a.createElement("span",null,a.createElement("input",{"data-testid":"uploadPicture",ref:this.selectInput,className:"hidden",accept:E.YM.ACCEPT_STATIC_IMAGE,type:"file",onChange:this.handleFileChange,disabled:this.props.loadingPicture,"aria-hidden":!0,tabIndex:-1}),a.createElement("button",{"data-testid":"inputSettingPictureButton",className:"btn btn-primary btn-file",disabled:this.props.loadingPicture,onClick:this.handleInputFile,"aria-label":(0,y.Vw)({id:"setting_picture.select",defaultMessage:"Select"})},a.createElement(n.FormattedMessage,{id:"setting_picture.select",defaultMessage:"Select"})),a.createElement("button",{tabIndex:r?-1:0,"data-testid":"saveSettingPicture",disabled:r,ref:this.confirmButton,className:i,onClick:this.handleSave,"aria-label":this.props.loadingPicture?(0,y.Vw)({id:"setting_picture.uploading",defaultMessage:"Uploading..."}):(0,y.Vw)({id:"setting_picture.save",defaultMessage:"Save"})},a.createElement(be.A,{loading:this.props.loadingPicture,text:(0,n.defineMessage)({id:"setting_picture.uploading",defaultMessage:"Uploading..."})},a.createElement(n.FormattedMessage,{id:"setting_picture.save",defaultMessage:"Save"}))))),a.createElement("section",{className:"section-max form-horizontal"},a.createElement("h4",{className:"col-xs-12 section-title"},this.props.title),a.createElement("div",{className:"col-sm-10 col-sm-offset-2"},a.createElement("div",{className:"setting-list",ref:this.settingList,tabIndex:-1,"aria-label":this.props.title,"aria-describedby":"setting-picture__helptext"},t,a.createElement("div",{id:"setting-picture__helptext",className:"setting-list-item pt-3"},this.props.helpText),a.createElement("div",{className:"setting-list-item"},a.createElement("hr",null),a.createElement(ye.Ay,{errors:[this.props.clientError,this.props.serverError],type:"modal"}),s,a.createElement("button",{"data-testid":"cancelSettingPicture",className:"btn btn-tertiary theme ml-2",onClick:this.handleCancel,"aria-label":(0,y.Vw)({id:"setting_picture.cancel",defaultMessage:"Cancel"})},a.createElement(n.FormattedMessage,{id:"setting_picture.cancel",defaultMessage:"Cancel"}))))))}}var Te=s(98566),Ce=s(63155);const Ne=(0,n.defineMessages)({usernameReserved:{id:"user.settings.general.usernameReserved",defaultMessage:"This username is reserved, please choose a new one."},usernameGroupNameUniqueness:{id:"user.settings.general.usernameGroupNameUniqueness",defaultMessage:"This username conflicts with an existing group name."},usernameRestrictions:{id:"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:"user.settings.general.validEmail",defaultMessage:"Please enter a valid email address."},validUrl:{id:"user.settings.general.validUrl",defaultMessage:"Please enter a valid url."},emailMatch:{id:"user.settings.general.emailMatch",defaultMessage:"The new emails you entered do n
1ot match."},incorrectPassword:{id:"user.settings.general.incorrectPassword",defaultMessage:"Your password is incorrect."},emptyPassword:{id:"user.settings.general.emptyPassword",defaultMessage:"Please enter your current password."},validImage:{id:"user.settings.general.validImage",defaultMessage:"Only BMP, JPG or PNG images may be used for profile pictures"},imageTooLarge:{id:"user.settings.general.imageTooLarge",defaultMessage:"Unable to upload profile image. File is too large."},uploadImage:{id:"user.settings.general.uploadImage",defaultMessage:"Click 'Edit' to upload an image."},uploadImageMobile:{id:"user.settings.general.mobile.uploadImage",defaultMessage:"Click to upload an image"},fullName:{id:"user.settings.general.fullName",defaultMessage:"Full Name"},nickname:{id:"user.settings.general.nickname",defaultMessage:"Nickname"},username:{id:"user.settings.general.username",defaultMessage:"Username"},profilePicture:{id:"user.settings.general.profilePicture",defaultMessage:"Profile Picture"},close:{id:"user.settings.general.close",defaultMessage:"Close"},position:{id:"user.settings.general.position",defaultMessage:"Position"}}),ke={valueContainer:e=>({...e,height:"auto",minHeight:"38px",flexWrap:"wrap",whiteSpace:"normal"}),multiValue:e=>({...e,margin:"2px"}),control:e=>({...e,height:"auto",minHeight:"38px"}),multiValueLabel:e=>({...e,padding:"2px 6px"})},we=e=>{let{pluginId:t}=e;const s=(0,c.useSelector)((e=>(0,Me.Vk)(e,t)));return a.createElement(a.Fragment,null,s)};class Ie extends a.PureComponent{submitActive=!1;constructor(e){super(e),this.state=this.setupInitialState(e)}componentDidMount(){this.props.enableCustomProfileAttributes&&!this.props.user.custom_profile_attributes&&this.props.actions.getCustomProfileAttributeValues(this.props.user.id)}handleEmailResend=e=>{this.setState({resendStatus:"sending",showSpinner:!0}),this.props.actions.sendVerificationEmail(e).then((e=>{let{data:t,error:s}=e;t?this.setState({resendStatus:"success"}):s&&this.setState({resendStatus:"failure"})}))};createEmailResendLink=e=>a.createElement("span",{className:"resend-verification-wrapper"},a.createElement(be.A,{loading:this.state.showSpinner,text:(0,n.defineMessage)({id:"user.settings.general.sending",defaultMessage:"Sending"})},a.createElement("a",{onClick:()=>{this.handleEmailResend(e),setTimeout((()=>{this.setState({showSpinner:!1})}),500)}},a.createElement(n.FormattedMessage,{id:"user.settings.general.sendAgain",defaultMessage:"Send again"}))));submitUsername=()=>{const e=Object.assign({},this.props.user),t=this.state.username.trim().toLowerCase();e.username!==t?(e.username=t,this.submitUser(e,!1)):this.updateSection("")};submitNickname=()=>{const e=Object.assign({},this.props.user),t=this.state.nickname.trim();e.nickname!==t?(e.nickname=t,this.submitUser(e,!1)):this.updateSection("")};submitName=()=>{const e=Object.assign({},this.props.user),t=this.state.firstName.trim(),s=this.state.lastName.trim();e.first_name!==t||e.last_name!==s?(e.first_name=t,e.last_name=s,this.submitUser(e,!1)):this.updateSection("")};submitEmail=()=>{const e=Object.assign({},this.props.user),t=this.state.email.trim().toLowerCase(),s=this.state.confirmEmail.trim().toLowerCase(),a=this.state.currentPassword;t!==e.email||""!==s&&s!==e.email?(e.email=t,e.password=a,this.submitUser(e,!0)):this.updateSection("")};isEmailValid=()=>{const e=this.state.email.trim().toLowerCase(),t=this.state.confirmEmail.trim().toLowerCase(),s=this.state.currentPassword;return!(""===e||!(0,Se.xf)(e))&&e===t&&""!==s};submitUser=(e,t)=>{const{formatMessage:s}=this.props.intl;this.setState({sectionIsSaving:!0}),this.props.actions.updateMe(e).then((e=>{let{data:a,error:i}=e;if(a)this.updateSection(""),this.props.requireEmailVerification&&t&&(this.props.actions.clearErrors(),this.props.actions.logError({message:E.Xu.EMAIL_VERIFICATION_REQUIRED,type:E.cn.SUCCESS},{errorBarMode:Ee.tq.Always}));else if(i){let e;e=i.server_error_id&&"api.user.check_user_password.invalid.app_error"===i.server_error_id?s(Ne.incorrectPassword):"app.user.group_name_conflict"===i.server_error_id?s(Ne.usernameGroupNameUniqueness):i.message?i.message:i,this.setState({serverError:e,emailError:"",sectionIsSaving:!1})}}))};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:"",pictureError:"",sectionIsSaving:!1})}};submitPicture=()=>{if(!this.state.pictureFile)return;if(!this.submitActive)return;const{formatMessage:e}=this.props.intl,t=this.state.pictureFile;E.je.includes(t.type)?t.size>this.props.maxFileSize?this.setState({pictureError:e(Ne.imageTooLarge),serverError:""}):(this.setState({loadingPicture:!0}),this.props.actions.uploadProfileImage(this.props.user.id,t).then((e=>{let{data:t,error:s}=e;if(t)this.updateSection(""),this.submitActive=!1;else if(s){const e=this.setupInitialState(this.props);e.serverError=s.message,this.setState(e)}}))):this.setState({pictureError:e(Ne.validImage),serverError:""})};submitPosition=()=>{const e=Object.assign({},this.props.user),t=this.state.position.trim();e.position!==t?(e.position=t,this.submitUser(e,!1)):this.updateSection("")};submitAttribute=async e=>{const t=e[0],s=this.props.customProfileAttributeFields.find((e=>e.id===t));if(void 0===s)return;let a=this.state.customAttributeValues?.[t];if("string"==typeof a&&s.attrs&&s.attrs.value_type){if("email"===s.attrs.value_type&&""!==a&&!(0,Se.xf)(a))return void this.setState({emailError:"",serverError:""});if("url"===s.attrs.value_type&&""!==a){const e=(0,Ce.hB)(a);if(!e)return void this.setState({emailError:"",serverError:""});let t=e.toString();
1t.endsWith("/")&&(t=t.slice(0,-1)),a=t}}"multiselect"!==s.type||a||(a=[]),this.setState({sectionIsSaving:!0}),this.props.actions.saveCustomProfileAttribute(this.props.user.id,t,a).then((e=>{let{data:t,error:s}=e;if(t)this.updateSection(""),this.setState({customAttributeValues:{...this.state.customAttributeValues,...t}});else if(s){const e=s.message;this.setState({serverError:e,emailError:"",sectionIsSaving:!1})}}))};updateUsername=e=>{this.setState({username:e.target.value})};updateFirstName=e=>{this.setState({firstName:e.target.value})};updateLastName=e=>{this.setState({lastName:e.target.value})};updateNickname=e=>{this.setState({nickname:e.target.value})};updatePosition=e=>{this.setState({position:e.target.value})};updateEmail=e=>{this.setState({email:e.target.value})};updateConfirmEmail=e=>{this.setState({confirmEmail:e.target.value})};updateCurrentPassword=e=>{this.setState({currentPassword:e.target.value})};updatePicture=e=>{e.target.files&&e.target.files[0]?(this.setState({pictureFile:e.target.files[0]}),this.submitActive=!0,this.setState({pictureError:null})):this.setState({pictureFile:null})};updateSelectAttribute=(e,t,s)=>{const a={...this.state.customAttributeValues};e?Array.isArray(e)?a[s]=e.filter((e=>Boolean(e&&Object.hasOwn(e,"value")))).map((e=>e.value)):a[s]="value"in e&&e.value||"":a[s]="",this.setState({customAttributeValues:a})};updateAttribute=e=>{const t=Object.assign({},this.state.customAttributeValues);t[e.target.id.substring(e.target.id.indexOf("_")+1)]=e.target.value,this.setState({customAttributeValues:t})};updateSection=e=>{this.setState(Object.assign({},this.setupInitialState(this.props),{pictureError:"",serverError:"",emailError:"",sectionIsSaving:!1})),this.submitActive=!1,this.props.updateSection(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,serverError:"",customAttributeValues:t.custom_profile_attributes||{}}}createEmailSection(){const{formatMessage:e}=this.props.intl,t="email"===this.props.activeSection;let s=null;if(t){const t=this.props.requireEmailVerification,i=[];let r=a.createElement(n.FormattedMessage,{id:"user.settings.general.emailHelp1",defaultMessage:"Email is used for sign-in, notifications, and password reset. Email requires verification if changed."});t||(r=a.createElement(n.FormattedMessage,{id:"user.settings.general.emailHelp3",defaultMessage:"Email is used for sign-in, notifications, and password reset."}));let l=null;""===this.props.user.auth_service?(i.push(a.createElement("div",{key:"currentEmailSetting"},a.createElement("div",{className:"form-group"},a.createElement("span",{className:"as-bs-label col-sm-5 control-label"},a.createElement(n.FormattedMessage,{id:"user.settings.general.currentEmail",defaultMessage:"Current Email"})),a.createElement("div",{className:"col-sm-7"},a.createElement("span",{className:"as-bs-label control-label word-break--all text-left"},this.state.originalEmail))))),i.push(a.createElement("div",{key:"emailSetting"},a.createElement("div",{className:"form-group"},a.createElement("label",{className:"col-sm-5 control-label",htmlFor:"primaryEmail"},a.createElement(n.FormattedMessage,{id:"user.settings.general.newEmail",defaultMessage:"New Email"})),a.createElement("div",{className:"col-sm-7"},a.createElement(Te.A,{autoFocus:!0,id:"primaryEmail",name:"primaryEmail",type:"email",onChange:this.updateEmail,maxLength:E.YM.MAX_EMAIL_LENGTH,value:this.state.email,"aria-label":e({id:"user.settings.general.newEmail",defaultMessage:"New Email"}),validate:t=>{if(""===t||!(0,Se.xf)(t))return{type:"error",value:e(Ne.validEmail)}}}))))),i.push(a.createElement("div",{key:"confirmEmailSetting"},a.createElement("div",{className:"form-group"},a.createElement("label",{className:"col-sm-5 control-label",htmlFor:"confirmEmail"},a.createElement(n.FormattedMessage,{id:"user.settings.general.confirmEmail",defaultMessage:"Confirm Email"})),a.createElement("div",{className:"col-sm-7"}
1,a.createElement(Te.A,{id:"confirmEmail",name:"confirmEmail",type:"email",onChange:this.updateConfirmEmail,maxLength:E.YM.MAX_EMAIL_LENGTH,value:this.state.confirmEmail,"aria-label":e({id:"user.settings.general.confirmEmail",defaultMessage:"Confirm Email"}),validate:t=>{if(this.state.email!==t)return{type:"error",value:e(Ne.emailMatch)}}}))))),i.push(a.createElement("div",{key:"currentPassword"},a.createElement("div",{className:"form-group"},a.createElement("label",{className:"col-sm-5 control-label",htmlFor:"currentPassword"},a.createElement(n.FormattedMessage,{id:"user.settings.general.currentPassword",defaultMessage:"Current Password"})),a.createElement("div",{className:"col-sm-7"},a.createElement(Te.A,{id:"currentPassword",name:"currentPassword",type:"password",onChange:this.updateCurrentPassword,value:this.state.currentPassword,"aria-label":e({id:"user.settings.general.currentPassword",defaultMessage:"Current Password"}),validate:t=>{if(""===t)return{type:"error",value:e(Ne.emptyPassword)}}}))),r)),l=this.submitEmail):this.props.user.auth_service===E.YM.GITLAB_SERVICE?i.push(a.createElement("div",{key:"oauthEmailInfo",className:"form-group"},a.createElement("div",{className:"setting-list__hint pb-3"},a.createElement(n.FormattedMessage,{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}})),r)):this.props.user.auth_service===E.YM.GOOGLE_SERVICE?i.push(a.createElement("div",{key:"oauthEmailInfo",className:"form-group"},a.createElement("div",{className:"setting-list__hint pb-3"},a.createElement(n.FormattedMessage,{id:"user.settings.general.emailGoogleCantUpdate",defaultMessage:"Login occurs through Google. Email cannot be updated. Email address used for notifications is {email}.",values:{email:this.state.originalEmail}})),r)):this.props.user.auth_service===E.YM.OFFICE365_SERVICE?i.push(a.createElement("div",{key:"oauthEmailInfo",className:"form-group"},a.createElement("div",{className:"setting-list__hint pb-3"},a.createElement(n.FormattedMessage,{id:"user.settings.general.emailOffice365CantUpdate",defaultMessage:"Login occurs through Entra ID. Email cannot be updated. Email address used for notifications is {email}.",values:{email:this.state.originalEmail}})),r)):this.props.user.auth_service===E.YM.OPENID_SERVICE?i.push(a.createElement("div",{key:"oauthEmailInfo",className:"form-group"},a.createElement("div",{className:"setting-list__hint pb-3"},a.createElement(n.FormattedMessage,{id:"user.settings.general.emailOpenIdCantUpdate",defaultMessage:"Login occurs through OpenID Connect. Email cannot be updated. Email address used for notifications is {email}.",values:{email:this.state.originalEmail}})),r)):this.props.user.auth_service===E.YM.LDAP_SERVICE?i.push(a.createElement("div",{key:"oauthEmailInfo",className:"pb-2"},a.createElement("div",{className:"setting-list__hint pb-3"},a.createElement(n.FormattedMessage,{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===E.YM.SAML_SERVICE&&i.push(a.createElement("div",{key:"oauthEmailInfo",className:"pb-2"},a.createElement("div",{className:"setting-list__hint pb-3"},a.createElement(n.FormattedMessage,{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}})),r)),s=a.createElement(S.A,{title:a.createElement(n.FormattedMessage,{id:"user.settings.general.email",defaultMessage:"Email"}),inputs:i,submit:l,saving:this.state.sectionIsSaving,serverError:this.state.serverError,updateSection:this.updateSection,isValid:this.isEmailValid()})}let i="";return""===this.props.user.auth_service?i=this.props.user.email:this.props.user.auth_service===E.YM.GITLAB_SERVICE?i=a.createElement(n.FormattedMessage,{id:"user.settings.general.loginGitlab",defaultMessage:"Login done through GitLab ({email})",values:{email:this.state.originalEmail}}
1):this.props.user.auth_service===E.YM.GOOGLE_SERVICE?i=a.createElement(n.FormattedMessage,{id:"user.settings.general.loginGoogle",defaultMessage:"Login done through Google ({email})",values:{email:this.state.originalEmail}}):this.props.user.auth_service===E.YM.OFFICE365_SERVICE?i=a.createElement(n.FormattedMessage,{id:"user.settings.general.loginOffice365",defaultMessage:"Login done through Entra ID ({email})",values:{email:this.state.originalEmail}}):this.props.user.auth_service===E.YM.LDAP_SERVICE?i=a.createElement(n.FormattedMessage,{id:"user.settings.general.loginLdap",defaultMessage:"Login done through AD/LDAP ({email})",values:{email:this.state.originalEmail}}):this.props.user.auth_service===E.YM.SAML_SERVICE&&(i=a.createElement(n.FormattedMessage,{id:"user.settings.general.loginSaml",defaultMessage:"Login done through SAML ({email})",values:{email:this.state.originalEmail}})),a.createElement(v.A,{active:t,areAllSectionsInactive:""===this.props.activeSection,title:a.createElement(n.FormattedMessage,{id:"user.settings.general.email",defaultMessage:"Email"}),describe:i,section:"email",updateSection:this.updateSection,max:s})}createNameSection=()=>{const e=this.props.user,{formatMessage:t}=this.props.intl,s="name"===this.props.activeSection;let i=null;if(s){const e=[];let s,r=null;if(this.props.user.auth_service===E.YM.LDAP_SERVICE&&(this.props.ldapFirstNameAttributeSet||this.props.ldapLastNameAttributeSet)||this.props.user.auth_service===E.YM.SAML_SERVICE&&(this.props.samlFirstNameAttributeSet||this.props.samlLastNameAttributeSet)||E.YM.OAUTH_SERVICES.includes(this.props.user.auth_service))s=a.createElement("span",null,a.createElement(n.FormattedMessage,{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{e.push(a.createElement("div",{key:"firstNameSetting",className:"form-group"},a.createElement("label",{className:"col-sm-5 control-label",htmlFor:"firstName"},a.createElement(n.FormattedMessage,{id:"user.settings.general.firstName",defaultMessage:"First Name"})),a.createElement("div",{className:"col-sm-7"},a.createElement(Te.A,{id:"firstName",name:"firstName",autoFocus:!0,t
1ype:"text",onChange:this.updateFirstName,maxLength:E.YM.MAX_FIRSTNAME_LENGTH,value:this.state.firstName,onFocus:y.G8,"aria-label":t({id:"user.settings.general.firstName",defaultMessage:"First Name"})})))),e.push(a.createElement("div",{key:"lastNameSetting",className:"form-group"},a.createElement("label",{className:"col-sm-5 control-label",htmlFor:"lastName"},a.createElement(n.FormattedMessage,{id:"user.settings.general.lastName",defaultMessage:"Last Name"})),a.createElement("div",{className:"col-sm-7"},a.createElement(Te.A,{id:"lastName",name:"lastName",type:"text",onChange:this.updateLastName,maxLength:E.YM.MAX_LASTNAME_LENGTH,value:this.state.lastName,"aria-label":t({id:"user.settings.general.lastName",defaultMessage:"Last Name"})}))));const i=e=>{e.preventDefault(),this.updateSection(""),this.props.updateTab("notifications")},l=a.createElement("a",{href:"#",onClick:i.bind(this)},a.createElement(n.FormattedMessage,{id:"user.settings.general.notificationsLink",defaultMessage:"Notifications"}));s=a.createElement("span",null,a.createElement(n.FormattedMessage,{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:l}})),r=this.submitName}i=a.createElement(S.A,{title:t(Ne.fullName),inputs:e,submit:r,saving:this.state.sectionIsSaving,serverError:this.state.serverError,updateSection:this.updateSection,extraInfo:s})}let r="";return e.first_name&&e.last_name?r=e.first_name+" "+e.last_name:e.first_name?r=e.first_name:e.last_name?r=e.last_name:(r=a.createElement(n.FormattedMessage,{id:"user.settings.general.emptyName",defaultMessage:"Click 'Edit' to add your full name"}),this.props.isMobileView&&(r=a.createElement(n.FormattedMessage,{id:"user.settings.general.mobile.emptyName",defaultMessage:"Click to add your full name"}))),a.createElement(v.A,{active:s,areAllSectionsInactive:""===this.props.activeSection,title:t(Ne.fullName),describe:r,section:"name",updateSection:this.updateSection,max:i})};createNicknameSection=()=>{const e=this.props.user,{formatMessage:t}=this.props.intl,s="nickname"===this.props.activeSection;let i=null;if(s){const e=[];let s,r=null;if("ldap"===this.props.user.auth_service&&this.props.ldapNicknameAttributeSet||this.props.user.auth_service===E.YM.SAML_SERVICE&&this.props.samlNicknameAttributeSet)s=a.createElement("span",null,a.createElement(n.FormattedMessage,{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{let i=a.createElement(n.FormattedMessage,{id:"user.settings.general.nickname",defaultMessage:"Nickname"});this.props.isMobileView&&(i=""),e.push(a.createElement("div",{key:"nicknameSetting",className:"form-group"},a.createElement("label",{className:"col-sm-5 control-label"},i),a.createElement("div",{className:"col-sm-7"},a.createElement(Te.A,{id:"nickname",name:"nickname",autoFocus:!0,t
1ype:"text",onChange:this.updateNickname,value:this.state.nickname,maxLength:E.YM.MAX_NICKNAME_LENGTH,autoCapitalize:"off","aria-label":t({id:"user.settings.general.nickname",defaultMessage:"Nickname"})})))),s=a.createElement("span",null,a.createElement(n.FormattedMessage,{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."})),r=this.submitNickname}i=a.createElement(S.A,{title:t(Ne.nickname),inputs:e,submit:r,saving:this.state.sectionIsSaving,serverError:this.state.serverError,updateSection:this.updateSection,extraInfo:s})}let r="";return e.nickname?r=e.nickname:(r=a.createElement(n.FormattedMessage,{id:"user.settings.general.emptyNickname",defaultMessage:"Click 'Edit' to add a nickname"}),this.props.isMobileView&&(r=a.createElement(n.FormattedMessage,{id:"user.settings.general.mobile.emptyNickname",defaultMessage:"Click to add a nickname"}))),a.createElement(v.A,{active:s,areAllSectionsInactive:""===this.props.activeSection,title:t(Ne.nickname),describe:r,section:"nickname",updateSection:this.updateSection,max:i})};createUsernameSection=()=>{const{formatMessage:e}=this.props.intl,t="username"===this.props.activeSection;let s=null;if(t){const t=[];let i,r=null;if(""===this.props.user.auth_service){let s=a.createElement(n.FormattedMessage,{id:"user.settings.general.username",defaultMessage:"Username"});
1this.props.isMobileView&&(s=""),t.push(a.createElement("div",{key:"usernameSetting",className:"form-group"},a.createElement("label",{className:"col-sm-5 control-label"},s),a.createElement("div",{className:"col-sm-7"},a.createElement(Te.A,{id:"username",name:"username",autoFocus:!0,maxLength:E.YM.MAX_USERNAME_LENGTH,type:"text",onChange:this.updateUsername,value:this.state.username,autoCapitalize:"off",onFocus:y.G8,"aria-label":e({id:"user.settings.general.username",defaultMessage:"Username"}),validate:t=>{const s=y.Bs(t);if(s)return s.id===E.vJ.RESERVED_NAME?{type:"error",value:e(Ne.usernameReserved)}:{type:"error",value:e(Ne.usernameRestrictions,{min:E.YM.MIN_USERNAME_LENGTH,max:E.YM.MAX_USERNAME_LENGTH})}}})))),i=a.createElement("span",null,a.createElement(n.FormattedMessage,{id:"user.settings.general.usernameInfo",defaultMessage:"Pick something easy for teammates to recognize and recall."})),r=this.submitUsername}else i=a.createElement("span",null,a.createElement(n.FormattedMessage,{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."}));s=a.createElement(S.A,{title:e(Ne.username),inputs:t,submit:r,saving:this.state.sectionIsSaving,serverError:this.state.serverError,updateSection:this.updateSection,extraInfo:i,isValid:void 0===y.Bs(this.state.username)})}return a.createElement(v.A,{active:t,areAllSectionsInactive:""===this.props.activeSection,title:e(Ne.username),describe:this.props.user.username,section:"username",updateSection:this.updateSection,max:s})};createPositionSection=()=>{const e=this.props.user,{formatMessage:t}=this.props.intl,s="position"===this.props.activeSection;let i=null;if(s){const e=[];let s,r=null;if(this.props.user.auth_service===E.YM.LDAP_SERVICE&&this.props.ldapPositionAttributeSet||this.props.user.auth_service===E.YM.SAML_SERVICE&&this.props.samlPositionAttributeSet)s=a.createElement("span",null,a.createElement(n.FormattedMessage,{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{let i=a.createElement(n.FormattedMessage,{id:"user.settings.general.position",defaultMessage:"Position"});this.props.isMobileView&&(i=""),e.push(a.createElement("div",{key:"positionSetting",className:"form-group"},a.createElement("label",{className:"col-sm-5 control-label"},i),a.createElement("div",{className:"col-sm-7"},a.createElement(Te.A,{id:"position",name:"position",autoFocus:!0,t
1ype:"text",onChange:this.updatePosition,value:this.state.position,maxLength:E.YM.MAX_POSITION_LENGTH,autoCapitalize:"off",onFocus:y.G8,"aria-label":t({id:"user.settings.general.position",defaultMessage:"Position"})})))),s=a.createElement("span",null,a.createElement(n.FormattedMessage,{id:"user.settings.general.positionExtra",defaultMessage:"Use Position for your role or job title. This will be shown in your profile popover."})),r=this.submitPosition}i=a.createElement(S.A,{title:t(Ne.position),inputs:e,submit:r,saving:this.state.sectionIsSaving,serverError:this.state.serverError,updateSection:this.updateSection,extraInfo:s})}let r="";return e.position?r=e.position:(r=a.createElement(n.FormattedMessage,{id:"user.settings.general.emptyPosition",defaultMessage:"Click 'Edit' to add your job title / position"}),this.props.isMobileView&&(r=a.createElement(n.FormattedMessage,{id:"user.settings.general.mobile.emptyPosition",defaultMessage:"Click to add your job title / position"}))),a.createElement(v.A,{active:s,areAllSectionsInactive:""===this.props.activeSection,title:t(Ne.position),describe:r,section:"position",updateSection:this.updateSection,max:i})};createCustomAttributeSection=()=>{const{formatMessage:e}=this.props.intl;if(null==this.props.customProfileAttributeFields)return a.createElement(a.Fragment,null);const t=this.props.customProfileAttributeFields.filter((e=>"source_only"!==e.attrs?.access_mode)).map((t=>{const s="customAttribute_"+t.id,i=this.props.activeSection===s;let r=null;const l=e=>{if(!e||!Array.isArray(e)&&!e.length)return"";if("select"===t.type||"multiselect"===t.type){const s=t.attrs.options;if(!s)return"";if(Array.isArray(e))return e.map((e=>{const t=s.find((t=>t.id===e));return t?{label:t?.name,value:t?.id}:null})).filter((e=>null!=e));const a=s.find((t=>t.id===e));return a?{label:a?.name,value:a?.id}:""}return e};if(i){const i=[];let o="",c=null;const d=()=>{if("email"===t.attrs?.value_type){const s=this.state.customAttributeValues[t.id];if(s&&!(0,Se.xf)(s))return{type:"error",value:e(Ne.validEmail)}}if("url"===t.attrs?.value_type){const s=this.state.customAttributeValues[t.id];if(s&&!(0,Ce.hB)(s))return{type:"error",value:e(Ne.validUrl)}}},m=Boolean(t.attrs?.protected),u=Boolean(this.props.user.auth_service===E.YM.LDAP_SERVICE&&t.attrs?.ldap||this.props.user.auth_service===E.YM.SAML_SERVICE&&t.attrs?.saml),p="admin"===t.attrs?.managed;if(u?o=a.createElement("span",null,a.createElement(n.FormattedMessage,{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."})):m?o=a.createElement("span",null,a.createElement(n.FormattedMessage,{id:"user.settings.general.field_managed_by_plugin",defaultMessage:"This field is managed by a plugin and cannot be edited."})," (",a.createElement(we,{pluginId:t.attrs?.source_plugin_id}),")"):p&&(o=a.createElement("span",null,a.createElement(n.FormattedMessage,{id:"user.settings.general.field_managed_by_admin",defaultMessage:"This field can only be changed by an administrator."}))),!u&&!p&&!m){let n=t.name;if(this.props.isMobileView&&(n=""),"select"===t.type||"multiselect"===t.type){const n=t.attrs.options.map((e=>({label:e.name,value:e.id})));i.push(a.createElement(ie.Ay,{isMulti:"multiselect"===t.type||void 0,key:s,id:"customProfileAttribute_"+t.id,inputId:"customProfileAttribute_"+t.id+"_input",className:"react-select inlineSelect",classNamePrefix:"react-select",options:n,isClearable:!0,isSearchable:!1,placeholder:e({id:"user.settings.general.select",defaultMessage:"Select"}),components:{IndicatorSeparator:null},styles:ke,value:l(this.state.customAttributeValues[t.id]),onChange:(e,s)=>this.updateSelectAttribute(e,s,t.id)}))}else{const e=t.type;i.push(a.createElement("div",{key:s,className:"form-group"},a.createElement("label",{className:"col-sm-5 control-label"},n),a.createElement("div",{className:"col-sm-7"}
1,a.createElement(Te.A,{id:s,name:s,autoFocus:!0,type:e,onChange:this.updateAttribute,value:l(this.state.customAttributeValues[t.id]),maxLength:E.YM.MAX_CUSTOM_ATTRIBUTE_LENGTH,autoCapitalize:"off",onFocus:y.G8,"aria-label":t.name,validate:d}))))}}u||p||m||(o=a.createElement("span",null,a.createElement(n.FormattedMessage,{id:"user.settings.general.attributeExtra",defaultMessage:"This will be shown in your profile popover."})),c=this.submitAttribute.bind(this,[t.id])),r=a.createElement(S.A,{key:"settingItemMax_"+t.id,title:t.name,inputs:i,submit:c,saving:this.state.sectionIsSaving,serverError:this.state.serverError,updateSection:this.updateSection,extraInfo:o,isValid:void 0===d()})}let o="";if(this.props.user.custom_profile_attributes?.[t.id]){const e=l(this.props.user.custom_profile_attributes?.[t.id]);e&&("string"==typeof e?o=e:Array.isArray(e)&&e.length>0?o=a.createElement(n.FormattedList,{value:e.map((e=>e?.label||null))}):!Array.isArray(e)&&Object.hasOwn(e,"label")&&(o=e.label||""))}return o||(o=a.createElement(n.FormattedMessage,{id:"user.settings.general.emptyAttribute",defaultMessage:"Click 'Edit' to add your custom attribute"}),this.props.isMobileView&&(o=a.createElement(n.FormattedMessage,{id:"user.settings.general.mobile.emptyAttribute",defaultMessage:"Click to add your custom attribute"}))),a.createElement("div",{key:s},a.createElement(v.A,{key:"settingItem_"+t.id,active:i,areAllSectionsInactive:""===this.props.activeSection,title:t.name,describe:o,section:s,updateSection:this.updateSection,max:r}),a.createElement("div",{className:"divider-dark"}))}));return a.createElement(a.Fragment,null,t)};createPictureSection=()=>{const e=this.props.user,{formatMessage:t}=this.props.intl,s="picture"===this.props.activeSection;let i=null;if(s){let s=null,r=null,l=null,o=null;this.props.user.auth_service!==E.YM.LDAP_SERVICE&&this.props.user.auth_service!==E.YM.SAML_SERVICE||!this.props.ldapPictureAttributeSet?(s=this.submitPicture,r=e.last_picture_update>0?this.setDefaultProfilePicture:null,o=y.RG(e.id,e.last_picture_update),l=a.createElement(n.FormattedMessage,{id:"setting_picture.help.profile",defaultMessage:"Upload a picture in BMP, JPG, JPEG, or PNG format. Maximum file size: {max}",values:{max:y.O1(this.props.maxFileSize)}})):l=a.createElement("span",null,a.createElement(n.FormattedMessage,{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."})),i=a.createElement(_e,{title:t(Ne.profilePicture),onSubmit:s,onSetDefault:r,src:o,defaultImageSrc:y.mY(e.id),serverError:this.state.serverError,clientError:this.state.pictureError,updateSection:e=>{this.updateSection(""),e.preventDefault()},file:this.state.pictureFile,onFileChange:this.updatePicture,submitActive:this.submitActive,loadingPicture:this.state.loadingPicture,helpText:l})}let r=t(Ne.uploadImage);return this.props.isMobileView&&(r=t(Ne.uploadImageMobile)),e.last_picture_update>0&&(r=a.createElement(n.FormattedMessage,{id:"user.settings.general.imageUpdated",defaultMessage:"Image last updated {date}",values:{date:a.createElement(n.FormattedDate,{value:new Date(e.last_picture_update),day:"2-digit",month:"short",year:"numeric"})}})),a.createElement(a.Fragment,null,a.createElement(v.A,{active:s,areAllSectionsInactive:""===this.props.activeSection,title:t(Ne.profilePicture),describe:r,section:"picture",updateSection:this.updateSection,max:i}),a.createElement("div",{className:"sr-only","aria-live":"polite","aria-atomic":"true"},this.renderPictureStatus()))};renderPictureStatus=()=>this.state.loadingPicture?a.createElement(n.FormattedMessage,{id:"user.settings.general.picture.uploading",defaultMessage:"Uploading..."}):this.state.pictureFile?a.createElement(n.FormattedMessage,{id:"user.settings.general.picture.selected",defaultMessage:"Picture selected, ready to save"}):this.submitActive?a.createElement(n.FormattedMessage,{id:"user.settings.general.picture.uploaded",defaultMessage:"Picture uploaded"}):null;render(){const e=this.createNameSection(),t=this.createNicknameSection(),s=this.createUsernameSection(),i=this.createPositionSection(),r=this.createEmailSection(),l=this.createCustomAttributeSection(),o=this.createPictureSection();return a.createElement("div",{id:"profileSettings","aria-labelledby":"profileButton",role:"tabpanel"},a.createElement(P.A,{closeModal:this.props.closeModal,collapseModal:this.props.collapseModal,text:a.createElement(n.FormattedMessage,{id:"user.settings.modal.profile",defaultMessage:"Profile Settings"})}),a.createElement("div",{className:"user-settings"},a.createElement(I.A,{id:"generalSettingsTitle",text:a.createElement(n.FormattedMessage,{id:"user.settings.modal.profile",defaultMessage:"Profile Settings"})}),a.createElement("div",{className:"divider-dark first"}),e,a.createElement("div",{className:"divider-light"}),s,a.createElement("div",{className:"divider-light"}),t,a.createElement("div",{className:"divider-light"}),i,a.createElement("div",{className:"divider-light"}),r,a.createElement("div",{className:"divider-light"}),l,o,a.createElement("div",{className:"divider-dark"})))}}const Pe=(0,n.injectIntl)(Ie),Fe=(0,c.connect)((function(e){const t=(0,p.zj)(e),s=(0,p.A1)(e),a="true"===t.RequireEmailVerification,i=parseInt(t.MaxFileSize,10),n="true"===t.LdapFirstNameAttributeSet,r="true"===t.LdapLastNameAttributeSet,l="true"===t.SamlFirstNameAttributeSet,o="true"===t.SamlLastNameAttributeSet,c="true"===t.LdapNicknameAttributeSet,d="true"===t.SamlNicknameAttributeSet,m="true"===t.SamlPositionAttributeSet,u="true"===t.LdapPositionAttributeSet,h="true"===t.LdapPictureAttributeSet,g=(0,p.Ay)(e),E=(0,ve.PL)(g)&&"true"===(0,p.Y6)(e,"CustomProfileAttributes");return{isMobileView:(0,fe.w3)(e),requireEmailVerification:a,maxFileSize:i,customProfileAttributeFields:s,ldapFirstNameAttributeSet:n,ldapLastNameAttributeSet:r,samlFirstNameAttributeSet:l,samlLastNameAttributeSet:o,ldapNicknameAttributeSet:c,samlNicknameAttributeSet:d,samlPositionAttributeSet:m,ldapPositionAttributeSet:u,ldapPictureAttributeSet:h,enableCustomProfileAttributes:E}}),(function(e){return{actions:(0,d.zH)({logError:Ee.vV,clearErrors:Ee.x8,updateMe:u.Me,sendVerificationEmail
1:u.kH,setDefaultProfileImage:u.Ae,uploadProfileImage:u.OB,saveCustomProfileAttribute:u.Ah,getCustomProfileAttributeValues:u.R0},e)}}))(Pe);var De=s(45955),Le=s(148),Oe=s(26624);const Re={updateMe:u.Me,patchUser:u.WJ},xe=(0,c.connect)(((e,t)=>{const s=(0,p.zj)(e),a="true"===s.SendPushNotifications,i="true"===s.ExperimentalEnableAutomaticReplies,n=(0,p.Ay)(e),r=(0,De.Pd)(e),l="true"===s.BuildEnterpriseReady;return{sendPushNotifications:a,enableAutoResponder:i,isCollapsedThreadsEnabled:t.adminMode&&t.userPreferences?(0,h.UH)(e,t.userPreferences):(0,h.WW)(e),isCallsRingingEnabled:(0,Le.zu)(e,"0.17.0")&&(0,Le.pt)(e),isEnterpriseOrCloudOrSKUStarterFree:(0,ve.hr)(n,r,l),isEnterpriseReady:l}}),Re)(Oe.Ay);var Ue=s(83040),Be=s(24867);const Ge=e=>{let{action:t}=e;const s=(0,a.useMemo)((()=>t?{text:t.text,title:t.title,primaryButton:{onClick:t?.onClick,text:t?.buttonText}}:{text:"",title:""}),[t]);return t?a.createElement("div",{className:"pluginActionContainer"},a.createElement(Be.A,s)):null};function Ye(e){return`pp_${e}`.slice(0,32)}var ze=s(18515);const Ve={mentionHighlight:!1},He=e=>{let{selectedValue:t,name:s,option:i,onSelected:n}=e;const r=(0,a.useCallback)((()=>n(i.value)),[i.value]);return a.createElement("div",{className:"radio"},a.createElement("label",null,a.createElement("input",{type:"radio",name:s,checked:t===i.value,onChange:r}),i.text),a.createElement("br",null),i.helpText&&a.createElement(ze.A,{message:i.helpText,options:Ve}))},je=e=>{let{setting:t,pluginId:s,informChange:i}=e;const n=(0,c.useSelector)((e=>(0,h.Jt)(e,Ye(s),t.name,t.default))),[r,l]=(0,a.useState)(n),o=(0,a.useCallback)((e=>{l(e),i(t.name,e)}),[t.name]);return a.createElement("fieldset",{key:t.name},a.createElement("legend",{className:"form-legend hidden-label"},t.title||t.name),t.options.map((e=>a.createElement(He,{key:e.value,name:t.name,option:e,selectedValue:r,onSelected:o}))),t.helpText&&a.createElement("div",{className:"mt-5"},a.createElement(ze.A,{message:t.helpText,options:{mentionHighlight:!1}})))},We=e=>{let{pluginId:t,section:s,activeSection:i,updateSection:n}=e;const r=(0,c.useDispatch)(),l=(0,c.useSelector)(g.WR),o=(0,c.useSelector)((e=>(0,h.Jt)(e,Ye(t),s.settings[0].name,s.settings[0].default))),d=(0,a.useRef)({}),u=(0,a.useMemo)((()=>{const e=s.settings[0];if("radio"===e.type)return e.options.find((e=>e.value===o))?.text}),[s,o]),p=(0,a.useCallback)(((e,t)=>{d.current[e]=t}),[]),E=(0,a.useCallback)((async()=>{const e=[];for(const s of Object.keys(d.current))e.push({user_id:l,category:Ye(t),name:s,value:d.current[s]});e.length&&(r((0,m.SF)(l,e)),s.onSubmit?.(d.current)),n("")}),[t,r,s.onSubmit]);(0,a.useEffect)((()=>{i!==s.title&&(d.current={})}),[i,s.title]);const f=[];for(const e of s.settings)if("radio"===e.type)f.push(a.createElement(je,{key:e.name,setting:e,informChange:p,pluginId:t}));else if("custom"===e.type){const s=e.component,i=a.createElement(Ue.A,{key:e.name,pluginId:t},a.createElement(s,{informChange:p}));f.push(i)}return f.length?s.title===i?a.createElement(S.A,{title:s.title,inputs:f,submit:E,updateSection:n}):a.createElement(A.A,{section:s.title,title:s.title,updateSection:n,describe:u,isDisabled:s.disabled}):null},Je=e=>{let{activeSection:t,closeModal:s,collapseModal:i,settings:r,updateSection:l}=e;const o=(0,n.useIntl)().formatMessage({id:"user.settings.plugins.title",defaultMessage:"{pluginName} Settings"},{pluginName:r.uiName});return a.createElement("div",{id:`${r.id}Settings`,"aria-labelledby":`${r.id}Button`,role:"tabpanel"},a.createElement(P.A,{closeModal:s,collapseModal:i,text:o}),a.createElement("div",{className:"user-settings"},a.createElement(I.A,{text:o}),a.createElement(Ge,{action:r.action}),a.createElement("div",{className:"divider-dark first"}),r.sections.map((e=>{let s;if("component"in e){const t=e.component;s=a.createElement(Ue.A,{pluginId:r.id},a.createElement(t,null))}else s=a.createElement(We,{pluginId:r.id,activeSection:t,section:e,updateSection:l});return a.createElement(a.Fragment,{key:e.title},s,a.createElement("div",{className:"divider-light"}))})),a.createElement("div",{className:"divider-dark"})))};var Ke=s(12966),qe=s(79342),$e=s(81911),Xe=s(43957),Qe=s(1396);const Ze=e=>{let t,{actions:{getUserAudits:s}
1,currentUserId:i,onHide:l,userAudits:o}=e;return(0,a.useEffect)((()=>{s(i,0,200)}),[i,s]),t=0===o.length?a.createElement(Qe.A,null):a.createElement(Xe.A,{audits:o,showIp:!0,showSession:!0}),a.createElement(r.zW,{id:"accessHistoryModal",className:"a11y__modal access-history-modal modal--scroll",modalHeaderText:a.createElement(n.FormattedMessage,{id:"access_history.title",defaultMessage:"Access History"}),modalHeaderTextId:"accessHistoryModalLabel",show:!0,onHide:l,modalLocation:"top",isStacked:!0,compassDesign:!0,ariaLabelledby:"accessHistoryModalLabel"},a.createElement("div",{className:"access-history-modal__body"},t))},et=a.memo(Ze),tt=(0,c.connect)((function(e){return{currentUserId:(0,g.WR)(e),userAudits:(0,g.Qb)(e)||[]}}),(function(e){return{actions:(0,d.zH)({getUserAudits:u.Qb},e)}}))(et);var st=s(69657),at=(s(37227),s(45036));function it(e){const t=(0,n.useIntl)();return a.createElement("i",{className:e.devicePicture,title:(0,at.H6)(t.formatMessage,e.deviceTitle)})}function nt(e){const{locale:t,currentSession:s,handleMoreInfo:i,moreInfo:r}=e;if(r){const e=new Date(s.create_at);return a.createElement("div",null,a.createElement("div",null,a.createElement(n.FormattedMessage,{id:"activity_log.firstTime",defaultMessage:"First time active: {date}, {time}",values:{date:a.createElement(n.FormattedDate,{value:e,day:"2-digit",month:(0,at.FS)(t),year:"numeric"}),time:a.createElement(n.FormattedTime,{value:e,hour:"2-digit",minute:"2-digit"})}})),a.createElement("div",null,a.createElement(n.FormattedMessage,{id:"activity_log.os",defaultMessage:"OS: {os}",values:{os:s.props.os}})),a.createElement("div",null,a.createElement(n.FormattedMessage,{id:"activity_log.browser",defaultMessage:"Browser: {browser}",values:{browser:s.props.browser}})),a.createElement("div",null,a.createElement(n.FormattedMessage,{id:"activity_log.sessionId",defaultMessage:"Session ID: {id}",values:{id:s.id}})))}return a.createElement("a",{className:"theme",href:"#",onClick:i},a.createElement(n.FormattedMessage,{id:"activity_log.moreInfo",defaultMessage:"More info"}))}class rt extends a.PureComponent{constructor(e){super(e),this.state={moreInfo:!1}}handleMoreInfo=()=>{this.setState({moreInfo:!0})};submitRevoke=e=>{this.props.submitRevoke(this.props.currentSession.id,e)};isMobileSession=e=>Boolean(e.device_id&&(e.device_id.includes("apple")||e.device_id.includes("android")));sessionInfo=e=>{const t={deviceTitle:"Unknown",devicePlatform:e.props?.platform},s="Windows"===e.props?.platform,i="Macintosh"===e.props?.platform,r="iPhone"===e.props?.platform,l="Linux"===e.props?.platform||e.props?.os?.includes("Linux"),o=e.props?.os?.includes("Android"),c=e.props?.browser?.includes("Desktop App"),d=e.device_id?.includes(b.Bz.PUSH_NOTIFY_APPLE_REACT_NATIVE),m=e.device_id?.includes("apple")&&!d,u=e.device_id?.includes(b.Bz.PUSH_NOTIFY_ANDROID_REACT_NATIVE),p=e.device_id?.includes("android")&&!u;return i||r||d||m?(t.devicePicture="fa fa-apple",t.deviceTitle=lt.appleIcon):s?(t.devicePicture="fa fa-windows",t.deviceTitle=lt.windowsIcon):o||u||p?(t.devicePicture="fa fa-android",t.deviceTitle=lt.androidIcon):l&&(t.devicePicture="fa fa-linux",t.deviceTitle=lt.linuxIcon),m?t.devicePlatform=a.createElement(n.FormattedMessage,{id:"activity_log_modal.iphoneN
1ativeClassicApp",defaultMessage:"iPhone Native Classic App"}):d?t.devicePlatform=a.createElement(n.FormattedMessage,{id:"activity_log_modal.iphoneNativeApp",defaultMessage:"iPhone Native App"}):p?t.devicePlatform=a.createElement(n.FormattedMessage,{id:"activity_log_modal.androidNativeClassicApp",defaultMessage:"Android Native Classic App"}):u?t.devicePlatform=a.createElement(n.FormattedMessage,{id:"activity_log_modal.androidNativeApp",defaultMessage:"Android Native App"}):o?t.devicePlatform=a.createElement(n.FormattedMessage,{id:"activity_log_modal.android",defaultMessage:"Android"}):c&&(t.devicePlatform=a.createElement(n.FormattedMessage,{id:"activity_log_modal.desktop",defaultMessage:"Native Desktop App"})),t};render(){const{index:e,locale:t,currentSession:s}=this.props,i=new Date(s.last_activity_at),r=this.sessionInfo(s);return a.createElement("div",{key:"activityLogEntryKey"+e,className:"activity-log__table"},a.createElement("div",{className:"activity-log__report"},a.createElement("div",{className:"report__platform"},a.createElement(it,{devicePicture:r.devicePicture,deviceTitle:r.deviceTitle}),r.devicePlatform),a.createElement("div",{className:"report__info"},a.createElement("div",null,a.createElement(n.FormattedMessage,{id:"activity_log.lastActivity",defaultMessage:"Last activity: {date}, {time}",values:{date:a.createElement(n.FormattedDate,{value:i,day:"2-digit",month:(0,at.FS)(t),year:"numeric"}),time:a.createElement(n.FormattedTime,{value:i,hour:"2-digit",minute:"2-digit"})}})),a.createElement(nt,{locale:t,currentSession:s,moreInfo:this.state.moreInfo,handleMoreInfo:this.handleMoreInfo}))),a.createElement("div",{className:"activity-log__action"},a.createElement("button",{onClick:this.submitRevoke,className:"btn btn-primary"},a.createElement(n.FormattedMessage,{id:"activity_log.logout",defaultMessage:"Log Out"}))))}}const lt=(0,n.defineMessages)({androidIcon:{id:"device_icons.android",defaultMessage:"Android Icon"},appleIcon:{id:"device_icons.apple",defaultMessage:"Apple Icon"},linuxIcon:{id:"device_icons.linux",defaultMessage:"Linux Icon"},windowsIcon:{id:"device_icons.windows",defaultMessage:"Windows Icon"}}),ot=e=>{let{currentUserId:t,sessions:s,locale:i,onHide:l,actions:{getSessions:o,revokeSession:c}}=e;const d=(0,a.useCallback)(((e,s)=>{s.preventDefault();const a=s.target?.closest(".modal-content");a?.classList.add("animation--highlight"),setTimeout((()=>{a?.classList.remove("animation--highlight")}),1500),c(t,e).then((()=>{o(t)}))}),[t,c,o]);(0,a.useEffect)((()=>{o(t)}),[t,o]);const m=(0,a.useMemo)((()=>s.reduce(((e,t,s)=>("UserAccessToken"===t.props.type||e.push(a.createElement(rt,{key:t.id,index:s,locale:i,currentSession:t,submitRevoke:d})),e)),[])),[s,i,d]),u=a.createElement("form",null,m);return a.createElement(r.zW,{id:"activityLogModal",className:"activity-log-modal modal--scroll",modalHeaderText:a.createElement(n.FormattedMessage,{id:"activity_log.activeSessions",defaultMessage:"Active Sessions"}),show:!0,onHide:l,ariaLabelledby:"activityLogModalLabel",modalLocation:"top",isStacked:!0,compassDesign:!0},a.createElement("div",{className:"activity-log-modal__body"},a.createElement("p",{className:"session-help-text"},a.createElement(n.FormattedMessage,{id:"activity_log.sessionsDescription",defaultMessage:"Sessions are created when you log in through 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 administrator. To end the session sooner, use the 'Log Out' button."})),u))},ct=a.memo(ot),dt=(0,c.connect)((function(e){return{currentUserId:(0,g.WR)(e),sessions:(0,g.XF)(e),locale:(0,st.k)(e)}}),(function(e){return{actions:(0,d.zH)({getSessions:u.S5,revokeSession:u.T$},e)}}))(ct);var mt=s(12762),ut=s(5185),pt=s(79135),ht=s(83469),gt=s(83007);class Et extends a.PureComponent{constructor(e){super(e),this.state={serverError:null},this.minRef=a.createRef()}focusEditButton(){this.minRef.current?.focus()}componentDidUpdate(e){e.active&&!this.props.active&&this.props.areAllSectionsInactive&&this.focusEditButton()}setupMfa=e=>{e.preventDefault(),(0,gt.J)().push("/mfa/setup")};removeMfa=async e=>{e.preventDefault();const{error:t}=await this.props.actions.deactivateMfa();t?this.setState({serverError:t.message}):this.props.mfaEnforced?(0,gt.J)().push("/mfa/setup"):(this.props.updateSection(""),this.setState({serverError:null}))};renderTitle=()=>a.createElement(n.FormattedMessage,{id:"user.settings.mfa.title",defaultMessage:"Multi-factor Authentication"});renderDescription=()=>this.props.mfaActive?a.createElement(n.FormattedMessage,{id:"user.settings.security.active",defaultMessage:"Active"}):a.createElement(n.FormattedMessage,{id:"user.settings.security.inactive",defaultMessage:"Inactive"});renderContent=()=>{let e;if(this.props.mfaActive){let t;t=this.props.mfaEnforced?a.createElement(n.FormattedMessage,{id:"user.settings.mfa.reset",defaultMessage:"Reset MFA on Account"}):a.createElement(n.FormattedMessage,{id:"user.settings.mfa.remove",defaultMessage:"Remove MFA from Account"}),e=a.createElement("a",{className:"btn btn-primary",href:"#",onClick:this.removeMfa},t)}else e=a.createElement("a",{className:"btn btn-primary",href:"#",onClick:this.setupMfa},a.createElement(n.FormattedMessage,{id:"user.settings.mfa.add",defaultMessage:"Add MFA to Account"}));return a.createElement("div",{className:"pt-2"},e,a.createElement("br",null))};renderHelpText=()=>this.props.mfaActive?this.props.mfaEnforced?a.createElement(n.FormattedMessage,{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."}):a.createElement(n.FormattedMessage,{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."}):a.createElement(n.FormattedMessage,{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?a.createElement(S.A,{title:e,inputs:this.renderContent(),extraInfo:this.renderHelpText(),serverError:this.state.serverError,updateSection:this.props.updateSection}):a.createElement(A.A,{title:e,describe:this.renderDescription(),section:"mfa",updateSection:this.props.updateSection,ref:this.minRef}):null}}const ft=(0,c.connect)((function(e){const t=(0,p.Ay)(e),s=(0,p.zj)(e),a=t&&"true"===t.IsLicensed&&"true"===t.MFA,i="true"===s.EnableMultifactorAuthentication,n=a&&"true"===s.EnforceMultifactorAuthentication,r=(0,g.HW)(e);let l=!1,o=!1;return r&&(l=r.mfa_active,o=i&&(""===r.auth_service||r.auth_service===E.Ay.LDAP_SERVICE)),{mfaActive:l,mfaAvailable:o,mfaEnforced:n}}),(function(e){return{actions:(0,d.zH)({deactivateMfa:ht.n},e)}}
1))(Et);var vt=s(14309),St=s(87064);const Mt="creating",yt="created",bt="not_creating";class At extends a.PureComponent{constructor(e){super(e),this.state={active:this.props.active,showConfirmModal:!1,newToken:null,tokenCreationState:bt,tokenError:"",serverError:null,saving:!1},this.newtokendescriptionRef=a.createRef(),this.minRef=a.createRef()}componentDidUpdate(e){e.active&&!this.props.active&&this.props.areAllSectionsInactive&&this.focusEditButton()}componentDidMount(){this.props.actions.clearUserAccessTokens();const e=this.props.user?this.props.user.id:"";this.props.actions.getUserAccessTokensForUser(e,0,200)}static getDerivedStateFromProps(e,t){return!e.active&&t.active?{active:e.active,showConfirmModal:!1,newToken:null,tokenCreationState:bt,tokenError:"",serverError:null,saving:!1}:{active:e.active}}focusEditButton(){this.minRef.current?.focus()}startCreatingToken=()=>{this.setState({tokenCreationState:Mt})};stopCreatingToken=()=>{this.setState({tokenCreationState:bt,saving:!1})};handleCreateToken=async()=>{this.handleCancelConfirm();const e=this.newtokendescriptionRef?this.newtokendescriptionRef.current.value:"";if(""===e)return void this.setState({tokenError:a.createElement(n.FormattedMessage,{id:"user.settings.tokens.nameRequired",defaultMessage:"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:s,error:i}=await this.props.actions.createUserAccessToken(t,e);s&&this.state.tokenCreationState===Mt?this.setState({tokenCreationState:yt,newToken:s,saving:!1}):i&&this.setState({serverError:i.message,saving:!1})};confirmCopyToken=e=>{this.setState({showConfirmModal:!0,confirmTitle:a.createElement(n.FormattedMessage,{id:"user.settings.tokens.confirmCopyTitle",defaultMessage:"Copied Your Token?"}),confirmMessage:e=>a.createElement("div",null,a.createElement(n.FormattedMessage,{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!"}),a.createElement("br",null),a.createElement("br",null),e.tokenCreationState===Mt?a.createElement("div",null,a.createElement("strong",{className:"word-break--all"},a.createElement(n.FormattedMessage,{id:"user.settings.tokens.token",defaultMessage:"Access Token: "})),a.createElement(n.FormattedMessage,{id:"user.settings.tokens.tokenLoading",defaultMessage:"Loading..."})):a.createElement("strong",{className:"word-break--all"},a.createElement(n.FormattedMessage,{id:"user.settings.tokens.token",defaultMessage:"Access Token: "}),e.newToken.token)),confirmButton:a.createElement(n.FormattedMessage,{id:"user.settings.tokens.confirmCopyButton",defaultMessage:"Yes, I have copied the token"}),confirmComplete:()=>{this.handleCancelConfirm(),e()},confirmHideCancel:!0})};handleCancelConfirm=()=>{this.setState({showConfirmModal:!1,confirmTitle:null,confirmMessage:null,confirmButton:null,confirmComplete:null,confirmHideCancel:!1})};confirmCreateToken=()=>{qe.FV(this.props.user.roles)?this.setState({showConfirmModal:!0,confirmTitle:a.createElement(n.FormattedMessage,{id:"user.settings.tokens.confirmCreateTitle",defaultMessage:"Create System Admin Personal Access Token"}),confirmMessage:()=>a.createElement("div",{className:"alert alert-danger"},a.createElement(n.FormattedMessage,{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:a.createElement(n.FormattedMessage,{id:"user.settings.tokens.confirmCreateButton",defaultMessage:"Yes, Create"}),confirmComplete:()=>{this.handleCreateToken()}}):this.handleCreateToken()};saveTokenKeyPress=e=>{ne.e(e,E.YM.KeyCodes.ENTER)&&this.confirmCreateToken()};confirmRevokeToken=e=>{const t=this.props.userAccessTokens[e];this.setState({showConfirmModal:!0,confirmTitle:a.createElement(n.FormattedMessage,{id:"user.settings.tokens.confirmDeleteTitle",defaultMessage:"Delete Token?"}),confirmMessage:()=>a.createElement("div",{className:"alert alert-danger"},a.createElement("p",null,a.createElement(n.FormattedMessage,{id:"user.settings.tokens.confirmDelete.description",defaultMessage:"Any integrations using this token will no longer be able to access the Mattermost API. You cannot undo this action."})),a.createElement("p",null,a.createElement(n.FormattedMessage,{id:"user.settings.tokens.confirmDelete.confirmation",defaultMessage:"Are you sure you want to delete the <b>{description}</b> token?",values:{description:t.description,b:e=>a.createElement("b",null,e)}}))),confirmButton:a.createElement(n.FormattedMessage,{id:"user.settings.tokens.confirmDeleteButton",defaultMessage:"Yes, Delete"}),confirmComplete:()=>{this.revokeToken(e)}})};revokeToken=async e=>{const{error:t}=await this.props.actions.revokeUserAccessToken(e);t&&this.setState({serverError:t.message}),this.handleCancelConfirm()};activateToken=async e=>{const{error:t}=await this.props.actions.enableUserAccessToken(e);t&&this.setState({serverError:t.message})};deactivateToken=async e=>{const{error:t}=await this.props.actions.disableUserAccessToken(e);t&&this.setState({serverError:t.message})};render(){let e="";if(!this.props.active){const e=a.createElement(n.FormattedMessage,{id:"user.settings.tokens.clickToEdit",defaultMessage:"Click 'Edit' to manage your personal access tokens"});return a.createElement(A.A,{title:a.createElement(n.FormattedMessage,{id:"user.settings.tokens.title",defaultMessage:"Personal Access Tokens"}),describe:e,section:"tokens",updateSection:this.props.updateSection,ref:this.minRef})}const t=[];let s,i,r;
1Object.values(this.props.userAccessTokens).forEach((e=>{if(this.state.newToken&&this.state.newToken.id===e.id)return;let s,i;e.is_active?s=a.createElement("a",{id:e.id+"_deactivate",href:"#",onClick:t=>{t.preventDefault(),this.deactivateToken(e.id)}},a.createElement(n.FormattedMessage,{id:"user.settings.tokens.deactivate",defaultMessage:"Disable"})):(i=a.createElement("span",{className:"has-error setting-box__inline-error"},a.createElement(n.FormattedMessage,{id:"user.settings.tokens.deactivatedWarning",defaultMessage:"(Disabled)"})),s=a.createElement("a",{id:e.id+"_activate",href:"#",onClick:t=>{t.preventDefault(),this.activateToken(e.id)}},a.createElement(n.FormattedMessage,{id:"user.settings.tokens.activate",defaultMessage:"Enable"}))),t.push(a.createElement("div",{key:e.id,className:"setting-box__item"},a.createElement("div",{className:"whitespace--nowrap overflow--ellipsis"},a.createElement(n.FormattedMessage,{id:"user.settings.tokens.tokenDesc",defaultMessage:"Token Description: "}),e.description,i),a.createElement("div",{className:"setting-box__token-id whitespace--nowrap overflow--ellipsis"},a.createElement(n.FormattedMessage,{id:"user.settings.tokens.tokenId",defaultMessage:"Token ID: "}),e.id),a.createElement("div",null,s," - ",a.createElement("a",{id:e.id+"_delete",href:"#",onClick:t=>{t.preventDefault(),this.confirmRevokeToken(e.id)}},a.createElement(n.FormattedMessage,{id:"user.settings.tokens.delete",defaultMessage:"Delete"}))),a.createElement("hr",{className:"mb-3 mt-3"})))})),0===t.length&&(s=a.createElement(n.FormattedMessage,{key:"notokens",id:"user.settings.tokens.userAccessTokensNone",defaultMessage:"No personal access tokens."})),i=(0,M.Fr)()?a.createElement("span",null,a.createElement(n.FormattedMessage,{id:"user.settings.tokens.description_mobile",defaultMessage:"<linkTokens>Personal access tokens</linkTokens> function similarly to session tokens and can be used by integrations to <linkAPI>authenticate against the REST API</linkAPI>. Create new tokens on your desktop.",values:{linkTokens:e=>a.createElement(j.A,{href:E.i3.PERSONAL_ACCESS_TOKENS,location:"user_access_token_section"},e),linkAPI:e=>a.createElement(j.A,{href:"https://api.mattermost.com/#tag/authentication",location:"user_access_token_section"},e)}})):a.createElement("span",null,a.createElement(n.FormattedMessage,{id:"user.settings.tokens.description",defaultMessage:"<linkTokens>Personal access tokens</linkTokens> function similarly to session tokens and can be used by integrations to <linkAPI>authenticate against the REST API</linkAPI>.",values:{linkTokens:e=>a.createElement(j.A,{href:E.i3.PERSONAL_ACCESS_TOKENS,location:"user_access_token_section"},e),linkAPI:e=>a.createElement(j.A,{href:"https://api.mattermost.com/#tag/authentication",location:"user_access_token_section"},e)}})),this.state.tokenCreationState===Mt?r=a.createElement("div",{className:"pl-3"},a.createElement("div",{className:"row"},a.createElement("label",{className:"col-sm-auto control-label pr-3",htmlFor:"newTokenDescription"},a.createElement(n.FormattedMessage,{id:"user.settings.tokens.name",defaultMessage:"Token Description: "})),a.createElement("div",{className:"col-sm-5"},a.createElement("input",{id:"newTokenDescription",autoFocus:!0,ref:this.newtokendescriptionRef,className:"form-control",type:"text",maxLength:64,onKeyPress:this.saveTokenKeyPress}))),a.createElement("div",null,a.createElement("div",{className:"pt-3"},a.createElement(n.FormattedMessage,{id:"user.settings.tokens.nameHelp",defaultMessage:"Enter a description for your token to remember what it does."})),a.createElement("div",null,a.createElement("label",{id:"clientError",className:"has-error mt-2 mb-2"},this.state.tokenError)),a.createElement(vt.A,{savingMessage:a.createElement(n.FormattedMessage,{id:"user.settings.tokens.save",defaultMessage:"Save"}),saving:this.state.saving,onClick:this.confirmCreateToken}),a.createElement("button",{className:"btn btn-tertiary",onClick:this.stopCreatingToken},a.createElement(n.FormattedMessage,{id:"user.settings.tokens.cancel",defaultMessage:"Cancel"})))):this.state.tokenCreationState===yt?(0===t.length&&(e=" hidden"),r=a.createElement("div",{className:"alert alert-warning"},a.createElement(St.A,{additionalClassName:"mr-2"}),a.createElement(n.FormattedMessage,{id:"user.settings.tokens.copy",defaultMessage:"Please copy the access token below. You won't be able to see it again!"}),a.createElement("br",null),a.createElement("br",null),a.createElement("div",{className:"whitespace--nowrap overflow--ellipsis"},a.createElement(n.FormattedMessage,{id:"user.settings.tokens.name",defaultMessage:"Token Description: "}),this.state.newToken.description),a.createElement("div",{className:"whitespace--nowrap overflow--ellipsis"},a.createElement(n.FormattedMessage,{id:"user.settings.tokens.id",defaultMessage:"Token ID: "}),this.state.newToken.id),a.createElement("strong",{className:"word-break--all"},a.createElement(n.FormattedMessage,{id:"user.settings.tokens.token",defaultMessage:"Access Token: "}),this.state.newToken.token))):r=a.createElement("a",{className:"btn btn-primary",href:"#",onClick:this.startCreatingToken},a.createElement(n.FormattedMessage,{id:"user.settings.tokens.create",defaultMessage:"Create Token"}));const o=[];return o.push(a.createElement("div",{key:"tokensSetting",className:"pt-2"},a.createElement("div",{key:"tokenList"},a.createElement("div",{className:"alert alert-transparent"+e},t,s),r))),a.createElement("div",null,a.createElement(S.A,{title:a.createElement(n.FormattedMessage,{id:"user.settings.tokens.title",defaultMessage:"Personal Access Tokens"}),inputs:o,extraInfo:i,infoPosition:"top",serverError:this.state.serverError,updateSection:this.props.updateSection,isFullWidth:!0,saving:this.state.saving,cancelButtonText:a.createElement(n.FormattedMessage,{id:"user.settings.security.close",defaultMessage:"Close"})}),a.createElement(l.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}))}}const _t=(0,c.connect)((function(e){return{userAccessTokens:e.entities.users.myUserAccessTokens}
1}),(function(e){return{actions:(0,d.zH)({getUserAccessTokensForUser:u.GA,createUserAccessToken:u.NE,revokeUserAccessToken:u.XE,enableUserAccessToken:u.Yp,disableUserAccessToken:u.$q,clearUserAccessTokens:u.TH},e)}}))(At),Tt="password",Ct="signin",Nt="apps",kt="tokens";class wt extends a.PureComponent{constructor(e){super(e),this.state=this.getDefaultState()}getDefaultState(){return{currentPassword:"",newPassword:"",confirmPassword:"",serverError:"",tokenError:"",authService:this.props.user.auth_service,savingPassword:!1,authorizedApps:[]}}componentDidMount(){this.props.enableOAuthServiceProvider&&this.loadAuthorizedOAuthApps()}loadAuthorizedOAuthApps=async()=>{const e=await this.props.actions.getAuthorizedOAuthApps();if("data"in e){const{data:t}=e;this.setState({authorizedApps:t,serverError:null})}else if("error"in e){const{error:t}=e;this.setState({serverError:t.message})}};submitPassword=async()=>{const e=this.props.user,t=this.state.currentPassword,s=this.state.newPassword;if(!this.isPasswordValid())return;this.setState({savingPassword:!0});const a=await this.props.actions.updateUserPassword(e.id,t,s);if("data"in a)this.props.updateSection(""),this.props.actions.getMe(),this.setState(this.getDefaultState());else if("error"in a){const{error:e}=a,t=this.getDefaultState();e.message?t.serverError=e.message:t.serverError=e,this.setState(t)}};isPasswordValid=()=>{if(""===this.state.currentPassword)return!1;const{valid:e,error:t}=(0,pt.s)(this.state.newPassword,this.props.passwordConfig);return!(!e&&t)&&this.state.newPassword===this.state.confirmPassword};updateCurrentPassword=e=>{this.setState({currentPassword:e.target.value})};updateNewPassword=e=>{this.setState({newPassword:e.target.value})};updateConfirmPassword=e=>{this.setState({confirmPassword:e.target.value})};deauthorizeApp=async e=>{e.preventDefault();const t=e.currentTarget.getAttribute("data-app"),s=await this.props.actions.deauthorizeOAuthApp(t);if("data"in s){const e=this.state.authorizedApps.filter((e=>e.id!==t));this.setState({authorizedApps:e,serverError:null})}else if("error"in s){const{error:e}=s;this.setState({serverError:e.message})}};handleUpdateSection=e=>{if(e)this.props.updateSection(e);else{switch(this.props.activeSection){case"mfa":case Ct:case kt:case Nt:this.setState({serverError:null});break;case Tt:this.setState({currentPassword:"",newPassword:"",confirmPassword:"",serverError:null})}this.props.updateSection("")}};createPasswordSection=()=>{const e=[];let t;const s=this.props.activeSection===Tt;let i,r=null;if(s){if(""===this.props.user.auth_service)t=this.submitPassword,e.push(a.createElement("div",{key:"currentPasswordUpdateForm",className:"form-group"},a.createElement("label",{className:"col-sm-5 control-label",htmlFor:"currentPassword"},a.createElement(n.FormattedMessage,{id:"user.settings.security.currentPassword",defaultMessage:"Current Password"})),a.createElement("div",{className:"col-sm-7"},a.createElement(Te.A,{id:"currentPassword",name:"currentPassword",autoFocus:!0,t
1ype:"password",onChange:this.updateCurrentPassword,value:this.state.currentPassword,"aria-label":this.props.intl.formatMessage({id:"user.settings.security.currentPassword",defaultMessage:"Current Password"}),validate:e=>{if("string"!=typeof e||""===e)return{type:"error",value:a.createElement(n.FormattedMessage,{id:"user.settings.security.currentPasswordError",defaultMessage:"Please enter your current password."})}}})))),e.push(a.createElement("div",{key:"newPasswordUpdateForm",className:"form-group"},a.createElement("label",{className:"col-sm-5 control-label",htmlFor:"newPassword"},a.createElement(n.FormattedMessage,{id:"user.settings.security.newPassword",defaultMessage:"New Password"})),a.createElement("div",{className:"col-sm-7"},a.createElement(Te.A,{id:"newPassword",name:"newPassword",type:"password",onChange:this.updateNewPassword,value:this.state.newPassword,"aria-label":this.props.intl.formatMessage({id:"user.settings.security.newPassword",defaultMessage:"New Password"}),validate:e=>{const{valid:t,error:s}=(0,pt.s)(e,this.props.passwordConfig);if(!t)return{type:"error",value:s}}})))),e.push(a.createElement("div",{key:"retypeNewPasswordUpdateForm",className:"form-group"},a.createElement("label",{className:"col-sm-5 control-label",htmlFor:"confirmPassword"},a.createElement(n.FormattedMessage,{id:"user.settings.security.retypePassword",defaultMessage:"Retype New Password"})),a.createElement("div",{className:"col-sm-7"},a.createElement(Te.A,{id:"confirmPassword",name:"confirmPassword",type:"password",onChange:this.updateConfirmPassword,value:this.state.confirmPassword,"aria-label":this.props.intl.formatMessage({id:"user.settings.security.retypePassword",defaultMessage:"Retype New Password"}),validate:e=>{if("string"==typeof e)return this.state.newPassword!==e?{type:"error",value:a.createElement(n.FormattedMessage,{id:"user.settings.security.passwordMatchError",defaultMessage:"The new passwords you entered do not match."})}:void 0}}))));else{const t={[E.Ay.GITLAB_SERVICE]:this.props.intl.formatMessage({id:"user.settings.security.passwordGitlabCantUpdate",defaultMessage:"Login occurs through GitLab. Password cannot be updated."}),[E.Ay.LDAP_SERVICE]:this.props.intl.formatMessage({id:"user.settings.security.passwordLdapCantUpdate",defaultMessage:"Login occurs through AD/LDAP. Password cannot be updated."}),[E.Ay.SAML_SERVICE]:this.props.intl.formatMessage({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."}),[E.Ay.GOOGLE_SERVICE]:this.props.intl.formatMessage({id:"user.settings.security.passwordGoogleCantUpdate",defaultMessage:"Login occurs through Google Apps. Password cannot be updated."}),[E.Ay.OFFICE365_SERVICE]:this.props.intl.formatMessage({id:"user.settings.security.passwordOffice365CantUpdate",defaultMessage:"Login occurs through Entra ID. Password cannot be updated."}),[E.Ay.MAGIC_LINK_SERVICE]:this.props.intl.formatMessage({id:"user.settings.security.passwordMagicLinkCantUpdate",defaultMessage:"Login occurs via magic link. Password cannot be updated."})}[this.props.user.auth_service];t&&e.push(a.createElement("div",{key:"oauthEmailInfo",className:"form-group"},a.createElement("div",{className:"pb-3"},t)))}r=a.createElement(S.A,{title:a.createElement(n.FormattedMessage,{id:"user.settings.security.password",defaultMessage:"Password"}),inputs:e,submit:t,saving:this.state.savingPassword,serverError:this.state.serverError,updateSection:this.handleUpdateSection,isValid:this.isPasswordValid()})}if(""===this.props.user.auth_service){const e=new Date(this.props.user.last_password_update);i=a.createElement(n.FormattedMessage,{id:"user.settings.security.lastUpdated",defaultMessage:"Last updated {date} at {time}",values:{date:a.createElement(n.FormattedDate,{value:e,day:"2-digit",month:"short",year:"numeric"}),time:a.createElement(n.FormattedTime,{value:e,hour12:!this.props.militaryTime,hour:"2-digit",minute:"2-digit"})}})}else this.props.user.auth_service===E.Ay.GITLAB_SERVICE?i=a.createElement(n.FormattedMessage,{id:"user.settings.security.loginGitlab",defaultMessage:"Login done through GitLab"}):this.props.user.auth_service===E.Ay.LDAP_SERVICE?i=a.createElement(n.FormattedMessage,{id:"user.settings.security.loginLdap",defaultMessage:"Login done through AD/LDAP"}):this.props.user.auth_service===E.Ay.SAML_SERVICE?i=a.createElement(n.FormattedMessage,{id:"user.settings.security.loginSaml",defaultMessage:"Login done through SAML"}):this.props.user.auth_service===E.Ay.GOOGLE_SERVICE?i=a.createElement(n.FormattedMessage,{id:"user.settings.security.loginGoogle",defaultMessage:"Login done through Google Apps"}):this.props.user.auth_service===E.Ay.OFFICE365_SERVICE?i=a.createElement(n.FormattedMessage,{id:"user.settings.security.loginOffice365",defaultMessage:"Login done through Entra ID"}):this.props.user.auth_service===E.Ay.MAGIC_LINK_SERVICE&&(i=a.createElement(n.FormattedMessage,{id:"user.settings.security.loginMagicLink",defaultMessage:"Login done through Magic Link"}));return a.createElement(v.A,{active:s,areAllSectionsInactive:""===this.props.activeSection,title:a.createElement(n.FormattedMessage,{id:"user.settings.security.password",defaultMessage:"Password"}),describe:i,section:Tt,updateSection:this.handleUpdateSection,max:r})};createSignInSection=()=>{const e=this.props.user,t=this.props.activeSection===Ct;let s=null;if(t){let t,i,r,l,o,c,d;if(""===e.auth_service)this.props.enableSignUpWithGitLab&&(i=a.createElement("div",{className:"pb-3"},a.createElement($e.Link,{className:"btn btn-primary",to:"/claim/email_to_oauth?email="+encodeURIComponent(e.email)+"&old_type="+e.auth_service+"&new_type="+E.Ay.GITLAB_SERVICE},a.createElement(n.FormattedMessage,{id:"user.settings.security.switchGitlab",defaultMessage:"Switch to Using GitLab SSO"})),a.createElement("br",null))),this.props.enableSignUpWithGoogle&&(r=a.createElement("div",{className:"pb-3"},a.createElement($e.Link,{className:"btn btn-primary",to:"/claim/email_to_oauth?email="+encodeURIComponent(e.email)+"&old_type="+e.auth_service+"&new_type="+E.Ay.GOOGLE_SERVICE},a.createElement(n.FormattedMessage,{id:"user.settings.security.switchGoogle",defaultMessage:"Switch to Using Google SSO"})),a.createElement("br",null))),this.props.enableSignUpWithOffice365&&(l=a.createElement("div",{className:"pb-3"},a.createElement($e.Link,{className:"btn btn-primary",to:"/claim/email_to_oauth?email="+encodeURIComponent(e.email)+"&old_type="+e.auth_service+"&new_type="+E.Ay.OFFICE365_SERVICE},a.createElement(n.FormattedMessage,{id:"user.settings.security.switchOffice365",defaultMessage:"Switch to Using Entra ID SSO"})),a.createElement("br",null))),this.props.enableSignUpWithOpenId&&
1(o=a.createElement("div",{className:"pb-3"},a.createElement($e.Link,{className:"btn btn-primary",to:"/claim/email_to_oauth?email="+encodeURIComponent(e.email)+"&old_type="+e.auth_service+"&new_type="+E.Ay.OPENID_SERVICE},a.createElement(n.FormattedMessage,{id:"user.settings.security.switchOpenId",defaultMessage:"Switch to Using OpenID SSO"})),a.createElement("br",null))),this.props.enableLdap&&(c=a.createElement("div",{className:"pb-3"},a.createElement($e.Link,{className:"btn btn-primary",to:"/claim/email_to_ldap?email="+encodeURIComponent(e.email)},a.createElement(n.FormattedMessage,{id:"user.settings.security.switchLdap",defaultMessage:"Switch to Using AD/LDAP"})),a.createElement("br",null))),this.props.enableSaml&&(d=a.createElement("div",{className:"pb-3"},a.createElement($e.Link,{className:"btn btn-primary",to:"/claim/email_to_oauth?email="+encodeURIComponent(e.email)+"&old_type="+e.auth_service+"&new_type="+E.Ay.SAML_SERVICE},a.createElement(n.FormattedMessage,{id:"user.settings.security.switchSaml",defaultMessage:"Switch to Using SAML SSO"})),a.createElement("br",null)));else if(this.props.allowedToSwitchToEmail&&e.auth_service!==E.Ay.MAGIC_LINK_SERVICE){let s;s=e.auth_service===E.Ay.LDAP_SERVICE?"/claim/ldap_to_email?email="+encodeURIComponent(e.email):"/claim/oauth_to_email?email="+encodeURIComponent(e.email)+"&old_type="+e.auth_service,t=a.createElement("div",{className:"pb-3"},a.createElement($e.Link,{className:"btn btn-primary",to:s},a.createElement(n.FormattedMessage,{id:"user.settings.security.switchEmail",defaultMessage:"Switch to Using Email and Password"})),a.createElement("br",null))}const m=[];m.push(a.createElement("div",{key:"userSignInOption"},t,i,r,l,o,c,d));let u=a.createElement("span",null,a.createElement(n.FormattedMessage,{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."}));const p=e.auth_service===E.Ay.GOOGLE_SERVICE?a.createElement("div",{className:"pt-2"},a.createElement(n.FormattedMessage,{id:"user.settings.security.ssoUsernameSyncNote",defaultMessage:"Note: When using Google SSO, changes to your Google username or email do not automatically sync to Mattermost. To update your username, switch temporarily to email/password login, update your username, and then switch back to Google SSO."})):null;e.auth_service===E.Ay.MAGIC_LINK_SERVICE&&(u=a.createElement("span",null,a.createElement(n.FormattedMessage,{id:"user.settings.security.magicLinkInfo",defaultMessage:"Magic Link is the only sign-in method available for this account."}))),s=a.createElement(S.A,{title:this.props.intl.formatMessage({id:"user.settings.security.method",defaultMessage:"Sign-in Method"}),extraInfo:a.createElement(a.Fragment,null,u,p),inputs:m,serverError:this.state.serverError,updateSection:this.handleUpdateSection})}let i=a.createElement(n.FormattedMessage,{id:"user.settings.security.emailPwd",defaultMessage:"Email and Password"});return this.props.user.auth_service===E.Ay.GITLAB_SERVICE?i=a.createElement(n.FormattedMessage,{id:"user.settings.security.gitlab",defaultMessage:"GitLab"}):this.props.user.auth_service===E.Ay.GOOGLE_SERVICE?i=a.createElement(n.FormattedMessage,{id:"user.settings.security.google",defaultMessage:"Google"}):this.props.user.auth_service===E.Ay.OFFICE365_SERVICE?i=a.createElement(n.FormattedMessage,{id:"user.settings.security.office365",defaultMessage:"Entra ID"}):this.props.user.auth_service===E.Ay.OPENID_SERVICE?i=a.createElement(n.FormattedMessage,{id:"user.settings.security.openid",defaultMessage:"OpenID"}):this.props.user.auth_service===E.Ay.LDAP_SERVICE?i=a.createElement(n.FormattedMessage,{id:"user.settings.security.ldap",defaultMessage:"AD/LDAP"}):this.props.user.auth_service===E.Ay.SAML_SERVICE?i=a.createElement(n.FormattedMessage,{id:"user.settings.security.saml",defaultMessage:"SAML"}):this.props.user.auth_service===E.Ay.MAGIC_LINK_SERVICE&&(i=a.createElement(n.FormattedMessage,{id:"user.settings.security.magicLink",defaultMessage:"Magic Link"})),a.createElement(v.A,{active:t,areAllSectionsInactive:""===this.props.activeSection,title:this.props.intl.formatMessage({id:"user.settings.security.method",defaultMessage:"Sign-in Method"}),describe:i,section:Ct,updateSection:this.handleUpdateSection,max:s})};createOAuthAppsSection=()=>{const e=this.props.activeSection===Nt;let t=null;if(e){let e;e=this.state.authorizedApps&&this.state.authorizedApps.length>0?this.state.authorizedApps.map((e=>{const t=a.createElement(j.A,{href:e.homepage,location:"user_settings_security"},e.homepage);return a.createElement("div",{key:e.id,className:"pb-3 authorized-app"},a.createElement("div",{className:"col-sm-10"},a.createElement("div",{className:"authorized-app__name"},e.name,a.createElement("span",{className:"authorized-app__url"}," -"," ",t)),a.createElement("div",{className:"authorized-app__description"},e.description),a.createElement("div",{className:"authorized-app__deauthorize"},a.createElement("a",{href:"#","data-app":e.id,onClick:this.deauthorizeApp},a.createElement(n.FormattedMessage,{id:"user.settings.security.deauthorize",defaultMessage:"Deauthorize"})))),a.createElement("div",{className:"col-sm-2 pull-right"},a.createElement("img",{alt:e.name,src:e.icon_url||ut})),a.createElement("br",null))})):a.createElement("div",{className:"pb-3 authorized-app"},a.createElement("div",{className:"setting-list__hint"},a.createElement(n.FormattedMessage,{id:"user.settings.security.noApps",defaultMessage:"No OAuth 2.0 Applications are authorized."})));const s=[];let i,r;Array.isArray(e)&&(i="authorized-apps__wrapper",r=a.createElement("div",{className:"authorized-apps__help"},a.createElement(n.FormattedMessage,{id:"user.settings.security.oauthAppsHelp",defaultMessage:"Applications act on your behalf to access your data based on the permissions you grant them."}))),s.push(a.createElement("div",{className:i,key:"authorizedApps"},e));const l=a.createElement("div",null,a.createElement(n.FormattedMessage,{id:"user.settings.security.oauthApps",defaultMessage:"OAuth 2.0 Applications"}),r);t=a.createElement(S.A,{title:l,inputs:s,serverError:this.state.serverError,updateSection:this.handleUpdateSection,isFullWidth:!0,cancelButtonText:a.createElement(n.FormattedMessage,{id:"user.settings.security.close",defaultMessage:"Close"})})}return a.createElement(v.A,{active:e,areAllSectionsInactive:""===this.props.activeSection,title:this.props.intl.formatMessage({id:"user.settings.security.oauthApps",defaultMessage:"OAuth 2.0 Applications"}),describe:a.createElement(n.FormattedMessage,{id:"user.settings.security.oauthAppsDescription",defaultMessage:"Click 'Edit' to manage your OAuth 2.0 Applications"}),section:Nt,updateSection:this.handleUpdateSection,max:t})};render(){const e=this.props.user,t=this.createPasswordSection();let s,i,r,l=0;return l=this.props.enableSignUpWithGitLab?l+1:l,l=this.props.enableSignUpWithGoogle?l+1:l,l=this.props.enableSignUpWithOffice365?l+1:l,l=this.props.enableSignUpWithOpenId?l+1:l,l=this.props.enableLdap?l+1:l,l=this.props.enableSaml?l+1:l,(this.props.allowedToSwitchToEmail||""===e.auth_service)&&l>0&&this.props.experimentalEnableAuthenticationTransfer&&(s=this.createSignInSection()),this.props.enableOAuthServiceProvider&&(i=this.createOAuthAppsSection()),this.props.canUseA
1ccessTokens&&(r=a.createElement(_t,{user:this.props.user,active:this.props.activeSection===kt,areAllSectionsInactive:""===this.props.activeSection,updateSection:this.handleUpdateSection,setRequireConfirm:this.props.setRequireConfirm})),a.createElement("div",{id:"securitySettings","aria-labelledby":"securityButton",role:"tabpanel"},a.createElement(P.A,{closeModal:this.props.closeModal,collapseModal:this.props.collapseModal,text:a.createElement(n.FormattedMessage,{id:"user.settings.security.title",defaultMessage:"Security Settings"})}),a.createElement("div",{className:"user-settings"},a.createElement(I.A,{text:a.createElement(n.FormattedMessage,{id:"user.settings.security.title",defaultMessage:"Security Settings"})}),a.createElement("div",{className:"divider-dark first"}),t,a.createElement("div",{className:"divider-light"}),a.createElement(ft,{active:"mfa"===this.props.activeSection,areAllSectionsInactive:""===this.props.activeSection,updateSection:this.handleUpdateSection}),a.createElement("div",{className:"divider-light"}),i,a.createElement("div",{className:"divider-light"}),r,a.createElement("div",{className:"divider-light"}),s,a.createElement("div",{className:"divider-dark"}),a.createElement("br",null),a.createElement(mt.A,{className:"security-links color--link",modalId:"access_history",dialogType:tt,id:"viewAccessHistory"},a.createElement("i",{className:"icon icon-clock-outline",title:this.props.intl.formatMessage({id:"user.settings.security.viewHistory.icon",defaultMessage:"Access History Icon"}),"aria-hidden":"true"}),a.createElement(n.FormattedMessage,{id:"user.settings.security.viewHistory",defaultMessage:"View Access History"})),a.createElement(mt.A,{className:"security-links color--link mt-2",modalId:"activity_log",dialogType:dt,id:"viewAndLogOutOfActiveSessions"},a.createElement("i",{className:"icon icon-clock-outline",title:this.props.intl.formatMessage({id:"user.settings.security.logoutActiveSessions.icon",defaultMessage:"Active Sessions Icon"}),"aria-hidden":"true"}),a.createElement(n.FormattedMessage,{id:"user.settings.security.logoutActiveSessions",defaultMessage:"View and Log Out of Active Sessions"})),this.props.deleteAccountLink&&a.createElement(a.Fragment,null,a.createElement("p",null),a.createElement(j.A,{className:"security-links color--link mt-2 danger",href:this.props.deleteAccountLink,id:"deleteAccountLink",location:window.location.href},a.createElement("i",{className:"icon icon-trash-can-outline",title:this.props.intl.formatMessage({id:"user.settings.security.deleteAccountLink.icon",defaultMessage:"Delete Account Icon"}),"aria-hidden":"true"}),a.createElement(n.FormattedMessage,{id:"user.settings.security.deleteAccountLink",defaultMessage:"Delete Your Account"})))))}}const It=(0,n.injectIntl)(wt),Pt=(0,c.connect)((function(e,t){const s=(0,p.zj)(e),a="true"===s.EnableUserAccessTokens,i=qe.DA(t.user.roles)||qe.FV(t.user.roles);return{canUseAccessTokens:a&&i,enableOAuthServiceProvider:"true"===s.EnableOAuthServiceProvider,allowedToSwitchToEmail:"true"===s.EnableSignUpWithEmail&&("true"===s.EnableSignInWithEmail||"true"===s.EnableSignInWithUsername),enableSignUpWithGitLab:"true"===s.EnableSignUpWithGitLab,enableSignUpWithGoogle:"true"===s.EnableSignUpWithGoogle,enableSignUpWithOpenId:"true"===s.EnableSignUpWithOpenId,enableLdap:"true"===s.EnableLdap,enableSaml:"true"===s.EnableSaml,enableSignUpWithOffice365:"true"===s.EnableSignUpWithOffice365,experimentalEnableAuthenticationTransfer:"true"===s.ExperimentalEnableAuthenticationTransfer,passwordConfig:(0,p.OG)(e),militaryTime:(0,h.Jz)(e,E.pm.CATEGORY_DISPLAY_SETTINGS,E.pm.USE_MILITARY_TIME,!1),deleteAccountLink:s.DeleteAccountLink}}),(function(e){return{actions:(0,d.zH)({getMe:u.jp,updateUserPassword:u.ej,getAuthorizedOAuthApps:Ke.Zy,deauthorizeOAuthApp:Ke.ni},e)}}))(It),Ft=[{value:10,label:"10"},{value:15,label:"15"},{value:20,label:"20"},{value:40,label:"40"}];class Dt extends a.PureComponent{constructor(e){super(e),this.state={active:!1,limit:{value:20,label:"20"},isSaving:!1},this.minRef=a.createRef()}static getDerivedStateFromProps(e,t){return e.active!==t.active?e.active&&!t.active?{limit:Ft.find((t=>t.value===e.dmGmLimit)),active:e.active}:{active:e.active}:e.active?null:{limit:Ft.find((t=>t.value===e.dmGmLimit))}}focusEditButton(){this.minRef.current?.focus()}componentDidUpdate(e){e.active&&!this.props.active&&this.props.areAllSectionsInactive&&this.focusEditButton()}handleChange=e=>{e&&"value"in e&&this.setState({limit:e})};handleSubmit=async()=>{this.props.userId&&(this.setState({isSaving:!0}),await this.props.savePreferences(this.props.userId,[{user_id:this.props.userId,category:b.pm.CATEGORY_SIDEBAR_SETTINGS,name:b.pm.LIMIT_VISIBLE_DMS_GMS,value:this.state.limit.value.toString()}]),this.setState({isSaving:!1}),this.props.updateSection(""))};renderDescription=()=>a.createElement("span",null,this.state.limit.label);render(){const e=a.createElement(n.FormattedMessage,{id:"user.settings.sidebar.limitVisibleGMsDMsTitle",defaultMessage:"Number of direct messages to show"});return this.props.active?a.createElement(S.A,{title:e,inputs:a.createElement("fieldset",null,a.createElement("legend",{className:"form-legend hidden-label"},e),a.createElement(ie.Ay,{className:"react-select",classNamePrefix:"react-select",id:"limitVisibleGMsDMs",options:Ft,isClearable:!1,onChange:this.handleChange,value:this.state.limit,isSearchable:!1,menuPortalTarget:document.body,styles:Lt}),a.createElement("div",{className:"mt-5"},a.createElement(n.FormattedMessage,{id:"user.settings.sidebar.limitVisibleGMsDMsDesc",defaultMessage:"You can also change these settings in the direct messages sidebar menu."}))),submit:this.handleSubmit,saving:this.state.isSaving,updateSection:this.props.updateSection}):a.createElement(A.A,{title:e,describe:this.renderDescription(),section:"limitVisibleGMsDMs",updateSection:this.props.updateSection,ref:this.minRef})}}const Lt={menuPortal:e=>({...e,zIndex:9999})}
1,Ot={savePreferences:m.SF},Rt=(0,c.connect)((function(e,t){const s=t.adminMode&&t.userPreferences?t.userPreferences:void 0;return{userId:t.adminMode?t.userId:(0,g.WR)(e),dmGmLimit:(0,h.pR)(e,s)}}),Ot)(Dt);class xt extends a.PureComponent{constructor(e){super(e),this.state={active:!1,checked:!1,isSaving:!1},this.minRef=a.createRef()}static getDerivedStateFromProps(e,t){return e.active!==t.active?e.active&&!t.active?{checked:e.showUnreadsCategory,active:e.active}:{active:e.active}:null}focusEditButton(){this.minRef.current?.focus()}handleChange=e=>{this.setState({checked:"true"===e.target.value}),(0,y.b6)(e.target)};handleSubmit=async()=>{this.props.userId&&(this.setState({isSaving:!0}),await this.props.savePreferences(this.props.userId,[{user_id:this.props.userId,category:b.pm.CATEGORY_SIDEBAR_SETTINGS,name:b.pm.SHOW_UNREAD_SECTION,value:this.state.checked.toString()}]),this.setState({isSaving:!1}),this.props.updateSection(""))};renderDescription=()=>this.props.showUnreadsCategory?a.createElement(n.FormattedMessage,{id:"user.settings.sidebar.on",defaultMessage:"On"}):a.createElement(n.FormattedMessage,{id:"user.settings.sidebar.off",defaultMessage:"Off"});componentDidUpdate(e){e.active&&!this.props.active&&this.props.areAllSectionsInactive&&this.focusEditButton()}render(){const e=a.createElement(n.FormattedMessage,{id:"user.settings.sidebar.showUnreadsCategoryTitle",defaultMessage:"Group unread channels separately"});return this.props.active?a.createElement(S.A,{title:e,inputs:a.createElement("fieldset",null,a.createElement("legend",{className:"form-legend hidden-label"},e),a.createElement("div",{className:"radio"},a.createElement("label",null,a.createElement("input",{"data-testid":"showUnreadsCategoryOn",type:"radio",name:"showUnreadsCategory",checked:this.state.checked,onChange:()=>this.setState({checked:!0})}),a.createElement(n.FormattedMessage,{id:"user.settings.sidebar.on",defaultMessage:"On"})),a.createElement("br",null)),a.createElement("div",{className:"radio"},a.createElement("label",null,a.createElement("input",{"data-testid":"showUnreadsCategoryOff",type:"radio",name:"showUnreadsCategory",checked:!this.state.checked,onChange:()=>this.setState({checked:!1})}),a.createElement(n.FormattedMessage,{id:"user.settings.sidebar.off",defaultMessage:"Off"})),a.createElement("br",null)),a.createElement("div",{className:"mt-5"},a.createElement(n.FormattedMessage,{id:"user.settings.sidebar.showUnreadsCategoryDesc",defaultMessage:"When enabled, all unread channels and direct messages will be grouped together in the sidebar."}))),submit:this.handleSubmit,saving:this.state.isSaving,updateSection:this.props.updateSection}):a.createElement(A.A,{title:e,describe:this.renderDescription(),section:"showUnreadsCategory",updateSection:this.props.updateSection,ref:this.minRef})}}const Ut={savePreferences:m.SF},Bt=(0,c.connect)((function(e,t){const s=t.adminMode&&t.userPreferences?t.userPreferences:void 0;return{userId:t.adminMode?t.userId:(0,g.WR)(e),showUnreadsCategory:(0,h.pE)(e,s)}}),Ut)(xt),Gt=function(e){return a.createElement("div",{id:"sidebarSettings","aria-labelledby":"sidebarButton",role:"tabpanel"},a.createElement(P.A,{closeModal:e.closeModal,collapseModal:e.collapseModal,text:a.createElement(n.FormattedMessage,{id:"user.settings.sidebar.title",defaultMessage:"Sidebar Settings"})}),a.createElement("div",{id:"sidebarTitle",className:"user-settings"},a.createElement(I.A,{text:a.createElement(n.FormattedMessage,{id:"user.settings.sidebar.title",defaultMessage:"Sidebar Settings"})}),a.createElement("div",{className:"divider-dark first"}),a.createElement(Bt,{active:"showUnreadsCategory"===e.activeSection,updateSection:e.updateSection,areAllSectionsInactive:""===e.activeSection,adminMode:e.adminMode,userId:e.userId,userPreferences:e.userPreferences}),a.createElement("div",{className:"divider-dark"}),a.createElement(Rt,{active:"limitVisibleGMsDMs"===e.activeSection,updateSection:e.updateSection,areAllSectionsInactive:""===e.activeSection,adminMode:e.adminMode,userId:e.userId,userPreferences:e.userPreferences}),a.createElement("div",{className:"divider-dark"})))};function Yt(e){return"profile"===e.activeTab?a.createElement("div",null,a.createElement(Fe,{user:e.user,activeSection:e.activeSection,updateSection:e.updateSection,updateTab:e.updateTab,closeModal:e.closeModal,collapseModal:e.collapseModal})):"security"===e.activeTab?a.createElement("div",null,a.createElement(Pt,{user:e.user,activeSection:e.activeSection,updateSection:e.updateSection,closeModal:e.closeModal,collapseModal:e.collapseModal,setRequireConfirm:e.setRequireConfirm})):"notifications"===e.activeTab?a.createElement("div",null,a.createElement(xe,{user:e.user,activeSection:e.activeSection,updateSection:e.updateSection,closeModal:e.closeModal,collapseModal:e.collapseModal,adminMode:e.adminMode,userPreferences:e.userPreferences})):"display"===e.activeTab?a.createElement("div",null,a.createElement(ge,{user:e.user,activeSection:e.activeSection,updateSection:e.updateSection,closeModal:e.closeModal,collapseModal:e.collapseModal,setRequireConfirm:e.setRequireConfirm,adminMode:e.adminMode,userPreferences:e.userPreferences})):"sidebar"===e.activeTab?a.createElement("div",null,a.createElement(Gt,{activeSection:e.activeSection,updateSection:e.updateSection,closeModal:e.closeModal,collapseModal:e.collapseModal,adminMode:e.adminMode,userId:e.user.id,userPreferences:e.userPreferences})):"advanced"===e.activeTab?a.createElement("div",null,a.createElement(L,{activeSection:e.activeSection,updateSection:e.updateSection,closeModal:e.closeModal,collapseModal:e.collapseModal,adminMode:e.adminMode,user:e.user,userPreferences:e.userPreferences})):e.activeTab&&e.pluginSettings[e.activeTab]?a.createElement("div",null,a.createElement(Je,{activeSection:e.activeSection,updateSection:e.updateSection,closeModal:e.closeModal,collapseModal:e.collapseModal,settings:e.pluginSettings[e.activeTab]})):null}var zt=s(53654);const Vt=e=>{let{loading:t,children:s,className:i,onLoaded:n}=e;const[r,l]=(0,a.useState)(!1);return(0,a.useEffect)((()=>{setTimeout((()=>{l(!0)}),1e3)}),[]),(0,a.useEffect)((()=>{!t&&r&&n()}),[t,r,n]),t||!r?a.createElement("div",{className:`SmartLoader ${i}`},s):null};var Ht=s(30138),jt=s(98480);class Wt extends a.PureComponent{constructor(e){super(e),this.state={active_tab:e.activeTab??(e.isContentProductSettings?"notifications":"profile"),active_section:"",showConfirmModal:!1,enforceFocus:!0,show:!0,resendStatus:"",loading:!1},this.requireConfirm=!1,this.customConfirmAction=null,this.afterConfirm=null,this.modalBodyRef=a.createRef()}handleResend=e=>{this.setState({resendStatus:"sending"}),this.props.actions.sendVerificationEmail(e).then((e=>{let{data:t,error:s}=e;t?this.setState({resendStatus:"success"}):s&&this.setState({resendStatus:"failure"})}))};componentDidMount(){document.addEventListener("keydown",this.handleKeyDown),this.props.adminMode&&this.props.userID&&(this.setState({loading:!0}),this.props.userPreferences||this.props.actions.getUserPreferences(this.props.userID),this.props.user||this.props.actions.getUser(this.props.userID)),this.props.adminMode||this.setState({loading:!1})}componentWillUnmount(){document.removeEventListener("keydown",this.handleKeyDown)}componentDidUpdate(e,t){this.state.active_tab!==t.active_tab&&this.modalBodyRef.current&&(this.modalBodyRef.current.scrollTop=0)}setLoadingFinished=()=>{this.setState({loading:!1})};handleKeyDown=e=>{(0,ne.r)(e)&&e.shiftKey&&(0,ne.e)(e,E.Ay.KeyCodes.A)&&(e.preventDefault(),this.handleHide())};handleHide=()=>{this.requireConfirm?this.showConfirmModal((()=>this.handleHide())):((0,jt.$c)(),this.setState({show:!1}))};handleHidden=()=>{this.setState({active_tab:this.props.isContentProductSettings?"notifications":"profile",active_section:""}),this.props.focusOriginElement&&(0,Ht.p)(this.props.focusOriginElement,!0),this.props.onExited()};handleCollapse=()=>{i.findDOMNode(this.modalBodyRef.current).closest(".modal-dialog").classList.remove("display--content"),this.setState({active_tab:"",active_section:""})};handleConfirm=()=>{this.setState({showConfirmModal:!1,enforceFocus:!0}),this.requireConfirm=!1,this.customConfirmAction=null,this.afterConfirm&&(this.afterConfirm(),this.afterConfirm=null)};handleCancelConfirmation=()=>{this.setState({showConfirmModal:!1,enforceFocus:!0}),this.afterConfirm=null};showConfirmModal=e=>{e&&(this.afterConfirm=e),this.customConfirmAction?this.customConfirmAction(this.handleConfirm):this.setState({showConfirmModal:!0,enforceFocus:!1})};closeModal=()=>{this.requireConfirm?this.showConfirmModal(this.closeModal):this.handleHide()};collapseModal=()=>{this.requireConfirm?this.showConfirmModal(this.collapseModal):this.handleCollapse()};updateTab=(e,t)=>
1{!t&&this.requireConfirm?this.showConfirmModal((()=>this.updateTab(e,!0))):this.setState({active_tab:e,active_section:""})};updateSection=(e,t)=>{!t&&this.requireConfirm?this.showConfirmModal((()=>this.updateSection(e,!0))):this.setState({active_section:e??""})};getUserSettingsTabs=()=>{const{formatMessage:e}=this.props.intl;return[{name:"notifications",uiName:e({id:"user.settings.modal.notifications",defaultMessage:"Notifications"}),icon:"icon icon-bell-outline",iconTitle:e({id:"user.settings.notifications.icon",defaultMessage:"Notification Settings Icon"})},{name:"display",uiName:e({id:"user.settings.modal.display",defaultMessage:"Display"}),icon:"icon icon-eye-outline",iconTitle:e({id:"user.settings.display.icon",defaultMessage:"Display Settings Icon"})},{name:"sidebar",uiName:e({id:"user.settings.modal.sidebar",defaultMessage:"Sidebar"}),icon:"icon icon-dock-left",iconTitle:e({id:"user.settings.sidebar.icon",defaultMessage:"Sidebar Settings Icon"})},{name:"advanced",uiName:e({id:"user.settings.modal.advanced",defaultMessage:"Advanced"}),icon:"icon icon-tune",iconTitle:e({id:"user.settings.advance.icon",defaultMessage:"Advanced Settings Icon"})}]};getProfileSettingsTab=()=>{const{formatMessage:e}=this.props.intl;return[{name:"profile",uiName:e({id:"user.settings.modal.profile",defaultMessage:"Profile Settings"}),icon:"icon icon-settings-outline",iconTitle:e({id:"user.settings.profile.icon",defaultMessage:"Profile Settings Icon"})},{name:"security",uiName:e({id:"user.settings.modal.security",defaultMessage:"Security"}),icon:"icon icon-lock-outline",iconTitle:e({id:"user.settings.security.icon",defaultMessage:"Security Settings Icon"})}]};getPluginsSettingsTab=()=>Object.values(this.props.pluginSettings).map((e=>{const t=e.icon&&((0,Ce.AY)(e.icon)||e.icon.startsWith("/")),s=e.icon?`icon ${e.icon}`:"icon icon-power-plug-outline";return{name:e.id,uiName:e.uiName,icon:t?{url:e.icon}:s,iconTitle:e.uiName}}));render(){const{formatMessage:e}=this.props.intl;let t;t=this.props.adminMode&&this.props.user?e({id:"userSettings.adminMode.modal_header",defaultMessage:"Manage {userDisplayName}'s Settings"},{userDisplayName:(0,y.Mn)(this.props.user)}):this.props.isContentProductSettings?e({id:"global_header.productSettings",defaultMessage:"Settings"}):e({id:"user.settings.modal.title",defaultMessage:"Profile"});const s=a.createElement("div",{className:"UserSettingsModal__headerWrapper",id:"accountSettingsHeader"},a.createElement("span",{id:"accountSettingsModalLabel",className:"modal-header__title"},t),this.props.adminMode&&a.createElement("div",{className:"adminModeBadge"},a.createElement(n.FormattedMessage,{id:"userSettings.adminMode.admin_mode_badge",defaultMessage:"Admin Mode"})));return a.createElement(r.zW,{id:"accountSettingsModal",className:"a11y__modal settings-modal UserSettingsModal",show:this.state.show,onHide:this.handleHide,onExited:this.handleHidden,ariaLabel:t,compassDesign:!0,enforceFocus:this.state.enforceFocus,bodyPadding:!1,modalHeaderText:s,modalLocation:"top",delayFocusTrap:!0},a.createElement("div",{ref:this.modalBodyRef},this.props.adminMode&&a.createElement(Vt,{loading:this.props.adminMode&&(!this.props.userPreferences||!this.props.user),className:"loadingIndicator",onLoaded:this.setLoadingFinished},a.createElement(zt.A,null)),!this.state.loading&&this.props.user&&a.createElement(a.Fragment,null,a.createElement("div",{className:"settings-table"},a.createElement("div",{className:"settings-links"},a.createElement(o.default,{tabs:this.props.isContentProductSettings?this.getUserSettingsTabs():this.getProfileSettingsTab(),pluginTabs:this.props.isContentProductSettings?this.getPluginsSettingsTab():[],activeTab:this.state.active_tab,updateTab:this.updateTab})),a.createElement("div",{className:"settings-content minimize-settings"},a.createElement(Yt,{activeTab:this.state.active_tab,activeSection:this.state.active_section,updateSection:this.updateSection,updateTab:this.updateTab,closeModal:this.closeModal,collapseModal:this.collapseModal,setRequireConfirm:(e,t)=>{this.requireConfirm=e||!1,this.customConfirmAction=t||null},pluginSettings:this.props.pluginSettings,user:this.props.user,adminMode:this.props.adminMode,userPreferences:this.props.userPreferences}))))),a.createElement(l.A,{title:e({id:"user.settings.modal.confirmTitle",defaultMessage:"Discard Changes?"}),message:e({id:"user.settings.modal.confirmMsg",defaultMessage:"You have unsaved changes, are you sure you want to discard them?"}),confirmButtonText:e({id:"user.settings.modal.confirmBtns",defaultMessage:"Yes, Discard"}),show:this.state.showConfirmModal,onConfirm:this.handleConfirm,onCancel:this.handleCancelConfirmation}))}}const Jt=(0,n.injectIntl)(Wt)}
1,8589(e,t,s){s.d(t,{A:()=>o});var a=s(71633),i=s.n(a),n=s(36418),r=s(14778),l=s(85406);const o=function(e){let{title:t,description:s,content:a,className:o,error:c,descriptionAboveContent:d=!1,isContentInline:m=!1,dataTestId:u}=e;const{formatMessage:p}=(0,r.useIntl)(),h=t&&n.createElement("h4",{"data-testid":"mm-modal-generic-section-item__title",className:"mm-modal-generic-section-item__title"},t),g=s&&n.createElement("p",{"data-testid":"mm-modal-generic-section-item__description",className:"mm-modal-generic-section-item__description"},s),E=c&&n.createElement("div",{"data-testid":"mm-modal-generic-section-item__error",className:"mm-modal-generic-section-item__error"},n.createElement(l.AlertCircleOutlineIcon,null),p({id:c.id,defaultMessage:c.defaultMessage},c.values));return n.createElement("div",{"data-testid":u,className:i()("mm-modal-generic-section-item",o)},h,d?g:void 0,n.createElement("div",{"data-testid":"mm-modal-generic-section-item__content",className:i()("mm-modal-generic-section-item__content",{inline:m})},a),d?void 0:g,E)}},63867(e,t,s){s.d(t,{O:()=>i}),s(36418),s(14778);var a=s(45036);s(8589);const i=(e,t)=>(0,a.H6)(t.formatMessage,e.label)||""}}]);
2//# sourceMappingURL=6445.be43bc3703530cb26452.js.map

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.