mattermost-community-enterp.../client/7424.f22c8abb23492e788a7b.js
2025-12-18 00:51:24 +09:00

2 lines
256 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"use strict";(self.webpackChunkmattermost_webapp=self.webpackChunkmattermost_webapp||[]).push([[7424,5215],{83975:(e,t,s)=>{s.d(t,{QI:()=>n,lg:()=>o,sk:()=>r});var a=s(31435),i=s(23894);function n(e){return(t,s)=>{const n=(0,i.rc)(s());return t(a.zP(n,!0,e))}}function r(){return(e,t)=>{const s=(0,i.rc)(t());return e(a.zP(s,!1))}}function o(){return(e,t)=>{const s=(0,i.rc)(t());return e(a.lg(s))}}},35215:(e,t,s)=>{s.r(t),s.d(t,{default:()=>p});var a=s(70314),i=s(61057),n=(s(92189),s(84390)),r=s.n(n),o=s(72060),l=s(23712),c=s(35887),d=s(70174);function u(e,t,s){return(t=function(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var s=e[Symbol.toPrimitive];if(void 0!==s){var a=s.call(e,"string");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}class m extends r().PureComponent{constructor(e){super(e),u(this,"handleClick",((e,t)=>{var s;t.preventDefault(),this.props.updateTab(e.name),null===(s=t.target.closest(".settings-modal"))||void 0===s||s.classList.add("display--content")})),u(this,"handleKeyUp",((e,t)=>{(0,c.p)(t,l.default.KeyCodes.UP)?e>0&&(this.props.updateTab(this.props.tabs[e-1].name),(0,d.Y_)(this.buttonRefs[e-1].current)):(0,c.p)(t,l.default.KeyCodes.DOWN)&&e<this.props.tabs.length-1&&(this.props.updateTab(this.props.tabs[e+1].name),(0,d.Y_)(this.buttonRefs[e+1].current))})),this.buttonRefs=this.props.tabs.map((()=>r().createRef()))}renderTab(e,t){const s="".concat(e.name,"_li"),a=this.props.activeTab===e.name;let i,n="";return a&&(n="active"),i="string"==typeof e.icon?r().createElement("i",{className:e.icon,title:e.iconTitle}):r().createElement("img",{src:e.icon.url,alt:e.iconTitle,className:"icon"}),r().createElement("li",{id:"".concat(e.name,"Li"),key:s,className:n,role:"presentation"},r().createElement("button",{ref:this.buttonRefs[t],id:"".concat(e.name,"Button"),className:"cursor--pointer style--none",onClick:this.handleClick.bind(null,e),onKeyUp:this.handleKeyUp.bind(null,t),"aria-label":e.uiName.toLowerCase(),role:"tab","aria-selected":a,tabIndex:a||this.props.isMobileView?0:-1},i,e.uiName))}render(){var e;const t=this.props.tabs.map(((e,t)=>this.renderTab(e,t)));let s;return null!==(e=this.props.pluginTabs)&&void 0!==e&&e.length&&(s=r().createElement(r().Fragment,null,r().createElement("hr",null),r().createElement("li",{key:"plugin preferences heading",role:"heading",className:"header"},r().createElement(o.FormattedMessage,{id:"userSettingsModal.pluginPreferences.header",defaultMessage:"PLUGIN PREFERENCES"})),this.props.pluginTabs.map(((e,t)=>this.renderTab(e,t))))),r().createElement("div",null,r().createElement("ul",{id:"tabList",className:"nav nav-pills nav-stacked",role:"tablist","aria-orientation":"vertical"},t,s))}}const p=(0,a.connect)((function(e){return{isMobileView:(0,i.E7)(e)}}))(m)},87424:(e,t,s)=>{s.r(t),s.d(t,{default:()=>Ma});var a=s(23615),i=s.n(a),n=(s(90938),s(92189),s(84390)),r=s.n(n),o=s(11313),l=s(69372),c=s.n(l),d=s(72060),u=s(6564),m=s(35215),p=(s(40895),s(70314)),h=s(36891),g=s(32394),f=s(31435),E=s(19601),v=s(83905),b=s(23894),S=s(23712),y=(s(61418),s(68679)),M=(s(14078),s(60042)),N=s.n(M),_=s(5938),T=s(70174);function C(e,t,s){return(t=function(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var s=e[Symbol.toPrimitive];if(void 0!==s){var a=s.call(e,"string");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}class k extends r().PureComponent{constructor(){super(...arguments),C(this,"edit",null),C(this,"getEdit",(e=>{this.edit=e})),C(this,"handleClick",(e=>{this.props.isDisabled||(e.preventDefault(),this.props.updateSection(this.props.section))}))}focus(){(0,T.Y_)(this.edit)}render(){let e;return e=this.props.isDisabled?this.props.collapsedEditButtonWhenDisabled?this.props.collapsedEditButtonWhenDisabled:null:r().createElement("button",{ref:this.getEdit,id:this.props.section+"Edit",className:"color--link style--none section-min__edit",onClick:this.handleClick,"aria-labelledby":this.props.section+"Title "+this.props.section+"Edit","aria-expanded":!1},r().createElement(_.Z,null),r().createElement(d.FormattedMessage,{id:"setting_item_min.edit",defaultMessage:"Edit"})),r().createElement("div",{className:N()("section-min",{isDisabled:this.props.isDisabled}),onClick:this.handleClick},r().createElement("div",{className:"secion-min__header"},r().createElement("h4",{id:this.props.section+"Title",className:N()("section-min__title",{isDisabled:this.props.isDisabled})},this.props.title),e),r().createElement("div",{id:this.props.section+"Desc",className:N()("section-min__describe",{isDisabled:this.props.isDisabled})},this.props.describe))}}C(k,"propTypes",{title:i().node.isRequired,isDisabled:i().bool,section:i().string.isRequired,updateSection:i().func.isRequired,describe:i().node,collapsedEditButtonWhenDisabled:i().node});var A=s(72599);const I=e=>{let{active:t,areAllSectionsInactive:s,section:a,max:i,updateSection:o,title:l,isDisabled:c,describe:d,collapsedEditButtonWhenDisabled:u}=e;const m=(0,n.useRef)(null);return(0,A.Z)((()=>{var e;!t&&s&&(null===(e=m.current)||void 0===e||e.focus())}),[t]),t?r().createElement(r().Fragment,null,i):r().createElement(k,{ref:m,title:l,updateSection:o,describe:d,section:a,isDisabled:c,collapsedEditButtonWhenDisabled:u})};I.propTypes={active:i().bool.isRequired,areAllSectionsInactive:i().bool.isRequired,section:i().string.isRequired,max:i().node,updateSection:i().func.isRequired,title:i().node,isDisabled:i().bool,describe:i().node,collapsedEditButtonWhenDisabled:i().node};const P=r().memo(I);var w=s(45901),R=s(35887);function O(e,t,s){return(t=function(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var s=e[Symbol.toPrimitive];if(void 0!==s){var a=s.call(e,"string");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}class D extends r().PureComponent{constructor(e){super(e),O(this,"onKeyDown",(e=>{const t=e.target;this.props.shiftEnter&&(0,R.p)(e,S.default.KeyCodes.ENTER)&&e.shiftKey||!0!==this.props.disableEnterSubmit&&(0,R.p)(e,S.default.KeyCodes.ENTER)&&this.props.submit&&"SELECT"!==t.tagName&&t.parentElement&&"react-select__input"!==t.parentElement.className&&!t.classList.contains("btn-tertiary")&&this.settingList.current&&this.settingList.current.contains(t)&&this.handleSubmit(e)})),O(this,"handleSubmit",(e=>{e.preventDefault(),this.props.setting&&this.props.submit?this.props.submit(this.props.setting):this.props.submit&&this.props.submit()})),O(this,"handleUpdateSection",(e=>{this.props.updateSection&&this.props.updateSection(this.props.section),e.preventDefault()})),this.settingList=r().createRef()}componentDidMount(){if(this.settingList.current){const e=this.settingList.current.querySelectorAll('.btn:not(.save-button):not(.btn-tertiary), input.form-control, input[type="radio"][checked], input[type="checkbox"], select, textarea, [tabindex]:not([tabindex="-1"])');e.length>0?(0,T.Y_)(e[0]):(0,T.Y_)(this.settingList.current)}document.addEventListener("keydown",this.onKeyDown)}componentWillUnmount(){document.removeEventListener("keydown",this.onKeyDown)}render(){let e=null;this.props.clientError&&(e=r().createElement("div",{className:"form-group"},r().createElement("label",{id:"clientError",className:"col-sm-12 has-error"},this.props.clientError)));let t=null;this.props.serverError&&(t=r().createElement("div",{className:"form-group"},r().createElement("label",{id:"serverError",className:"col-sm-12 has-error"},this.props.serverError)));let s=null,a="setting-list__hint";"top"===this.props.infoPosition&&(a="pb-3"),this.props.extraInfo&&(s=r().createElement("div",{id:"extraInfo",className:a},this.props.extraInfo));let i=null;this.props.submit&&(i=r().createElement(w.Z,{defaultMessage:this.props.saveButtonText,saving:this.props.saving,disabled:this.props.saving,onClick:this.handleSubmit,btnClass:this.props.saveButtonClassName}));const n=this.props.inputs;let o;this.props.title&&(o=r().createElement("h4",{id:"settingTitle",className:"col-sm-12 section-title"},this.props.title));let l,c=r().createElement("div",{className:"setting-list-item"},n,s);return"top"===this.props.infoPosition&&(c=r().createElement("div",null,s,n)),l=this.props.cancelButtonText?this.props.cancelButtonText:r().createElement(d.FormattedMessage,{id:"setting_item_max.cancel",defaultMessage:"Cancel"}),r().createElement("section",{className:"section-max form-horizontal ".concat(this.props.containerStyle)},o,r().createElement("div",{className:N()("sectionContent",{"col-sm-12":this.props.isFullWidth,"col-sm-10 col-sm-offset-2":!this.props.isFullWidth})},r().createElement("div",{tabIndex:-1,ref:this.settingList,className:"setting-list"},c,r().createElement("div",{className:"setting-list-item"},r().createElement("hr",null),this.props.submitExtra,t,e,i,r().createElement("button",{id:"cancelSetting",className:"btn btn-tertiary",onClick:this.handleUpdateSection},l)))))}}O(D,"defaultProps",{infoPosition:"bottom",saving:!1,section:"",containerStyle:""});var F=s(21214),L=s(97042);function x(e,t,s){return(t=function(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var s=e[Symbol.toPrimitive];if(void 0!==s){var a=s.call(e,"string");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}class U extends r().PureComponent{constructor(e){super(e),x(this,"handleOnChange",(e=>{const t=e.currentTarget.value;this.setState({joinLeaveState:t}),(0,T.Y_)(e.currentTarget)})),x(this,"handleUpdateSection",(e=>{e||this.setState({joinLeaveState:this.props.joinLeave}),this.props.onUpdateSection(e)})),x(this,"handleSubmit",(()=>{const{actions:e,userId:t,onUpdateSection:s}=this.props,a={category:L.Preferences.CATEGORY_ADVANCED_SETTINGS,user_id:t,name:L.Preferences.ADVANCED_FILTER_JOIN_LEAVE,value:this.state.joinLeaveState};e.savePreferences(t,[a]),s()})),this.state={joinLeaveState:e.joinLeave},this.minRef=r().createRef()}focusEditButton(){var e;null===(e=this.minRef.current)||void 0===e||e.focus()}componentDidUpdate(e){e.active&&!this.props.active&&this.props.areAllSectionsInactive&&this.focusEditButton()}render(){const{joinLeaveState:e}=this.state;return this.props.active?r().createElement(D,{title:r().createElement(d.FormattedMessage,{id:"user.settings.advance.joinLeaveTitle",defaultMessage:"Enable Join/Leave Messages"}),inputs:[r().createElement("fieldset",{key:"joinLeaveSetting"},r().createElement("legend",{className:"form-legend hidden-label"},r().createElement(d.FormattedMessage,{id:"user.settings.advance.joinLeaveTitle",defaultMessage:"Enable Join/Leave Messages"})),r().createElement("div",{className:"radio"},r().createElement("label",null,r().createElement("input",{id:"joinLeaveOn",type:"radio",value:"true",name:S.ZE.JOIN_LEAVE,checked:"true"===e,onChange:this.handleOnChange}),r().createElement(d.FormattedMessage,{id:"user.settings.advance.on",defaultMessage:"On"})),r().createElement("br",null)),r().createElement("div",{className:"radio"},r().createElement("label",null,r().createElement("input",{id:"joinLeaveOff",type:"radio",value:"false",name:S.ZE.JOIN_LEAVE,checked:"false"===e,onChange:this.handleOnChange}),r().createElement(d.FormattedMessage,{id:"user.settings.advance.off",defaultMessage:"Off"})),r().createElement("br",null)),r().createElement("div",{className:"mt-5"},r().createElement(d.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:S.ZE.JOIN_LEAVE,submit:this.handleSubmit,saving:this.state.isSaving,serverError:this.state.serverError,updateSection:this.handleUpdateSection}):r().createElement(k,{title:r().createElement(d.FormattedMessage,{id:"user.settings.advance.joinLeaveTitle",defaultMessage:"Enable Join/Leave Messages"}),describe:this.props.renderOnOffLabel(e),section:S.ZE.JOIN_LEAVE,updateSection:this.handleUpdateSection,ref:this.minRef})}}const B=(0,p.connect)((function(e,t){const s="true"===(0,E.iE)(e).EnableJoinLeaveMessageByDefault,a=t.adminMode&&t.userPreferences?t.userPreferences:void 0;return{userId:t.adminMode?t.userId:(0,b.rc)(e),joinLeave:(0,v.U2)(e,L.Preferences.CATEGORY_ADVANCED_SETTINGS,L.Preferences.ADVANCED_FILTER_JOIN_LEAVE,s.toString(),a)}}),(function(e){return{actions:(0,h.bindActionCreators)({savePreferences:g.$A},e)}}))(U);function q(e){const t=(0,n.useRef)(null),s=(0,n.useRef)(!1);if((0,n.useEffect)((()=>{var a;s.current&&!e.active&&e.areAllSectionsInactive&&(null===(a=t.current)||void 0===a||a.focus())})),(0,n.useEffect)((()=>{s.current=e.active}),[e.active]),!e.performanceDebuggingEnabled)return null;let a;return a=e.active?r().createElement(j,e):r().createElement(H,Object.assign({},e,{ref:t})),r().createElement(r().Fragment,null,a,r().createElement("div",{className:"divider-light"}))}s(48410),q.propTypes={adminMode:i().bool,userId:i().string.isRequired,active:i().bool.isRequired,areAllSectionsInactive:i().bool.isRequired,onUpdateSection:i().func.isRequired};const H=r().forwardRef(((e,t)=>{let s,a=0;return e.disableClientPlugins&&(a+=1),e.disableTelemetry&&(a+=1),e.disableTypingMessages&&(a+=1),s=0===a?r().createElement(d.FormattedMessage,{id:"user.settings.advance.performance.noneEnabled",defaultMessage:"No settings enabled"}):r().createElement(d.FormattedMessage,{id:"user.settings.advance.performance.settingsEnabled",defaultMessage:"{count, number} {count, plural, one {setting} other {settings}} enabled",values:{count:a}}),r().createElement(k,{title:r().createElement(d.FormattedMessage,{id:"user.settings.advance.performance.title",defaultMessage:"Performance Debugging"}),describe:s,section:S.ZE.PERFORMANCE_DEBUGGING,updateSection:e.onUpdateSection,ref:t})}));function j(e){const[t,s]=(0,n.useState)(e.disableClientPlugins),[a,i]=(0,n.useState)(e.disableTelemetry),[o,l]=(0,n.useState)(e.disableTypingMessages),c=(0,n.useCallback)((()=>{if(!e.userId)return;const s=[];t!==e.disableClientPlugins&&s.push({user_id:e.userId,category:L.Preferences.CATEGORY_PERFORMANCE_DEBUGGING,name:L.Preferences.NAME_DISABLE_CLIENT_PLUGINS,value:t.toString()}),a!==e.disableTelemetry&&s.push({user_id:e.userId,category:L.Preferences.CATEGORY_PERFORMANCE_DEBUGGING,name:L.Preferences.NAME_DISABLE_TELEMETRY,value:a.toString()}),o!==e.disableTypingMessages&&s.push({user_id:e.userId,category:L.Preferences.CATEGORY_PERFORMANCE_DEBUGGING,name:L.Preferences.NAME_DISABLE_TYPING_MESSAGES,value:o.toString()}),0!==s.length&&e.userId&&e.savePreferences(e.userId,s),e.onUpdateSection("")}),[e.userId,e.onUpdateSection,e.savePreferences,t,a,o]);return r().createElement(D,{title:r().createElement(d.FormattedMessage,{id:"user.settings.advance.performance.title",defaultMessage:"Performance Debugging"}),inputs:[r().createElement("fieldset",{key:"settings"},r().createElement("div",{className:"checkbox"},r().createElement("label",null,r().createElement("input",{type:"checkbox",checked:t,onChange:e=>{s(e.target.checked)}}),r().createElement(d.FormattedMessage,{id:"user.settings.advance.performance.disableClientPlugins",defaultMessage:"Disable Client-side Plugins"}))),r().createElement("div",{className:"checkbox"},r().createElement("label",null,r().createElement("input",{type:"checkbox",checked:a,onChange:e=>{i(e.target.checked)}}),r().createElement(d.FormattedMessage,{id:"user.settings.advance.performance.disableTelemetry",defaultMessage:"Disable telemetry events sent from the client"}))),r().createElement("div",{className:"checkbox"},r().createElement("label",null,r().createElement("input",{type:"checkbox",checked:o,onChange:e=>{l(e.target.checked)}}),r().createElement(d.FormattedMessage,{id:"user.settings.advance.performance.disableTypingMessages",defaultMessage:'Disable "User is typing..." messages'}))),r().createElement("div",{className:"mt-5"},r().createElement(d.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."}),r().createElement("br",null),r().createElement("br",null),r().createElement(d.FormattedMessage,{id:"user.settings.advance.performance.info2",defaultMessage:"You may need to refresh the page before these settings take effect."})))],submit:c,updateSection:e.onUpdateSection})}H.propTypes={adminMode:i().bool,userId:i().string.isRequired,active:i().bool.isRequired,areAllSectionsInactive:i().bool.isRequired,onUpdateSection:i().func.isRequired},j.propTypes={adminMode:i().bool,userId:i().string.isRequired,active:i().bool.isRequired,areAllSectionsInactive:i().bool.isRequired,onUpdateSection:i().func.isRequired};const G={savePreferences:g.$A},W=(0,p.connect)((function(e,t){const s=t.adminMode&&t.userId?(0,v.JM)(e,t.userId):void 0;return{userId:t.adminMode?t.userId:(0,b.rc)(e),disableClientPlugins:(0,v.o4)(e,L.Preferences.CATEGORY_PERFORMANCE_DEBUGGING,L.Preferences.NAME_DISABLE_CLIENT_PLUGINS,void 0,s),disableTelemetry:(0,v.o4)(e,L.Preferences.CATEGORY_PERFORMANCE_DEBUGGING,L.Preferences.NAME_DISABLE_TELEMETRY,void 0,s),disableTypingMessages:(0,v.o4)(e,L.Preferences.CATEGORY_PERFORMANCE_DEBUGGING,L.Preferences.NAME_DISABLE_TYPING_MESSAGES,void 0,s),performanceDebuggingEnabled:(0,E.SU)(e)}}),G)(q);function K(e){return r().createElement("div",{className:"userSettingDesktopHeader"},r().createElement("h3",{id:e.id,className:"tab-header"},e.text),e.info&&r().createElement("div",{className:"userSettingDesktopHeaderInfo"},e.info))}K.propTypes={id:i().string,text:i().node.isRequired,info:i().node};const V=e=>{let{text:t,closeModal:s,collapseModal:a}=e;const i=(0,d.useIntl)();return r().createElement("div",{className:"modal-header"},r().createElement("button",{id:"closeButton",type:"button",className:"close","data-dismiss":"modal",onClick:s},r().createElement("span",{"aria-hidden":"true"},"×")),r().createElement("h4",{className:"modal-title"},r().createElement("div",{className:"modal-back"},r().createElement("i",{className:"fa fa-angle-left","aria-label":i.formatMessage({id:"generic_icons.collapse",defaultMessage:"Collapse Icon"}),onClick:a})),t))};V.propTypes={text:i().node.isRequired,closeModal:i().func.isRequired,collapseModal:i().func.isRequired};const Y=V;function z(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function Z(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?z(Object(s),!0).forEach((function(t){X(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):z(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}function X(e,t,s){return(t=function(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var s=e[Symbol.toPrimitive];if(void 0!==s){var a=s.call(e,"string");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}class J extends r().PureComponent{constructor(e){super(e),X(this,"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,[S.uP.UNREAD_SCROLL_POSITION]:this.props.unreadScrollPosition},isSaving:!1,showDeactivateAccountModal:!1,serverError:""}))),X(this,"updateSetting",((e,t,s)=>{const a=this.state.settings;a[e]=t,this.setState((e=>Z(Z({},e),a))),(0,T.Y_)(null==s?void 0:s.currentTarget)})),X(this,"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:S.default.Preferences.CATEGORY_ADVANCED_SETTINGS,name:e,value:this.state.settings[e]})})),this.setState({isSaving:!0}),await s.savePreferences(i,t),this.handleUpdateSection("")})),X(this,"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,y.gc)():s&&this.setState({serverError:s.message})})),X(this,"handleShowDeactivateAccountModal",(()=>{this.setState({showDeactivateAccountModal:!0})})),X(this,"handleHideDeactivateAccountModal",(()=>{this.setState({showDeactivateAccountModal:!1})})),X(this,"handleUpdateSection",(e=>{e||this.setState(this.getStateFromProps()),this.setState({isSaving:!1}),this.props.updateSection(e)})),X(this,"getCtrlSendText",(()=>{const e=(0,d.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,d.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,F.V5)()?{ctrlSendTitle:t.mac,ctrlSendDesc:e.mac}:{ctrlSendTitle:t.default,ctrlSendDesc:e.default}})),X(this,"renderFormattingSection",(()=>{const e="formatting"===this.props.activeSection;let t=null;return e&&(t=r().createElement(D,{title:r().createElement(d.FormattedMessage,{id:"user.settings.advance.formattingTitle",defaultMessage:"Enable Post Formatting"}),inputs:[r().createElement("fieldset",{key:"formattingSetting"},r().createElement("legend",{className:"form-legend hidden-label"},r().createElement(d.FormattedMessage,{id:"user.settings.advance.formattingTitle",defaultMessage:"Enable Post Formatting"})),r().createElement("div",{className:"radio"},r().createElement("label",null,r().createElement("input",{id:"postFormattingOn",type:"radio",name:"formatting",checked:"false"!==this.state.settings.formatting,onChange:this.updateSetting.bind(this,"formatting","true")}),r().createElement(d.FormattedMessage,{id:"user.settings.advance.on",defaultMessage:"On"})),r().createElement("br",null)),r().createElement("div",{className:"radio"},r().createElement("label",null,r().createElement("input",{id:"postFormattingOff",type:"radio",name:"formatting",checked:"false"===this.state.settings.formatting,onChange:this.updateSetting.bind(this,"formatting","false")}),r().createElement(d.FormattedMessage,{id:"user.settings.advance.off",defaultMessage:"Off"})),r().createElement("br",null)),r().createElement("div",{className:"mt-5"},r().createElement(d.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})),r().createElement(P,{active:e,areAllSectionsInactive:""===this.props.activeSection,title:r().createElement(d.FormattedMessage,{id:"user.settings.advance.formattingTitle",defaultMessage:"Enable Post Formatting"}),describe:this.renderOnOffLabel(this.state.settings.formatting),section:"formatting",updateSection:this.handleUpdateSection,max:t})})),X(this,"renderUnreadScrollPositionSection",(()=>{const e=this.props.activeSection===S.uP.UNREAD_SCROLL_POSITION;let t=null;return e&&(t=r().createElement(D,{title:r().createElement(d.FormattedMessage,{id:"user.settings.advance.unreadScrollPositionTitle",defaultMessage:"Scroll position when viewing an unread channel"}),inputs:[r().createElement("fieldset",{key:"unreadScrollPositionSetting"},r().createElement("legend",{className:"form-legend hidden-label"},r().createElement(d.FormattedMessage,{id:"user.settings.advance.unreadScrollPositionTitle",defaultMessage:"Scroll position when viewing an unread channel"})),r().createElement("div",{className:"radio"},r().createElement("label",null,r().createElement("input",{id:"unreadPositionStartFromLeftOff",type:"radio",name:"unreadScrollPosition",checked:this.state.settings.unread_scroll_position===S.uP.UNREAD_SCROLL_POSITION_START_FROM_LEFT,onChange:this.updateSetting.bind(this,S.uP.UNREAD_SCROLL_POSITION,S.uP.UNREAD_SCROLL_POSITION_START_FROM_LEFT)}),r().createElement(d.FormattedMessage,{id:"user.settings.advance.startFromLeftOff",defaultMessage:"Start me where I left off"})),r().createElement("br",null)),r().createElement("div",{className:"radio"},r().createElement("label",null,r().createElement("input",{id:"unreadPositionStartFromNewest",type:"radio",name:"unreadScrollPosition",checked:this.state.settings.unread_scroll_position===S.uP.UNREAD_SCROLL_POSITION_START_FROM_NEWEST,onChange:this.updateSetting.bind(this,S.uP.UNREAD_SCROLL_POSITION,S.uP.UNREAD_SCROLL_POSITION_START_FROM_NEWEST)}),r().createElement(d.FormattedMessage,{id:"user.settings.advance.startFromNewest",defaultMessage:"Start me at the newest message"})),r().createElement("br",null)),r().createElement("div",{className:"mt-5"},r().createElement(d.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,[S.uP.UNREAD_SCROLL_POSITION]),saving:this.state.isSaving,serverError:this.state.serverError,updateSection:this.handleUpdateSection})),r().createElement(P,{active:e,areAllSectionsInactive:""===this.props.activeSection,title:r().createElement(d.FormattedMessage,{id:"user.settings.advance.unreadScrollPositionTitle",defaultMessage:"Scroll position when viewing an unread channel"}),describe:this.renderUnreadScrollPositionLabel(this.state.settings[S.uP.UNREAD_SCROLL_POSITION]),section:S.uP.UNREAD_SCROLL_POSITION,updateSection:this.handleUpdateSection,max:t})})),X(this,"renderSyncDraftsSection",(()=>{const e=this.props.activeSection===S.ZE.SYNC_DRAFTS;let t=null;return e&&(t=r().createElement(D,{title:r().createElement(d.FormattedMessage,{id:"user.settings.advance.syncDrafts.Title",defaultMessage:"Allow message drafts to sync with the server"}),inputs:[r().createElement("fieldset",{key:"syncDraftsSetting"},r().createElement("legend",{className:"form-legend hidden-label"},r().createElement(d.FormattedMessage,{id:"user.settings.advance.syncDrafts.Title",defaultMessage:"Allow message drafts to sync with the server"})),r().createElement("div",{className:"radio"},r().createElement("label",null,r().createElement("input",{id:"syncDraftsOn",type:"radio",name:"syncDrafts",checked:"false"!==this.state.settings.sync_drafts,onChange:this.updateSetting.bind(this,"sync_drafts","true")}),r().createElement(d.FormattedMessage,{id:"user.settings.advance.on",defaultMessage:"On"})),r().createElement("br",null)),r().createElement("div",{className:"radio"},r().createElement("label",null,r().createElement("input",{id:"syncDraftsOff",type:"radio",name:"syncDrafts",checked:"false"===this.state.settings.sync_drafts,onChange:this.updateSetting.bind(this,"sync_drafts","false")}),r().createElement(d.FormattedMessage,{id:"user.settings.advance.off",defaultMessage:"Off"})),r().createElement("br",null)),r().createElement("div",{className:"mt-5"},r().createElement(d.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:S.ZE.SYNC_DRAFTS,submit:this.handleSubmit.bind(this,["sync_drafts"]),saving:this.state.isSaving,serverError:this.state.serverError,updateSection:this.handleUpdateSection})),r().createElement(P,{active:e,areAllSectionsInactive:""===this.props.activeSection,title:r().createElement(d.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:S.ZE.SYNC_DRAFTS,updateSection:this.handleUpdateSection,max:t})})),X(this,"renderCtrlSendSection",(()=>{const e="advancedCtrlSend"===this.props.activeSection,t=this.state.serverError||null,{ctrlSendTitle:s,ctrlSendDesc:a}=this.getCtrlSendText();let i=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],n=[r().createElement("fieldset",{key:"ctrlSendSetting"},r().createElement("legend",{className:"form-legend hidden-label"},r().createElement(d.FormattedMessage,s)),r().createElement("div",{className:"radio"},r().createElement("label",null,r().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,T.Y_)(e.currentTarget)}}),r().createElement(d.FormattedMessage,{id:"user.settings.advance.onForAllMessages",defaultMessage:"On for all messages"})),r().createElement("br",null)),r().createElement("div",{className:"radio"},r().createElement("label",null,r().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,T.Y_)(e.currentTarget)}}),r().createElement(d.FormattedMessage,{id:"user.settings.advance.onForCode",defaultMessage:"On only for code blocks starting with ```"})),r().createElement("br",null)),r().createElement("div",{className:"radio"},r().createElement("label",null,r().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,T.Y_)(e.currentTarget)}}),r().createElement(d.FormattedMessage,{id:"user.settings.advance.off",defaultMessage:"Off"})),r().createElement("br",null)),r().createElement("div",null,r().createElement("br",null),r().createElement(d.FormattedMessage,a)))];i=r().createElement(D,{title:r().createElement(d.FormattedMessage,s),inputs:n,submit:this.handleSubmit.bind(this,["send_on_ctrl_enter","code_block_ctrl_enter"]),saving:this.state.isSaving,serverError:t,updateSection:this.handleUpdateSection})}return r().createElement(P,{active:e,areAllSectionsInactive:""===this.props.activeSection,title:r().createElement(d.FormattedMessage,s),describe:this.renderCtrlEnterLabel(),section:"advancedCtrlSend",updateSection:this.handleUpdateSection,max:i})})),this.state=this.getStateFromProps()}renderOnOffLabel(e){return"false"===e?r().createElement(d.FormattedMessage,{id:"user.settings.advance.off",defaultMessage:"Off"}):r().createElement(d.FormattedMessage,{id:"user.settings.advance.on",defaultMessage:"On"})}renderUnreadScrollPositionLabel(e){return e===S.uP.UNREAD_SCROLL_POSITION_START_FROM_LEFT?r().createElement(d.FormattedMessage,{id:"user.settings.advance.startFromLeftOff",defaultMessage:"Start me where I left off"}):r().createElement(d.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?r().createElement(d.FormattedMessage,{id:"user.settings.advance.off",defaultMessage:"Off"}):"true"===e&&"true"===t?r().createElement(d.FormattedMessage,{id:"user.settings.advance.onForAllMessages",defaultMessage:"On for all messages"}):r().createElement(d.FormattedMessage,{id:"user.settings.advance.onForCode",defaultMessage:"On only for code blocks starting with ```"})}render(){const e=this.renderCtrlSendSection(),t=this.renderFormattingSection();let s=null;t&&(s=r().createElement("div",{className:"divider-light"}));let a="",i="";if(""===this.props.user.auth_service&&this.props.enableUserDeactivation&&!this.props.adminMode){const e="deactivateAccount"===this.props.activeSection;let t=null;e&&(t=r().createElement(D,{title:r().createElement(d.FormattedMessage,{id:"user.settings.advance.deactivateAccountTitle",defaultMessage:"Deactivate Account"}),inputs:[r().createElement("div",{key:"formattingSetting"},r().createElement("div",null,r().createElement("br",null),r().createElement(d.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})),a=r().createElement(P,{active:e,areAllSectionsInactive:""===this.props.activeSection,title:r().createElement(d.FormattedMessage,{id:"user.settings.advance.deactivateAccountTitle",defaultMessage:"Deactivate Account"}),describe:r().createElement(d.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",n=r().createElement(d.FormattedMessage,{id:"user.settings.advance.deactivate_member_modal.deactivateButton",defaultMessage:"Yes, deactivate my account"});i=r().createElement(u.Z,{show:this.state.showDeactivateAccountModal,title:r().createElement(d.FormattedMessage,{id:"user.settings.advance.confirmDeactivateAccountTitle",defaultMessage:"Confirm Deactivation"}),message:r().createElement(d.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:n,onConfirm:this.handleDeactivateAccountSubmit,onCancel:this.handleHideDeactivateAccountModal})}const n=this.renderUnreadScrollPositionSection();let o=null;n&&(o=r().createElement("div",{className:"divider-light"}));let l=null,c=null;return this.props.syncedDraftsAreAllowed&&(l=this.renderSyncDraftsSection(),l&&(c=r().createElement("div",{className:"divider-light"}))),r().createElement("div",null,r().createElement(Y,{closeModal:this.props.closeModal,collapseModal:this.props.collapseModal,text:r().createElement(d.FormattedMessage,{id:"user.settings.advance.title",defaultMessage:"Advanced Settings"})}),r().createElement("div",{className:"user-settings"},r().createElement(K,{text:r().createElement(d.FormattedMessage,{id:"user.settings.advance.title",defaultMessage:"Advanced Settings"})}),r().createElement("div",{className:"divider-dark first"}),e,s,t,r().createElement("div",{className:"divider-light"}),r().createElement(B,{active:this.props.activeSection===S.ZE.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}),r().createElement(W,{active:this.props.activeSection===S.ZE.PERFORMANCE_DEBUGGING,onUpdateSection:this.handleUpdateSection,areAllSectionsInactive:""===this.props.activeSection,adminMode:this.props.adminMode,userId:this.props.user.id}),o,n,c,l,s,a,r().createElement("div",{className:"divider-dark"}),i))}}const $=(0,v.YX)("getAdvancedSettingsCategory",S.uP.CATEGORY_ADVANCED_SETTINGS),Q=(0,p.connect)((function(){const e=(0,v.rA)("getAdvancedSettingsCategory",S.uP.CATEGORY_ADVANCED_SETTINGS);return(t,s)=>{const a=(0,E.iE)(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):$(t),sendOnCtrlEnter:(0,v.U2)(t,S.uP.CATEGORY_ADVANCED_SETTINGS,"send_on_ctrl_enter","false",r),codeBlockOnCtrlEnter:(0,v.U2)(t,S.uP.CATEGORY_ADVANCED_SETTINGS,"code_block_ctrl_enter","true",r),formatting:(0,v.U2)(t,S.uP.CATEGORY_ADVANCED_SETTINGS,"formatting","true",r),joinLeave:(0,v.U2)(t,S.uP.CATEGORY_ADVANCED_SETTINGS,"join_leave",n.toString(),r),syncDrafts:(0,v.U2)(t,S.uP.CATEGORY_ADVANCED_SETTINGS,"sync_drafts","true",r),user:s.adminMode&&s.user?s.user:(0,b.ts)(t),unreadScrollPosition:(0,v.mw)(t,r),enableUserDeactivation:i,syncedDraftsAreAllowed:(0,v.gm)(t)}}}),(function(e){return{actions:(0,h.bindActionCreators)({savePreferences:g.$A,updateUserActive:f.q0,revokeAllSessionsForUser:f.tG},e)}}))(J);var ee=s(42386),te=s(2507),se=s(12888),ae=s(11511),ie=s(83494),ne=s(73628),re=s(66471),oe=s.n(re),le=s(28176),ce=s(11298),de=s(40364),ue=s(35683),me=s(70360);function pe(e,t,s){return(t=function(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var s=e[Symbol.toPrimitive];if(void 0!==s){var a=s.call(e,"string");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}class he extends r().PureComponent{constructor(e){super(e),pe(this,"handleOnHide",(()=>{this.setState({show:!1})})),pe(this,"handleSubmit",(e=>{var t,s;e.preventDefault();const a=this.state.value;if(!he.isInputValid(a))return void this.setState({inputError:r().createElement(d.FormattedMessage,{id:"user.settings.import_theme.submitError",defaultMessage:"Invalid format, please try copying and pasting in again."})});const[i,n,o,l,c,u,m,p]=a.split(","),h=(0,me.Yn)({type:"custom",sidebarBg:i,sidebarText:u,sidebarUnreadText:u,sidebarTextHoverBg:c,sidebarTextActiveBorder:o,sidebarTextActiveColor:l,sidebarHeaderBg:n,sidebarHeaderTextColor:u,onlineIndicator:m,mentionBg:p});null===(t=(s=this.props).callback)||void 0===t||t.call(s,h),this.handleOnHide()})),pe(this,"handleChange",(e=>{const t=e.target.value;this.setState({value:t}),he.isInputValid(t)?this.setState({inputError:null}):this.setState({inputError:r().createElement(d.FormattedMessage,{id:"user.settings.import_theme.submitError",defaultMessage:"Invalid format, please try copying and pasting in again."})})})),this.state={value:"",inputError:null,show:!0}}static isInputValid(e){if(0===e.length)return!1;if(-1!==e.indexOf(" "))return!1;if(e.length>0&&-1===e.indexOf(","))return!1;if(e.length>0){const t=e.split(",");if(10!==t.length)return!1;for(let e=0;e<t.length;e++){if(7!==t[e].length&&4!==t[e].length)return!1;if("#"!==t[e].charAt(0))return!1}}return!0}render(){return r().createElement("span",null,r().createElement(o.Modal,{dialogClassName:"a11y__modal",show:this.state.show,onHide:this.handleOnHide,onExited:this.props.onExited,role:"dialog","aria-labelledby":"importThemeModalLabel"},r().createElement(o.Modal.Header,{closeButton:!0},r().createElement(o.Modal.Title,{componentClass:"h1",id:"importThemeModalLabel"},r().createElement(d.FormattedMessage,{id:"user.settings.import_theme.importHeader",defaultMessage:"Import Slack Theme"}))),r().createElement("form",{role:"form",className:"form-horizontal"},r().createElement(o.Modal.Body,null,r().createElement("p",null,r().createElement(d.FormattedMessage,{id:"user.settings.import_theme.importBody",defaultMessage:'To import a theme, go to a Slack team and look for "Preferences -> Themes". Open the custom theme option, copy the theme color values and paste them here:'})),r().createElement("div",{className:"form-group less"},r().createElement("div",{className:"col-sm-12"},r().createElement("input",{id:"themeVector",type:"text",className:"form-control",value:this.state.value,onChange:this.handleChange}),r().createElement("div",{className:"input__help"},this.state.inputError)))),r().createElement(o.Modal.Footer,null,r().createElement("button",{id:"cancelButton",type:"button",className:"btn btn-tertiary",onClick:this.handleOnHide},r().createElement(d.FormattedMessage,{id:"user.settings.import_theme.cancel",defaultMessage:"Cancel"})),r().createElement("button",{id:"submitButton",onClick:this.handleSubmit,type:"submit",className:"btn btn-primary"},r().createElement(d.FormattedMessage,{id:"user.settings.import_theme.submit",defaultMessage:"Submit"}))))))}}pe(he,"propTypes",{callback:i().oneOfType([i().func,i().oneOf([null])]),onExited:i().func.isRequired});const ge=(0,d.injectIntl)(he);var fe=s(34575),Ee=s(87026);function ve(e){return r().createElement(r().Fragment,null,r().createElement("label",{className:"custom-label"},e.label),r().createElement(Ee.Z,{id:e.id,value:e.value,onChange:t=>{var s;null===(s=e.onChange)||void 0===s||s.call(e,e.id,t)}}))}function be(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function Se(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?be(Object(s),!0).forEach((function(t){ye(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):be(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}function ye(e,t,s){return(t=function(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var s=e[Symbol.toPrimitive];if(void 0!==s){var a=s.call(e,"string");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}ve.propTypes={id:i().string.isRequired,label:i().node.isRequired,value:i().string.isRequired,onChange:i().func};const Me=(0,d.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 Ne extends r().PureComponent{constructor(e){super(e),ye(this,"handleColorChange",((e,t)=>{const{updateTheme:s,theme:a}=this.props;if(a[e]!==t){const i=Se(Se({},a),{},{type:"custom",[e]:t});"mentionBg"===e&&(i.mentionBj=t),s(i);const n=this.setCopyTheme(i);this.setState({copyTheme:n})}})),ye(this,"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,me.Yn)(t),this.setState({copyTheme:JSON.stringify(t)}),t.type="custom",this.props.updateTheme(t)}})),ye(this,"onChangeHandle",(e=>e.stopPropagation())),ye(this,"selectTheme",(()=>{var e,t;null===(e=this.textareaRef.current)||void 0===e||e.focus(),null===(t=this.textareaRef.current)||void 0===t||t.setSelectionRange(0,this.state.copyTheme.length)})),ye(this,"toggleSidebarStyles",(e=>{var t;e.preventDefault(),null===(t=this.sidebarStylesHeaderRef.current)||void 0===t||t.classList.toggle("open"),this.toggleSection(this.sidebarStylesRef.current)})),ye(this,"toggleCenterChannelStyles",(e=>{var t;e.preventDefault(),null===(t=this.centerChannelStylesHeaderRef.current)||void 0===t||t.classList.toggle("open"),this.toggleSection(this.centerChannelStylesRef.current)})),ye(this,"toggleLinkAndButtonStyles",(e=>{var t;e.preventDefault(),null===(t=this.linkAndButtonStylesHeaderRef.current)||void 0===t||t.classList.toggle("open"),this.toggleSection(this.linkAndButtonStylesRef.current)})),ye(this,"onCodeThemeChange",(e=>{const t=Se(Se({},this.props.theme),{},{type:"custom",codeTheme:e.target.value});this.props.updateTheme(t)})),ye(this,"copyTheme",(()=>{this.selectTheme(),document.execCommand("copy"),this.showCopySuccess()})),ye(this,"showCopySuccess",(()=>{const e=document.querySelector(".copy-theme-success");e&&(e.style.display="inline-block",setTimeout((()=>{e.style.display="none"}),3e3))})),this.textareaRef=(0,n.createRef)(),this.sidebarStylesHeaderRef=(0,n.createRef)(),this.centerChannelStylesHeaderRef=(0,n.createRef)(),this.linkAndButtonStylesHeaderRef=(0,n.createRef)(),this.sidebarStylesRef=(0,n.createRef)(),this.centerChannelStylesRef=(0,n.createRef)(),this.linkAndButtonStylesRef=(0,n.createRef)();const t=this.setCopyTheme(this.props.theme);this.state={copyTheme:t}}setCopyTheme(e){const t=Object.assign({},e);return delete t.type,delete t.image,JSON.stringify(t)}toggleSection(e){e&&(e.classList.toggle("open"),e.ontransitionend=()=>{e.classList.contains("open")?e.style.overflowY="inherit":e.style.overflowY="hidden"})}render(){const{intl:e,theme:t}=this.props,s=[],a=[],i=[];S.default.THEME_ELEMENTS.forEach(((e,n)=>{if("codeTheme"===e.id){var o;const s=[];let i="";null===(o=e.themes)||void 0===o||o.forEach(((a,n)=>{a.id===t[e.id]&&(i=a.iconURL),s.push(r().createElement("option",{key:"code-theme-key"+n,value:a.id},a.uiName))})),a.push(r().createElement("div",{className:"col-sm-6 form-group",key:"custom-theme-key"+n},r().createElement("label",{className:"custom-label"},r().createElement(d.FormattedMessage,Me[e.id])),r().createElement("div",{className:"input-group theme-group group--code dropdown",id:e.id},r().createElement("select",{id:"codeThemeSelect",className:"form-control",defaultValue:t[e.id],onChange:this.onCodeThemeChange},s),r().createElement(fe.Z,{placement:"top",id:"code-popover",title:r().createElement("div",{className:"code-popover"},r().createElement("img",{width:"200",alt:"code theme image",src:i}))},r().createElement("span",{className:"input-group-addon"},r().createElement("img",{alt:"code theme image",src:i}))))))}else if("centerChannelElements"===e.group)a.push(r().createElement("div",{className:"col-sm-6 form-group element",key:"custom-theme-key"+n},r().createElement(ve,{id:e.id,label:r().createElement(d.FormattedMessage,Me[e.id]),value:t[e.id]||"",onChange:this.handleColorChange})));else if("sidebarElements"===e.group){let a=t[e.id];a||"mentionBg"!==e.id||(a=t.mentionBj),s.push(r().createElement("div",{className:"col-sm-6 form-group element",key:"custom-theme-key"+n},r().createElement(ve,{id:e.id,label:r().createElement(d.FormattedMessage,Me[e.id]),value:a||"",onChange:this.handleColorChange})))}else i.push(r().createElement("div",{className:"col-sm-6 form-group element",key:"custom-theme-key"+n},r().createElement(ve,{id:e.id,label:r().createElement(d.FormattedMessage,Me[e.id]),value:t[e.id]||"",onChange:this.handleColorChange})))}));const n=r().createElement("div",{className:"col-sm-12"},r().createElement("label",{className:"custom-label"},r().createElement(d.FormattedMessage,{id:"user.settings.custom_theme.copyPaste",defaultMessage:"Copy to share or paste theme colors here:"})),r().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}),r().createElement("div",{className:"mt-3"},r().createElement("button",{className:"btn btn-tertiary",onClick:this.copyTheme},r().createElement(d.FormattedMessage,{id:"user.settings.custom_theme.copyThemeColors",defaultMessage:"Copy Theme Colors"})),r().createElement("span",{className:"alert alert-success copy-theme-success",role:"alert",style:{display:"none"}},r().createElement(d.FormattedMessage,{id:"user.settings.custom_theme.copied",defaultMessage:"✔ Copied"}))));return r().createElement("div",{className:"appearance-section pt-2"},r().createElement("div",{className:"theme-elements row"},r().createElement("div",{ref:this.sidebarStylesHeaderRef,id:"sidebarStyles",className:"theme-elements__header",onClick:this.toggleSidebarStyles},r().createElement(d.FormattedMessage,{id:"user.settings.custom_theme.sidebarTitle",defaultMessage:"Sidebar Styles"}),r().createElement("div",{className:"header__icon"},r().createElement("i",{className:"fa fa-plus",title:e.formatMessage({id:"generic_icons.expand",defaultMessage:"Expand Icon"})}),r().createElement("i",{className:"fa fa-minus",title:e.formatMessage({id:"generic_icons.collapse",defaultMessage:"Collapse Icon"})}))),r().createElement("div",{ref:this.sidebarStylesRef,className:"theme-elements__body"},s)),r().createElement("div",{className:"theme-elements row"},r().createElement("div",{ref:this.centerChannelStylesHeaderRef,id:"centerChannelStyles",className:"theme-elements__header",onClick:this.toggleCenterChannelStyles},r().createElement(d.FormattedMessage,{id:"user.settings.custom_theme.centerChannelTitle",defaultMessage:"Center Channel Styles"}),r().createElement("div",{className:"header__icon"},r().createElement("i",{className:"fa fa-plus",title:e.formatMessage({id:"generic_icons.expand",defaultMessage:"Expand Icon"})}),r().createElement("i",{className:"fa fa-minus",title:e.formatMessage({id:"generic_icons.collapse",defaultMessage:"Collapse Icon"})}))),r().createElement("div",{ref:this.centerChannelStylesRef,id:"centerChannelStyles",className:"theme-elements__body"},a)),r().createElement("div",{className:"theme-elements row"},r().createElement("div",{ref:this.linkAndButtonStylesHeaderRef,id:"linkAndButtonsStyles",className:"theme-elements__header",onClick:this.toggleLinkAndButtonStyles},r().createElement(d.FormattedMessage,{id:"user.settings.custom_theme.linkButtonTitle",defaultMessage:"Link and Button Styles"}),r().createElement("div",{className:"header__icon"},r().createElement("i",{className:"fa fa-plus",title:e.formatMessage({id:"generic_icons.expand",defaultMessage:"Expand Icon"})}),r().createElement("i",{className:"fa fa-minus",title:e.formatMessage({id:"generic_icons.collapse",defaultMessage:"Collapse Icon"})}))),r().createElement("div",{ref:this.linkAndButtonStylesRef,className:"theme-elements__body"},i)),r().createElement("div",{className:"row mt-3"},n))}}const _e=(0,d.injectIntl)(Ne);function Te(e){let{themeName:t,themeKey:s,sidebarBg:a="#174AB5",sidebarText:i="#86A1D9",sidebarUnreadText:n="white",onlineIndicator:o="#3DB887",awayIndicator:l="#FFBC1F",dndIndicator:c="#D24B4E",centerChannelColor:d="#E0E1E3",centerChannelBg:u="white",newMessageSeparator:m="#1C58D9",buttonBg:p="#15B7B7"}=e;return r().createElement("svg",{width:"112",height:"86",viewBox:"0 0 112 86",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":"".concat(s,"-theme-icon"),role:"img"},r().createElement("title",{id:"".concat(s,"-theme-icon")},"".concat(t," theme icon")),r().createElement("rect",{style:{fill:u},x:"0",y:"0",width:"112",height:"86"}),r().createElement("g",null,r().createElement("rect",{style:{fill:u},x:"50",y:"-1",width:"63",height:"88"}),r().createElement("g",null,r().createElement("rect",{style:{fill:d},x:"55",y:"75",width:"52",height:"6",rx:"3"}),r().createElement("rect",{style:{fill:u},x:"56",y:"76",width:"50",height:"4",rx:"2"})),r().createElement("rect",{style:{fill:p},x:"71",y:"65",width:"22",height:"5",rx:"2.5"}),r().createElement("rect",{style:{fill:m},x:"50",y:"32",width:"62",height:"1"}),r().createElement("g",{style:{fill:d}},r().createElement("rect",{x:"55",y:"5",width:"52",height:"4",rx:"2"}),r().createElement("rect",{x:"55",y:"14",width:"52",height:"4",rx:"2"}),r().createElement("rect",{x:"55",y:"23",width:"52",height:"4",rx:"2"}),r().createElement("rect",{x:"55",y:"38",width:"52",height:"4",rx:"2"}),r().createElement("rect",{x:"55",y:"47",width:"52",height:"4",rx:"2"}),r().createElement("rect",{x:"55",y:"56",width:"52",height:"4",rx:"2"}))),r().createElement("g",null,r().createElement("rect",{style:{fill:a},x:"-1",y:"-1",width:"51",height:"88"}),r().createElement("g",{style:{fill:i}},r().createElement("circle",{cx:"7",cy:"61",r:"2"}),r().createElement("circle",{cx:"7",cy:"70",r:"2"}),r().createElement("circle",{cx:"7",cy:"43",r:"2"}),r().createElement("circle",{cx:"7",cy:"34",r:"2"}),r().createElement("circle",{cx:"7",cy:"16",r:"2"}),r().createElement("circle",{cx:"7",cy:"7",r:"2"}),r().createElement("rect",{x:"11",y:"5",width:"28",height:"4",rx:"2"}),r().createElement("rect",{x:"11",y:"14",width:"28",height:"4",rx:"2"}),r().createElement("rect",{x:"11",y:"32",width:"28",height:"4",rx:"2"}),r().createElement("rect",{x:"11",y:"41",width:"28",height:"4",rx:"2"}),r().createElement("rect",{x:"11",y:"50",width:"28",height:"4",rx:"2"}),r().createElement("rect",{x:"11",y:"59",width:"28",height:"4",rx:"2"}),r().createElement("rect",{x:"11",y:"68",width:"28",height:"4",rx:"2"}),r().createElement("rect",{x:"11",y:"77",width:"28",height:"4",rx:"2"})),r().createElement("circle",{style:{fill:c},cx:"7",cy:"79",r:"2"}),r().createElement("circle",{style:{fill:l},cx:"7",cy:"52",r:"2"}),r().createElement("circle",{style:{fill:o},cx:"7",cy:"25",r:"2"}),r().createElement("g",{style:{fill:n}},r().createElement("circle",{cx:"43",cy:"25",r:"2"}),r().createElement("rect",{x:"11",y:"23",width:"28",height:"4",rx:"2"}))))}s(20266),s(52077),s(911),Te.propTypes={themeName:i().string,themeKey:i().string.isRequired,sidebarBg:i().string.isRequired,sidebarText:i().string.isRequired,sidebarUnreadText:i().string.isRequired,onlineIndicator:i().string.isRequired,awayIndicator:i().string.isRequired,dndIndicator:i().string.isRequired,centerChannelColor:i().string.isRequired,centerChannelBg:i().string.isRequired,newMessageSeparator:i().string.isRequired,buttonBg:i().string.isRequired};const Ce=Te,ke=e=>{let{theme:t,updateTheme:s,allowedThemes:a=[]}=e;const i=[],n=a.length>1||a[0]&&a[0].trim().length>0;for(const e in L.Preferences.THEMES)if(L.Preferences.THEMES.hasOwnProperty(e)){var o;if(n&&a.indexOf(e)<0)continue;const l=Object.assign({},L.Preferences.THEMES[e]);let c="";l.type===t.type&&(c="active"),i.push(r().createElement("div",{className:"col-xs-6 col-sm-3 premade-themes",key:"premade-theme-key"+e},r().createElement("div",{id:"premadeTheme".concat(null===(o=l.type)||void 0===o?void 0:o.replace(" ","")),className:c,onClick:()=>s(l)},r().createElement("label",null,r().createElement(Ce,{themeKey:e,themeName:l.type,sidebarBg:l.sidebarBg,sidebarText:(0,me.v5)(l.sidebarText,.48),sidebarUnreadText:l.sidebarUnreadText,onlineIndicator:l.onlineIndicator,awayIndicator:l.awayIndicator,dndIndicator:l.dndIndicator,centerChannelColor:(0,me.v5)(l.centerChannelColor,.16),centerChannelBg:l.centerChannelBg,newMessageSeparator:l.newMessageSeparator,buttonBg:l.buttonBg}),r().createElement("div",{className:"theme-label"},(0,T.LF)(l.type||""))))))}return r().createElement("div",{className:"row appearance-section"},r().createElement("div",{className:"clearfix"},i))};ke.propTypes={updateTheme:i().func.isRequired,allowedThemes:i().arrayOf(i().string).isRequired};const Ae=ke,Ie=(0,p.connect)((function(e){const t=(0,E.iE)(e);return{allowedThemes:t.AllowedThemes&&t.AllowedThemes.split(",")||[]}}))(Ae);function Pe(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function we(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?Pe(Object(s),!0).forEach((function(t){Re(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):Pe(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}function Re(e,t,s){return(t=function(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var s=e[Symbol.toPrimitive];if(void 0!==s){var a=s.call(e,"string");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}class Oe extends r().PureComponent{constructor(e){super(e),Re(this,"submitTheme",(async()=>{var e,t;const s=this.state.applyToAllTeams?"":this.props.currentTeamId;this.setState({isSaving:!0}),await this.props.actions.saveTheme(s,this.state.theme),this.state.applyToAllTeams&&await this.props.actions.deleteTeamSpecificThemes(),null===(e=(t=this.props).setRequireConfirm)||void 0===e||e.call(t,!1),this.originalTheme=Object.assign({},this.state.theme),this.props.updateSection(""),this.setState({isSaving:!1})})),Re(this,"updateTheme",(e=>{var t,s;let a=this.state.theme.length===e.length;if(!a)for(const t in e)if(e.hasOwnProperty(t)&&this.state.theme[t]!==e[t]){a=!0;break}null===(t=(s=this.props).setRequireConfirm)||void 0===t||t.call(s,a),this.setState({theme:e}),(0,T._v)(e)})),Re(this,"updateType",(e=>this.setState({type:e}))),Re(this,"resetFields",(()=>{var e,t;const s=this.getStateFromProps();s.serverError="",this.setState(s),(0,T._v)(s.theme),null===(e=(t=this.props).setRequireConfirm)||void 0===e||e.call(t,!1)})),Re(this,"handleImportModal",(()=>{var e,t;this.props.actions.openModal({modalId:S.r8.IMPORT_THEME_MODAL,dialogType:ge,dialogProps:{callback:this.updateTheme}}),null===(e=(t=this.props).setEnforceFocus)||void 0===e||e.call(t,!1)})),Re(this,"handleUpdateSection",(e=>this.props.updateSection(e))),this.state=we(we({},this.getStateFromProps(e)),{},{isSaving:!1,serverError:""}),this.originalTheme=Object.assign({},this.state.theme),this.minRef=r().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,T._v)(this.props.theme)}getStateFromProps(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.props;const t=we({},e.theme);return t.codeTheme||(t.codeTheme=S.Constants.DEFAULT_CODE_THEME),{theme:t,type:t.type||"premade",showAllTeamsCheckbox:e.showAllTeamsCheckbox,applyToAllTeams:e.applyToAllTeams,serverError:"",isSaving:!1}}focusEditButton(){var e;null===(e=this.minRef.current)||void 0===e||e.focus()}render(){let e;this.state.serverError&&(e=this.state.serverError);const t="custom"===this.state.type;let s,a,i;if(t&&this.props.allowCustomThemes?s=r().createElement("div",{key:"customThemeChooser"},r().createElement(_e,{theme:this.state.theme,updateTheme:this.updateTheme})):a=r().createElement("div",{key:"premadeThemeChooser"},r().createElement("br",null),r().createElement(Ie,{theme:this.state.theme,updateTheme:this.updateTheme})),this.props.selected){const n=[];this.props.allowCustomThemes&&n.push(r().createElement("div",{className:"radio",key:"premadeThemeColorLabel"},r().createElement("label",null,r().createElement("input",{id:"standardThemes",type:"radio",name:"theme",checked:!t,onChange:this.updateType.bind(this,"premade")}),r().createElement(d.FormattedMessage,{id:"user.settings.display.theme.themeColors",defaultMessage:"Theme Colors"})),r().createElement("br",null))),n.push(a),this.props.allowCustomThemes&&(n.push(r().createElement("div",{className:"radio",key:"customThemeColorLabel"},r().createElement("label",null,r().createElement("input",{id:"customThemes",type:"radio",name:"theme",checked:t,onChange:this.updateType.bind(this,"custom")}),r().createElement(d.FormattedMessage,{id:"user.settings.display.theme.customTheme",defaultMessage:"Custom Theme"})))),n.push(s),n.push(r().createElement("div",{key:"otherThemes"},r().createElement("br",null),r().createElement(ue.Z,{id:"otherThemes",href:"http://docs.mattermost.com/help/settings/theme-colors.html#custom-theme-examples",location:"user_settings_theme"},r().createElement(d.FormattedMessage,{id:"user.settings.display.theme.otherThemes",defaultMessage:"See other themes"})))),n.push(r().createElement("div",{key:"importSlackThemeButton",className:"pt-2"},r().createElement("button",{id:"slackImportTheme",className:"theme style--none color--link",onClick:this.handleImportModal},r().createElement(d.FormattedMessage,{id:"user.settings.display.theme.import",defaultMessage:"Import theme colors from Slack"})))));let o=null;this.state.showAllTeamsCheckbox&&(o=r().createElement("div",{className:"checkbox user-settings__submit-checkbox"},r().createElement("label",null,r().createElement("input",{id:"applyThemeToAllTeams",type:"checkbox",checked:this.state.applyToAllTeams,onChange:e=>this.setState({applyToAllTeams:e.target.checked})}),r().createElement(d.FormattedMessage,{id:"user.settings.display.theme.applyToAllTeams",defaultMessage:"Apply new theme to all my teams"})))),i=r().createElement(D,{inputs:n,submitExtra:o,submit:this.submitTheme,disableEnterSubmit:!0,saving:this.state.isSaving,serverError:e,isFullWidth:!0,updateSection:this.handleUpdateSection})}else i=r().createElement(k,{title:r().createElement(d.FormattedMessage,{id:"user.settings.display.theme.title",defaultMessage:"Theme"}),describe:r().createElement(d.FormattedMessage,{id:"user.settings.display.theme.describe",defaultMessage:"Open to manage your theme"}),section:"theme",updateSection:this.handleUpdateSection,ref:this.minRef});return i}}const De=(0,p.connect)((function(e){return{currentTeamId:(0,ce.ev)(e),theme:(0,v.gh)(e),applyToAllTeams:(0,v.Ng)(e).length<=1,showAllTeamsCheckbox:(0,ce.Ew)(e)>1}}),(function(e){return{actions:(0,h.bindActionCreators)({saveTheme:g.DV,deleteTeamSpecificThemes:g.w_,openModal:de.h},e)}}))(Oe);var Fe=s(9292),Le=(s(69217),s(63323));function xe(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function Ue(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?xe(Object(s),!0).forEach((function(t){Be(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):xe(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}function Be(e,t,s){return(t=function(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var s=e[Symbol.toPrimitive];if(void 0!==s){var a=s.call(e,"string");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}class qe extends r().PureComponent{constructor(e){super(e),Be(this,"handleContainerKeyDown",(e=>{const t=document.querySelector(".modal-body");(0,R.p)(e,S.default.KeyCodes.ESCAPE)&&this.state.openMenu&&(null==t||t.classList.remove("no-scroll"),this.setState({openMenu:!1}),e.stopPropagation())})),Be(this,"handleKeyDown",(e=>{const t=document.querySelector(".modal-body");(0,R.p)(e,S.default.KeyCodes.ENTER)&&(null==t||t.classList.add("no-scroll"),this.setState({openMenu:!0}))})),Be(this,"setLanguage",(e=>{e&&"value"in e&&this.setState({locale:e.value,selectedOption:e})})),Be(this,"changeLanguage",(()=>{this.props.user.locale===this.state.locale?this.props.updateSection(""):this.submitUser(Ue(Ue({},this.props.user),{},{locale:this.state.locale}))})),Be(this,"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})}}))})),Be(this,"handleMenuClose",(()=>{const e=document.querySelector(".modal-body");e&&e.classList.remove("no-scroll"),this.setState({openMenu:!1})})),Be(this,"handleMenuOpen",(()=>{const e=document.querySelector(".modal-body");e&&e.classList.add("no-scroll"),this.setState({openMenu:!0})}));const t=e.locale,s={value:e.locales[t].value,label:e.locales[t].name};this.reactSelectContainer=r().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)}render(){const{intl:e,locales:t}=this.props;let s;this.state.serverError&&(s=r().createElement("label",{className:"has-error"},this.state.serverError));const a=[];Object.keys(t).map((e=>({value:t[e].value,name:t[e].name,order:t[e].order}))).sort(((e,t)=>e.order-t.order)).forEach((e=>{a.push({value:e.value,label:e.name})}));const i={menuPortal:e=>Ue(Ue({},e),{},{zIndex:9999})},n=e.formatMessage({id:"user.settings.languages.dropdown.arialabel",defaultMessage:"Dropdown selector to change the interface language"}),o=r().createElement("div",{key:"changeLanguage"},r().createElement("br",null),r().createElement("label",{"aria-label":n,className:"control-label",id:"changeInterfaceLanguageLabel"},r().createElement(d.FormattedMessage,{id:"user.settings.languages.change",defaultMessage:"Change interface language"})),r().createElement("div",{ref:this.reactSelectContainer,className:"pt-2"},r().createElement(Le.ZP,{className:"react-select react-select-top",classNamePrefix:"react-select",id:"displayLanguage",menuIsOpen:this.state.openMenu,menuPortalTarget:document.body,styles:i,options:a,clearable:!1,onChange:this.setLanguage,onKeyDown:this.handleKeyDown,value:this.state.selectedOption,onMenuClose:this.handleMenuClose,onMenuOpen:this.handleMenuOpen,"aria-labelledby":"changeInterfaceLanguageLabel"}),s),r().createElement("div",null,r().createElement("br",null),r().createElement(d.FormattedMessage,{id:"user.settings.languages.promote1",defaultMessage:"Select which language Mattermost displays in the user interface."}),r().createElement("p",null),r().createElement(d.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=>r().createElement(ue.Z,{href:"http://translate.mattermost.com",location:"manage_languages"},e)}})));return r().createElement(D,{title:r().createElement(d.FormattedMessage,{id:"user.settings.display.language",defaultMessage:"Language"}),submit:this.changeLanguage,saving:this.state.isSaving,inputs:[o],updateSection:this.props.updateSection})}}Be(qe,"propTypes",{locale:i().string.isRequired,updateSection:i().func.isRequired,actions:i().shape({updateMe:i().func.isRequired,patchUser:i().func.isRequired}).isRequired,adminMode:i().bool});const He=(0,d.injectIntl)(qe),je=(0,p.connect)((function(e){return{locales:(0,ne.Vb)(e)}}),(function(e){return{actions:(0,h.bindActionCreators)({updateMe:f.DO,patchUser:f.qS},e)}}))(He);function Ge(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function We(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?Ge(Object(s),!0).forEach((function(t){Ke(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):Ge(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}function Ke(e,t,s){return(t=function(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var s=e[Symbol.toPrimitive];if(void 0!==s){var a=s.call(e,"string");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}class Ve extends r().PureComponent{constructor(e){super(e),Ke(this,"onChange",(e=>{e&&"value"in e&&this.setState({manualTimezone:e.value,selectedOption:e})})),Ke(this,"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})),Ke(this,"changeTimezone",(()=>{this.timezoneNotChanged()?this.props.updateSection(""):this.submitUser()})),Ke(this,"submitUser",(()=>{const{user:e}=this.props,{useAutomaticTimezone:t,automaticTimezone:s,manualTimezone:a}=this.state,i={useAutomaticTimezone:t.toString(),automaticTimezone:s,manualTimezone:a},n=We(We({},e),{},{timezone:i});(this.props.adminMode?this.props.actions.patchUser:this.props.actions.updateMe)(n).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})}}))})),Ke(this,"handleAutomaticTimezone",(e=>{const t=e.target.checked;let s,a,i="";t?(i=(0,Fe.x_)(),s=(0,ie.HG)(this.props.timezones,i),a=i):(s=(0,ie.HG)(this.props.timezones,(0,Fe.x_)()),a=(0,Fe.x_)(),this.setState({manualTimezone:(0,Fe.x_)()})),this.setState({useAutomaticTimezone:t,automaticTimezone:i,selectedOption:{label:s,value:a}})})),Ke(this,"handleManualTimezone",(e=>{this.setState({manualTimezone:e.target.value})})),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}}}render(){const{timezones:e}=this.props,{useAutomaticTimezone:t}=this.state,s=this.props.timezones.map((e=>({value:e.utc[0],label:e.text})));let a;this.state.serverError&&(a=r().createElement("label",{className:"has-error"},this.state.serverError));const i=[],n={menuPortal:e=>We(We({},e),{},{zIndex:9999})},o=0===e.length,l=r().createElement("div",{className:"checkbox"},r().createElement("label",null,r().createElement("input",{id:"automaticTimezoneInput",type:"checkbox",checked:t,onChange:this.handleAutomaticTimezone,disabled:o}),r().createElement(d.FormattedMessage,{id:"user.settings.timezones.automatic",defaultMessage:"Automatic"}))),c=r().createElement("div",{className:"pt-2"},r().createElement(Le.ZP,{className:"react-select react-select-top",classNamePrefix:"react-select",id:"displayTimezone",menuPortalTarget:document.body,styles:n,options:s,clearable:!1,onChange:this.onChange,value:this.state.selectedOption,"aria-labelledby":"changeInterfaceTimezoneLabel",isDisabled:t}),a);return i.push(l),i.push(c),i.push(r().createElement("div",null,r().createElement("br",null),r().createElement(d.FormattedMessage,{id:"user.settings.timezones.promote",defaultMessage:"Select the time zone used for timestamps in the user interface and email notifications."}))),r().createElement(D,{title:r().createElement(d.FormattedMessage,{id:"user.settings.display.timezone",defaultMessage:"Timezone"}),containerStyle:"timezone-container",submit:this.changeTimezone,saving:this.state.isSaving,inputs:i,updateSection:this.props.updateSection})}}Ke(Ve,"propTypes",{updateSection:i().func.isRequired,useAutomaticTimezone:i().bool.isRequired,automaticTimezone:i().string.isRequired,manualTimezone:i().string.isRequired,timezones:i().array.isRequired,timezoneLabel:i().string.isRequired,actions:i().shape({updateMe:i().func.isRequired,patchUser:i().func.isRequired}).isRequired,adminMode:i().bool});const Ye=(0,p.connect)((function(e){const t=(0,ae.Rn)(e);return{timezones:ee,timezoneLabel:t}}),(function(e){return{actions:(0,h.bindActionCreators)({updateMe:f.DO,patchUser:f.qS},e)}}))(Ve);function ze(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function Ze(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?ze(Object(s),!0).forEach((function(t){Xe(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):ze(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}function Xe(e,t,s){return(t=function(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var s=e[Symbol.toPrimitive];if(void 0!==s){var a=s.call(e,"string");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}const Je=S.default.Preferences;function $e(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 Qe extends r().PureComponent{constructor(e){super(e),Xe(this,"submitLastActive",(()=>{const{user:e,actions:t}=this.props,{lastActiveDisplay:s}=this.state,a=Ze(Ze({},e),{},{props:Ze(Ze({},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})}}))})),Xe(this,"handleSubmit",(async()=>{const e=this.props.user.id,t={user_id:e,category:Je.CATEGORY_DISPLAY_SETTINGS,name:Je.USE_MILITARY_TIME,value:this.state.militaryTime},s={user_id:e,category:Je.CATEGORY_DISPLAY_SETTINGS,name:Je.AVAILABILITY_STATUS_ON_POSTS,value:this.state.availabilityStatusOnPosts},a={user_id:e,category:Je.CATEGORY_DISPLAY_SETTINGS,name:Je.NAME_NAME_FORMAT,value:this.state.teammateNameDisplay},i={user_id:e,category:Je.CATEGORY_DISPLAY_SETTINGS,name:Je.CHANNEL_DISPLAY_MODE,value:this.state.channelDisplayMode},n={user_id:e,category:Je.CATEGORY_DISPLAY_SETTINGS,name:Je.MESSAGE_DISPLAY,value:this.state.messageDisplay},r={user_id:e,category:Je.CATEGORY_DISPLAY_SETTINGS,name:Je.COLORIZE_USERNAMES,value:this.state.colorizeUsernames},o={user_id:e,category:Je.CATEGORY_DISPLAY_SETTINGS,name:Je.COLLAPSE_DISPLAY,value:this.state.collapseDisplay},l={user_id:e,category:Je.CATEGORY_DISPLAY_SETTINGS,name:Je.COLLAPSED_REPLY_THREADS,value:this.state.collapsedReplyThreads},c={user_id:e,category:Je.CATEGORY_DISPLAY_SETTINGS,name:Je.LINK_PREVIEW_DISPLAY,value:this.state.linkPreviewDisplay},d={user_id:e,category:Je.CATEGORY_DISPLAY_SETTINGS,name:Je.ONE_CLICK_REACTIONS_ENABLED,value:this.state.oneClickReactionsOnPosts},u={user_id:e,category:Je.CATEGORY_DISPLAY_SETTINGS,name:Je.CLICK_TO_REPLY,value:this.state.clickToReply};this.setState({isSaving:!0});const m=[t,i,n,l,u,o,c,a,s,d,r];this.trackChangeIfNecessary(l,this.props.collapsedReplyThreads),await this.props.actions.savePreferences(e,m),this.updateSection("")})),Xe(this,"handleClockRadio",(e=>{this.setState({militaryTime:e})})),Xe(this,"handleTeammateNameDisplayRadio",(e=>{this.setState({teammateNameDisplay:e})})),Xe(this,"handleAvailabilityStatusRadio",(e=>{this.setState({availabilityStatusOnPosts:e})})),Xe(this,"handleOneClickReactionsRadio",(e=>{this.setState({oneClickReactionsOnPosts:e})})),Xe(this,"handleClickToReplyRadio",(e=>{this.setState({clickToReply:e})})),Xe(this,"updateSection",(e=>{this.updateState(),this.props.updateSection(e)})),Xe(this,"updateState",(()=>{const e=$e(this.props);oe()(e,this.state)||this.setState(e),this.setState({isSaving:!1})})),this.state=Ze(Ze({},$e(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,Fe.x_)())}componentDidUpdate(e){this.props.teammateNameDisplay!==e.teammateNameDisplay&&this.updateState()}trackChangeIfNecessary(e,t){const s={field:"display."+e.name,value:e.value};e.value!==t&&(0,le.L9)("settings","user_settings_update",s)}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})}handleOnChange(e,t){this.setState(Ze({},t)),(0,T.Y_)(e.currentTarget)}createSection(e){var t,s;const{section:a,display:i,value:n,title:o,firstOption:l,secondOption:c,thirdOption:u,description:m,disabled:p,onSubmit:h}=e;let g=null,f=h||this.handleSubmit;const E=r().createElement(d.FormattedMessage,{id:l.radionButtonText.label.id,defaultMessage:l.radionButtonText.label.defaultMessage});let v,b;null!==(t=l.radionButtonText.more)&&void 0!==t&&t.id&&(v=": ",b=r().createElement("span",{className:"font-weight--normal"},r().createElement(d.FormattedMessage,{id:l.radionButtonText.more.id,defaultMessage:l.radionButtonText.more.defaultMessage})));const S=r().createElement(d.FormattedMessage,{id:c.radionButtonText.label.id,defaultMessage:c.radionButtonText.label.defaultMessage});let y,M;null!==(s=c.radionButtonText.more)&&void 0!==s&&s.id&&(y=r().createElement("span",{className:"font-weight--normal"},r().createElement(d.FormattedMessage,{id:c.radionButtonText.more.id,defaultMessage:c.radionButtonText.more.defaultMessage}))),u&&(M=r().createElement(d.FormattedMessage,{id:u.radionButtonText.label.id,defaultMessage:u.radionButtonText.label.defaultMessage}));const N=r().createElement(d.FormattedMessage,{id:o.id,defaultMessage:o.defaultMessage}),_=r().createElement(d.FormattedMessage,{id:m.id,defaultMessage:m.defaultMessage}),T=this.props.activeSection===a;let C,k=null;if(T){const e=[!1,!1,!1];let t;n===l.value?(e[0]=!0,t=l.childOption):n===c.value?(e[1]=!0,t=c.childOption):(e[2]=!0,u&&(t=u.childOption));const s=a+"Format",o=a+"UserDisplay",m={[i]:l.value},h={[i]:c.value};let T,C;if(u&&M){const t={[i]:u.value};T=r().createElement("div",{className:"radio"},r().createElement("label",null,r().createElement("input",{id:s+"C",type:"radio",name:s,checked:e[2],onChange:e=>this.handleOnChange(e,t)}),M),r().createElement("br",null))}if(t){const e=t.display;C=r().createElement("div",{className:"checkbox"},r().createElement("hr",null),r().createElement("label",null,r().createElement("input",{id:s+"childOption",type:"checkbox",name:t.label.id,checked:"true"===t.value,onChange:t=>{this.handleOnChange(t,{[e]:t.target.checked?"true":"false"})}}),r().createElement(d.FormattedMessage,{id:t.label.id,defaultMessage:t.label.defaultMessage}),v,r().createElement("span",{className:"font-weight--normal"},r().createElement(d.FormattedMessage,{id:t.more.id,defaultMessage:t.more.defaultMessage}))),r().createElement("br",null))}let A=[r().createElement("fieldset",{key:o},r().createElement("legend",{className:"form-legend hidden-label"},N),r().createElement("div",{className:"radio"},r().createElement("label",null,r().createElement("input",{id:s+"A",type:"radio",name:s,checked:e[0],onChange:e=>this.handleOnChange(e,m)}),E,v,b),r().createElement("br",null)),r().createElement("div",{className:"radio"},r().createElement("label",null,r().createElement("input",{id:s+"B",type:"radio",name:s,checked:e[1],onChange:e=>this.handleOnChange(e,h)}),S,v,y),r().createElement("br",null)),T,r().createElement("div",null,r().createElement("br",null),_),C)];"teammateNameDisplay"===i&&p&&(g=r().createElement("span",null,r().createElement(d.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."})),f=null,A=[]),k=r().createElement(D,{title:N,inputs:A,submit:f,saving:this.state.isSaving,serverError:this.state.serverError,extraInfo:g,updateSection:this.updateSection})}return C=n===l.value?E:n===c.value?S:M,r().createElement("div",null,r().createElement(P,{active:T,areAllSectionsInactive:""===this.props.activeSection,title:N,describe:C,section:a,updateSection:this.updateSection,max:k}),r().createElement("div",{className:"divider-dark"}))}render(){const e=this.createSection({section:"collapse",display:"collapseDisplay",value:this.state.collapseDisplay,defaultDisplay:"false",title:(0,d.defineMessage)({id:"user.settings.display.collapseDisplay",defaultMessage:"Default Appearance of Image Previews"}),firstOption:{value:"false",radionButtonText:{label:(0,d.defineMessage)({id:"user.settings.display.collapseOn",defaultMessage:"Expanded"})}},secondOption:{value:"true",radionButtonText:{label:(0,d.defineMessage)({id:"user.settings.display.collapseOff",defaultMessage:"Collapsed"})}},description:(0,d.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 controlled using the slash commands /expand and /collapse."})});let t=null;this.props.enableLinkPreviews?(t=this.createSection({section:"linkpreview",display:"linkPreviewDisplay",value:this.state.linkPreviewDisplay,defaultDisplay:"true",title:(0,d.defineMessage)({id:"user.settings.display.linkPreviewDisplay",defaultMessage:"Website Link Previews"}),firstOption:{value:"true",radionButtonText:{label:(0,d.defineMessage)({id:"user.settings.display.linkPreviewOn",defaultMessage:"On"})}},secondOption:{value:"false",radionButtonText:{label:(0,d.defineMessage)({id:"user.settings.display.linkPreviewOff",defaultMessage:"Off"})}},description:(0,d.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,d.defineMessage)({id:"user.settings.display.lastActiveDisplay",defaultMessage:"Share last active time"}),firstOption:{value:"true",radionButtonText:{label:(0,d.defineMessage)({id:"user.settings.display.lastActiveOn",defaultMessage:"On"})}},secondOption:{value:"false",radionButtonText:{label:(0,d.defineMessage)({id:"user.settings.display.lastActiveOff",defaultMessage:"Off"})}},description:(0,d.defineMessage)({id:"user.settings.display.lastActiveDesc",defaultMessage:"When enabled, other users will see when you were last active."}),onSubmit:this.submitLastActive}));const a=this.createSection({section:"clock",display:"militaryTime",value:this.state.militaryTime,defaultDisplay:"false",title:(0,d.defineMessage)({id:"user.settings.display.clockDisplay",defaultMessage:"Clock Display"}),firstOption:{value:"false",radionButtonText:{label:(0,d.defineMessage)({id:"user.settings.display.normalClock",defaultMessage:"12-hour clock (example: 4:00 PM)"})}},secondOption:{value:"true",radionButtonText:{label:(0,d.defineMessage)({id:"user.settings.display.militaryClock",defaultMessage:"24-hour clock (example: 16:00)"})}},description:(0,d.defineMessage)({id:"user.settings.display.preferTime",defaultMessage:"Select how you prefer time displayed."})}),i=this.createSection({section:Je.NAME_NAME_FORMAT,display:"teammateNameDisplay",value:this.props.lockTeammateNameDisplay?this.props.configTeammateNameDisplay:this.state.teammateNameDisplay,defaultDisplay:this.props.configTeammateNameDisplay,title:(0,d.defineMessage)({id:"user.settings.display.teammateNameDisplayTitle",defaultMessage:"Teammate Name Display"}),firstOption:{value:S.default.TEAMMATE_NAME_DISPLAY.SHOW_USERNAME,radionButtonText:{label:(0,d.defineMessage)({id:"user.settings.display.teammateNameDisplayUsername",defaultMessage:"Show username"})}},secondOption:{value:S.default.TEAMMATE_NAME_DISPLAY.SHOW_NICKNAME_FULLNAME,radionButtonText:{label:(0,d.defineMessage)({id:"user.settings.display.teammateNameDisplayNicknameFullname",defaultMessage:"Show nickname if one exists, otherwise show first and last name"})}},thirdOption:{value:S.default.TEAMMATE_NAME_DISPLAY.SHOW_FULLNAME,radionButtonText:{label:(0,d.defineMessage)({id:"user.settings.display.teammateNameDisplayFullname",defaultMessage:"Show first and last name"})}},description:(0,d.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}),n=this.createSection({section:"availabilityStatus",display:"availabilityStatusOnPosts",value:this.state.availabilityStatusOnPosts,defaultDisplay:"true",title:(0,d.defineMessage)({id:"user.settings.display.availabilityStatusOnPostsTitle",defaultMessage:"Show user availability on posts"}),firstOption:{value:"true",radionButtonText:{label:(0,d.defineMessage)({id:"user.settings.sidebar.on",defaultMessage:"On"})}},secondOption:{value:"false",radionButtonText:{label:(0,d.defineMessage)({id:"user.settings.sidebar.off",defaultMessage:"Off"})}},description:(0,d.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=r().createElement(Ye,{user:this.props.user,useAutomaticTimezone:Boolean(e.useAutomaticTimezone),automaticTimezone:e.automaticTimezone,manualTimezone:e.manualTimezone,updateSection:this.updateSection,adminMode:this.props.adminMode})),o=r().createElement("div",null,r().createElement(P,{active:t,areAllSectionsInactive:""===this.props.activeSection,title:r().createElement(d.FormattedMessage,{id:"user.settings.display.timezone",defaultMessage:"Timezone"}),describe:this.props.timezoneLabel,section:"timezone",updateSection:this.updateSection,max:s}),r().createElement("div",{className:"divider-dark"}))}const l=this.createSection({section:Je.MESSAGE_DISPLAY,display:"messageDisplay",value:this.state.messageDisplay,defaultDisplay:Je.MESSAGE_DISPLAY_CLEAN,title:(0,d.defineMessage)({id:"user.settings.display.messageDisplayTitle",defaultMessage:"Message Display"}),firstOption:{value:Je.MESSAGE_DISPLAY_CLEAN,radionButtonText:{label:(0,d.defineMessage)({id:"user.settings.display.messageDisplayClean",defaultMessage:"Standard"}),more:(0,d.defineMessage)({id:"user.settings.display.messageDisplayCleanDes",defaultMessage:"Easy to scan and read."})}},secondOption:{value:Je.MESSAGE_DISPLAY_COMPACT,radionButtonText:{label:(0,d.defineMessage)({id:"user.settings.display.messageDisplayCompact",defaultMessage:"Compact"}),more:(0,d.defineMessage)({id:"user.settings.display.messageDisplayCompactDes",defaultMessage:"Fit as many messages on the screen as we can."})},childOption:{label:(0,d.defineMessage)({id:"user.settings.display.colorize",defaultMessage:"Colorize usernames"}),value:this.state.colorizeUsernames,display:"colorizeUsernames",more:(0,d.defineMessage)({id:"user.settings.display.colorizeDes",defaultMessage:"Use colors to distinguish users in compact mode"})}},description:(0,d.defineMessage)({id:"user.settings.display.messageDisplayDescription",defaultMessage:"Select how messages in a channel should be displayed."})});let c;this.props.collapsedReplyThreadsAllowUserPreference&&(c=this.createSection({section:Je.COLLAPSED_REPLY_THREADS,display:"collapsedReplyThreads",value:this.state.collapsedReplyThreads,defaultDisplay:Je.COLLAPSED_REPLY_THREADS_FALLBACK_DEFAULT,title:(0,d.defineMessage)({id:"user.settings.display.collapsedReplyThreadsTitle",defaultMessage:"Threaded Discussions"}),firstOption:{value:Je.COLLAPSED_REPLY_THREADS_ON,radionButtonText:{label:(0,d.defineMessage)({id:"user.settings.display.collapsedReplyThreadsOn",defaultMessage:"On"})}},secondOption:{value:Je.COLLAPSED_REPLY_THREADS_OFF,radionButtonText:{label:(0,d.defineMessage)({id:"user.settings.display.collapsedReplyThreadsOff",defaultMessage:"Off"})}},description:(0,d.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 u=this.createSection({section:Je.CLICK_TO_REPLY,display:"clickToReply",value:this.state.clickToReply,defaultDisplay:"true",title:(0,d.defineMessage)({id:"user.settings.display.clickToReply",defaultMessage:"Click to open threads"}),firstOption:{value:"true",radionButtonText:{label:(0,d.defineMessage)({id:"user.settings.sidebar.on",defaultMessage:"On"})}},secondOption:{value:"false",radionButtonText:{label:(0,d.defineMessage)({id:"user.settings.sidebar.off",defaultMessage:"Off"})}},description:(0,d.defineMessage)({id:"user.settings.display.clickToReplyDescription",defaultMessage:"When enabled, click anywhere on a message to open the reply thread."})}),m=this.createSection({section:Je.CHANNEL_DISPLAY_MODE,display:"channelDisplayMode",value:this.state.channelDisplayMode,defaultDisplay:Je.CHANNEL_DISPLAY_MODE_FULL_SCREEN,title:(0,d.defineMessage)({id:"user.settings.display.channelDisplayTitle",defaultMessage:"Channel Display"}),firstOption:{value:Je.CHANNEL_DISPLAY_MODE_FULL_SCREEN,radionButtonText:{label:(0,d.defineMessage)({id:"user.settings.display.fullScreen",defaultMessage:"Full width"})}},secondOption:{value:Je.CHANNEL_DISPLAY_MODE_CENTERED,radionButtonText:{label:(0,d.defineMessage)({id:"user.settings.display.fixedWidthCentered",defaultMessage:"Fixed width, centered"})}},description:(0,d.defineMessage)({id:"user.settings.display.channeldisplaymode",defaultMessage:"Select the width of the center channel."})});let p;const h=this.props.userLocale,g=(0,ne.fK)(h).name;let f,E;return p=r().createElement("div",null,r().createElement(P,{active:"languages"===this.props.activeSection,areAllSectionsInactive:""===this.props.activeSection,title:r().createElement(d.FormattedMessage,{id:"user.settings.display.language",defaultMessage:"Language"}),describe:g,section:"languages",updateSection:this.updateSection,max:r().createElement(je,{user:this.props.user,locale:h,updateSection:this.updateSection,adminMode:this.props.adminMode})}),r().createElement("div",{className:"divider-dark"})),1===Object.keys(this.props.locales).length&&(p=null),this.props.enableThemeSelection&&!this.props.adminMode&&(f=r().createElement("div",null,r().createElement(De,{selected:"theme"===this.props.activeSection,areAllSectionsInactive:""===this.props.activeSection,updateSection:this.updateSection,setRequireConfirm:this.props.setRequireConfirm,setEnforceFocus:this.props.setEnforceFocus,allowCustomThemes:this.props.allowCustomThemes}),r().createElement("div",{className:"divider-dark"}))),this.props.emojiPickerEnabled&&(E=this.createSection({section:Je.ONE_CLICK_REACTIONS_ENABLED,display:"oneClickReactionsOnPosts",value:this.state.oneClickReactionsOnPosts,defaultDisplay:"true",title:(0,d.defineMessage)({id:"user.settings.display.oneClickReactionsOnPostsTitle",defaultMessage:"Quick reactions on messages"}),firstOption:{value:"true",radionButtonText:{label:(0,d.defineMessage)({id:"user.settings.sidebar.on",defaultMessage:"On"})}},secondOption:{value:"false",radionButtonText:{label:(0,d.defineMessage)({id:"user.settings.sidebar.off",defaultMessage:"Off"})}},description:(0,d.defineMessage)({id:"user.settings.display.oneClickReactionsOnPostsDescription",defaultMessage:"When enabled, you can react in one-click with recently used reactions when hovering over a message."})})),r().createElement("div",{id:"displaySettings"},r().createElement(Y,{closeModal:this.props.closeModal,collapseModal:this.props.collapseModal,text:r().createElement(d.FormattedMessage,{id:"user.settings.display.title",defaultMessage:"Display Settings"})}),r().createElement("div",{className:"user-settings"},r().createElement(K,{id:"displaySettingsTitle",text:r().createElement(d.FormattedMessage,{id:"user.settings.display.title",defaultMessage:"Display Settings"})}),r().createElement("div",{className:"divider-dark first"}),f,c,a,i,n,s,o,t,e,l,u,m,E,p))}}Xe(Qe,"propTypes",{adminMode:i().bool,updateSection:i().func.isRequired,activeSection:i().string,closeModal:i().func.isRequired,collapseModal:i().func.isRequired,setRequireConfirm:i().func,setEnforceFocus:i().func,timezones:i().array.isRequired,allowCustomThemes:i().bool.isRequired,enableLinkPreviews:i().bool.isRequired,userLocale:i().string.isRequired,enableThemeSelection:i().bool.isRequired,configTeammateNameDisplay:i().string.isRequired,shouldAutoUpdateTimezone:i().oneOfType([i().bool,i().string]).isRequired,lockTeammateNameDisplay:i().bool.isRequired,militaryTime:i().string.isRequired,teammateNameDisplay:i().string.isRequired,availabilityStatusOnPosts:i().string.isRequired,channelDisplayMode:i().string.isRequired,messageDisplay:i().string.isRequired,colorizeUsernames:i().string.isRequired,collapseDisplay:i().string.isRequired,collapsedReplyThreads:i().string.isRequired,collapsedReplyThreadsAllowUserPreference:i().bool.isRequired,clickToReply:i().string.isRequired});const et=(0,p.connect)((function(){return(e,t)=>{var s;const a=(0,E.iE)(e),i=(0,b.rc)(e),n=t.adminMode?(0,ae.p)(t.user):(0,ae.CG)(e),r=n&&n.useAutomaticTimezone&&!n.automaticTimezone,o=!n||r,l=t.adminMode?(0,ae.aO)((0,ie.GB)(n)):(0,ae.Rn)(e),c="true"===a.AllowCustomThemes,d="true"===a.EnableLinkPreviews,u="true"===a.EnableThemeSelection,m="true"===(0,E.lJ)(e).LockTeammateNameDisplay&&"true"===a.LockTeammateNameDisplay,p=a.TeammateNameDisplay,h="true"===a.EnableEmojiPicker,g="true"===a.EnableLastActiveTime,f=t.adminMode&&t.userPreferences?t.userPreferences:void 0;let y=!0;"false"===(null===(s=(t.adminMode?t.user:(0,b.PR)(e,i)).props)||void 0===s?void 0:s.show_last_active)&&(y=!1);let M=t.user.locale;return(0,ne.cY)(e,M)||(M=a.DefaultClientLocale),{lockTeammateNameDisplay:m,allowCustomThemes:c,configTeammateNameDisplay:p,enableLinkPreviews:d,locales:(0,ne.Vb)(e),userLocale:M,enableThemeSelection:u,timezones:ee,timezoneLabel:l,userTimezone:n,shouldAutoUpdateTimezone:o,availabilityStatusOnPosts:(0,v.U2)(e,S.uP.CATEGORY_DISPLAY_SETTINGS,S.uP.AVAILABILITY_STATUS_ON_POSTS,S.uP.AVAILABILITY_STATUS_ON_POSTS_DEFAULT,f),militaryTime:(0,v.U2)(e,S.uP.CATEGORY_DISPLAY_SETTINGS,S.uP.USE_MILITARY_TIME,S.uP.USE_MILITARY_TIME_DEFAULT,f),teammateNameDisplay:(0,v.U2)(e,S.uP.CATEGORY_DISPLAY_SETTINGS,S.uP.NAME_NAME_FORMAT,p,f),channelDisplayMode:(0,v.U2)(e,S.uP.CATEGORY_DISPLAY_SETTINGS,S.uP.CHANNEL_DISPLAY_MODE,S.uP.CHANNEL_DISPLAY_MODE_DEFAULT,f),messageDisplay:(0,v.U2)(e,S.uP.CATEGORY_DISPLAY_SETTINGS,S.uP.MESSAGE_DISPLAY,S.uP.MESSAGE_DISPLAY_DEFAULT,f),colorizeUsernames:(0,v.U2)(e,S.uP.CATEGORY_DISPLAY_SETTINGS,S.uP.COLORIZE_USERNAMES,S.uP.COLORIZE_USERNAMES_DEFAULT,f),collapseDisplay:(0,v.U2)(e,S.uP.CATEGORY_DISPLAY_SETTINGS,S.uP.COLLAPSE_DISPLAY,S.uP.COLLAPSE_DISPLAY_DEFAULT,f),collapsedReplyThreadsAllowUserPreference:(0,v.OU)(e)&&(0,E.iE)(e).CollapsedThreads!==te.ty.ALWAYS_ON,collapsedReplyThreads:(0,v.b$)(e),clickToReply:(0,v.U2)(e,S.uP.CATEGORY_DISPLAY_SETTINGS,S.uP.CLICK_TO_REPLY,S.uP.CLICK_TO_REPLY_DEFAULT,f),linkPreviewDisplay:(0,v.U2)(e,S.uP.CATEGORY_DISPLAY_SETTINGS,S.uP.LINK_PREVIEW_DISPLAY,S.uP.LINK_PREVIEW_DISPLAY_DEFAULT,f),oneClickReactionsOnPosts:(0,v.U2)(e,S.uP.CATEGORY_DISPLAY_SETTINGS,S.uP.ONE_CLICK_REACTIONS_ENABLED,S.uP.ONE_CLICK_REACTIONS_ENABLED_DEFAULT,f),emojiPickerEnabled:h,lastActiveDisplay:y,lastActiveTimeEnabled:g}}}),(function(e){return{actions:(0,h.bindActionCreators)({autoUpdateTimezone:se.g,savePreferences:g.$A,updateMe:f.DO,patchUser:f.qS},e)}}))(Qe);s(32081);var tt=s(17554),st=s(61057),at=(s(95623),s(61514),s(65370)),it=(s(70684),s(68581),s(38210)),nt=s(51928),rt=s(99566);function ot(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function lt(e,t,s){return(t=function(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var s=e[Symbol.toPrimitive];if(void 0!==s){var a=s.call(e,"string");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}class ct extends n.Component{constructor(e){super(e),lt(this,"handleCancel",(e=>{var t,s;this.setState({removeSrc:!1,setDefaultSrc:!1}),null===(t=(s=this.props).updateSection)||void 0===t||t.call(s,e)})),lt(this,"handleFileSelected",(()=>{this.confirmButton.current&&this.confirmButton.current.focus()})),lt(this,"handleSave",(e=>{var t,s;if(e.preventDefault(),!this.props.loadingPicture)if(this.state.removeSrc)null===(t=(s=this.props).onRemove)||void 0===t||t.call(s);else if(this.state.setDefaultSrc){var a,i;null===(a=(i=this.props).onSetDefault)||void 0===a||a.call(i)}else{var n,r;null===(n=(r=this.props).onSubmit)||void 0===n||n.call(r)}})),lt(this,"handleRemoveSrc",(e=>{e.preventDefault(),this.setState({removeSrc:!0}),this.focusFirstElement()})),lt(this,"handleSetDefaultSrc",(e=>{e.preventDefault(),this.setState({setDefaultSrc:!0}),this.focusFirstElement()})),lt(this,"handleFileChange",(e=>{var t,s;this.setState({removeSrc:!1,setDefaultSrc:!1}),null===(t=(s=this.props).onFileChange)||void 0===t||t.call(s,e)})),lt(this,"handleInputFile",(()=>{this.selectInput.current&&(this.selectInput.current.value="",this.selectInput.current.click())})),lt(this,"setPicture",(e=>{if(e){this.previewBlob=URL.createObjectURL(e);const t=new FileReader;t.onload=e=>{const t=rt.Ii(e.target.result),s=rt.vl(t);this.setState({image:this.previewBlob,orientationStyles:s})},t.readAsArrayBuffer(e)}})),lt(this,"renderImg",(()=>{const e=this.props.imageContext;if(this.props.file){const t=function(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?ot(Object(s),!0).forEach((function(t){lt(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):ot(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}({backgroundImage:"url("+this.state.image+")"},this.state.orientationStyles);return r().createElement("div",{className:"".concat(e,"-img-preview")},r().createElement("div",{className:"img-preview__image"},r().createElement("div",{alt:"".concat(e," image preview"),style:t,className:"".concat(e,"-img-preview")})))}if(this.state.setDefaultSrc)return r().createElement("img",{className:"".concat(e,"-img"),alt:"".concat(e," image"),src:this.props.defaultImageSrc});if(this.props.src&&!this.state.removeSrc){var t;const s=r().createElement("img",{className:"".concat(e,"-img"),alt:"".concat(e," image"),src:this.props.src});if(!this.props.onRemove&&!this.props.onSetDefault)return s;let a,i;return this.props.onRemove?(a=r().createElement(d.FormattedMessage,{id:"setting_picture.remove",defaultMessage:"Remove This Icon"}),i=this.handleRemoveSrc):this.props.onSetDefault&&(a=r().createElement(d.FormattedMessage,{id:"setting_picture.remove_profile_picture",defaultMessage:"Remove Profile Picture"}),i=this.handleSetDefaultSrc),r().createElement("div",{className:"".concat(e,"-img__container")},r().createElement("div",{className:"img-preview__image","aria-hidden":!0},s),r().createElement(fe.Z,{id:"removeIcon",title:null!==(t=a)&&void 0!==t?t:"",placement:"right",disabled:!a},r().createElement("button",{"data-testid":"removeSettingPicture",className:"".concat(e,"-img__remove"),onClick:i},r().createElement("span",{"aria-hidden":!0},"×"),r().createElement("span",{className:"sr-only"},a))))}return null})),this.settingList=(0,n.createRef)(),this.selectInput=(0,n.createRef)(),this.confirmButton=(0,n.createRef)(),this.previewBlob=null,this.state={image:null,removeSrc:!1,setDefaultSrc:!1}}focusFirstElement(){var e;null===(e=this.settingList.current)||void 0===e||e.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)}render(){const e=this.renderImg();let t,s,a="btn",i=!1;return this.props.submitActive||this.state.removeSrc||this.state.setDefaultSrc?a+=" btn-primary":(a+=" btn-inactive disabled",i=!0),e&&(t=r().createElement("li",{className:"setting-list-item",role:"presentation"},e)),this.props.onSubmit&&(s=r().createElement("span",null,r().createElement("input",{"data-testid":"uploadPicture",ref:this.selectInput,className:"hidden",accept:S.Constants.ACCEPT_STATIC_IMAGE,type:"file",onChange:this.handleFileChange,disabled:this.props.loadingPicture,"aria-hidden":!0,tabIndex:-1}),r().createElement("button",{"data-testid":"inputSettingPictureButton",className:"btn btn-primary btn-file",disabled:this.props.loadingPicture,onClick:this.handleInputFile,"aria-label":(0,T._u)({id:"setting_picture.select",defaultMessage:"Select"})},r().createElement(d.FormattedMessage,{id:"setting_picture.select",defaultMessage:"Select"})),r().createElement("button",{tabIndex:i?-1:0,"data-testid":"saveSettingPicture",disabled:i,ref:this.confirmButton,className:a,onClick:this.handleSave,"aria-label":this.props.loadingPicture?(0,T._u)({id:"setting_picture.uploading",defaultMessage:"Uploading..."}):(0,T._u)({id:"setting_picture.save",defaultMessage:"Save"})},r().createElement(nt.Z,{loading:this.props.loadingPicture,text:(0,T._u)({id:"setting_picture.uploading",defaultMessage:"Uploading..."})},r().createElement(d.FormattedMessage,{id:"setting_picture.save",defaultMessage:"Save"}))))),r().createElement("section",{className:"section-max form-horizontal"},r().createElement("h4",{className:"col-xs-12 section-title"},this.props.title),r().createElement("div",{className:"col-sm-10 col-sm-offset-2"},r().createElement("div",{className:"setting-list",ref:this.settingList,tabIndex:-1,"aria-label":this.props.title,"aria-describedby":"setting-picture__helptext"},t,r().createElement("div",{id:"setting-picture__helptext",className:"setting-list-item pt-3"},this.props.helpText),r().createElement("div",{className:"setting-list-item"},r().createElement("hr",null),r().createElement(it.Z,{errors:[this.props.clientError,this.props.serverError],type:"modal"}),s,r().createElement("button",{"data-testid":"cancelSettingPicture",className:"btn btn-tertiary theme ml-2",onClick:this.handleCancel,"aria-label":(0,T._u)({id:"setting_picture.cancel",defaultMessage:"Cancel"})},r().createElement(d.FormattedMessage,{id:"setting_picture.cancel",defaultMessage:"Cancel"}))))))}}function dt(e,t,s){return(t=function(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var s=e[Symbol.toPrimitive];if(void 0!==s){var a=s.call(e,"string");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}lt(ct,"defaultProps",{imageContext:"profile"});const ut=(0,d.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."},emailMatch:{id:"user.settings.general.emailMatch",defaultMessage:"The new emails you entered do not 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, JPEG, 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"}});class mt extends n.PureComponent{constructor(e){super(e),dt(this,"submitActive",!1),dt(this,"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"})}))})),dt(this,"createEmailResendLink",(e=>r().createElement("span",{className:"resend-verification-wrapper"},r().createElement(nt.Z,{loading:this.state.showSpinner,text:T._u({id:"user.settings.general.sending",defaultMessage:"Sending"})},r().createElement("a",{onClick:()=>{this.handleEmailResend(e),setTimeout((()=>{this.setState({showSpinner:!1})}),500)}},r().createElement(d.FormattedMessage,{id:"user.settings.general.sendAgain",defaultMessage:"Send again"})))))),dt(this,"submitUsername",(()=>{const e=Object.assign({},this.props.user),t=this.state.username.trim().toLowerCase(),{formatMessage:s}=this.props.intl,a=T.rh(t);if(a){let e;return e=a.id===S.qf.RESERVED_NAME?{clientError:s(ut.usernameReserved),serverError:""}:{clientError:s(ut.usernameRestrictions,{min:S.Constants.MIN_USERNAME_LENGTH,max:S.Constants.MAX_USERNAME_LENGTH}),serverError:""},void this.setState(e)}e.username!==t?(e.username=t,(0,le.L9)("settings","user_settings_update",{field:"username"}),this.submitUser(e,!1)):this.updateSection("")})),dt(this,"submitNickname",(()=>{const e=Object.assign({},this.props.user),t=this.state.nickname.trim();e.nickname!==t?(e.nickname=t,(0,le.L9)("settings","user_settings_update",{field:"nickname"}),this.submitUser(e,!1)):this.updateSection("")})),dt(this,"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,(0,le.L9)("settings","user_settings_update",{field:"fullname"}),this.submitUser(e,!1)):this.updateSection("")})),dt(this,"submitEmail",(()=>{const e=Object.assign({},this.props.user),t=this.state.email.trim().toLowerCase(),s=this.state.confirmEmail.trim().toLowerCase(),a=this.state.currentPassword,{formatMessage:i}=this.props.intl;t!==e.email||""!==s&&s!==e.email?""!==t&&(0,at.Jh)(t)?t===s?""!==a?(e.email=t,e.password=a,(0,le.L9)("settings","user_settings_update",{field:"email"}),this.submitUser(e,!0)):this.setState({emailError:i(ut.emptyPassword),clientError:"",serverError:""}):this.setState({emailError:i(ut.emailMatch),clientError:"",serverError:""}):this.setState({emailError:i(ut.validEmail),clientError:"",serverError:""}):this.updateSection("")})),dt(this,"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:S.MN.EMAIL_VERIFICATION_REQUIRED,type:S.Mw.SUCCESS},!0));else if(i){let e;e=i.server_error_id&&"api.user.check_user_password.invalid.app_error"===i.server_error_id?s(ut.incorrectPassword):"app.user.group_name_conflict"===i.server_error_id?s(ut.usernameGroupNameUniqueness):i.message?i.message:i,this.setState({serverError:e,emailError:"",clientError:"",sectionIsSaving:!1})}}))})),dt(this,"setDefaultProfilePicture",(async()=>{try{await this.props.actions.setDefaultProfileImage(this.props.user.id),this.updateSection(""),this.submitActive=!1}catch(e){let t;t=e.message?e.message:e,this.setState({serverError:t,emailError:"",clientError:"",sectionIsSaving:!1})}})),dt(this,"submitPicture",(()=>{if(!this.state.pictureFile)return;if(!this.submitActive)return;(0,le.L9)("settings","user_settings_update",{field:"picture"});const{formatMessage:e}=this.props.intl,t=this.state.pictureFile;S.Ec.includes(t.type)?t.size>this.props.maxFileSize?this.setState({clientError:e(ut.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({clientError:e(ut.validImage),serverError:""})})),dt(this,"submitPosition",(()=>{const e=Object.assign({},this.props.user),t=this.state.position.trim();e.position!==t?(e.position=t,(0,le.L9)("settings","user_settings_update",{field:"position"}),this.submitUser(e,!1)):this.updateSection("")})),dt(this,"updateUsername",(e=>{this.setState({username:e.target.value})})),dt(this,"updateFirstName",(e=>{this.setState({firstName:e.target.value})})),dt(this,"updateLastName",(e=>{this.setState({lastName:e.target.value})})),dt(this,"updateNickname",(e=>{this.setState({nickname:e.target.value})})),dt(this,"updatePosition",(e=>{this.setState({position:e.target.value})})),dt(this,"updateEmail",(e=>{this.setState({email:e.target.value})})),dt(this,"updateConfirmEmail",(e=>{this.setState({confirmEmail:e.target.value})})),dt(this,"updateCurrentPassword",(e=>{this.setState({currentPassword:e.target.value})})),dt(this,"updatePicture",(e=>{e.target.files&&e.target.files[0]?(this.setState({pictureFile:e.target.files[0]}),this.submitActive=!0,this.setState({clientError:null})):this.setState({pictureFile:null})})),dt(this,"updateSection",(e=>{this.setState(Object.assign({},this.setupInitialState(this.props),{clientError:"",serverError:"",emailError:"",sectionIsSaving:!1})),this.submitActive=!1,this.props.updateSection(e)})),dt(this,"createNameSection",(()=>{const e=this.props.user,{formatMessage:t}=this.props.intl,s="name"===this.props.activeSection;let a=null;if(s){const e=[];let s,i=null;if(this.props.user.auth_service===S.Constants.LDAP_SERVICE&&(this.props.ldapFirstNameAttributeSet||this.props.ldapLastNameAttributeSet)||this.props.user.auth_service===S.Constants.SAML_SERVICE&&(this.props.samlFirstNameAttributeSet||this.props.samlLastNameAttributeSet)||S.Constants.OAUTH_SERVICES.includes(this.props.user.auth_service))s=r().createElement("span",null,r().createElement(d.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(r().createElement("div",{key:"firstNameSetting",className:"form-group"},r().createElement("label",{className:"col-sm-5 control-label"},r().createElement(d.FormattedMessage,{id:"user.settings.general.firstName",defaultMessage:"First Name"})),r().createElement("div",{className:"col-sm-7"},r().createElement("input",{id:"firstName",autoFocus:!0,className:"form-control",type:"text",onChange:this.updateFirstName,maxLength:S.Constants.MAX_FIRSTNAME_LENGTH,value:this.state.firstName,onFocus:T.fe,"aria-label":t({id:"user.settings.general.firstName",defaultMessage:"First Name"})})))),e.push(r().createElement("div",{key:"lastNameSetting",className:"form-group"},r().createElement("label",{className:"col-sm-5 control-label"},r().createElement(d.FormattedMessage,{id:"user.settings.general.lastName",defaultMessage:"Last Name"})),r().createElement("div",{className:"col-sm-7"},r().createElement("input",{id:"lastName",className:"form-control",type:"text",onChange:this.updateLastName,maxLength:S.Constants.MAX_LASTNAME_LENGTH,value:this.state.lastName,"aria-label":t({id:"user.settings.general.lastName",defaultMessage:"Last Name"})}))));const a=e=>{e.preventDefault(),this.updateSection(""),this.props.updateTab("notifications")},n=r().createElement("a",{href:"#",onClick:a.bind(this)},r().createElement(d.FormattedMessage,{id:"user.settings.general.notificationsLink",defaultMessage:"Notifications"}));s=r().createElement("span",null,r().createElement(d.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:n}})),i=this.submitName}a=r().createElement(D,{title:t(ut.fullName),inputs:e,submit:i,saving:this.state.sectionIsSaving,serverError:this.state.serverError,clientError:this.state.clientError,updateSection:this.updateSection,extraInfo:s})}let i="";return e.first_name&&e.last_name?i=e.first_name+" "+e.last_name:e.first_name?i=e.first_name:e.last_name?i=e.last_name:(i=r().createElement(d.FormattedMessage,{id:"user.settings.general.emptyName",defaultMessage:"Click 'Edit' to add your full name"}),this.props.isMobileView&&(i=r().createElement(d.FormattedMessage,{id:"user.settings.general.mobile.emptyName",defaultMessage:"Click to add your full name"}))),r().createElement(P,{active:s,areAllSectionsInactive:""===this.props.activeSection,title:t(ut.fullName),describe:i,section:"name",updateSection:this.updateSection,max:a})})),dt(this,"createNicknameSection",(()=>{const e=this.props.user,{formatMessage:t}=this.props.intl,s="nickname"===this.props.activeSection;let a=null;if(s){const e=[];let s,i=null;if("ldap"===this.props.user.auth_service&&this.props.ldapNicknameAttributeSet||this.props.user.auth_service===S.Constants.SAML_SERVICE&&this.props.samlNicknameAttributeSet)s=r().createElement("span",null,r().createElement(d.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 a=r().createElement(d.FormattedMessage,{id:"user.settings.general.nickname",defaultMessage:"Nickname"});this.props.isMobileView&&(a=""),e.push(r().createElement("div",{key:"nicknameSetting",className:"form-group"},r().createElement("label",{className:"col-sm-5 control-label"},a),r().createElement("div",{className:"col-sm-7"},r().createElement("input",{id:"nickname",autoFocus:!0,className:"form-control",type:"text",onChange:this.updateNickname,value:this.state.nickname,maxLength:S.Constants.MAX_NICKNAME_LENGTH,autoCapitalize:"off","aria-label":t({id:"user.settings.general.nickname",defaultMessage:"Nickname"})})))),s=r().createElement("span",null,r().createElement(d.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."})),i=this.submitNickname}a=r().createElement(D,{title:t(ut.nickname),inputs:e,submit:i,saving:this.state.sectionIsSaving,serverError:this.state.serverError,clientError:this.state.clientError,updateSection:this.updateSection,extraInfo:s})}let i="";return e.nickname?i=e.nickname:(i=r().createElement(d.FormattedMessage,{id:"user.settings.general.emptyNickname",defaultMessage:"Click 'Edit' to add a nickname"}),this.props.isMobileView&&(i=r().createElement(d.FormattedMessage,{id:"user.settings.general.mobile.emptyNickname",defaultMessage:"Click to add a nickname"}))),r().createElement(P,{active:s,areAllSectionsInactive:""===this.props.activeSection,title:t(ut.nickname),describe:i,section:"nickname",updateSection:this.updateSection,max:a})})),dt(this,"createUsernameSection",(()=>{const{formatMessage:e}=this.props.intl,t="username"===this.props.activeSection;let s=null;if(t){const t=[];let a,i=null;if(""===this.props.user.auth_service){let s=r().createElement(d.FormattedMessage,{id:"user.settings.general.username",defaultMessage:"Username"});this.props.isMobileView&&(s=""),t.push(r().createElement("div",{key:"usernameSetting",className:"form-group"},r().createElement("label",{className:"col-sm-5 control-label"},s),r().createElement("div",{className:"col-sm-7"},r().createElement("input",{id:"username",autoFocus:!0,maxLength:S.Constants.MAX_USERNAME_LENGTH,className:"form-control",type:"text",onChange:this.updateUsername,value:this.state.username,autoCapitalize:"off",onFocus:T.fe,"aria-label":e({id:"user.settings.general.username",defaultMessage:"Username"})})))),a=r().createElement("span",null,r().createElement(d.FormattedMessage,{id:"user.settings.general.usernameInfo",defaultMessage:"Pick something easy for teammates to recognize and recall."})),i=this.submitUsername}else a=r().createElement("span",null,r().createElement(d.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=r().createElement(D,{title:e(ut.username),inputs:t,submit:i,saving:this.state.sectionIsSaving,serverError:this.state.serverError,clientError:this.state.clientError,updateSection:this.updateSection,extraInfo:a})}return r().createElement(P,{active:t,areAllSectionsInactive:""===this.props.activeSection,title:e(ut.username),describe:this.props.user.username,section:"username",updateSection:this.updateSection,max:s})})),dt(this,"createPositionSection",(()=>{const e=this.props.user,{formatMessage:t}=this.props.intl,s="position"===this.props.activeSection;let a=null;if(s){const e=[];let s,i=null;if(this.props.user.auth_service===S.Constants.LDAP_SERVICE&&this.props.ldapPositionAttributeSet||this.props.user.auth_service===S.Constants.SAML_SERVICE&&this.props.samlPositionAttributeSet)s=r().createElement("span",null,r().createElement(d.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 a=r().createElement(d.FormattedMessage,{id:"user.settings.general.position",defaultMessage:"Position"});this.props.isMobileView&&(a=""),e.push(r().createElement("div",{key:"positionSetting",className:"form-group"},r().createElement("label",{className:"col-sm-5 control-label"},a),r().createElement("div",{className:"col-sm-7"},r().createElement("input",{id:"position",autoFocus:!0,className:"form-control",type:"text",onChange:this.updatePosition,value:this.state.position,maxLength:S.Constants.MAX_POSITION_LENGTH,autoCapitalize:"off",onFocus:T.fe,"aria-label":t({id:"user.settings.general.position",defaultMessage:"Position"})})))),s=r().createElement("span",null,r().createElement(d.FormattedMessage,{id:"user.settings.general.positionExtra",defaultMessage:"Use Position for your role or job title. This will be shown in your profile popover."})),i=this.submitPosition}a=r().createElement(D,{title:t(ut.position),inputs:e,submit:i,saving:this.state.sectionIsSaving,serverError:this.state.serverError,clientError:this.state.clientError,updateSection:this.updateSection,extraInfo:s})}let i="";return e.position?i=e.position:(i=r().createElement(d.FormattedMessage,{id:"user.settings.general.emptyPosition",defaultMessage:"Click 'Edit' to add your job title / position"}),this.props.isMobileView&&(i=r().createElement(d.FormattedMessage,{id:"user.settings.general.mobile.emptyPosition",defaultMessage:"Click to add your job title / position"}))),r().createElement(P,{active:s,areAllSectionsInactive:""===this.props.activeSection,title:t(ut.position),describe:i,section:"position",updateSection:this.updateSection,max:a})})),dt(this,"createPictureSection",(()=>{const e=this.props.user,{formatMessage:t}=this.props.intl,s="picture"===this.props.activeSection;let a=null;if(s){let s=null,i=null,n=null,o=null;this.props.user.auth_service!==S.Constants.LDAP_SERVICE&&this.props.user.auth_service!==S.Constants.SAML_SERVICE||!this.props.ldapPictureAttributeSet?(s=this.submitPicture,i=e.last_picture_update>0?this.setDefaultProfilePicture:null,o=T.bb(e.id,e.last_picture_update),n=r().createElement(d.FormattedMessage,{id:"setting_picture.help.profile",defaultMessage:"Upload a picture in BMP, JPG, JPEG, or PNG format. Maximum file size: {max}",values:{max:T.eA(this.props.maxFileSize)}})):n=r().createElement("span",null,r().createElement(d.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."})),a=r().createElement(ct,{title:t(ut.profilePicture),onSubmit:s,onSetDefault:i,src:o,defaultImageSrc:T.Vl(e.id),serverError:this.state.serverError,clientError:this.state.clientError,updateSection:e=>{this.updateSection(""),e.preventDefault()},file:this.state.pictureFile,onFileChange:this.updatePicture,submitActive:this.submitActive,loadingPicture:this.state.loadingPicture,maxFileSize:this.props.maxFileSize,helpText:n})}let i=t(ut.uploadImage);return this.props.isMobileView&&(i=t(ut.uploadImageMobile)),e.last_picture_update>0&&(i=r().createElement(d.FormattedMessage,{id:"user.settings.general.imageUpdated",defaultMessage:"Image last updated {date}",values:{date:r().createElement(d.FormattedDate,{value:new Date(e.last_picture_update),day:"2-digit",month:"short",year:"numeric"})}})),r().createElement(P,{active:s,areAllSectionsInactive:""===this.props.activeSection,title:t(ut.profilePicture),describe:i,section:"picture",updateSection:this.updateSection,max:a})})),this.state=this.setupInitialState(e)}setupInitialState(e){const t=e.user;return{username:t.username,firstName:t.first_name,lastName:t.last_name,nickname:t.nickname,position:t.position,originalEmail:t.email,email:"",confirmEmail:"",currentPassword:"",pictureFile:null,loadingPicture:!1,sectionIsSaving:!1,showSpinner:!1,serverError:""}}createEmailSection(){const{formatMessage:e}=this.props.intl,t="email"===this.props.activeSection;let s=null;if(t){const t=this.props.requireEmailVerification,a=[];let i=r().createElement(d.FormattedMessage,{id:"user.settings.general.emailHelp1",defaultMessage:"Email is used for sign-in, notifications, and password reset. Email requires verification if changed."});t||(i=r().createElement(d.FormattedMessage,{id:"user.settings.general.emailHelp3",defaultMessage:"Email is used for sign-in, notifications, and password reset."}));let n=null;""===this.props.user.auth_service?(a.push(r().createElement("div",{key:"currentEmailSetting"},r().createElement("div",{className:"form-group"},r().createElement("label",{className:"col-sm-5 control-label"},r().createElement(d.FormattedMessage,{id:"user.settings.general.currentEmail",defaultMessage:"Current Email"})),r().createElement("div",{className:"col-sm-7"},r().createElement("label",{className:"control-label word-break--all text-left"},this.state.originalEmail))))),a.push(r().createElement("div",{key:"emailSetting"},r().createElement("div",{className:"form-group"},r().createElement("label",{className:"col-sm-5 control-label"},r().createElement(d.FormattedMessage,{id:"user.settings.general.newEmail",defaultMessage:"New Email"})),r().createElement("div",{className:"col-sm-7"},r().createElement("input",{autoFocus:!0,id:"primaryEmail",className:"form-control",type:"email",onChange:this.updateEmail,maxLength:S.Constants.MAX_EMAIL_LENGTH,value:this.state.email,"aria-label":e({id:"user.settings.general.newEmail",defaultMessage:"New Email"})}))))),a.push(r().createElement("div",{key:"confirmEmailSetting"},r().createElement("div",{className:"form-group"},r().createElement("label",{className:"col-sm-5 control-label"},r().createElement(d.FormattedMessage,{id:"user.settings.general.confirmEmail",defaultMessage:"Confirm Email"})),r().createElement("div",{className:"col-sm-7"},r().createElement("input",{id:"confirmEmail",className:"form-control",type:"email",onChange:this.updateConfirmEmail,maxLength:S.Constants.MAX_EMAIL_LENGTH,value:this.state.confirmEmail,"aria-label":e({id:"user.settings.general.confirmEmail",defaultMessage:"Confirm Email"})}))))),a.push(r().createElement("div",{key:"currentPassword"},r().createElement("div",{className:"form-group"},r().createElement("label",{className:"col-sm-5 control-label"},r().createElement(d.FormattedMessage,{id:"user.settings.general.currentPassword",defaultMessage:"Current Password"})),r().createElement("div",{className:"col-sm-7"},r().createElement("input",{id:"currentPassword",className:"form-control",type:"password",onChange:this.updateCurrentPassword,value:this.state.currentPassword,"aria-label":e({id:"user.settings.general.currentPassword",defaultMessage:"Current Password"})}))),i)),n=this.submitEmail):this.props.user.auth_service===S.Constants.GITLAB_SERVICE?a.push(r().createElement("div",{key:"oauthEmailInfo",className:"form-group"},r().createElement("div",{className:"setting-list__hint pb-3"},r().createElement(d.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}})),i)):this.props.user.auth_service===S.Constants.GOOGLE_SERVICE?a.push(r().createElement("div",{key:"oauthEmailInfo",className:"form-group"},r().createElement("div",{className:"setting-list__hint pb-3"},r().createElement(d.FormattedMessage,{id:"user.settings.general.emailGoogleCantUpdate",defaultMessage:"Login occurs through Google Apps. Email cannot be updated. Email address used for notifications is {email}.",values:{email:this.state.originalEmail}})),i)):this.props.user.auth_service===S.Constants.OFFICE365_SERVICE?a.push(r().createElement("div",{key:"oauthEmailInfo",className:"form-group"},r().createElement("div",{className:"setting-list__hint pb-3"},r().createElement(d.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}})),i)):this.props.user.auth_service===S.Constants.OPENID_SERVICE?a.push(r().createElement("div",{key:"oauthEmailInfo",className:"form-group"},r().createElement("div",{className:"setting-list__hint pb-3"},r().createElement(d.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}})),i)):this.props.user.auth_service===S.Constants.LDAP_SERVICE?a.push(r().createElement("div",{key:"oauthEmailInfo",className:"pb-2"},r().createElement("div",{className:"setting-list__hint pb-3"},r().createElement(d.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===S.Constants.SAML_SERVICE&&a.push(r().createElement("div",{key:"oauthEmailInfo",className:"pb-2"},r().createElement("div",{className:"setting-list__hint pb-3"},r().createElement(d.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}})),i)),s=r().createElement(D,{title:r().createElement(d.FormattedMessage,{id:"user.settings.general.email",defaultMessage:"Email"}),inputs:a,submit:n,saving:this.state.sectionIsSaving,serverError:this.state.serverError,clientError:this.state.emailError,updateSection:this.updateSection})}let a="";return""===this.props.user.auth_service?a=this.props.user.email:this.props.user.auth_service===S.Constants.GITLAB_SERVICE?a=r().createElement(d.FormattedMessage,{id:"user.settings.general.loginGitlab",defaultMessage:"Login done through GitLab ({email})",values:{email:this.state.originalEmail}}):this.props.user.auth_service===S.Constants.GOOGLE_SERVICE?a=r().createElement(d.FormattedMessage,{id:"user.settings.general.loginGoogle",defaultMessage:"Login done through Google Apps ({email})",values:{email:this.state.originalEmail}}):this.props.user.auth_service===S.Constants.OFFICE365_SERVICE?a=r().createElement(d.FormattedMessage,{id:"user.settings.general.loginOffice365",defaultMessage:"Login done through Entra ID ({email})",values:{email:this.state.originalEmail}}):this.props.user.auth_service===S.Constants.LDAP_SERVICE?a=r().createElement(d.FormattedMessage,{id:"user.settings.general.loginLdap",defaultMessage:"Login done through AD/LDAP ({email})",values:{email:this.state.originalEmail}}):this.props.user.auth_service===S.Constants.SAML_SERVICE&&(a=r().createElement(d.FormattedMessage,{id:"user.settings.general.loginSaml",defaultMessage:"Login done through SAML ({email})",values:{email:this.state.originalEmail}})),r().createElement(P,{active:t,areAllSectionsInactive:""===this.props.activeSection,title:r().createElement(d.FormattedMessage,{id:"user.settings.general.email",defaultMessage:"Email"}),describe:a,section:"email",updateSection:this.updateSection,max:s})}render(){const e=this.createNameSection(),t=this.createNicknameSection(),s=this.createUsernameSection(),a=this.createPositionSection(),i=this.createEmailSection(),n=this.createPictureSection();return r().createElement("div",{id:"generalSettings"},r().createElement(Y,{closeModal:this.props.closeModal,collapseModal:this.props.collapseModal,text:r().createElement(d.FormattedMessage,{id:"user.settings.modal.profile",defaultMessage:"Profile"})}),r().createElement("div",{className:"user-settings"},r().createElement(K,{id:"generalSettingsTitle",text:r().createElement(d.FormattedMessage,{id:"user.settings.modal.profile",defaultMessage:"Profile"})}),r().createElement("div",{className:"divider-dark first"}),e,r().createElement("div",{className:"divider-light"}),s,r().createElement("div",{className:"divider-light"}),t,r().createElement("div",{className:"divider-light"}),a,r().createElement("div",{className:"divider-light"}),i,r().createElement("div",{className:"divider-light"}),n,r().createElement("div",{className:"divider-dark"})))}}dt(mt,"propTypes",{updateSection:i().func.isRequired,updateTab:i().func.isRequired,activeSection:i().string,closeModal:i().func.isRequired,collapseModal:i().func.isRequired,isMobileView:i().bool.isRequired,maxFileSize:i().number.isRequired,actions:i().shape({logError:i().func.isRequired,clearErrors:i().func.isRequired,updateMe:i().func.isRequired,sendVerificationEmail:i().func.isRequired,setDefaultProfileImage:i().func.isRequired,uploadProfileImage:i().func.isRequired}).isRequired,requireEmailVerification:i().bool,ldapFirstNameAttributeSet:i().bool,ldapLastNameAttributeSet:i().bool,samlFirstNameAttributeSet:i().bool,samlLastNameAttributeSet:i().bool,ldapNicknameAttributeSet:i().bool,samlNicknameAttributeSet:i().bool,ldapPositionAttributeSet:i().bool,samlPositionAttributeSet:i().bool,ldapPictureAttributeSet:i().bool});const pt=(0,d.injectIntl)(mt),ht=(0,p.connect)((function(e){const t=(0,E.iE)(e),s="true"===t.RequireEmailVerification,a=parseInt(t.MaxFileSize,10),i="true"===t.LdapFirstNameAttributeSet,n="true"===t.LdapLastNameAttributeSet,r="true"===t.SamlFirstNameAttributeSet,o="true"===t.SamlLastNameAttributeSet,l="true"===t.LdapNicknameAttributeSet,c="true"===t.SamlNicknameAttributeSet,d="true"===t.SamlPositionAttributeSet,u="true"===t.LdapPositionAttributeSet,m="true"===t.LdapPictureAttributeSet;return{isMobileView:(0,st.E7)(e),requireEmailVerification:s,maxFileSize:a,ldapFirstNameAttributeSet:i,ldapLastNameAttributeSet:n,samlFirstNameAttributeSet:r,samlLastNameAttributeSet:o,ldapNicknameAttributeSet:l,samlNicknameAttributeSet:c,samlPositionAttributeSet:d,ldapPositionAttributeSet:u,ldapPictureAttributeSet:m}}),(function(e){return{actions:(0,h.bindActionCreators)({logError:tt.H,clearErrors:tt.b9,updateMe:f.DO,sendVerificationEmail:f.zk,setDefaultProfileImage:f.QJ,uploadProfileImage:f._p},e)}}))(pt);var gt=s(80947),ft=s(1182),Et=s(55552),vt=s(25698),bt=s(45448),St=s(88721),yt=s(15897);function Mt(e){let{active:t,updateSection:s,onSubmit:a,onCancel:i,saving:o,error:l,setParentState:c,areAllSectionsInactive:u,isCollapsedThreadsEnabled:m,desktopActivity:p,sendPushNotifications:h,pushActivity:g,pushStatus:f,desktopThreads:E,pushThreads:v,desktopAndMobileSettingsDifferent:b}=e;const y=(0,n.useRef)(null),M=(0,n.useRef)(t);(0,n.useEffect)((()=>{var e;M.current&&!t&&u&&(null===(e=y.current)||void 0===e||e.focus()),M.current=t}),[t,u]);const N=(0,n.useCallback)((e=>{const t=e.target.value;c("desktopActivity",t)}),[c]),_=(0,n.useCallback)((e=>{const t=e.target.checked?S.XH.ALL:S.XH.MENTION;c("desktopThreads",t)}),[c]),T=(0,n.useCallback)((e=>{const t=e.target.checked;c("desktopAndMobileSettingsDifferent",t)}),[c]),C=(0,n.useCallback)((e=>{e&&"value"in e&&c("pushActivity",e.value)}),[c]),A=(0,n.useCallback)((e=>{const t=e.target.checked?S.XH.ALL:S.XH.MENTION;c("pushThreads",t)}),[c]),I=(0,n.useCallback)((e=>{e&&"value"in e&&c("pushStatus",e.value)}),[c]),P=(0,n.useMemo)((()=>{const e=[],t=r().createElement("fieldset",{id:"sendDesktopNotificationsSection",key:"sendDesktopNotificationsSection"},r().createElement("legend",{className:"form-legend"},r().createElement(d.FormattedMessage,{id:"user.settings.notifications.desktopAndMobile.sendDesktopNotificationFor",defaultMessage:"Send notifications for:"})),_t.map((e=>r().createElement("div",{key:e.value,className:"radio"},r().createElement("label",null,r().createElement("input",{type:"radio",checked:p===e.value,value:e.value,onChange:N}),e.label)))));if(e.push(t),function(e,t){return!!e&&(t!==S.XH.ALL&&t!==S.XH.NONE)}(m,p)){const t=r().createElement(n.Fragment,{key:"desktopThreadNotificationSection"},r().createElement("br",null),r().createElement("div",{className:"checkbox single-checkbox"},r().createElement("label",null,r().createElement("input",{type:"checkbox",checked:E===S.XH.ALL,onChange:_}),r().createElement(d.FormattedMessage,{id:"user.settings.notifications.desktopAndMobile.notifyForDesktopthreads",defaultMessage:"Notify me about replies to threads I'm following"}))));e.push(t)}if(h){const t=r().createElement(n.Fragment,{key:"differentMobileNotificationsSection"},r().createElement("hr",null),r().createElement("div",{className:"checkbox single-checkbox"},r().createElement("label",null,r().createElement("input",{type:"checkbox",checked:b,onChange:T}),r().createElement(d.FormattedMessage,{id:"user.settings.notifications.desktopAndMobile.differentMobileNotificationsTitle",defaultMessage:"Use different settings for my mobile devices"}))));e.push(t)}if(function(e,t){return!!e&&!!t}(h,b)){const t=r().createElement(r().Fragment,{key:"sendMobileNotificationsSection"},r().createElement("br",null),r().createElement("label",{id:"sendMobileNotificationsLabel",htmlFor:"sendMobileNotificationsSelectInput",className:"singleSelectLabel"},r().createElement(d.FormattedMessage,{id:"user.settings.notifications.desktopAndMobile.sendMobileNotificationsFor",defaultMessage:"Send mobile notifications for:"})),r().createElement(Le.ZP,{inputId:"sendMobileNotificationsSelectInput","aria-labelledby":"sendMobileNotificationsLabel",className:"react-select singleSelect",classNamePrefix:"react-select",options:_t,clearable:!1,isClearable:!1,isSearchable:!1,components:{IndicatorSeparator:Nt},value:Tt(g),onChange:C}));e.push(t)}if(function(e,t,s,a){return!!e&&(!!t&&(!!s&&(a!==S.XH.ALL&&a!==S.XH.NONE)))}(h,m,b,g)){const t=r().createElement(n.Fragment,{key:"threadNotificationSection"},r().createElement("br",null),r().createElement("div",{className:"checkbox single-checkbox"},r().createElement("label",null,r().createElement("input",{type:"checkbox",checked:v===S.XH.ALL,onChange:A}),r().createElement(d.FormattedMessage,{id:"user.settings.notifications.desktopAndMobile.notifyForMobilethreads",defaultMessage:"Notify me on mobile about replies to threads I'm following"}))));e.push(t)}if(function(e,t,s,a){return!!e&&(!t||!s||(a?s!==S.XH.NONE:t!==S.XH.NONE))}(h,p,g,b)){const t=r().createElement(r().Fragment,{key:"triggerMobileNotificationsSection"},r().createElement("br",null),r().createElement("label",{id:"pushMobileNotificationsLabel",htmlFor:"pushMobileNotificationSelectInput",className:"singleSelectLabel"},r().createElement(d.FormattedMessage,{id:"user.settings.notifications.desktopAndMobile.pushNotification",defaultMessage:"Trigger mobile notifications when I am:"})),r().createElement(Le.ZP,{inputId:"pushMobileNotificationSelectInput","aria-labelledby":"pushMobileNotificationsLabel",className:"react-select singleSelect",classNamePrefix:"react-select",options:Ct,clearable:!1,isClearable:!1,isSearchable:!1,components:{IndicatorSeparator:Nt},value:kt(f),onChange:I}));e.push(t)}if(!h){const t=r().createElement(r().Fragment,null,r().createElement("br",null),r().createElement(d.FormattedMessage,{id:"user.settings.notifications.desktopAndMobile.pushNotificationsDisabled",defaultMessage:"Mobile push notifications haven't been enabled by your system administrator."}));e.push(t)}return e}),[p,N,m,E,_,h,b,T,g,C,v,A,f,I]);return t?r().createElement(D,{title:r().createElement(d.FormattedMessage,{id:"user.settings.notifications.desktopAndMobile.title",defaultMessage:"Desktop and mobile notifications"}),inputs:P,submit:a,saving:o,serverError:l,updateSection:function(e){s(e)}}):r().createElement(k,{ref:y,title:r().createElement(d.FormattedMessage,{id:"user.settings.notifications.desktopAndMobile.title",defaultMessage:"Desktop and mobile notifications"}),describe:At(p,g),section:S.eU.DESKTOP_AND_MOBILE,updateSection:function(e){s(e),i()}})}function Nt(){return null}const _t=[{label:r().createElement(d.FormattedMessage,{id:"user.settings.notifications.desktopAndMobile.allNewMessages",defaultMessage:"All new messages"}),value:S.XH.ALL},{label:r().createElement(d.FormattedMessage,{id:"user.settings.notifications.desktopAndMobile.onlyMentions",defaultMessage:"Mentions, direct messages, and group messages"}),value:S.XH.MENTION},{label:r().createElement(d.FormattedMessage,{id:"user.settings.notifications.desktopAndMobile.nothing",defaultMessage:"Nothing"}),value:S.XH.NONE}];function Tt(e){if(!e)return _t[1];return _t.find((t=>t.value===e))||_t[1]}const Ct=[{label:r().createElement(d.FormattedMessage,{id:"user.settings.notifications.desktopAndMobile.online",defaultMessage:"Online, away, or offline"}),value:S.default.UserStatuses.ONLINE},{label:r().createElement(d.FormattedMessage,{id:"user.settings.notifications.desktopAndMobile.away",defaultMessage:"Away or offline"}),value:S.default.UserStatuses.AWAY},{label:r().createElement(d.FormattedMessage,{id:"user.settings.notifications.desktopAndMobile.offline",defaultMessage:"Offline"}),value:S.default.UserStatuses.OFFLINE}];function kt(e){if(!e)return Ct[2];return Ct.find((t=>t.value===e))||Ct[2]}function At(e,t){if(e===S.XH.ALL){if(t===S.XH.ALL)return r().createElement(d.FormattedMessage,{id:"user.settings.notifications.desktopAndMobile.allForDesktopAndMobile",defaultMessage:"All new messages"});if(t===S.XH.MENTION)return r().createElement(d.FormattedMessage,{id:"user.settings.notifications.desktopAndMobile.allDesktopButMobileMentions",defaultMessage:"All new messages on desktop; mentions, direct messages, and group messages on mobile"});if(t===S.XH.NONE)return r().createElement(d.FormattedMessage,{id:"user.settings.notifications.desktopAndMobile.allDesktopButMobileNone",defaultMessage:"All new messages on desktop; never on mobile"})}else if(e===S.XH.MENTION){if(t===S.XH.ALL)return r().createElement(d.FormattedMessage,{id:"user.settings.notifications.desktopAndMobile.mentionsDesktopButMobileAll",defaultMessage:"Mentions, direct messages, and group messages on desktop; all new messages on mobile"});if(t===S.XH.MENTION)return r().createElement(d.FormattedMessage,{id:"user.settings.notifications.desktopAndMobile.mentionsForDesktopAndMobile",defaultMessage:"Mentions, direct messages, and group messages"});if(t===S.XH.NONE)return r().createElement(d.FormattedMessage,{id:"user.settings.notifications.desktopAndMobile.mentionsForDesktopButMobileNone",defaultMessage:"Mentions, direct messages, and group messages on desktop; never on mobile"})}else if(e===S.XH.NONE){if(t===S.XH.ALL)return r().createElement(d.FormattedMessage,{id:"user.settings.notifications.desktopAndMobile.noneDesktopButMobileAll",defaultMessage:"Never on desktop; all new messages on mobile"});if(t===S.XH.MENTION)return r().createElement(d.FormattedMessage,{id:"user.settings.notifications.desktopAndMobile.noneDesktopButMobileMentions",defaultMessage:"Never on desktop; mentions, direct messages, and group messages on mobile"});if(t===S.XH.NONE)return r().createElement(d.FormattedMessage,{id:"user.settings.notifications.desktopAndMobile.noneForDesktopAndMobile",defaultMessage:"Never"})}return r().createElement(d.FormattedMessage,{id:"user.settings.notifications.desktopAndMobile.noValidSettings",defaultMessage:"Configure desktop and mobile settings"})}const It=(0,n.memo)(Mt);function Pt(e){let{active:t,updateSection:s,onSubmit:a,onCancel:i,saving:o,error:l,setParentState:c,areAllSectionsInactive:u,desktopSound:m,desktopNotificationSound:p,isCallsRingingEnabled:h,callsDesktopSound:g,callsNotificationSound:f}=e;const E=(0,d.useIntl)(),v=(0,n.useRef)(null),b=(0,n.useRef)(t);(0,n.useEffect)((()=>{var e;b.current&&!t&&u&&(null===(e=v.current)||void 0===e||e.focus()),b.current=t}),[t,u]);const y=(0,n.useCallback)((e=>{const t=e.target.checked?"true":"false";c("desktopSound",t),"false"===t&&(0,yt.Ht)()}),[c]),M=(0,n.useCallback)((e=>{const t=e.target.checked?"true":"false";c("callsDesktopSound",t),"false"===t&&(0,yt.Ht)()}),[c]),N=(0,n.useCallback)((e=>{(0,yt.Ht)(),e&&"value"in e&&(c("desktopNotificationSound",e.value),(0,yt.zn)(e.value))}),[c]),_=(0,n.useCallback)((e=>{(0,yt.Ht)(),e&&"value"in e&&(c("callsNotificationSound",e.value),(0,yt._F)(e.value))}),[c]),T=(0,n.useMemo)((()=>{const e=[],t="true"===m,s=r().createElement(n.Fragment,{key:"messageSoundSection"},r().createElement("div",{className:"checkbox inlineCheckboxSelect"},r().createElement("label",null,r().createElement("input",{type:"checkbox",checked:"true"===m,onChange:y}),r().createElement(d.FormattedMessage,{id:"user.settings.notifications.desktopNotificationSound.messageNotificationSound",defaultMessage:"Message notification sound"})),r().createElement(Le.ZP,{id:"messageNotificationSoundSelect",inputId:"messageNotificationSoundSelectInput",className:"react-select inlineSelect",classNamePrefix:"react-select",options:yt.TU,clearable:!1,isClearable:!1,isSearchable:!1,isDisabled:!t,placeholder:E.formatMessage({id:"user.settings.notifications.desktopNotificationSound.soundSelectPlaceholder",defaultMessage:"Select a sound"}),components:{IndicatorSeparator:wt},value:(0,yt.dN)(p),onChange:N})));if(e.push(s),h){const t="true"===g,s=r().createElement(n.Fragment,{key:"callSoundSection"},r().createElement("br",null),r().createElement("div",{className:"checkbox inlineCheckboxSelect"},r().createElement("label",null,r().createElement("input",{type:"checkbox",checked:t,onChange:M}),r().createElement(d.FormattedMessage,{id:"user.settings.notifications.desktopNotificationSound.incomingCallSound",defaultMessage:"Incoming call sound"})),r().createElement(Le.ZP,{id:"incomingCallSoundNotificationSelect",inputId:"incomingCallSoundNotificationSelectInput",className:"react-select inlineSelect",classNamePrefix:"react-select",options:yt.Kq,clearable:!1,isClearable:!1,isSearchable:!1,isDisabled:!t,components:{IndicatorSeparator:wt},placeholder:E.formatMessage({id:"user.settings.notifications.desktopNotificationSound.soundSelectPlaceholder",defaultMessage:"Select a sound"}),value:(0,yt.lR)(f),onChange:_})));e.push(s)}return e}),[m,y,N,p,h,g,M,f,_]);return t?r().createElement(D,{title:r().createElement(d.FormattedMessage,{id:"user.settings.notifications.desktopNotificationSounds.title",defaultMessage:"Desktop notification sounds"}),inputs:T,submit:function(){(0,yt.Ht)(),a()},saving:o,serverError:l,updateSection:function(e){(0,yt.Ht)(),s(e)}}):r().createElement(k,{ref:v,title:r().createElement(d.FormattedMessage,{id:"user.settings.notifications.desktopNotificationSounds.title",defaultMessage:"Desktop notification sounds"}),describe:Rt(h,m,p,g,f),section:S.eU.DESKTOP_NOTIFICATION_SOUND,updateSection:function(e){(0,yt.Ht)(),s(e),i()}})}function wt(){return null}function Rt(e,t,s,a,i){const n=yt.II.includes(s),o=yt.Sn.includes(i);let l=null;e&&o&&(l="true"===a);let c=null;return n&&(c="true"===t),null!==c&&null!==l?c&&l?r().createElement(d.FormattedMessage,{id:"user.settings.notifications.desktopNotificationSound.hasDesktopAndCallsSound",defaultMessage:'"{desktopSound}" for messages, "{callsSound}" for calls',values:{desktopSound:s,callsSound:i}}):!c&&l?r().createElement(d.FormattedMessage,{id:"user.settings.notifications.desktopNotificationSound.noDesktopAndhasCallsSound",defaultMessage:'No sound for messages, "{callsSound}" for calls',values:{callsSound:i}}):c&&!l?r().createElement(d.FormattedMessage,{id:"user.settings.notifications.desktopNotificationSound.hasDesktopAndNoCallsSound",defaultMessage:'"{desktopSound}" for messages, no sound for calls',values:{desktopSound:s}}):r().createElement(d.FormattedMessage,{id:"user.settings.notifications.desktopNotificationSound.noDesktopAndNoCallsSound",defaultMessage:"No sound"}):null!==c&&null===l?c?r().createElement(d.FormattedMessage,{id:"user.settings.notifications.desktopNotificationSound.hasDesktopSound",defaultMessage:'"{desktopSound}" for messages',values:{desktopSound:s}}):r().createElement(d.FormattedMessage,{id:"user.settings.notifications.desktopNotificationSound.noDesktopSound",defaultMessage:"No sound"}):r().createElement(d.FormattedMessage,{id:"user.settings.notifications.desktopNotificationSound.noValidSound",defaultMessage:"Configure desktop notification sounds"})}Pt.propTypes={active:i().bool.isRequired,updateSection:i().func.isRequired,onSubmit:i().func.isRequired,onCancel:i().func.isRequired,saving:i().bool.isRequired,error:i().string.isRequired,setParentState:i().func.isRequired,areAllSectionsInactive:i().bool.isRequired};const Ot=(0,n.memo)(Pt);var Dt=s(66900);function Ft(e,t,s){const{INTERVAL_NEVER:a,INTERVAL_IMMEDIATE:i,INTERVAL_FIFTEEN_MINUTES:n,INTERVAL_HOUR:r}=L.Preferences,o=[i,a];return e?t&&-1===[i,a,n,r].indexOf(s)?n:t||-1!==o.indexOf(s)?e&&s===a?i:s:i:a}function Lt(e,t,s){return(t=function(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var s=e[Symbol.toPrimitive];if(void 0!==s){var a=s.call(e,"string");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}class xt extends r().PureComponent{constructor(e){super(e),Lt(this,"handleChange",(e=>{const t=e.currentTarget.getAttribute("data-enable-email"),s=parseInt(e.currentTarget.getAttribute("data-email-interval"),10);this.setState({enableEmail:"true"===t,newInterval:s}),(0,T.Y_)(e.currentTarget),this.props.onChange(t)})),Lt(this,"handleThreadsOnChange",(e=>{const t=e.target.checked?S.XH.ALL:S.XH.MENTION;this.props.setParentState("emailThreads",t)})),Lt(this,"handleSubmit",(async()=>{const{newInterval:e}=this.state;if(this.props.emailInterval===e&&this.props.enableEmail===this.state.enableEmail)this.props.updateSection("");else{const{currentUserId:t,actions:s}=this.props,a={user_id:t,category:S.uP.CATEGORY_NOTIFICATIONS,name:S.uP.EMAIL_INTERVAL,value:e.toString()};await s.savePreferences(t,[a])}this.props.onSubmit()})),Lt(this,"handleUpdateSection",(e=>{e?this.props.updateSection(e):(this.props.updateSection(""),this.setState({enableEmail:this.props.enableEmail,newInterval:this.props.emailInterval}),this.props.onCancel())})),Lt(this,"renderMinSettingView",(()=>{const{enableEmail:e,sendEmailNotifications:t}=this.props,{newInterval:s}=this.state;let a;if(t)if(e)switch(s){case S.uP.INTERVAL_IMMEDIATE:a=r().createElement(d.FormattedMessage,{id:"user.settings.notifications.email.immediately",defaultMessage:"Immediately"});break;case S.uP.INTERVAL_HOUR:a=r().createElement(d.FormattedMessage,{id:"user.settings.notifications.email.everyHour",defaultMessage:"Every hour"});break;case S.uP.INTERVAL_FIFTEEN_MINUTES:a=r().createElement(d.FormattedMessage,{id:"user.settings.notifications.email.everyXMinutes",defaultMessage:"Every {count, plural, one {minute} other {{count, number} minutes}}",values:{count:s/60}});break;default:a=r().createElement(d.FormattedMessage,{id:"user.settings.notifications.email.never",defaultMessage:"Never"})}else a=r().createElement(d.FormattedMessage,{id:"user.settings.notifications.email.never",defaultMessage:"Never"});else a=r().createElement(d.FormattedMessage,{id:"user.settings.notifications.email.disabled",defaultMessage:"Email notifications are not enabled"});return r().createElement(k,{ref:this.editButtonRef,title:r().createElement(d.FormattedMessage,{id:"user.settings.notifications.emailNotifications",defaultMessage:"Email notifications"}),describe:a,section:"email",updateSection:this.handleUpdateSection})})),Lt(this,"renderMaxSettingView",(()=>{if(!this.props.sendEmailNotifications)return r().createElement(D,{title:r().createElement(d.FormattedMessage,{id:"user.settings.notifications.emailNotifications",defaultMessage:"Email notifications"}),inputs:[r().createElement("div",{key:"oauthEmailInfo",className:"pt-2"},r().createElement(d.FormattedMessage,{id:"user.settings.notifications.email.disabled_long",defaultMessage:"Email notifications have not been enabled by your System Administrator."}))],serverError:this.props.error,section:"email",updateSection:this.handleUpdateSection});const{newInterval:e}=this.state;let t=null,s=null;this.props.enableEmailBatching&&(t=r().createElement("fieldset",null,r().createElement("div",{className:"radio"},r().createElement("label",null,r().createElement("input",{id:"emailNotificationMinutes",type:"radio",name:"emailNotifications",checked:e===S.uP.INTERVAL_FIFTEEN_MINUTES,"data-enable-email":"true","data-email-interval":S.uP.INTERVAL_FIFTEEN_MINUTES,onChange:this.handleChange}),r().createElement(d.FormattedMessage,{id:"user.settings.notifications.email.everyXMinutes",defaultMessage:"Every {count, plural, one {minute} other {{count, number} minutes}}",values:{count:S.uP.INTERVAL_FIFTEEN_MINUTES/60}}))),r().createElement("div",{className:"radio"},r().createElement("label",null,r().createElement("input",{id:"emailNotificationHour",type:"radio",name:"emailNotifications",checked:e===S.uP.INTERVAL_HOUR,"data-enable-email":"true","data-email-interval":S.uP.INTERVAL_HOUR,onChange:this.handleChange}),r().createElement(d.FormattedMessage,{id:"user.settings.notifications.email.everyHour",defaultMessage:"Every hour"})))),s=r().createElement(d.FormattedMessage,{id:"user.settings.notifications.emailBatchingInfo",defaultMessage:"Notifications received over the time period selected are combined and sent in a single email."}));let a=null;return this.props.isCollapsedThreadsEnabled&&this.props.enableEmail&&(a=r().createElement(r().Fragment,{key:"userNotificationEmailThreadsOptions"},r().createElement("hr",null),r().createElement("fieldset",null,r().createElement("div",{className:"checkbox single-checkbox"},r().createElement("label",null,r().createElement("input",{id:"desktopThreadsNotificationAllActivity",type:"checkbox",name:"desktopThreadsNotificationLevel",checked:this.props.threads===S.XH.ALL,onChange:this.handleThreadsOnChange}),r().createElement(d.FormattedMessage,{id:"user.settings.notifications.email.notifyForthreads",defaultMessage:"Notify me about replies to threads Im following"})))))),r().createElement(D,{title:r().createElement(d.FormattedMessage,{id:"user.settings.notifications.emailNotifications",defaultMessage:"Email notifications"}),inputs:[r().createElement("fieldset",{key:"userNotificationEmailOptions"},r().createElement("legend",{className:"form-legend"},r().createElement(d.FormattedMessage,{id:"user.settings.notifications.email.send",defaultMessage:"Send email notifications"})),r().createElement("div",{className:"radio"},r().createElement("label",null,r().createElement("input",{id:"emailNotificationImmediately",type:"radio",name:"emailNotifications",checked:e===S.uP.INTERVAL_IMMEDIATE,"data-enable-email":"true","data-email-interval":S.uP.INTERVAL_IMMEDIATE,onChange:this.handleChange}),r().createElement(d.FormattedMessage,{id:"user.settings.notifications.email.immediately",defaultMessage:"Immediately"}))),t,r().createElement("div",{className:"radio"},r().createElement("label",null,r().createElement("input",{id:"emailNotificationNever",type:"radio",name:"emailNotifications",checked:e===S.uP.INTERVAL_NEVER,"data-enable-email":"false","data-email-interval":S.uP.INTERVAL_NEVER,onChange:this.handleChange}),r().createElement(d.FormattedMessage,{id:"user.settings.notifications.email.never",defaultMessage:"Never"}))),r().createElement("div",{className:"mt-3"},r().createElement(d.FormattedMessage,{id:"user.settings.notifications.emailInfo",defaultMessage:"Email notifications are sent for mentions and direct messages when you are offline or away for more than 5 minutes."})," ",s)),a],submit:this.handleSubmit,saving:this.props.saving,serverError:this.props.error,updateSection:this.handleUpdateSection})}));const{emailInterval:t,enableEmail:s,enableEmailBatching:a,sendEmailNotifications:i,active:n}=e;this.state={active:n,emailInterval:t,enableEmail:s,enableEmailBatching:a,sendEmailNotifications:i,newInterval:Ft(s&&i,a,t)},this.editButtonRef=r().createRef()}static getDerivedStateFromProps(e,t){const{emailInterval:s,enableEmail:a,enableEmailBatching:i,sendEmailNotifications:n,active:r}=e;return r&&!t.active||n!==t.sendEmailNotifications||i!==t.enableEmailBatching||s!==t.emailInterval||r!==t.active?{active:r,emailInterval:s,enableEmail:a,enableEmailBatching:i,sendEmailNotifications:n,newInterval:Ft(a&&n,i,s)}:null}focusEditButton(){var e;null===(e=this.editButtonRef.current)||void 0===e||e.focus()}componentDidUpdate(e){e.active&&!this.props.active&&this.props.areAllSectionsInactive&&this.focusEditButton()}render(){return this.props.active?this.renderMaxSettingView():this.renderMinSettingView()}}Lt(xt,"propTypes",{active:i().bool.isRequired,updateSection:i().func.isRequired,onSubmit:i().func.isRequired,onCancel:i().func.isRequired,saving:i().bool,error:i().string,setParentState:i().func.isRequired,areAllSectionsInactive:i().bool.isRequired,isCollapsedThreadsEnabled:i().bool.isRequired,enableEmail:i().bool.isRequired,onChange:i().func.isRequired,threads:i().string.isRequired,currentUserId:i().string.isRequired,emailInterval:i().number.isRequired,sendEmailNotifications:i().bool.isRequired,enableEmailBatching:i().bool.isRequired,actions:i().shape({savePreferences:i().func.isRequired}).isRequired});const Ut=(0,p.connect)((function(e){const t=(0,E.iE)(e),s=parseInt((0,v.U2)(e,L.Preferences.CATEGORY_NOTIFICATIONS,L.Preferences.EMAIL_INTERVAL,L.Preferences.INTERVAL_NOT_SET.toString()),10);return{currentUserId:(0,Dt.rc)(e),emailInterval:s,enableEmailBatching:"true"===t.EnableEmailBatching,sendEmailNotifications:"true"===t.SendEmailNotifications}}),(function(e){return{actions:(0,h.bindActionCreators)({savePreferences:g.$A},e)}}))(xt);function Bt(e,t,s){return(t=function(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var s=e[Symbol.toPrimitive];if(void 0!==s){var a=s.call(e,"string");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}class qt extends r().PureComponent{constructor(){super(...arguments),Bt(this,"handleAutoResponderChecked",(e=>{this.props.setParentState("autoResponderActive",e.target.checked)})),Bt(this,"onMessageChanged",(e=>{this.props.setParentState("autoResponderMessage",e.target.value)}))}render(){const{autoResponderActive:e,autoResponderMessage:t}=this.props;let s;this.props.error&&(s=r().createElement("label",{className:"has-error"},this.props.error));const a=[],i=r().createElement("div",{id:"autoResponderCheckbox",key:"autoResponderCheckbox",className:"checkbox"},r().createElement("label",null,r().createElement("input",{id:"autoResponderActive",type:"checkbox",checked:e,onChange:this.handleAutoResponderChecked}),r().createElement(d.FormattedMessage,{id:"user.settings.notifications.autoResponderEnabled",defaultMessage:"Enabled"}))),n=r().createElement("div",{id:"autoResponderMessage",key:"autoResponderMessage"},r().createElement("div",{className:"pt-2"},r().createElement("textarea",{style:{resize:"none"},id:"autoResponderMessageInput",className:"form-control",rows:5,placeholder:(0,T._u)({id:"user.settings.notifications.autoResponderPlaceholder",defaultMessage:"Message"}),value:t,maxLength:200,onChange:this.onMessageChanged}),s));return a.push(i),e&&a.push(n),a.push(r().createElement("div",{key:"autoResponderHint",className:"mt-5"},r().createElement(d.FormattedMessage,{id:"user.settings.notifications.autoResponderHint",defaultMessage:"Set a custom message that will be automatically sent in response to Direct Messages. Mentions in Public and Private Channels will not trigger the automated reply. Enabling Automatic Replies sets your status to Out of Office and disables email and push notifications."}))),r().createElement(D,{title:r().createElement(d.FormattedMessage,{id:"user.settings.notifications.autoResponder",defaultMessage:"Automatic direct message replies"}),shiftEnter:!0,submit:this.props.submit,saving:this.props.saving,inputs:a,updateSection:this.props.updateSection})}}function Ht(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function jt(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?Ht(Object(s),!0).forEach((function(t){Gt(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):Ht(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}function Gt(e,t,s){return(t=function(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var s=e[Symbol.toPrimitive];if(void 0!==s){var a=s.call(e,"string");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}const Wt=/\s+/g,Kt=/,/g;function Vt(e){let t=S.XH.MENTION,s=S.XH.ALL,a=S.XH.ALL,i=S.XH.ALL,n="true",r="true",o=yt.II[0],l="Calm",c="never",d="true",u=S.XH.MENTION,m=S.default.UserStatuses.AWAY,p=!1,h=e.intl.formatMessage({id:"user.settings.notifications.autoResponderDefault",defaultMessage:"Hello, I am out of office and unable to respond to messages."}),g=!0;var f,E;e.user.notify_props&&(e.user.notify_props.desktop&&(t=e.user.notify_props.desktop),e.user.notify_props.desktop_threads&&(s=e.user.notify_props.desktop_threads),e.user.notify_props.push_threads&&(a=e.user.notify_props.push_threads),e.user.notify_props.email_threads&&(i=e.user.notify_props.email_threads),e.user.notify_props.desktop_sound&&(n=e.user.notify_props.desktop_sound),e.user.notify_props.calls_desktop_sound&&(r=e.user.notify_props.calls_desktop_sound),e.user.notify_props.desktop_notification_sound&&(o=e.user.notify_props.desktop_notification_sound),e.user.notify_props.calls_notification_sound&&(l=e.user.notify_props.calls_notification_sound),e.user.notify_props.comments&&(c=e.user.notify_props.comments),e.user.notify_props.email&&(d=e.user.notify_props.email),e.user.notify_props.push&&(u=e.user.notify_props.push),e.user.notify_props.push_status&&(m=e.user.notify_props.push_status),e.user.notify_props.auto_responder_active&&(p="true"===e.user.notify_props.auto_responder_active),e.user.notify_props.auto_responder_message&&(h=e.user.notify_props.auto_responder_message),e.user.notify_props.desktop&&e.user.notify_props.push&&(g=function(e,t,s,a,i){return!(e&&t&&s&&a)||(!(Zt.includes(e)&&Zt.includes(t)&&Zt.includes(s)&&Zt.includes(a))||(e!==t||!!i&&s!==a))}(e.user.notify_props.desktop,e.user.notify_props.push,null===(f=e.user.notify_props)||void 0===f?void 0:f.desktop_threads,null===(E=e.user.notify_props)||void 0===E?void 0:E.push_threads,e.isCollapsedThreadsEnabled)));let v=!1,b=!1,y=!1,M=!1;const N=[],_=[];if(e.user.notify_props){var T,C,k,A,I,P;if((null===(T=e.user.notify_props)||void 0===T||null===(C=T.mention_keys)||void 0===C?void 0:C.length)>0){const t=e.user.notify_props.mention_keys.split(",").filter((e=>e.length>0));t.forEach((t=>{t!==e.user.username&&t!=="@".concat(e.user.username)&&N.push({label:t,value:t})})),v=t.includes(e.user.username),M=N.length>0}(null===(k=e.user.notify_props)||void 0===k||null===(A=k.highlight_keys)||void 0===A?void 0:A.length)>0&&e.user.notify_props.highlight_keys.split(",").filter((e=>e.length>0)).forEach((e=>{_.push({label:e,value:e})})),b="true"===(null===(I=e.user.notify_props)||void 0===I?void 0:I.first_name),y="true"===(null===(P=e.user.notify_props)||void 0===P?void 0:P.channel)}return{desktopActivity:t,desktopThreads:s,pushThreads:a,emailThreads:i,enableEmail:d,pushActivity:u,pushStatus:m,desktopSound:n,callsDesktopSound:r,desktopNotificationSound:o,callsNotificationSound:l,usernameKey:v,customKeysWithNotification:N,isCustomKeysWithNotificationInputChecked:M,customKeysWithNotificationInputValue:"",customKeysWithHighlight:_,customKeysWithHighlightInputValue:"",firstNameKey:b,channelKey:y,autoResponderActive:p,autoResponderMessage:h,notifyCommentsLevel:c,isSaving:!1,serverError:"",desktopAndMobileSettingsDifferent:g}}class Yt extends r().PureComponent{constructor(e){super(e),Gt(this,"handleSubmit",(async()=>{const e=jt({},this.props.user.notify_props);e.email=this.state.enableEmail,e.desktop_sound=this.state.desktopSound,e.calls_desktop_sound=this.state.callsDesktopSound,e.desktop_notification_sound=this.state.desktopNotificationSound,e.calls_notification_sound=this.state.callsNotificationSound,e.desktop=this.state.desktopActivity,e.desktop_threads=this.state.desktopThreads,e.email_threads=this.state.emailThreads,e.push_status=this.state.pushStatus,e.comments=this.state.notifyCommentsLevel,e.auto_responder_active=this.state.autoResponderActive?"true":"false",e.auto_responder_message=this.state.autoResponderMessage,e.first_name=this.state.firstNameKey?"true":"false",e.channel=this.state.channelKey?"true":"false",this.state.desktopAndMobileSettingsDifferent?(e.push=this.state.pushActivity,e.push_threads=this.state.pushThreads):(e.push=this.state.desktopActivity,e.push_threads=this.state.desktopThreads),e.auto_responder_message&&""!==e.auto_responder_message||(e.auto_responder_message=this.props.intl.formatMessage({id:"user.settings.notifications.autoResponderDefault",defaultMessage:"Hello, I am out of office and unable to respond to messages."}));const t=[];this.state.usernameKey&&t.push(this.props.user.username),this.state.isCustomKeysWithNotificationInputChecked&&this.state.customKeysWithNotification.length>0&&this.state.customKeysWithNotification.forEach((e=>{t.push(e.value)})),e.mention_keys=t.join(",");const s=[];let a,i;if(this.state.customKeysWithHighlight.length>0&&this.state.customKeysWithHighlight.forEach((e=>{s.push(e.value)})),e.highlight_keys=s.join(","),this.setState({isSaving:!0}),(0,yt.Ht)(),this.props.adminMode){const t=jt(jt({},this.props.user),{},{notify_props:e}),s=await this.props.patchUser(t);a=s.data,i=s.error}else{const t=await this.props.updateMe({notify_props:e});a=t.data,i=t.error}a?(this.handleUpdateSection(""),this.setState(Vt(this.props))):i?this.setState({serverError:i.message,isSaving:!1}):this.setState({serverError:"",isSaving:!1})})),Gt(this,"handleCancel",(()=>{this.setState(Vt(this.props)),(0,yt.Ht)()})),Gt(this,"handleUpdateSection",(e=>{e?this.props.updateSection(e):this.props.updateSection(""),this.setState({isSaving:!1}),this.handleCancel()})),Gt(this,"setStateValue",((e,t)=>{const s={};s[e]=t,this.setState((e=>jt(jt({},e),s)))})),Gt(this,"handleNotifyCommentsRadio",((e,t)=>{this.setState({notifyCommentsLevel:e}),(0,T.Y_)(null==t?void 0:t.currentTarget)})),Gt(this,"handleEmailRadio",(e=>{this.setState({enableEmail:e})})),Gt(this,"handleChangeForUsernameKeyCheckbox",(e=>{const{target:{checked:t}}=e;this.setState({usernameKey:t})})),Gt(this,"handleChangeForFirstNameKeyCheckbox",(e=>{const{target:{checked:t}}=e;this.setState({firstNameKey:t})})),Gt(this,"handleChangeForChannelKeyCheckbox",(e=>{const{target:{checked:t}}=e;this.setState({channelKey:t})})),Gt(this,"handleChangeForCustomKeysWithNotificationCheckbox",(e=>{const{target:{checked:t}}=e;this.setState({isCustomKeysWithNotificationInputChecked:t})})),Gt(this,"handleChangeForCustomKeysWithNotificationInput",(e=>{if(e&&Array.isArray(e)&&e.length>0){!1===this.state.isCustomKeysWithNotificationInputChecked&&this.setState({isCustomKeysWithNotificationInputChecked:!0});const t=e.map((e=>{const t=e.value.trim().replace(Wt,"");return{value:t,label:t}})).filter((e=>e.value.length>0));this.setState({customKeysWithNotification:t})}else this.setState({isCustomKeysWithNotificationInputChecked:!1,customKeysWithNotification:[]})})),Gt(this,"updateCustomKeysWithNotificationWithInputValue",(e=>{const t=[...this.state.customKeysWithNotification,{value:e,label:e}];this.setState({customKeysWithNotification:t,customKeysWithNotificationInputValue:""}),this.state.isCustomKeysWithNotificationInputChecked||this.setState({isCustomKeysWithNotificationInputChecked:!0})})),Gt(this,"handleOnKeydownForCustomKeysWithNotificationInput",(e=>{if(e.key===S.default.KeyCodes.COMMA[0]||e.key===S.default.KeyCodes.TAB[0]){var t,s,a,i;const e=null!==(t=null===(s=this.state.customKeysWithNotificationInputValue)||void 0===s||null===(a=s.trim())||void 0===a||null===(i=a.replace(Wt,""))||void 0===i?void 0:i.replace(Kt,""))&&void 0!==t?t:"";e.length>0&&this.updateCustomKeysWithNotificationWithInputValue(e)}})),Gt(this,"handleChangeForCustomKeysWithNotificationInputValue",(e=>{if(!e.includes(S.default.KeyCodes.COMMA[0])){const t=e.trim().replace(Wt,"");this.setState({customKeysWithNotificationInputValue:t})}})),Gt(this,"handleBlurForCustomKeysWithNotificationInput",(()=>{var e,t,s,a;const i=null!==(e=null===(t=this.state.customKeysWithNotificationInputValue)||void 0===t||null===(s=t.trim())||void 0===s||null===(a=s.replace(Wt,""))||void 0===a?void 0:a.replace(Kt,""))&&void 0!==e?e:"";i.length>0&&this.updateCustomKeysWithNotificationWithInputValue(i)})),Gt(this,"handleChangeForCustomKeysWithHighlightInput",(e=>{if(e&&Array.isArray(e)&&e.length>0){const t=e.map((e=>{const t=e.value.trim();return{value:t,label:t}})).filter((e=>e.value.length>0));this.setState({customKeysWithHighlight:t})}else this.setState({customKeysWithHighlight:[]})})),Gt(this,"handleChangeForCustomKeysWithHighlightInputValue",(e=>{e.includes(S.default.KeyCodes.COMMA[0])||this.setState({customKeysWithHighlightInputValue:e})})),Gt(this,"updateCustomKeysWithHighlightWithInputValue",(e=>{var t,s;const a=null!==(t=null==e||null===(s=e.trim())||void 0===s?void 0:s.replace(Kt,""))&&void 0!==t?t:"";if(a.length>0){const e=[...this.state.customKeysWithHighlight,{value:a,label:a}];this.setState({customKeysWithHighlight:e,customKeysWithHighlightInputValue:""})}})),Gt(this,"handleBlurForCustomKeysWithHighlightInput",(()=>{this.updateCustomKeysWithHighlightWithInputValue(this.state.customKeysWithHighlightInputValue)})),Gt(this,"handleOnKeydownForCustomKeysWithHighlightInput",(e=>{e.key!==S.default.KeyCodes.COMMA[0]&&e.key!==S.default.KeyCodes.TAB[0]||this.updateCustomKeysWithHighlightWithInputValue(this.state.customKeysWithHighlightInputValue)})),Gt(this,"handleCloseSettingsModal",(()=>{this.props.closeModal()})),Gt(this,"createKeywordsWithNotificationSection",(()=>{const e=this.state.serverError,t=this.props.user,s=this.props.activeSection===S.eU.KEYWORDS_MENTIONS;let a=null;if(s){const s=[];t.first_name&&s.push(r().createElement("div",{key:"userNotificationFirstNameOption"},r().createElement("div",{className:"checkbox"},r().createElement("label",null,r().createElement("input",{id:"notificationTriggerFirst",type:"checkbox",checked:this.state.firstNameKey,onChange:this.handleChangeForFirstNameKeyCheckbox}),r().createElement(d.FormattedMessage,{id:"user.settings.notifications.sensitiveName",defaultMessage:'Your case-sensitive first name "{first_name}"',values:{first_name:t.first_name}}))))),s.push(r().createElement("div",{key:"userNotificationUsernameOption"},r().createElement("div",{className:"checkbox"},r().createElement("label",null,r().createElement("input",{id:"notificationTriggerUsername",type:"checkbox",checked:this.state.usernameKey,onChange:this.handleChangeForUsernameKeyCheckbox}),r().createElement(d.FormattedMessage,{id:"user.settings.notifications.sensitiveUsername",defaultMessage:'Your non case-sensitive username "{username}"',values:{username:t.username}}))))),s.push(r().createElement("div",{key:"userNotificationChannelOption"},r().createElement("div",{className:"checkbox"},r().createElement("label",null,r().createElement("input",{id:"notificationTriggerShouts",type:"checkbox",checked:this.state.channelKey,onChange:this.handleChangeForChannelKeyCheckbox}),r().createElement(d.FormattedMessage,{id:"user.settings.notifications.channelWide",defaultMessage:'Channel-wide mentions "@channel", "@all", "@here"'}))))),s.push(r().createElement("div",{key:"userNotificationCustomOption",className:"customKeywordsWithNotificationSubsection"},r().createElement("div",{className:"checkbox"},r().createElement("label",null,r().createElement("input",{id:"notificationTriggerCustom",type:"checkbox",checked:this.state.isCustomKeysWithNotificationInputChecked,onChange:this.handleChangeForCustomKeysWithNotificationCheckbox}),r().createElement(d.FormattedMessage,{id:"user.settings.notifications.sensitiveCustomWords",defaultMessage:"Other non case-sensitive words, press Tab or use commas to separate keywords:"}))),r().createElement(vt.ZP,{inputId:"notificationTriggerCustomText",autoFocus:!0,isClearable:!1,isMulti:!0,styles:zt,placeholder:"",components:{DropdownIndicator:()=>null,Menu:()=>null,MenuList:()=>null},"aria-labelledby":"notificationTriggerCustom",onChange:this.handleChangeForCustomKeysWithNotificationInput,value:this.state.customKeysWithNotification,inputValue:this.state.customKeysWithNotificationInputValue,onInputChange:this.handleChangeForCustomKeysWithNotificationInputValue,onBlur:this.handleBlurForCustomKeysWithNotificationInput,onKeyDown:this.handleOnKeydownForCustomKeysWithNotificationInput})));const i=r().createElement(d.FormattedMessage,{id:"user.settings.notifications.keywordsWithNotification.extraInfo",defaultMessage:'Notifications are triggered when someone sends a message that includes your username ("@{username}") or any of the options selected above.',values:{username:t.username}});a=r().createElement(D,{title:this.props.intl.formatMessage({id:"user.settings.notifications.keywordsWithNotification.title",defaultMessage:"Keywords that trigger notifications"}),inputs:s,submit:this.handleSubmit,saving:this.state.isSaving,serverError:e,extraInfo:i,updateSection:this.handleUpdateSection})}const i=["@"+t.username];if(this.state.firstNameKey&&i.push(t.first_name),this.state.usernameKey&&i.push(t.username),this.state.channelKey&&(i.push("@channel"),i.push("@all"),i.push("@here")),this.state.customKeysWithNotification.length>0){const e=this.state.customKeysWithNotification.map((e=>e.value));i.push(...e)}const n=i.filter((e=>0!==e.trim().length)).map((e=>'"'.concat(e,'"'))).join(", ");return r().createElement(P,{title:this.props.intl.formatMessage({id:"user.settings.notifications.keywordsWithNotification.title",defaultMessage:"Keywords that trigger notifications"}),section:S.eU.KEYWORDS_MENTIONS,active:s,areAllSectionsInactive:""===this.props.activeSection,describe:n,updateSection:this.handleUpdateSection,max:a})})),Gt(this,"createKeywordsWithHighlightSection",(()=>{const e=this.props.activeSection===S.eU.KEYWORDS_HIGHLIGHT;let t=null;if(e){const e=[r().createElement("div",{key:"userNotificationHighlightOption",className:"customKeywordsWithNotificationSubsection"},r().createElement("label",{htmlFor:"mentionKeysWithHighlightInput"},r().createElement(d.FormattedMessage,{id:"user.settings.notifications.keywordsWithHighlight.inputTitle",defaultMessage:"Enter non case-sensitive keywords, press Tab or use commas to separate them:"})),r().createElement(vt.ZP,{inputId:"mentionKeysWithHighlightInput",autoFocus:!0,isClearable:!1,isMulti:!0,styles:zt,placeholder:"",components:{DropdownIndicator:()=>null,Menu:()=>null,MenuList:()=>null},"aria-labelledby":"mentionKeysWithHighlightInput",onChange:this.handleChangeForCustomKeysWithHighlightInput,value:this.state.customKeysWithHighlight,inputValue:this.state.customKeysWithHighlightInputValue,onInputChange:this.handleChangeForCustomKeysWithHighlightInputValue,onBlur:this.handleBlurForCustomKeysWithHighlightInput,onKeyDown:this.handleOnKeydownForCustomKeysWithHighlightInput}))],s=r().createElement(d.FormattedMessage,{id:"user.settings.notifications.keywordsWithHighlight.extraInfo",defaultMessage:"These keywords will be shown to you with a highlight when anyone sends a message that includes them."});t=r().createElement(D,{title:this.props.intl.formatMessage({id:"user.settings.notifications.keywordsWithHighlight.title",defaultMessage:"Keywords that get highlighted (without notifications)"}),inputs:e,submit:this.handleSubmit,saving:this.state.isSaving,serverError:this.state.serverError,extraInfo:s,updateSection:this.handleUpdateSection})}let s=this.props.intl.formatMessage({id:"user.settings.notifications.keywordsWithHighlight.none",defaultMessage:"None"});!this.props.isEnterpriseOrCloudOrSKUStarterFree&&this.props.isEnterpriseReady&&this.state.customKeysWithHighlight.length>0&&(s=this.state.customKeysWithHighlight.map((e=>e.value)).map((e=>'"'.concat(e,'"'))).join(", "));const a=r().createElement(St.Z,{blocked:this.props.isEnterpriseOrCloudOrSKUStarterFree&&this.props.isEnterpriseReady,feature:S.xk.HIGHLIGHT_WITHOUT_NOTIFICATION,minimumPlanRequiredForFeature:S.lP.Professional,tooltipTitle:this.props.intl.formatMessage({id:"user.settings.notifications.keywordsWithHighlight.disabledTooltipTitle",defaultMessage:"Professional feature"}),tooltipMessageBlocked:this.props.intl.formatMessage({id:"user.settings.notifications.keywordsWithHighlight.disabledTooltipMessage",defaultMessage:"This feature is available on the Professional plan"}),titleAdminPreTrial:this.props.intl.formatMessage({id:"user.settings.notifications.keywordsWithHighlight.userModal.titleAdminPreTrial",defaultMessage:"Highlight keywords without notifications with Mattermost Professional"}),messageAdminPreTrial:this.props.intl.formatMessage({id:"user.settings.notifications.keywordsWithHighlight.userModal.messageAdminPreTrial",defaultMessage:"Get the ability to passively highlight keywords that you care about. Upgrade to Professional plan to unlock this feature."}),titleAdminPostTrial:this.props.intl.formatMessage({id:"user.settings.notifications.keywordsWithHighlight.userModal.titleAdminPostTrial",defaultMessage:"Highlight keywords without notifications with Mattermost Professional"}),messageAdminPostTrial:this.props.intl.formatMessage({id:"user.settings.notifications.keywordsWithHighlight.userModal.messageAdminPostTrial",defaultMessage:"Get the ability to passively highlight keywords that you care about. Upgrade to Professional plan to unlock this feature."}),titleEndUser:this.props.intl.formatMessage({id:"user.settings.notifications.keywordsWithHighlight.userModal.titleEndUser",defaultMessage:"Highlight keywords without notifications with Mattermost Professional"}),messageEndUser:this.props.intl.formatMessage({id:"user.settings.notifications.keywordsWithHighlight.userModal.messageEndUser",defaultMessage:"Get the ability to passively highlight keywords that you care about.{br}{br}Request your admin to upgrade to Mattermost Professional to access this feature."},{br:r().createElement("br",null)}),ctaExtraContent:r().createElement(d.FormattedMessage,{id:"user.settings.notifications.keywordsWithHighlight.professional",defaultMessage:"Professional"}),clickCallback:this.handleCloseSettingsModal});return r().createElement(P,{title:this.props.intl.formatMessage({id:"user.settings.notifications.keywordsWithHighlight.title",defaultMessage:"Keywords that get highlighted (without notifications)"}),section:S.eU.KEYWORDS_HIGHLIGHT,active:e,areAllSectionsInactive:""===this.props.activeSection,describe:s,updateSection:this.handleUpdateSection,max:t,isDisabled:this.props.isEnterpriseOrCloudOrSKUStarterFree&&this.props.isEnterpriseReady,collapsedEditButtonWhenDisabled:a})})),Gt(this,"createCommentsSection",(()=>{const e=this.state.serverError;let t,s=null;if(this.props.activeSection===S.eU.REPLY_NOTIFCATIONS){const t=[!1,!1,!1];"never"===this.state.notifyCommentsLevel?t[2]=!0:"root"===this.state.notifyCommentsLevel?t[1]=!0:t[0]=!0;const a=[];a.push(r().createElement("fieldset",{key:"userNotificationLevelOption"},r().createElement("legend",{className:"form-legend hidden-label"},r().createElement(d.FormattedMessage,{id:"user.settings.notifications.comments",defaultMessage:"Reply notifications"})),r().createElement("div",{className:"radio"},r().createElement("label",null,r().createElement("input",{id:"notificationCommentsAny",type:"radio",name:"commentsNotificationLevel",checked:t[0],onChange:this.handleNotifyCommentsRadio.bind(this,"any")}),r().createElement(d.FormattedMessage,{id:"user.settings.notifications.commentsAny",defaultMessage:"Trigger notifications on messages in reply threads that I start or participate in"})),r().createElement("br",null)),r().createElement("div",{className:"radio"},r().createElement("label",null,r().createElement("input",{id:"notificationCommentsRoot",type:"radio",name:"commentsNotificationLevel",checked:t[1],onChange:this.handleNotifyCommentsRadio.bind(this,"root")}),r().createElement(d.FormattedMessage,{id:"user.settings.notifications.commentsRoot",defaultMessage:"Trigger notifications on messages in threads that I start"})),r().createElement("br",null)),r().createElement("div",{className:"radio"},r().createElement("label",null,r().createElement("input",{id:"notificationCommentsNever",type:"radio",name:"commentsNotificationLevel",checked:t[2],onChange:this.handleNotifyCommentsRadio.bind(this,"never")}),r().createElement(d.FormattedMessage,{id:"user.settings.notifications.commentsNever",defaultMessage:"Do not trigger notifications on messages in reply threads unless I'm mentioned"})))));const i=r().createElement("span",null,r().createElement(d.FormattedMessage,{id:"user.settings.notifications.commentsInfo",defaultMessage:"In addition to notifications for when you're mentioned, select if you would like to receive notifications on reply threads."}));s=r().createElement(D,{title:this.props.intl.formatMessage({id:"user.settings.notifications.comments",defaultMessage:"Reply notifications"}),extraInfo:i,inputs:a,submit:this.handleSubmit,saving:this.state.isSaving,serverError:e,updateSection:this.handleUpdateSection})}return t="never"===this.state.notifyCommentsLevel?r().createElement(d.FormattedMessage,{id:"user.settings.notifications.commentsNever",defaultMessage:"Do not trigger notifications on messages in reply threads unless I'm mentioned"}):"root"===this.state.notifyCommentsLevel?r().createElement(d.FormattedMessage,{id:"user.settings.notifications.commentsRoot",defaultMessage:"Trigger notifications on messages in threads that I start"}):r().createElement(d.FormattedMessage,{id:"user.settings.notifications.commentsAny",defaultMessage:"Trigger notifications on messages in reply threads that I start or participate in"}),r().createElement(P,{title:this.props.intl.formatMessage({id:"user.settings.notifications.comments",defaultMessage:"Reply notifications"}),active:this.props.activeSection===S.eU.REPLY_NOTIFCATIONS,describe:t,section:S.eU.REPLY_NOTIFCATIONS,updateSection:this.handleUpdateSection,max:s,areAllSectionsInactive:""===this.props.activeSection})})),Gt(this,"createAutoResponderSection",(()=>{const e=this.state.autoResponderActive?r().createElement(d.FormattedMessage,{id:"user.settings.notifications.autoResponderEnabled",defaultMessage:"Enabled"}):r().createElement(d.FormattedMessage,{id:"user.settings.notifications.autoResponderDisabled",defaultMessage:"Disabled"});return r().createElement(P,{active:this.props.activeSection===S.eU.AUTO_RESPONDER,areAllSectionsInactive:""===this.props.activeSection,title:r().createElement(d.FormattedMessage,{id:"user.settings.notifications.autoResponder",defaultMessage:"Automatic direct message replies"}),describe:e,section:S.eU.AUTO_RESPONDER,updateSection:this.handleUpdateSection,max:r().createElement("div",null,r().createElement(qt,{autoResponderActive:this.state.autoResponderActive,autoResponderMessage:this.state.autoResponderMessage||"",updateSection:this.handleUpdateSection,setParentState:this.setStateValue,submit:this.handleSubmit,error:this.state.serverError,saving:this.state.isSaving}),r().createElement("div",{className:"divider-dark"}))})})),this.state=Vt(e)}render(){const e=this.createKeywordsWithNotificationSection(),t=this.createKeywordsWithHighlightSection(),s=this.createCommentsSection(),a=this.createAutoResponderSection(),i=""===this.props.activeSection;return r().createElement("div",{id:"notificationSettings"},r().createElement(Y,{closeModal:this.props.closeModal,collapseModal:this.props.collapseModal,text:r().createElement(d.FormattedMessage,{id:"user.settings.notifications.title",defaultMessage:"Notification settings"})}),r().createElement("div",{className:"user-settings"},r().createElement(K,{id:"notificationSettingsTitle",text:r().createElement(d.FormattedMessage,{id:"user.settings.notifications.header",defaultMessage:"Notifications"}),info:r().createElement(d.FormattedMessage,{id:"user.settings.notifications.learnMore",defaultMessage:"<a>Learn more about notifications</a>",values:{a:e=>r().createElement(ue.Z,{location:"user_settings_notifications",href:"https://mattermost.com/pl/about-notifications",className:"btn btn-link"},r().createElement(bt.LightbulbOutlineIcon,{className:"circular-border"}),r().createElement("span",null,e))}})}),r().createElement("div",{className:"divider-dark first"}),r().createElement(It,{active:this.props.activeSection===S.eU.DESKTOP_AND_MOBILE,updateSection:this.handleUpdateSection,onSubmit:this.handleSubmit,onCancel:this.handleCancel,saving:this.state.isSaving,error:this.state.serverError,setParentState:this.setStateValue,areAllSectionsInactive:i,isCollapsedThreadsEnabled:this.props.isCollapsedThreadsEnabled,desktopActivity:this.state.desktopActivity,pushActivity:this.state.pushActivity,sendPushNotifications:this.props.sendPushNotifications,pushStatus:this.state.pushStatus,desktopThreads:this.state.desktopThreads,pushThreads:this.state.pushThreads,desktopAndMobileSettingsDifferent:this.state.desktopAndMobileSettingsDifferent}),r().createElement("div",{className:"divider-light"}),r().createElement(Ot,{active:this.props.activeSection===S.eU.DESKTOP_NOTIFICATION_SOUND,updateSection:this.handleUpdateSection,onSubmit:this.handleSubmit,onCancel:this.handleCancel,saving:this.state.isSaving,error:this.state.serverError,setParentState:this.setStateValue,areAllSectionsInactive:i,desktopSound:this.state.desktopSound,desktopNotificationSound:this.state.desktopNotificationSound,isCallsRingingEnabled:this.props.isCallsRingingEnabled,callsDesktopSound:this.state.callsDesktopSound,callsNotificationSound:this.state.callsNotificationSound}),r().createElement("div",{className:"divider-light"}),r().createElement(Ut,{active:this.props.activeSection===S.eU.EMAIL,updateSection:this.handleUpdateSection,onSubmit:this.handleSubmit,onCancel:this.handleCancel,saving:this.state.isSaving,error:this.state.serverError,setParentState:this.setStateValue,areAllSectionsInactive:i,isCollapsedThreadsEnabled:this.props.isCollapsedThreadsEnabled,enableEmail:"true"===this.state.enableEmail,onChange:this.handleEmailRadio,threads:this.state.emailThreads||""}),r().createElement("div",{className:"divider-light"}),e,!this.props.isEnterpriseOrCloudOrSKUStarterFree&&this.props.isEnterpriseReady&&r().createElement(r().Fragment,null,r().createElement("div",{className:"divider-light"}),t),r().createElement("div",{className:"divider-light"}),!this.props.isCollapsedThreadsEnabled&&r().createElement(r().Fragment,null,r().createElement("div",{className:"divider-light"}),s),this.props.enableAutoResponder&&r().createElement(r().Fragment,null,r().createElement("div",{className:"divider-light"}),a),this.props.isEnterpriseOrCloudOrSKUStarterFree&&this.props.isEnterpriseReady&&r().createElement(r().Fragment,null,r().createElement("div",{className:"divider-light"}),t),r().createElement("div",{className:"divider-dark"})))}}Gt(Yt,"defaultProps",{activeSection:""});const zt={container:e=>jt(jt({},e),{},{marginBlockStart:"10px"}),control:e=>jt(jt({},e),{},{backgroundColor:"var(--center-channel-bg)",border:"1px solid rgba(var(--center-channel-color-rgb), 0.16);",":hover":{borderColor:"rgba(var(--center-channel-color-rgb), 0.48);"}}),multiValue:e=>jt(jt({},e),{},{background:"rgba(var(--center-channel-color-rgb), 0.08)"}),multiValueLabel:e=>jt(jt({},e),{},{color:"var(--center-channel-color);"}),input:e=>jt(jt({},e),{},{color:"var(--center-channel-color)"}),indicatorSeparator:e=>jt(jt({},e),{},{display:"none"}),multiValueRemove:e=>jt(jt({},e),{},{cursor:"pointer",color:"rgba(var(--center-channel-color-rgb),0.32);",":hover":{backgroundColor:"rgba(var(--center-channel-color-rgb), 0.16)",color:"rgba(var(--center-channel-color-rgb), 0.56);"}})},Zt=Object.values(S.XH),Xt=(0,d.injectIntl)(Yt),Jt={updateMe:f.DO,patchUser:f.qS},$t=(0,p.connect)(((e,t)=>{const s=(0,E.iE)(e),a="true"===s.SendPushNotifications,i="true"===s.ExperimentalEnableAutomaticReplies,n=(0,E.lJ)(e),r=(0,gt.Bf)(e),o="true"===s.BuildEnterpriseReady;return{sendPushNotifications:a,enableAutoResponder:i,isCollapsedThreadsEnabled:t.adminMode&&t.userPreferences?(0,v.YE)(e,t.userPreferences):(0,v.ym)(e),isCallsRingingEnabled:(0,ft.K)(e,"0.17.0")&&(0,ft.Qz)(e),isEnterpriseOrCloudOrSKUStarterFree:(0,Et.Y8)(n,r,o),isEnterpriseReady:o}}),Jt)(Xt);var Qt=s(82044),es=s(64996);const ts=e=>{let{action:t}=e;const s=(0,n.useMemo)((()=>t?{text:t.text,title:t.title,primaryButton:{onClick:null==t?void 0:t.onClick,text:null==t?void 0:t.buttonText}}:{text:"",title:""}),[t]);return t?r().createElement("div",{className:"pluginActionContainer"},r().createElement(es.Z,s)):null};function ss(e){return"pp_".concat(e).slice(0,32)}var as=s(27468);const is={mentionHighlight:!1},ns=e=>{let{selectedValue:t,name:s,option:a,onSelected:i}=e;const o=(0,n.useCallback)((()=>i(a.value)),[a.value]);return r().createElement("div",{className:"radio"},r().createElement("label",null,r().createElement("input",{type:"radio",name:s,checked:t===a.value,onChange:o}),a.text),r().createElement("br",null),a.helpText&&r().createElement(as.Z,{message:a.helpText,options:is}))};ns.propTypes={selectedValue:i().string.isRequired,name:i().string.isRequired,onSelected:i().func.isRequired};const rs=ns,os=e=>{let{setting:t,pluginId:s,informChange:a}=e;const i=(0,p.useSelector)((e=>(0,v.U2)(e,ss(s),t.name,t.default))),[o,l]=(0,n.useState)(i),c=(0,n.useCallback)((e=>{l(e),a(t.name,e)}),[t.name]);return r().createElement("fieldset",{key:t.name},r().createElement("legend",{className:"form-legend hidden-label"},t.title||t.name),t.options.map((e=>r().createElement(rs,{key:e.value,name:t.name,option:e,selectedValue:o,onSelected:c}))),t.helpText&&r().createElement("div",{className:"mt-5"},r().createElement(as.Z,{message:t.helpText,options:{mentionHighlight:!1}})))};os.propTypes={pluginId:i().string.isRequired,informChange:i().func.isRequired};const ls=os,cs=e=>{let{pluginId:t,section:s,activeSection:a,updateSection:i}=e;const o=(0,p.useDispatch)(),l=(0,p.useSelector)(b.rc),c=(0,p.useSelector)((e=>(0,v.U2)(e,ss(t),s.settings[0].name,s.settings[0].default))),d=(0,n.useRef)({}),u=(0,n.useMemo)((()=>{const e=s.settings[0];var t;if("radio"===e.type)return null===(t=e.options.find((e=>e.value===c)))||void 0===t?void 0:t.text}),[s,c]),m=(0,n.useCallback)(((e,t)=>{d.current[e]=t}),[]),h=(0,n.useCallback)((async()=>{const e=[];for(const s of Object.keys(d.current))e.push({user_id:l,category:ss(t),name:s,value:d.current[s]});var a;e.length&&(o((0,g.$A)(l,e)),null===(a=s.onSubmit)||void 0===a||a.call(s,d.current)),i("")}),[t,o,s.onSubmit]);(0,n.useEffect)((()=>{a!==s.title&&(d.current={})}),[a,s.title]);const f=[];for(const e of s.settings)if("radio"===e.type)f.push(r().createElement(ls,{key:e.name,setting:e,informChange:m,pluginId:t}));else if("custom"===e.type){const s=e.component,a=r().createElement(Qt.Z,{key:e.name,pluginId:t},r().createElement(s,{informChange:m}));f.push(a)}return f.length?s.title===a?r().createElement(D,{title:s.title,inputs:f,submit:h,updateSection:i}):r().createElement(k,{section:s.title,title:s.title,updateSection:i,describe:u,isDisabled:s.disabled}):null};cs.propTypes={pluginId:i().string.isRequired,updateSection:i().func.isRequired,activeSection:i().string.isRequired};const ds=cs,us=e=>{let{activeSection:t,closeModal:s,collapseModal:a,settings:i,updateSection:n}=e;const o=(0,d.useIntl)().formatMessage({id:"user.settings.plugins.title",defaultMessage:"{pluginName} Settings"},{pluginName:i.uiName});return r().createElement("div",null,r().createElement(Y,{closeModal:s,collapseModal:a,text:o}),r().createElement("div",{className:"user-settings"},r().createElement(K,{text:o}),r().createElement(ts,{action:i.action}),r().createElement("div",{className:"divider-dark first"}),i.sections.map((e=>{let s;if("component"in e){const t=e.component;s=r().createElement(Qt.Z,{pluginId:i.id},r().createElement(t,null))}else s=r().createElement(ds,{pluginId:i.id,activeSection:t,section:e,updateSection:n});return r().createElement(r().Fragment,{key:e.title},s,r().createElement("div",{className:"divider-light"}))})),r().createElement("div",{className:"divider-dark"})))};us.propTypes={updateSection:i().func.isRequired,activeSection:i().string.isRequired,closeModal:i().func.isRequired,collapseModal:i().func.isRequired};const ms=us;var ps=s(72873),hs=s(33115),gs=s(9448),fs=s(16518),Es=s(25598);const vs=e=>{let{actions:{getUserAudits:t},currentUserId:s,onHide:a,userAudits:i}=e;const[l,c]=(0,n.useState)(!0),u=(0,n.useCallback)((()=>{c(!1)}),[]);let m;return(0,n.useEffect)((()=>{t(s,0,200)}),[]),m=0===i.length?r().createElement(Es.Z,null):r().createElement(fs.Z,{audits:i,showIp:!0,showSession:!0}),r().createElement(o.Modal,{dialogClassName:"a11y__modal modal--scroll access-history-modal",show:l,onHide:u,onExited:a,bsSize:"large",role:"dialog","aria-labelledby":"accessHistoryModalLabel"},r().createElement(o.Modal.Header,{closeButton:!0},r().createElement(o.Modal.Title,{componentClass:"h1",id:"accessHistoryModalLabel"},r().createElement(d.FormattedMessage,{id:"access_history.title",defaultMessage:"Access History"}))),r().createElement(o.Modal.Body,null,m),r().createElement(o.Modal.Footer,{className:"modal-footer--invisible"},r().createElement("button",{id:"closeModalButton",type:"button",className:"btn btn-tertiary"},r().createElement(d.FormattedMessage,{id:"general_button.close",defaultMessage:"Close"}))))};vs.propTypes={onHide:i().func.isRequired,actions:i().shape({getUserAudits:i().func.isRequired}).isRequired,userAudits:i().array.isRequired,currentUserId:i().string.isRequired};const bs=r().memo(vs),Ss=(0,p.connect)((function(e){return{currentUserId:(0,b.rc)(e),userAudits:(0,b.Oc)(e)||[]}}),(function(e){return{actions:(0,h.bindActionCreators)({getUserAudits:f.Oc},e)}}))(bs);var ys=s(1983),Ms=(s(73902),s(96811));function Ns(e){const t=(0,d.useIntl)();let s;return s=(0,Ms.W)(e.deviceTitle)?t.formatMessage(e.deviceTitle):e.deviceTitle,r().createElement("i",{className:e.devicePicture,title:s})}function _s(e){const{locale:t,currentSession:s,handleMoreInfo:a,moreInfo:i}=e;if(i){const e=new Date(s.create_at);return r().createElement("div",null,r().createElement("div",null,r().createElement(d.FormattedMessage,{id:"activity_log.firstTime",defaultMessage:"First time active: {date}, {time}",values:{date:r().createElement(d.FormattedDate,{value:e,day:"2-digit",month:(0,Ms.u)(t),year:"numeric"}),time:r().createElement(d.FormattedTime,{value:e,hour:"2-digit",minute:"2-digit"})}})),r().createElement("div",null,r().createElement(d.FormattedMessage,{id:"activity_log.os",defaultMessage:"OS: {os}",values:{os:s.props.os}})),r().createElement("div",null,r().createElement(d.FormattedMessage,{id:"activity_log.browser",defaultMessage:"Browser: {browser}",values:{browser:s.props.browser}})),r().createElement("div",null,r().createElement(d.FormattedMessage,{id:"activity_log.sessionId",defaultMessage:"Session ID: {id}",values:{id:s.id}})))}return r().createElement("a",{className:"theme",href:"#",onClick:a},r().createElement(d.FormattedMessage,{id:"activity_log.moreInfo",defaultMessage:"More info"}))}function Ts(e,t,s){return(t=function(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var s=e[Symbol.toPrimitive];if(void 0!==s){var a=s.call(e,"string");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}Ns.propTypes={devicePicture:i().string},_s.propTypes={locale:i().string.isRequired,handleMoreInfo:i().func.isRequired,moreInfo:i().bool.isRequired};class Cs extends r().PureComponent{constructor(e){super(e),Ts(this,"handleMoreInfo",(()=>{this.setState({moreInfo:!0})})),Ts(this,"submitRevoke",(e=>{this.props.submitRevoke(this.props.currentSession.id,e)})),Ts(this,"isMobileSession",(e=>Boolean(e.device_id&&(e.device_id.includes("apple")||e.device_id.includes("android"))))),Ts(this,"mobileSessionInfo",(e=>{let t,s,a;return e.device_id.includes("apple")?(s="fa fa-apple",a=ks.appleIcon,t=r().createElement(d.FormattedMessage,{id:"activity_log_modal.iphoneNativeClassicApp",defaultMessage:"iPhone Native Classic App"}),e.device_id.includes(L.LQ.PUSH_NOTIFY_APPLE_REACT_NATIVE)&&(t=r().createElement(d.FormattedMessage,{id:"activity_log_modal.iphoneNativeApp",defaultMessage:"iPhone Native App"}))):e.device_id.includes("android")&&(s="fa fa-android",a=ks.androidIcon,t=r().createElement(d.FormattedMessage,{id:"activity_log_modal.androidNativeClassicApp",defaultMessage:"Android Native Classic App"}),e.device_id.includes(L.LQ.PUSH_NOTIFY_ANDROID_REACT_NATIVE)&&(t=r().createElement(d.FormattedMessage,{id:"activity_log_modal.androidNativeApp",defaultMessage:"Android Native App"}))),{devicePicture:s,deviceTitle:a,devicePlatform:t}})),this.state={moreInfo:!1}}render(){const{index:e,locale:t,currentSession:s}=this.props,a=new Date(s.last_activity_at);let i=s.props.platform,n="",o="";if(this.isMobileSession(s)){const e=this.mobileSessionInfo(s);n=e.devicePicture,i=e.devicePlatform,o=e.deviceTitle||o}else"Windows"===s.props.platform?(n="fa fa-windows",o=ks.windowsIcon):"Macintosh"===s.props.platform||"iPhone"===s.props.platform?(n="fa fa-apple",o=ks.appleIcon):"Linux"===s.props.platform?s.props.os.indexOf("Android")>=0?(i=r().createElement(d.FormattedMessage,{id:"activity_log_modal.android",defaultMessage:"Android"}),n="fa fa-android",o=ks.androidIcon):(n="fa fa-linux",o=ks.linuxIcon):-1!==s.props.os.indexOf("Linux")&&(n="fa fa-linux",o=ks.linuxIcon),-1!==s.props.browser.indexOf("Desktop App")&&(i=r().createElement(d.FormattedMessage,{id:"activity_log_modal.desktop",defaultMessage:"Native Desktop App"}));return r().createElement("div",{key:"activityLogEntryKey"+e,className:"activity-log__table"},r().createElement("div",{className:"activity-log__report"},r().createElement("div",{className:"report__platform"},r().createElement(Ns,{devicePicture:n,deviceTitle:o}),i),r().createElement("div",{className:"report__info"},r().createElement("div",null,r().createElement(d.FormattedMessage,{id:"activity_log.lastActivity",defaultMessage:"Last activity: {date}, {time}",values:{date:r().createElement(d.FormattedDate,{value:a,day:"2-digit",month:(0,Ms.u)(t),year:"numeric"}),time:r().createElement(d.FormattedTime,{value:a,hour:"2-digit",minute:"2-digit"})}})),r().createElement(_s,{locale:t,currentSession:s,moreInfo:this.state.moreInfo,handleMoreInfo:this.handleMoreInfo}))),r().createElement("div",{className:"activity-log__action"},r().createElement("button",{onClick:this.submitRevoke,className:"btn btn-primary"},r().createElement(d.FormattedMessage,{id:"activity_log.logout",defaultMessage:"Log Out"}))))}}Ts(Cs,"propTypes",{index:i().number.isRequired,locale:i().string.isRequired,submitRevoke:i().func.isRequired});const ks=(0,d.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"}});function As(e,t,s){return(t=function(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var s=e[Symbol.toPrimitive];if(void 0!==s){var a=s.call(e,"string");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}class Is extends r().PureComponent{constructor(e){super(e),As(this,"submitRevoke",((e,t)=>{var s;t.preventDefault();const a=null===(s=t.target)||void 0===s?void 0:s.closest(".modal-content");null==a||a.classList.add("animation--highlight"),setTimeout((()=>{null==a||a.classList.remove("animation--highlight")}),1500),this.props.actions.revokeSession(this.props.currentUserId,e).then((()=>{this.props.actions.getSessions(this.props.currentUserId)}))})),As(this,"onShow",(()=>{this.props.actions.getSessions(this.props.currentUserId)})),As(this,"onHide",(()=>{this.setState({show:!1})})),this.state={show:!0}}componentDidMount(){this.onShow()}render(){const e=this.props.sessions.reduce(((e,t,s)=>("UserAccessToken"===t.props.type||e.push(r().createElement(Cs,{key:t.id,index:s,locale:this.props.locale,currentSession:t,submitRevoke:this.submitRevoke})),e)),[]),t=r().createElement("form",{role:"form"},e);return r().createElement(o.Modal,{dialogClassName:"a11y__modal modal--scroll",show:this.state.show,onHide:this.onHide,onExited:this.props.onHide,bsSize:"large",role:"dialog","aria-labelledby":"activityLogModalLabel"},r().createElement(o.Modal.Header,{closeButton:!0},r().createElement(o.Modal.Title,{componentClass:"h1",id:"activityLogModalLabel"},r().createElement(d.FormattedMessage,{id:"activity_log.activeSessions",defaultMessage:"Active Sessions"}))),r().createElement(o.Modal.Body,null,r().createElement("p",{className:"session-help-text"},r().createElement(d.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."})),t),r().createElement(o.Modal.Footer,{className:"modal-footer--invisible"},r().createElement("button",{id:"closeModalButton",type:"button",className:"btn btn-tertiary"},r().createElement(d.FormattedMessage,{id:"general_button.close",defaultMessage:"Close"}))))}}As(Is,"propTypes",{actions:i().shape({getSessions:i().func.isRequired,revokeSession:i().func.isRequired}).isRequired,onHide:i().func.isRequired,locale:i().string.isRequired,sessions:i().array.isRequired,currentUserId:i().string.isRequired});const Ps=(0,p.connect)((function(e){return{currentUserId:(0,b.rc)(e),sessions:(0,b.c7)(e),locale:(0,ys.B)(e)}}),(function(e){return{actions:(0,h.bindActionCreators)({getSessions:f.Rx,revokeSession:f._1},e)}}))(Is);var ws=s(43976),Rs=s(62355),Os=s(95810),Ds=s(83975),Fs=s(8243);function Ls(e,t,s){return(t=function(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var s=e[Symbol.toPrimitive];if(void 0!==s){var a=s.call(e,"string");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}class xs extends r().PureComponent{constructor(e){super(e),Ls(this,"setupMfa",(e=>{e.preventDefault(),(0,Fs.s)().push("/mfa/setup")})),Ls(this,"removeMfa",(async e=>{e.preventDefault();const{error:t}=await this.props.actions.deactivateMfa();t?this.setState({serverError:t.message}):this.props.mfaEnforced?(0,Fs.s)().push("/mfa/setup"):(this.props.updateSection(""),this.setState({serverError:null}))})),Ls(this,"renderTitle",(()=>r().createElement(d.FormattedMessage,{id:"user.settings.mfa.title",defaultMessage:"Multi-factor Authentication"}))),Ls(this,"renderDescription",(()=>this.props.mfaActive?r().createElement(d.FormattedMessage,{id:"user.settings.security.active",defaultMessage:"Active"}):r().createElement(d.FormattedMessage,{id:"user.settings.security.inactive",defaultMessage:"Inactive"}))),Ls(this,"renderContent",(()=>{let e;if(this.props.mfaActive){let t;t=this.props.mfaEnforced?r().createElement(d.FormattedMessage,{id:"user.settings.mfa.reset",defaultMessage:"Reset MFA on Account"}):r().createElement(d.FormattedMessage,{id:"user.settings.mfa.remove",defaultMessage:"Remove MFA from Account"}),e=r().createElement("a",{className:"btn btn-primary",href:"#",onClick:this.removeMfa},t)}else e=r().createElement("a",{className:"btn btn-primary",href:"#",onClick:this.setupMfa},r().createElement(d.FormattedMessage,{id:"user.settings.mfa.add",defaultMessage:"Add MFA to Account"}));return r().createElement("div",{className:"pt-2"},e,r().createElement("br",null))})),Ls(this,"renderHelpText",(()=>this.props.mfaActive?this.props.mfaEnforced?r().createElement(d.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."}):r().createElement(d.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."}):r().createElement(d.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."}))),this.state={serverError:null},this.minRef=r().createRef()}focusEditButton(){var e;null===(e=this.minRef.current)||void 0===e||e.focus()}componentDidUpdate(e){e.active&&!this.props.active&&this.props.areAllSectionsInactive&&this.focusEditButton()}render(){const e=this.renderTitle();return this.props.mfaAvailable?this.props.active?r().createElement(D,{title:e,inputs:this.renderContent(),extraInfo:this.renderHelpText(),serverError:this.state.serverError,updateSection:this.props.updateSection}):r().createElement(k,{title:e,describe:this.renderDescription(),section:"mfa",updateSection:this.props.updateSection,ref:this.minRef}):null}}const Us=(0,p.connect)((function(e){const t=(0,E.lJ)(e),s=(0,E.iE)(e),a=t&&"true"===t.IsLicensed&&"true"===t.MFA,i="true"===s.EnableMultifactorAuthentication,n=a&&"true"===s.EnforceMultifactorAuthentication,r=(0,b.ts)(e);let o=!1,l=!1;return r&&(o=r.mfa_active,l=i&&(""===r.auth_service||r.auth_service===S.default.LDAP_SERVICE)),{mfaActive:o,mfaAvailable:l,mfaEnforced:n}}),(function(e){return{actions:(0,h.bindActionCreators)({deactivateMfa:Ds.sk},e)}}))(xs);var Bs=s(2664),qs=s(7249);function Hs(e,t,s){return(t=function(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var s=e[Symbol.toPrimitive];if(void 0!==s){var a=s.call(e,"string");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}const js="creating",Gs="created",Ws="not_creating";class Ks extends r().PureComponent{constructor(e){super(e),Hs(this,"startCreatingToken",(()=>{this.setState({tokenCreationState:js})})),Hs(this,"stopCreatingToken",(()=>{this.setState({tokenCreationState:Ws,saving:!1})})),Hs(this,"handleCreateToken",(async()=>{this.handleCancelConfirm();const e=this.newtokendescriptionRef?this.newtokendescriptionRef.current.value:"";if(""===e)return void this.setState({tokenError:T._u({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:a}=await this.props.actions.createUserAccessToken(t,e);s&&this.state.tokenCreationState===js?this.setState({tokenCreationState:Gs,newToken:s,saving:!1}):a&&this.setState({serverError:a.message,saving:!1})})),Hs(this,"confirmCopyToken",(e=>{this.setState({showConfirmModal:!0,confirmTitle:r().createElement(d.FormattedMessage,{id:"user.settings.tokens.confirmCopyTitle",defaultMessage:"Copied Your Token?"}),confirmMessage:e=>r().createElement("div",null,r().createElement(d.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!"}),r().createElement("br",null),r().createElement("br",null),e.tokenCreationState===js?r().createElement("div",null,r().createElement("strong",{className:"word-break--all"},r().createElement(d.FormattedMessage,{id:"user.settings.tokens.token",defaultMessage:"Access Token: "})),r().createElement(d.FormattedMessage,{id:"user.settings.tokens.tokenLoading",defaultMessage:"Loading..."})):r().createElement("strong",{className:"word-break--all"},r().createElement(d.FormattedMessage,{id:"user.settings.tokens.token",defaultMessage:"Access Token: "}),e.newToken.token)),confirmButton:r().createElement(d.FormattedMessage,{id:"user.settings.tokens.confirmCopyButton",defaultMessage:"Yes, I have copied the token"}),confirmComplete:()=>{this.handleCancelConfirm(),e()},confirmHideCancel:!0})})),Hs(this,"handleCancelConfirm",(()=>{this.setState({showConfirmModal:!1,confirmTitle:null,confirmMessage:null,confirmButton:null,confirmComplete:null,confirmHideCancel:!1})})),Hs(this,"confirmCreateToken",(()=>{hs.$O(this.props.user.roles)?this.setState({showConfirmModal:!0,confirmTitle:r().createElement(d.FormattedMessage,{id:"user.settings.tokens.confirmCreateTitle",defaultMessage:"Create System Admin Personal Access Token"}),confirmMessage:()=>r().createElement("div",{className:"alert alert-danger"},r().createElement(d.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:r().createElement(d.FormattedMessage,{id:"user.settings.tokens.confirmCreateButton",defaultMessage:"Yes, Create"}),confirmComplete:()=>{this.handleCreateToken(),(0,le.L9)("settings","system_admin_create_user_access_token")}}):this.handleCreateToken()})),Hs(this,"saveTokenKeyPress",(e=>{R.p(e,S.Constants.KeyCodes.ENTER)&&this.confirmCreateToken()})),Hs(this,"confirmRevokeToken",(e=>{const t=this.props.userAccessTokens[e];this.setState({showConfirmModal:!0,confirmTitle:r().createElement(d.FormattedMessage,{id:"user.settings.tokens.confirmDeleteTitle",defaultMessage:"Delete Token?"}),confirmMessage:()=>r().createElement("div",{className:"alert alert-danger"},r().createElement(Bs.Z,{id:"user.settings.tokens.confirmDeleteMessage",defaultMessage:"Any integrations using this token will no longer be able to access the Mattermost API. You cannot undo this action. \\n \\nAre you sure want to delete the **{description}** token?",values:{description:t.description}})),confirmButton:r().createElement(d.FormattedMessage,{id:"user.settings.tokens.confirmDeleteButton",defaultMessage:"Yes, Delete"}),confirmComplete:()=>{this.revokeToken(e),(0,le.L9)("settings","revoke_user_access_token")}})})),Hs(this,"revokeToken",(async e=>{const{error:t}=await this.props.actions.revokeUserAccessToken(e);t&&this.setState({serverError:t.message}),this.handleCancelConfirm()})),Hs(this,"activateToken",(async e=>{const{error:t}=await this.props.actions.enableUserAccessToken(e);t?this.setState({serverError:t.message}):(0,le.L9)("settings","activate_user_access_token")})),Hs(this,"deactivateToken",(async e=>{const{error:t}=await this.props.actions.disableUserAccessToken(e);t?this.setState({serverError:t.message}):(0,le.L9)("settings","deactivate_user_access_token")})),this.state={active:this.props.active,showConfirmModal:!1,newToken:null,tokenCreationState:Ws,tokenError:"",serverError:null,saving:!1},this.newtokendescriptionRef=r().createRef(),this.minRef=r().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:Ws,tokenError:"",serverError:null,saving:!1}:{active:e.active}}focusEditButton(){var e;null===(e=this.minRef.current)||void 0===e||e.focus()}render(){let e="";if(!this.props.active){const e=T._u({id:"user.settings.tokens.clickToEdit",defaultMessage:"Click 'Edit' to manage your personal access tokens"});return r().createElement(k,{title:T._u({id:"user.settings.tokens.title",defaultMessage:"Personal Access Tokens"}),describe:e,section:"tokens",updateSection:this.props.updateSection,ref:this.minRef})}const t=[];let s,a,i;Object.values(this.props.userAccessTokens).forEach((e=>{if(this.state.newToken&&this.state.newToken.id===e.id)return;let s,a;e.is_active?s=r().createElement("a",{id:e.id+"_deactivate",href:"#",onClick:t=>{t.preventDefault(),this.deactivateToken(e.id)}},r().createElement(d.FormattedMessage,{id:"user.settings.tokens.deactivate",defaultMessage:"Disable"})):(a=r().createElement("span",{className:"has-error setting-box__inline-error"},r().createElement(d.FormattedMessage,{id:"user.settings.tokens.deactivatedWarning",defaultMessage:"(Disabled)"})),s=r().createElement("a",{id:e.id+"_activate",href:"#",onClick:t=>{t.preventDefault(),this.activateToken(e.id)}},r().createElement(d.FormattedMessage,{id:"user.settings.tokens.activate",defaultMessage:"Enable"}))),t.push(r().createElement("div",{key:e.id,className:"setting-box__item"},r().createElement("div",{className:"whitespace--nowrap overflow--ellipsis"},r().createElement(d.FormattedMessage,{id:"user.settings.tokens.tokenDesc",defaultMessage:"Token Description: "}),e.description,a),r().createElement("div",{className:"setting-box__token-id whitespace--nowrap overflow--ellipsis"},r().createElement(d.FormattedMessage,{id:"user.settings.tokens.tokenId",defaultMessage:"Token ID: "}),e.id),r().createElement("div",null,s," - ",r().createElement("a",{id:e.id+"_delete",href:"#",onClick:t=>{t.preventDefault(),this.confirmRevokeToken(e.id)}},r().createElement(d.FormattedMessage,{id:"user.settings.tokens.delete",defaultMessage:"Delete"}))),r().createElement("hr",{className:"mb-3 mt-3"})))})),0===t.length&&(s=r().createElement(d.FormattedMessage,{key:"notokens",id:"user.settings.tokens.userAccessTokensNone",defaultMessage:"No personal access tokens."})),a=(0,F.tq)()?r().createElement("span",null,r().createElement(d.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=>r().createElement(ue.Z,{href:S.I9.PERSONAL_ACCESS_TOKENS,location:"user_access_token_section"},e),linkAPI:e=>r().createElement(ue.Z,{href:"https://api.mattermost.com/#tag/authentication",location:"user_access_token_section"},e)}})):r().createElement("span",null,r().createElement(d.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=>r().createElement(ue.Z,{href:S.I9.PERSONAL_ACCESS_TOKENS,location:"user_access_token_section"},e),linkAPI:e=>r().createElement(ue.Z,{href:"https://api.mattermost.com/#tag/authentication",location:"user_access_token_section"},e)}})),this.state.tokenCreationState===js?i=r().createElement("div",{className:"pl-3"},r().createElement("div",{className:"row"},r().createElement("label",{className:"col-sm-auto control-label pr-3"},r().createElement(d.FormattedMessage,{id:"user.settings.tokens.name",defaultMessage:"Token Description: "})),r().createElement("div",{className:"col-sm-5"},r().createElement("input",{autoFocus:!0,ref:this.newtokendescriptionRef,className:"form-control",type:"text",maxLength:64,onKeyPress:this.saveTokenKeyPress}))),r().createElement("div",null,r().createElement("div",{className:"pt-3"},r().createElement(d.FormattedMessage,{id:"user.settings.tokens.nameHelp",defaultMessage:"Enter a description for your token to remember what it does."})),r().createElement("div",null,r().createElement("label",{id:"clientError",className:"has-error mt-2 mb-2"},this.state.tokenError)),r().createElement(w.Z,{savingMessage:r().createElement(d.FormattedMessage,{id:"user.settings.tokens.save",defaultMessage:"Save"}),saving:this.state.saving,onClick:this.confirmCreateToken}),r().createElement("button",{className:"btn btn-tertiary",onClick:this.stopCreatingToken},r().createElement(d.FormattedMessage,{id:"user.settings.tokens.cancel",defaultMessage:"Cancel"})))):this.state.tokenCreationState===Gs?(0===t.length&&(e=" hidden"),i=r().createElement("div",{className:"alert alert-warning"},r().createElement(qs.Z,{additionalClassName:"mr-2"}),r().createElement(d.FormattedMessage,{id:"user.settings.tokens.copy",defaultMessage:"Please copy the access token below. You won't be able to see it again!"}),r().createElement("br",null),r().createElement("br",null),r().createElement("div",{className:"whitespace--nowrap overflow--ellipsis"},r().createElement(d.FormattedMessage,{id:"user.settings.tokens.name",defaultMessage:"Token Description: "}),this.state.newToken.description),r().createElement("div",{className:"whitespace--nowrap overflow--ellipsis"},r().createElement(d.FormattedMessage,{id:"user.settings.tokens.id",defaultMessage:"Token ID: "}),this.state.newToken.id),r().createElement("strong",{className:"word-break--all"},r().createElement(d.FormattedMessage,{id:"user.settings.tokens.token",defaultMessage:"Access Token: "}),this.state.newToken.token))):i=r().createElement("a",{className:"btn btn-primary",href:"#",onClick:this.startCreatingToken},r().createElement(d.FormattedMessage,{id:"user.settings.tokens.create",defaultMessage:"Create Token"}));const n=[];return n.push(r().createElement("div",{key:"tokensSetting",className:"pt-2"},r().createElement("div",{key:"tokenList"},r().createElement("div",{className:"alert alert-transparent"+e},t,s),i))),r().createElement("div",null,r().createElement(D,{title:T._u({id:"user.settings.tokens.title",defaultMessage:"Personal Access Tokens"}),inputs:n,extraInfo:a,infoPosition:"top",serverError:this.state.serverError,updateSection:this.props.updateSection,isFullWidth:!0,saving:this.state.saving,cancelButtonText:r().createElement(d.FormattedMessage,{id:"user.settings.security.close",defaultMessage:"Close"})}),r().createElement(u.Z,{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}))}}Hs(Ks,"propTypes",{active:i().bool,areAllSectionsInactive:i().bool.isRequired,updateSection:i().func.isRequired,userAccessTokens:i().objectOf(i().shape({description:i().string.isRequired,id:i().string.isRequired,is_active:i().bool.isRequired})).isRequired,setRequireConfirm:i().func.isRequired,actions:i().shape({getUserAccessTokensForUser:i().func.isRequired,createUserAccessToken:i().func.isRequired,revokeUserAccessToken:i().func.isRequired,enableUserAccessToken:i().func.isRequired,disableUserAccessToken:i().func.isRequired,clearUserAccessTokens:i().func.isRequired}).isRequired});const Vs=(0,p.connect)((function(e){return{userAccessTokens:e.entities.users.myUserAccessTokens}}),(function(e){return{actions:(0,h.bindActionCreators)({getUserAccessTokensForUser:f.fh,createUserAccessToken:f.CR,revokeUserAccessToken:f.ei,enableUserAccessToken:f.q9,disableUserAccessToken:f.Wv,clearUserAccessTokens:f.RZ},e)}}))(Ks);function Ys(e,t,s){return(t=function(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var s=e[Symbol.toPrimitive];if(void 0!==s){var a=s.call(e,"string");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}const zs="password",Zs="signin",Xs="apps",Js="tokens";class $s extends r().PureComponent{constructor(e){super(e),Ys(this,"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})}})),Ys(this,"submitPassword",(async()=>{const e=this.props.user,t=this.state.currentPassword,s=this.state.newPassword,a=this.state.confirmPassword;if(""===t)return void this.setState({passwordError:this.props.intl.formatMessage({id:"user.settings.security.currentPasswordError",defaultMessage:"Please enter your current password."}),serverError:""});const{valid:i,error:n}=(0,Os.e)(s,this.props.passwordConfig);if(!i&&n)return void this.setState({passwordError:n,serverError:""});if(s!==a){const e=Object.assign(this.getDefaultState(),{passwordError:this.props.intl.formatMessage({id:"user.settings.security.passwordMatchError",defaultMessage:"The new passwords you entered do not match."}),serverError:""});return void this.setState(e)}this.setState({savingPassword:!0});const r=await this.props.actions.updateUserPassword(e.id,t,s);if("data"in r)this.props.updateSection(""),this.props.actions.getMe(),this.setState(this.getDefaultState());else if("error"in r){const{error:e}=r,t=this.getDefaultState();e.message?t.serverError=e.message:t.serverError=e,t.passwordError="",this.setState(t)}})),Ys(this,"updateCurrentPassword",(e=>{this.setState({currentPassword:e.target.value})})),Ys(this,"updateNewPassword",(e=>{this.setState({newPassword:e.target.value})})),Ys(this,"updateConfirmPassword",(e=>{this.setState({confirmPassword:e.target.value})})),Ys(this,"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})}})),Ys(this,"handleUpdateSection",(e=>{if(e)this.props.updateSection(e);else{switch(this.props.activeSection){case"mfa":case Zs:case Js:case Xs:this.setState({serverError:null});break;case zs:this.setState({currentPassword:"",newPassword:"",confirmPassword:"",serverError:null,passwordError:null})}this.props.updateSection("")}})),Ys(this,"createPasswordSection",(()=>{const e=[];let t;const s=this.props.activeSection===zs;let a,i=null;if(s&&(""===this.props.user.auth_service?(t=this.submitPassword,e.push(r().createElement("div",{key:"currentPasswordUpdateForm",className:"form-group"},r().createElement("label",{className:"col-sm-5 control-label"},r().createElement(d.FormattedMessage,{id:"user.settings.security.currentPassword",defaultMessage:"Current Password"})),r().createElement("div",{className:"col-sm-7"},r().createElement("input",{id:"currentPassword",autoFocus:!0,className:"form-control",type:"password",onChange:this.updateCurrentPassword,value:this.state.currentPassword,"aria-label":this.props.intl.formatMessage({id:"user.settings.security.currentPassword",defaultMessage:"Current Password"})})))),e.push(r().createElement("div",{key:"newPasswordUpdateForm",className:"form-group"},r().createElement("label",{className:"col-sm-5 control-label"},r().createElement(d.FormattedMessage,{id:"user.settings.security.newPassword",defaultMessage:"New Password"})),r().createElement("div",{className:"col-sm-7"},r().createElement("input",{id:"newPassword",className:"form-control",type:"password",onChange:this.updateNewPassword,value:this.state.newPassword,"aria-label":this.props.intl.formatMessage({id:"user.settings.security.newPassword",defaultMessage:"New Password"})})))),e.push(r().createElement("div",{key:"retypeNewPasswordUpdateForm",className:"form-group"},r().createElement("label",{className:"col-sm-5 control-label"},r().createElement(d.FormattedMessage,{id:"user.settings.security.retypePassword",defaultMessage:"Retype New Password"})),r().createElement("div",{className:"col-sm-7"},r().createElement("input",{id:"confirmPassword",className:"form-control",type:"password",onChange:this.updateConfirmPassword,value:this.state.confirmPassword,"aria-label":this.props.intl.formatMessage({id:"user.settings.security.retypePassword",defaultMessage:"Retype New Password"})}))))):this.props.user.auth_service===S.default.GITLAB_SERVICE?e.push(r().createElement("div",{key:"oauthEmailInfo",className:"form-group"},r().createElement("div",{className:"pb-3"},r().createElement(d.FormattedMessage,{id:"user.settings.security.passwordGitlabCantUpdate",defaultMessage:"Login occurs through GitLab. Password cannot be updated."})))):this.props.user.auth_service===S.default.LDAP_SERVICE?e.push(r().createElement("div",{key:"oauthEmailInfo",className:"form-group"},r().createElement("div",{className:"pb-3"},r().createElement(d.FormattedMessage,{id:"user.settings.security.passwordLdapCantUpdate",defaultMessage:"Login occurs through AD/LDAP. Password cannot be updated."})))):this.props.user.auth_service===S.default.SAML_SERVICE?e.push(r().createElement("div",{key:"oauthEmailInfo",className:"form-group"},r().createElement("div",{className:"pb-3"},r().createElement(d.FormattedMessage,{id:"user.settings.security.passwordSamlCantUpdate",defaultMessage:"This field is handled through your login provider. If you want to change it, you need to do so through your login provider."})))):this.props.user.auth_service===S.default.GOOGLE_SERVICE?e.push(r().createElement("div",{key:"oauthEmailInfo",className:"form-group"},r().createElement("div",{className:"pb-3"},r().createElement(d.FormattedMessage,{id:"user.settings.security.passwordGoogleCantUpdate",defaultMessage:"Login occurs through Google Apps. Password cannot be updated."})))):this.props.user.auth_service===S.default.OFFICE365_SERVICE&&e.push(r().createElement("div",{key:"oauthEmailInfo",className:"form-group"},r().createElement("div",{className:"pb-3"},r().createElement(d.FormattedMessage,{id:"user.settings.security.passwordOffice365CantUpdate",defaultMessage:"Login occurs through Entra ID. Password cannot be updated."})))),i=r().createElement(D,{title:r().createElement(d.FormattedMessage,{id:"user.settings.security.password",defaultMessage:"Password"}),inputs:e,submit:t,saving:this.state.savingPassword,serverError:this.state.serverError,clientError:this.state.passwordError,updateSection:this.handleUpdateSection})),""===this.props.user.auth_service){const e=new Date(this.props.user.last_password_update);a=r().createElement(d.FormattedMessage,{id:"user.settings.security.lastUpdated",defaultMessage:"Last updated {date} at {time}",values:{date:r().createElement(d.FormattedDate,{value:e,day:"2-digit",month:"short",year:"numeric"}),time:r().createElement(d.FormattedTime,{value:e,hour12:!this.props.militaryTime,hour:"2-digit",minute:"2-digit"})}})}else this.props.user.auth_service===S.default.GITLAB_SERVICE?a=r().createElement(d.FormattedMessage,{id:"user.settings.security.loginGitlab",defaultMessage:"Login done through GitLab"}):this.props.user.auth_service===S.default.LDAP_SERVICE?a=r().createElement(d.FormattedMessage,{id:"user.settings.security.loginLdap",defaultMessage:"Login done through AD/LDAP"}):this.props.user.auth_service===S.default.SAML_SERVICE?a=r().createElement(d.FormattedMessage,{id:"user.settings.security.loginSaml",defaultMessage:"Login done through SAML"}):this.props.user.auth_service===S.default.GOOGLE_SERVICE?a=r().createElement(d.FormattedMessage,{id:"user.settings.security.loginGoogle",defaultMessage:"Login done through Google Apps"}):this.props.user.auth_service===S.default.OFFICE365_SERVICE&&(a=r().createElement(d.FormattedMessage,{id:"user.settings.security.loginOffice365",defaultMessage:"Login done through Entra ID"}));return r().createElement(P,{active:s,areAllSectionsInactive:""===this.props.activeSection,title:r().createElement(d.FormattedMessage,{id:"user.settings.security.password",defaultMessage:"Password"}),describe:a,section:zs,updateSection:this.handleUpdateSection,max:i})})),Ys(this,"createSignInSection",(()=>{const e=this.props.user,t=this.props.activeSection===Zs;let s=null;if(t){let t,a,i,n,o,l,c;if(""===e.auth_service)this.props.enableSignUpWithGitLab&&(a=r().createElement("div",{className:"pb-3"},r().createElement(gs.Link,{className:"btn btn-primary",to:"/claim/email_to_oauth?email="+encodeURIComponent(e.email)+"&old_type="+e.auth_service+"&new_type="+S.default.GITLAB_SERVICE},r().createElement(d.FormattedMessage,{id:"user.settings.security.switchGitlab",defaultMessage:"Switch to Using GitLab SSO"})),r().createElement("br",null))),this.props.enableSignUpWithGoogle&&(i=r().createElement("div",{className:"pb-3"},r().createElement(gs.Link,{className:"btn btn-primary",to:"/claim/email_to_oauth?email="+encodeURIComponent(e.email)+"&old_type="+e.auth_service+"&new_type="+S.default.GOOGLE_SERVICE},r().createElement(d.FormattedMessage,{id:"user.settings.security.switchGoogle",defaultMessage:"Switch to Using Google SSO"})),r().createElement("br",null))),this.props.enableSignUpWithOffice365&&(n=r().createElement("div",{className:"pb-3"},r().createElement(gs.Link,{className:"btn btn-primary",to:"/claim/email_to_oauth?email="+encodeURIComponent(e.email)+"&old_type="+e.auth_service+"&new_type="+S.default.OFFICE365_SERVICE},r().createElement(d.FormattedMessage,{id:"user.settings.security.switchOffice365",defaultMessage:"Switch to Using Entra ID SSO"})),r().createElement("br",null))),this.props.enableSignUpWithOpenId&&(o=r().createElement("div",{className:"pb-3"},r().createElement(gs.Link,{className:"btn btn-primary",to:"/claim/email_to_oauth?email="+encodeURIComponent(e.email)+"&old_type="+e.auth_service+"&new_type="+S.default.OPENID_SERVICE},r().createElement(d.FormattedMessage,{id:"user.settings.security.switchOpenId",defaultMessage:"Switch to Using OpenID SSO"})),r().createElement("br",null))),this.props.enableLdap&&(l=r().createElement("div",{className:"pb-3"},r().createElement(gs.Link,{className:"btn btn-primary",to:"/claim/email_to_ldap?email="+encodeURIComponent(e.email)},r().createElement(d.FormattedMessage,{id:"user.settings.security.switchLdap",defaultMessage:"Switch to Using AD/LDAP"})),r().createElement("br",null))),this.props.enableSaml&&(c=r().createElement("div",{className:"pb-3"},r().createElement(gs.Link,{className:"btn btn-primary",to:"/claim/email_to_oauth?email="+encodeURIComponent(e.email)+"&old_type="+e.auth_service+"&new_type="+S.default.SAML_SERVICE},r().createElement(d.FormattedMessage,{id:"user.settings.security.switchSaml",defaultMessage:"Switch to Using SAML SSO"})),r().createElement("br",null)));else if(this.props.allowedToSwitchToEmail){let s;s=e.auth_service===S.default.LDAP_SERVICE?"/claim/ldap_to_email?email="+encodeURIComponent(e.email):"/claim/oauth_to_email?email="+encodeURIComponent(e.email)+"&old_type="+e.auth_service,t=r().createElement("div",{className:"pb-3"},r().createElement(gs.Link,{className:"btn btn-primary",to:s},r().createElement(d.FormattedMessage,{id:"user.settings.security.switchEmail",defaultMessage:"Switch to Using Email and Password"})),r().createElement("br",null))}const u=[];u.push(r().createElement("div",{key:"userSignInOption"},t,a,i,n,o,l,c));const m=r().createElement("span",null,r().createElement(d.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."}));s=r().createElement(D,{title:this.props.intl.formatMessage({id:"user.settings.security.method",defaultMessage:"Sign-in Method"}),extraInfo:m,inputs:u,serverError:this.state.serverError,updateSection:this.handleUpdateSection})}let a=r().createElement(d.FormattedMessage,{id:"user.settings.security.emailPwd",defaultMessage:"Email and Password"});return this.props.user.auth_service===S.default.GITLAB_SERVICE?a=r().createElement(d.FormattedMessage,{id:"user.settings.security.gitlab",defaultMessage:"GitLab"}):this.props.user.auth_service===S.default.GOOGLE_SERVICE?a=r().createElement(d.FormattedMessage,{id:"user.settings.security.google",defaultMessage:"Google"}):this.props.user.auth_service===S.default.OFFICE365_SERVICE?a=r().createElement(d.FormattedMessage,{id:"user.settings.security.office365",defaultMessage:"Entra ID"}):this.props.user.auth_service===S.default.OPENID_SERVICE?a=r().createElement(d.FormattedMessage,{id:"user.settings.security.openid",defaultMessage:"OpenID"}):this.props.user.auth_service===S.default.LDAP_SERVICE?a=r().createElement(d.FormattedMessage,{id:"user.settings.security.ldap",defaultMessage:"AD/LDAP"}):this.props.user.auth_service===S.default.SAML_SERVICE&&(a=r().createElement(d.FormattedMessage,{id:"user.settings.security.saml",defaultMessage:"SAML"})),r().createElement(P,{active:t,areAllSectionsInactive:""===this.props.activeSection,title:this.props.intl.formatMessage({id:"user.settings.security.method",defaultMessage:"Sign-in Method"}),describe:a,section:Zs,updateSection:this.handleUpdateSection,max:s})})),Ys(this,"createOAuthAppsSection",(()=>{const e=this.props.activeSection===Xs;let t=null;if(e){let e;e=this.state.authorizedApps&&this.state.authorizedApps.length>0?this.state.authorizedApps.map((e=>{const t=r().createElement(ue.Z,{href:e.homepage,location:"user_settings_security"},e.homepage);return r().createElement("div",{key:e.id,className:"pb-3 authorized-app"},r().createElement("div",{className:"col-sm-10"},r().createElement("div",{className:"authorized-app__name"},e.name,r().createElement("span",{className:"authorized-app__url"}," -"," ",t)),r().createElement("div",{className:"authorized-app__description"},e.description),r().createElement("div",{className:"authorized-app__deauthorize"},r().createElement("a",{href:"#","data-app":e.id,onClick:this.deauthorizeApp},r().createElement(d.FormattedMessage,{id:"user.settings.security.deauthorize",defaultMessage:"Deauthorize"})))),r().createElement("div",{className:"col-sm-2 pull-right"},r().createElement("img",{alt:e.name,src:e.icon_url||Rs})),r().createElement("br",null))})):r().createElement("div",{className:"pb-3 authorized-app"},r().createElement("div",{className:"setting-list__hint"},r().createElement(d.FormattedMessage,{id:"user.settings.security.noApps",defaultMessage:"No OAuth 2.0 Applications are authorized."})));const s=[];let a,i;Array.isArray(e)&&(a="authorized-apps__wrapper",i=r().createElement("div",{className:"authorized-apps__help"},r().createElement(d.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(r().createElement("div",{className:a,key:"authorizedApps"},e));const n=r().createElement("div",null,r().createElement(d.FormattedMessage,{id:"user.settings.security.oauthApps",defaultMessage:"OAuth 2.0 Applications"}),i);t=r().createElement(D,{title:n,inputs:s,serverError:this.state.serverError,updateSection:this.handleUpdateSection,isFullWidth:!0,cancelButtonText:r().createElement(d.FormattedMessage,{id:"user.settings.security.close",defaultMessage:"Close"})})}return r().createElement(P,{active:e,areAllSectionsInactive:""===this.props.activeSection,title:this.props.intl.formatMessage({id:"user.settings.security.oauthApps",defaultMessage:"OAuth 2.0 Applications"}),describe:r().createElement(d.FormattedMessage,{id:"user.settings.security.oauthAppsDescription",defaultMessage:"Click 'Edit' to manage your OAuth 2.0 Applications"}),section:Xs,updateSection:this.handleUpdateSection,max:t})})),this.state=this.getDefaultState()}getDefaultState(){return{currentPassword:"",newPassword:"",confirmPassword:"",passwordError:"",serverError:"",tokenError:"",authService:this.props.user.auth_service,savingPassword:!1,authorizedApps:[]}}componentDidMount(){this.props.enableOAuthServiceProvider&&this.loadAuthorizedOAuthApps()}render(){const e=this.props.user,t=this.createPasswordSection();let s,a,i,n=0;return n=this.props.enableSignUpWithGitLab?n+1:n,n=this.props.enableSignUpWithGoogle?n+1:n,n=this.props.enableSignUpWithOffice365?n+1:n,n=this.props.enableSignUpWithOpenId?n+1:n,n=this.props.enableLdap?n+1:n,n=this.props.enableSaml?n+1:n,(this.props.allowedToSwitchToEmail||""===e.auth_service)&&n>0&&this.props.experimentalEnableAuthenticationTransfer&&(s=this.createSignInSection()),this.props.enableOAuthServiceProvider&&(a=this.createOAuthAppsSection()),this.props.canUseAccessTokens&&(i=r().createElement(Vs,{user:this.props.user,active:this.props.activeSection===Js,areAllSectionsInactive:""===this.props.activeSection,updateSection:this.handleUpdateSection,setRequireConfirm:this.props.setRequireConfirm})),r().createElement("div",null,r().createElement(Y,{closeModal:this.props.closeModal,collapseModal:this.props.collapseModal,text:r().createElement(d.FormattedMessage,{id:"user.settings.security.title",defaultMessage:"Security Settings"})}),r().createElement("div",{className:"user-settings"},r().createElement(K,{text:r().createElement(d.FormattedMessage,{id:"user.settings.security.title",defaultMessage:"Security Settings"})}),r().createElement("div",{className:"divider-dark first"}),t,r().createElement("div",{className:"divider-light"}),r().createElement(Us,{active:"mfa"===this.props.activeSection,areAllSectionsInactive:""===this.props.activeSection,updateSection:this.handleUpdateSection}),r().createElement("div",{className:"divider-light"}),a,r().createElement("div",{className:"divider-light"}),i,r().createElement("div",{className:"divider-light"}),s,r().createElement("div",{className:"divider-dark"}),r().createElement("br",null),r().createElement(ws.Z,{className:"security-links color--link",modalId:"access_history",dialogType:Ss,id:"viewAccessHistory"},r().createElement("i",{className:"fa fa-clock-o",title:this.props.intl.formatMessage({id:"user.settings.security.viewHistory.icon",defaultMessage:"Access History Icon"})}),r().createElement(d.FormattedMessage,{id:"user.settings.security.viewHistory",defaultMessage:"View Access History"})),r().createElement(ws.Z,{className:"security-links color--link mt-2",modalId:"activity_log",dialogType:Ps,id:"viewAndLogOutOfActiveSessions"},r().createElement("i",{className:"fa fa-clock-o",title:this.props.intl.formatMessage({id:"user.settings.security.logoutActiveSessions.icon",defaultMessage:"Active Sessions Icon"})}),r().createElement(d.FormattedMessage,{id:"user.settings.security.logoutActiveSessions",defaultMessage:"View and Log Out of Active Sessions"}))))}}Ys($s,"propTypes",{activeSection:i().string,updateSection:i().func.isRequired,closeModal:i().func.isRequired,collapseModal:i().func.isRequired,setRequireConfirm:i().func.isRequired,canUseAccessTokens:i().bool.isRequired,enableOAuthServiceProvider:i().bool.isRequired,allowedToSwitchToEmail:i().bool.isRequired,enableSignUpWithGitLab:i().bool.isRequired,enableSignUpWithGoogle:i().bool.isRequired,enableSignUpWithOpenId:i().bool.isRequired,enableLdap:i().bool.isRequired,enableSaml:i().bool.isRequired,enableSignUpWithOffice365:i().bool.isRequired,experimentalEnableAuthenticationTransfer:i().bool.isRequired,militaryTime:i().bool.isRequired,actions:i().shape({getMe:i().func.isRequired,updateUserPassword:i().func.isRequired,getAuthorizedOAuthApps:i().func.isRequired,deauthorizeOAuthApp:i().func.isRequired}).isRequired});const Qs=(0,d.injectIntl)($s),ea=(0,p.connect)((function(e,t){const s=(0,E.iE)(e),a="true"===s.EnableUserAccessTokens,i=hs.$t(t.user.roles)||hs.$O(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,E.lD)(e),militaryTime:(0,v.o4)(e,S.uP.CATEGORY_DISPLAY_SETTINGS,S.uP.USE_MILITARY_TIME,!1)}}),(function(e){return{actions:(0,h.bindActionCreators)({getMe:f.jo,updateUserPassword:f.Zy,getAuthorizedOAuthApps:ps.eg,deauthorizeOAuthApp:ps.VZ},e)}}))(Qs);function ta(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function sa(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?ta(Object(s),!0).forEach((function(t){aa(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):ta(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}function aa(e,t,s){return(t=function(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var s=e[Symbol.toPrimitive];if(void 0!==s){var a=s.call(e,"string");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}const ia=[{value:10,label:"10"},{value:15,label:"15"},{value:20,label:"20"},{value:40,label:"40"}];class na extends r().PureComponent{constructor(e){super(e),aa(this,"handleChange",(e=>{e&&"value"in e&&this.setState({limit:e})})),aa(this,"handleSubmit",(async()=>{this.props.userId&&(this.setState({isSaving:!0}),await this.props.savePreferences(this.props.userId,[{user_id:this.props.userId,category:L.Preferences.CATEGORY_SIDEBAR_SETTINGS,name:L.Preferences.LIMIT_VISIBLE_DMS_GMS,value:this.state.limit.value.toString()}]),this.setState({isSaving:!1}),this.props.updateSection(""))})),aa(this,"renderDescription",(()=>r().createElement("span",null,this.state.limit.label))),this.state={active:!1,limit:{value:20,label:"20"},isSaving:!1},this.minRef=r().createRef()}static getDerivedStateFromProps(e,t){return e.active!==t.active?e.active&&!t.active?{limit:ia.find((t=>t.value===e.dmGmLimit)),active:e.active}:{active:e.active}:e.active?null:{limit:ia.find((t=>t.value===e.dmGmLimit))}}focusEditButton(){var e;null===(e=this.minRef.current)||void 0===e||e.focus()}componentDidUpdate(e){e.active&&!this.props.active&&this.props.areAllSectionsInactive&&this.focusEditButton()}render(){const e=r().createElement(d.FormattedMessage,{id:"user.settings.sidebar.limitVisibleGMsDMsTitle",defaultMessage:"Number of direct messages to show"});return this.props.active?r().createElement(D,{title:e,inputs:r().createElement("fieldset",null,r().createElement("legend",{className:"form-legend hidden-label"},e),r().createElement(Le.ZP,{className:"react-select",classNamePrefix:"react-select",id:"limitVisibleGMsDMs",options:ia,clearable:!1,onChange:this.handleChange,value:this.state.limit,isSearchable:!1,menuPortalTarget:document.body,styles:ra}),r().createElement("div",{className:"mt-5"},r().createElement(d.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}):r().createElement(k,{title:e,describe:this.renderDescription(),section:"limitVisibleGMsDMs",updateSection:this.props.updateSection,ref:this.minRef})}}const ra={menuPortal:e=>sa(sa({},e),{},{zIndex:9999})},oa={savePreferences:g.$A},la=(0,p.connect)((function(e,t){const s=t.adminMode&&t.userPreferences?t.userPreferences:void 0;return{userId:t.adminMode?t.userId:(0,b.rc)(e),dmGmLimit:(0,v.nR)(e,s)}}),oa)(na);function ca(e,t,s){return(t=function(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var s=e[Symbol.toPrimitive];if(void 0!==s){var a=s.call(e,"string");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}class da extends r().PureComponent{constructor(e){super(e),ca(this,"handleChange",(e=>{this.setState({checked:"true"===e.target.value}),(0,T.Y_)(e.target)})),ca(this,"handleSubmit",(async()=>{this.props.userId&&(this.setState({isSaving:!0}),await this.props.savePreferences(this.props.userId,[{user_id:this.props.userId,category:L.Preferences.CATEGORY_SIDEBAR_SETTINGS,name:L.Preferences.SHOW_UNREAD_SECTION,value:this.state.checked.toString()}]),this.setState({isSaving:!1}),this.props.updateSection(""))})),ca(this,"renderDescription",(()=>this.props.showUnreadsCategory?r().createElement(d.FormattedMessage,{id:"user.settings.sidebar.on",defaultMessage:"On"}):r().createElement(d.FormattedMessage,{id:"user.settings.sidebar.off",defaultMessage:"Off"}))),this.state={active:!1,checked:!1,isSaving:!1},this.minRef=r().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(){var e;null===(e=this.minRef.current)||void 0===e||e.focus()}componentDidUpdate(e){e.active&&!this.props.active&&this.props.areAllSectionsInactive&&this.focusEditButton()}render(){const e=r().createElement(d.FormattedMessage,{id:"user.settings.sidebar.showUnreadsCategoryTitle",defaultMessage:"Group unread channels separately"});return this.props.active?r().createElement(D,{title:e,inputs:r().createElement("fieldset",null,r().createElement("legend",{className:"form-legend hidden-label"},e),r().createElement("div",{className:"radio"},r().createElement("label",null,r().createElement("input",{"data-testid":"showUnreadsCategoryOn",type:"radio",name:"showUnreadsCategory",checked:this.state.checked,onChange:()=>this.setState({checked:!0})}),r().createElement(d.FormattedMessage,{id:"user.settings.sidebar.on",defaultMessage:"On"})),r().createElement("br",null)),r().createElement("div",{className:"radio"},r().createElement("label",null,r().createElement("input",{"data-testid":"showUnreadsCategoryOff",type:"radio",name:"showUnreadsCategory",checked:!this.state.checked,onChange:()=>this.setState({checked:!1})}),r().createElement(d.FormattedMessage,{id:"user.settings.sidebar.off",defaultMessage:"Off"})),r().createElement("br",null)),r().createElement("div",{className:"mt-5"},r().createElement(d.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}):r().createElement(k,{title:e,describe:this.renderDescription(),section:"showUnreadsCategory",updateSection:this.props.updateSection,ref:this.minRef})}}const ua={savePreferences:g.$A},ma=(0,p.connect)((function(e,t){const s=t.adminMode&&t.userPreferences?t.userPreferences:void 0;return{userId:t.adminMode?t.userId:(0,b.rc)(e),showUnreadsCategory:(0,v.hC)(e,s)}}),ua)(da);function pa(e){return r().createElement("div",null,r().createElement(Y,{closeModal:e.closeModal,collapseModal:e.collapseModal,text:r().createElement(d.FormattedMessage,{id:"user.settings.sidebar.title",defaultMessage:"Sidebar Settings"})}),r().createElement("div",{id:"sidebarTitle",className:"user-settings"},r().createElement(K,{text:r().createElement(d.FormattedMessage,{id:"user.settings.sidebar.title",defaultMessage:"Sidebar Settings"})}),r().createElement("div",{className:"divider-dark first"}),r().createElement(ma,{active:"showUnreadsCategory"===e.activeSection,updateSection:e.updateSection,areAllSectionsInactive:""===e.activeSection,adminMode:e.adminMode,userId:e.userId,userPreferences:e.userPreferences}),r().createElement("div",{className:"divider-dark"}),r().createElement(la,{active:"limitVisibleGMsDMs"===e.activeSection,updateSection:e.updateSection,areAllSectionsInactive:""===e.activeSection,adminMode:e.adminMode,userId:e.userId,userPreferences:e.userPreferences}),r().createElement("div",{className:"divider-dark"})))}pa.propTypes={updateSection:i().func.isRequired,activeSection:i().string.isRequired,closeModal:i().func.isRequired,collapseModal:i().func.isRequired,adminMode:i().bool,userId:i().string.isRequired};const ha=pa;function ga(e){return"profile"===e.activeTab?r().createElement("div",null,r().createElement(ht,{user:e.user,activeSection:e.activeSection,updateSection:e.updateSection,updateTab:e.updateTab,closeModal:e.closeModal,collapseModal:e.collapseModal})):"security"===e.activeTab?r().createElement("div",null,r().createElement(ea,{user:e.user,activeSection:e.activeSection,updateSection:e.updateSection,closeModal:e.closeModal,collapseModal:e.collapseModal,setRequireConfirm:e.setRequireConfirm})):"notifications"===e.activeTab?r().createElement("div",null,r().createElement($t,{user:e.user,activeSection:e.activeSection,updateSection:e.updateSection,closeModal:e.closeModal,collapseModal:e.collapseModal,adminMode:e.adminMode,userPreferences:e.userPreferences})):"display"===e.activeTab?r().createElement("div",null,r().createElement(et,{user:e.user,activeSection:e.activeSection,updateSection:e.updateSection,closeModal:e.closeModal,collapseModal:e.collapseModal,setEnforceFocus:e.setEnforceFocus,setRequireConfirm:e.setRequireConfirm,adminMode:e.adminMode,userPreferences:e.userPreferences})):"sidebar"===e.activeTab?r().createElement("div",null,r().createElement(ha,{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?r().createElement("div",null,r().createElement(Q,{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]?r().createElement("div",null,r().createElement(ms,{activeSection:e.activeSection,updateSection:e.updateSection,closeModal:e.closeModal,collapseModal:e.collapseModal,settings:e.pluginSettings[e.activeTab]})):null}ga.propTypes={activeTab:i().string,activeSection:i().string.isRequired,updateSection:i().func.isRequired,updateTab:i().func.isRequired,closeModal:i().func.isRequired,collapseModal:i().func.isRequired,setEnforceFocus:i().func.isRequired,setRequireConfirm:i().func.isRequired,adminMode:i().bool};var fa=s(26337);const Ea=e=>{let{loading:t,children:s,className:a,onLoaded:i}=e;const[o,l]=(0,n.useState)(!1);return(0,n.useEffect)((()=>{setTimeout((()=>{l(!0)}),1e3)}),[]),(0,n.useEffect)((()=>{!t&&o&&i()}),[t,o,i]),t||!o?r().createElement("div",{className:"SmartLoader ".concat(a)},s):null};Ea.propTypes={loading:i().bool.isRequired,children:i().node.isRequired,className:i().string,onLoaded:i().func.isRequired};const va=Ea;var ba=s(41894);function Sa(e,t,s){return(t=function(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var s=e[Symbol.toPrimitive];if(void 0!==s){var a=s.call(e,"string");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}class ya extends r().PureComponent{constructor(e){var t;super(e),Sa(this,"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"})}))})),Sa(this,"setLoadingFinished",(()=>{this.setState({loading:!1})})),Sa(this,"handleKeyDown",(e=>{(0,R._)(e)&&e.shiftKey&&(0,R.p)(e,S.default.KeyCodes.A)&&(e.preventDefault(),this.handleHide())})),Sa(this,"handleHide",(()=>{this.requireConfirm?this.showConfirmModal((()=>this.handleHide())):((0,yt.Ht)(),this.setState({show:!1}))})),Sa(this,"handleHidden",(()=>{this.setState({active_tab:this.props.isContentProductSettings?"notifications":"profile",active_section:""}),this.props.onExited()})),Sa(this,"handleCollapse",(()=>{c().findDOMNode(this.modalBodyRef.current).closest(".modal-dialog").classList.remove("display--content"),this.setState({active_tab:"",active_section:""})})),Sa(this,"handleConfirm",(()=>{this.setState({showConfirmModal:!1,enforceFocus:!0}),this.requireConfirm=!1,this.customConfirmAction=null,this.afterConfirm&&(this.afterConfirm(),this.afterConfirm=null)})),Sa(this,"handleCancelConfirmation",(()=>{this.setState({showConfirmModal:!1,enforceFocus:!0}),this.afterConfirm=null})),Sa(this,"showConfirmModal",(e=>{e&&(this.afterConfirm=e),this.customConfirmAction?this.customConfirmAction(this.handleConfirm):this.setState({showConfirmModal:!0,enforceFocus:!1})})),Sa(this,"closeModal",(()=>{this.requireConfirm?this.showConfirmModal(this.closeModal):this.handleHide()})),Sa(this,"collapseModal",(()=>{this.requireConfirm?this.showConfirmModal(this.collapseModal):this.handleCollapse()})),Sa(this,"updateTab",((e,t)=>{!t&&this.requireConfirm?this.showConfirmModal((()=>this.updateTab(e,!0))):this.setState({active_tab:e,active_section:""})})),Sa(this,"updateSection",((e,t)=>{!t&&this.requireConfirm?this.showConfirmModal((()=>this.updateSection(e,!0))):this.setState({active_section:null!=e?e:""})})),Sa(this,"getUserSettingsTabs",(()=>[{name:"notifications",uiName:this.props.intl.formatMessage({id:"user.settings.modal.notifications",defaultMessage:"Notifications"}),icon:"icon icon-bell-outline",iconTitle:this.props.intl.formatMessage({id:"user.settings.notifications.icon",defaultMessage:"Notification Settings Icon"})},{name:"display",uiName:this.props.intl.formatMessage({id:"user.settings.modal.display",defaultMessage:"Display"}),icon:"icon icon-eye-outline",iconTitle:this.props.intl.formatMessage({id:"user.settings.display.icon",defaultMessage:"Display Settings Icon"})},{name:"sidebar",uiName:this.props.intl.formatMessage({id:"user.settings.modal.sidebar",defaultMessage:"Sidebar"}),icon:"icon icon-dock-left",iconTitle:this.props.intl.formatMessage({id:"user.settings.sidebar.icon",defaultMessage:"Sidebar Settings Icon"})},{name:"advanced",uiName:this.props.intl.formatMessage({id:"user.settings.modal.advanced",defaultMessage:"Advanced"}),icon:"icon icon-tune",iconTitle:this.props.intl.formatMessage({id:"user.settings.advance.icon",defaultMessage:"Advanced Settings Icon"})}])),Sa(this,"getProfileSettingsTab",(()=>[{name:"profile",uiName:this.props.intl.formatMessage({id:"user.settings.modal.profile",defaultMessage:"Profile"}),icon:"icon icon-settings-outline",iconTitle:this.props.intl.formatMessage({id:"user.settings.profile.icon",defaultMessage:"Profile Settings Icon"})},{name:"security",uiName:this.props.intl.formatMessage({id:"user.settings.modal.security",defaultMessage:"Security"}),icon:"icon icon-lock-outline",iconTitle:this.props.intl.formatMessage({id:"user.settings.security.icon",defaultMessage:"Security Settings Icon"})}])),Sa(this,"getPluginsSettingsTab",(()=>Object.values(this.props.pluginSettings).map((e=>{const t=e.icon?"icon ".concat(e.icon):"icon icon-power-plug-outline",s=e.icon&&((0,ba.jv)(e.icon)||e.icon.startsWith("/"));return{name:e.id,uiName:e.uiName,icon:s?{url:e.icon}:t,iconTitle:e.uiName}})))),this.state={active_tab:null!==(t=e.activeTab)&&void 0!==t?t: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=r().createRef()}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&&(c().findDOMNode(this.modalBodyRef.current).scrollTop=0)}render(){const{formatMessage:e}=this.props.intl;let t;return t=this.props.adminMode&&this.props.user?e({id:"userSettings.adminMode.modal_header",defaultMessage:"{userDisplayName}'s Settings"},{userDisplayName:(0,T.Gf)(this.props.user)}):this.props.isContentProductSettings?e({id:"global_header.productSettings",defaultMessage:"Settings"}):e({id:"user.settings.modal.title",defaultMessage:"Profile"}),r().createElement(o.Modal,{id:"accountSettingsModal",dialogClassName:"a11y__modal settings-modal",show:this.state.show,onHide:this.handleHide,onExited:this.handleHidden,enforceFocus:this.state.enforceFocus,role:"dialog","aria-label":t},r().createElement(o.Modal.Header,{id:"accountSettingsHeader",closeButton:!0},r().createElement(o.Modal.Title,{componentClass:"h1",id:"accountSettingsModalLabel"},t),this.props.adminMode&&r().createElement("div",{className:"adminModeBadge"},r().createElement(d.FormattedMessage,{id:"userSettings.adminMode.admin_mode_badge",defaultMessage:"Admin Mode"}))),r().createElement(o.Modal.Body,{ref:this.modalBodyRef},this.props.adminMode&&r().createElement(va,{loading:this.props.adminMode&&(!this.props.userPreferences||!this.props.user),className:"loadingIndicator",onLoaded:this.setLoadingFinished},r().createElement(fa.Z,null)),!this.state.loading&&this.props.user&&r().createElement("div",{className:"settings-table"},r().createElement("div",{className:"settings-links"},r().createElement(m.default,{tabs:this.props.isContentProductSettings?this.getUserSettingsTabs():this.getProfileSettingsTab(),pluginTabs:this.props.isContentProductSettings?this.getPluginsSettingsTab():[],activeTab:this.state.active_tab,updateTab:this.updateTab})),r().createElement("div",{className:"settings-content minimize-settings"},r().createElement(ga,{activeTab:this.state.active_tab,activeSection:this.state.active_section,updateSection:this.updateSection,updateTab:this.updateTab,closeModal:this.closeModal,collapseModal:this.collapseModal,setEnforceFocus:e=>this.setState({enforceFocus:e}),setRequireConfirm:(e,t)=>{this.requireConfirm=e,this.customConfirmAction=t},pluginSettings:this.props.pluginSettings,user:this.props.user,adminMode:this.props.adminMode,userPreferences:this.props.userPreferences})))),r().createElement(u.Z,{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}))}}Sa(ya,"propTypes",{userID:i().string,adminMode:i().bool,isContentProductSettings:i().bool.isRequired,activeTab:i().string,onExited:i().func.isRequired,actions:i().shape({sendVerificationEmail:i().func.isRequired,getUserPreferences:i().func.isRequired,getUser:i().func.isRequired}).isRequired});const Ma=(0,d.injectIntl)(ya)}}]);
//# sourceMappingURL=7424.f22c8abb23492e788a7b.js.map