EVOLUTION-MANAGER
Edit File: 6.aeb52cfbaf7888aa398f.js
(window.webpackJsonp=window.webpackJsonp||[]).push([[6],{1114:function(e,t,a){"use strict";a.d(t,"a",(function(){return u}));a(34);var n=a(7),s=a.n(n),i=a(314),r=a(33),o=a.n(r),l=a(70),c=a.n(l),d=a(1118);const m="!";class u extends c.a.Renderer{constructor(e=!1){super(),this.disableLinks=e}link(e,t,a){return this.disableLinks?a:e[0]===m?'<a href="'.concat(e.substring(1,e.length),'" rel="noreferrer" target="_blank">').concat(a,"</a>"):'<a href="'.concat(e,'">').concat(a,"</a>")}paragraph(e){return e}}class p extends s.a.PureComponent{static get propTypes(){return{intl:d.a.isRequired,id:o.a.string.isRequired,defaultMessage:o.a.string.isRequired,values:o.a.object,disableLinks:o.a.bool}}render(){const e=this.props.intl.formatMessage({id:this.props.id,defaultMessage:this.props.defaultMessage},this.props.values),t=c()(e,{breaks:!0,sanitize:!0,renderer:new u(this.props.disableLinks)});return s.a.createElement("span",{dangerouslySetInnerHTML:{__html:t}})}}var h,g,b;b={disableLinks:!1},(g="defaultProps")in(h=p)?Object.defineProperty(h,g,{value:b,enumerable:!0,configurable:!0,writable:!0}):h[g]=b,t.b=Object(i.c)(p)},1117:function(e,t,a){"use strict";var n=a(7),s=a.n(n),i=a(1302),r=a(314);function o(e,t){if(null==e)return{};var a,n,s=function(e,t){if(null==e)return{};var a,n,s={},i=Object.keys(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||(s[a]=e[a]);return s}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(s[a]=e[a])}return s}const l=s.a.forwardRef((e,t)=>{const{overlay:a}=e,n=o(e,["overlay"]),l=e=>{let{intl:t}=e,n=o(e,["intl"]);return s.a.createElement(r.a.Provider,{value:t},s.a.cloneElement(a,n))};return s.a.createElement(r.a.Consumer,null,e=>s.a.createElement(i.a,Object.assign({},n,{ref:t,overlay:s.a.createElement(l,Object.assign({},a.props,{intl:e}))})))});l.defaultProps={defaultOverlayShown:!1,trigger:["hover","focus"]},l.displayName="OverlayTrigger",t.a=l},1118:function(e,t,a){"use strict";a.d(t,"a",(function(){return c}));var n=a(33),s=a.n(n);function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const o={locale:s.a.string,timeZone:s.a.string,formats:s.a.object,messages:s.a.object,textComponent:s.a.any,defaultLocale:s.a.string,defaultFormats:s.a.object,onError:s.a.func},l={formatDate:s.a.func.isRequired,formatTime:s.a.func.isRequired,formatRelativeTime:s.a.func.isRequired,formatNumber:s.a.func.isRequired,formatPlural:s.a.func.isRequired,formatMessage:s.a.func.isRequired,formatHTMLMessage:s.a.func.isRequired},c=s.a.shape(function(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?i(a,!0).forEach((function(t){r(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):i(a).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}({},o,{},l,{formatters:s.a.object}))},1119:function(e,t,a){"use strict";a.d(t,"a",(function(){return m}));var n=a(33),s=a.n(n),i=a(7),r=a.n(i),o=a(1106);function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function c(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?l(a,!0).forEach((function(t){d(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):l(a).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function d(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class m extends r.a.Component{constructor(e){super(e),this.state={}}render(){let e=r.a.createElement(o.a,{id:"loading_screen.loading",defaultMessage:"Loading"});return this.props.message&&(e=this.props.message),r.a.createElement("div",{className:"loading-screen",style:c({position:this.props.position},this.props.style)},r.a.createElement("div",{className:"loading__content"},r.a.createElement("h3",null,e),r.a.createElement("div",{className:"round round-1"}),r.a.createElement("div",{className:"round round-2"}),r.a.createElement("div",{className:"round round-3"})))}}d(m,"propTypes",{position:s.a.oneOf(["absolute","fixed","relative","static","inherit"]),style:s.a.object,message:s.a.node}),d(m,"defaultProps",{position:"relative",style:{}})},1120:function(e,t,a){"use strict";a(52),a(34);var n=a(81),s=a(36),i=a(20),r=a(15),o=a(16),l=a(10),c=a(13),d=a(5),m=a(95),u=a(313),p=a(118),h=a(176),g=a(174),b=a(532),f=a(1209),_=a(1210),E=a(1290),v=a(175),y=a(39),C=a(1213),w=a(11),O=a(116),T=a(1348),S=a(0),P=a(1214),M=a(14),I=a(33),N=a.n(I),j=a(7),A=a.n(j),R=a(1352),k=a(1133),L=a(1126);a(1536);function D(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class x extends A.a.PureComponent{constructor(e){super(e),D(this,"onHide",()=>{this.setState({show:!1})}),this.state={show:!0}}render(){let e;return this.props.elements&&(e=this.props.elements.map(e=>A.a.createElement(L.a.ItemSubMenu,{key:e.id,id:e.id,text:e.text,subMenu:e.subMenu,action:e.action,filter:e.filter,xOffset:0,root:!1}))),A.a.createElement(R.a,{dialogClassName:"SubMenuModal a11y__modal mobile-sub-menu",show:this.state.show,onHide:this.onHide,onExited:this.props.onHide,enforceFocus:!1,id:"submenuModal",role:"dialog"},A.a.createElement(R.a.Body,{onClick:this.onHide},A.a.createElement(k.a,null,A.a.createElement(L.a,{openLeft:!0,ariaLabel:M.gb("post_info.submenu.mobile","mobile submenu").toLowerCase()},e),A.a.createElement("div",null))))}}D(x,"propTypes",{elements:N.a.arrayOf(N.a.any),onHide:N.a.func.isRequired});var U=a(1125);a.d(t,"b",(function(){return F})),a.d(t,"p",(function(){return B})),a.d(t,"c",(function(){return G})),a.d(t,"n",(function(){return V})),a.d(t,"i",(function(){return W})),a.d(t,"j",(function(){return z})),a.d(t,"k",(function(){return Y})),a.d(t,"l",(function(){return K})),a.d(t,"m",(function(){return Q})),a.d(t,"h",(function(){return J})),a.d(t,"g",(function(){return Z})),a.d(t,"d",(function(){return $})),a.d(t,"e",(function(){return ee})),a.d(t,"o",(function(){return te})),a.d(t,"a",(function(){return ae})),a.d(t,"f",(function(){return se}));const q=w.a.dispatch,H=w.a.getState;function F(e){function t(e){const t=H(),a=Object(l.getCurrentUserId)(t),i=e.team_id||Object(o.getCurrentTeamId)(t),r=Object(y.c)(t),m=Object(y.k)(t)===S.C.PIN,u=Object(c.getMyChannelMember)(t,e.id);if(q(Object(s.getChannelStats)(e.id)),0===e.delete_at){const t=O.a.getPreviousChannelName(a,i);t!==e.name&&(O.a.setPenultimateChannelName(a,i,t),O.a.setPreviousChannelName(a,i,e.name))}r&&m&&q(Object(g.t)(S.C.PIN,e.id)),Object(h.j)(),q(Object(n.batchActions)([{type:d.ChannelTypes.SELECT_CHANNEL,data:e.id},{type:S.f.SELECT_CHANNEL_WITH_MEMBER,data:e.id,channel:e,member:u||{}}]))}e.fake?async function(e,t,a){const n=H(),i=Object(l.getCurrentUserId)(n),r=M.I(e),{data:o}=await Object(s.createDirectChannel)(i,r)(q,H);o?t(o):a()}(e,e=>{t(e)},()=>{m.a.push("/"+this.state.currentTeam.name)}):t(e)}function B(e,t=Date.now()){return{type:S.f.UPDATE_CHANNEL_LAST_VIEWED_AT,channel_id:e,last_viewed_at:t}}function G(){q(Object(g.b)())}function V(){E.a.handleViewAction({type:S.f.TOGGLE_SHORTCUTS_MODAL,value:!0})}function W(e){E.a.handleViewAction({type:S.f.TOGGLE_CHANNEL_NAME_UPDATE_MODAL,value:!0,channel:e})}function z(e){E.a.handleViewAction({type:S.f.TOGGLE_GET_POST_LINK_MODAL,value:!0,post:e})}function Y(e){E.a.handleViewAction({type:S.f.TOGGLE_GET_PUBLIC_LINK_MODAL,value:!0,fileId:e})}function K(e){E.a.handleViewAction({type:S.f.TOGGLE_LEAVE_PRIVATE_CHANNEL_MODAL,value:e})}function Q(e){const t={ModalId:S.u.MOBILE_SUBMENU,dialogType:x,dialogProps:{elements:e}};q(Object(U.b)(t))}function J(e,t,a){const n=M.G(),s={id:M.o(),user_id:"0",channel_id:t||Object(c.getCurrentChannelId)(H()),message:e,type:S.A.EPHEMERAL,create_at:n,update_at:n,root_id:a,parent_id:a,props:{}};q(Object(u.e)(s))}function Z(e,t,a,n,s="",i){const r={id:M.o(),user_id:e.id,channel_id:n||Object(c.getCurrentChannelId)(H()),message:"",type:S.A.EPHEMERAL_ADD_TO_CHANNEL,create_at:i,update_at:i,root_id:s,parent_id:s,props:{username:e.username,addedUsername:t,addedUserId:a}};q(Object(u.e)(r))}let X=0;function $(e,t){return q(async(a,n)=>{const s=n(),i=Object(r.getConfig)(s),o=Date.now(),l=Object(c.getCurrentChannelStats)(s),d=l?l.member_count:0;return o-X>i.TimeBetweenUserTypingUpdatesMilliseconds&&d<i.MaxNotificationsPerChannel&&"true"===i.EnableUserTypingMessages&&(T.a.userTyping(e,t),X=o),{data:!0}})}function ee(e="/",t=!0,a=!0){a&&O.a.setWasLoggedIn(!1),q(Object(i.logout)()).then(()=>{t&&C.a.signalLogout(),C.a.clear(),Object(p.e)(),_.a(),Object(b.a)(),m.a.push(e)}).catch(()=>{m.a.push(e)})}function te(){return e=>{e(Object(g.b)()),e(Object(f.a)()),e(Object(g.a)())}}function ae(e){q({type:S.f.BROWSER_CHANGE_FOCUS,focus:e})}async function ne(e,t){let a=H(),n=null;const i=Object(o.getMyTeamMember)(a,t.id);if(!i||0===Object.keys(i).length)return null;let r=Object(c.getChannelsNameMapInTeam)(a,t.id);r&&0!==Object.keys(r).length||(await q(Object(s.fetchMyChannelsAndMembers)(t.id)),a=H(),r=Object(c.getChannelsNameMapInTeam)(a,t.id));let l=O.a.getPreviousChannelName(e.id,t.id);n=r[l];let d=Object(c.getMyChannelMember)(a,n&&n.id);return n&&d||(await q(Object(s.getChannelByNameAndTeamName)(t.name,l)),a=H(),n=(r=Object(c.getChannelsNameMapInTeam)(a,t.id))[l],d=Object(c.getMyChannelMember)(a,n&&n.id)),n&&d||(n=r[l=Object(c.getRedirectChannelNameForTeam)(a,t.id)],d=Object(c.getMyChannelMember)(a,n&&n.id)),n&&d?n:null}async function se(){let e=H(),t=Object(l.getCurrentUser)(e);if((M.R(Object(o.getTeamMemberships)(e))||!t)&&(await q(Object(i.loadMe)()),e=H(),t=Object(l.getCurrentUser)(e)),!t)return;const a=Object(v.a)(e),n=O.a.getPreviousTeamId(t.id);let r=Object(o.getMyTeams)(e);if(0===r.length)return void m.a.push("/select_team");const c=Object(o.getTeam)(e,n);if(c){const e=await ne(t,c);if(e)return q(Object(s.selectChannel)(e.id)),void m.a.push("/".concat(c.name,"/channels/").concat(e.name))}r=Object(P.a)(r,a);for(const e of r){const a=await ne(t,e);if(a)return q(Object(s.selectChannel)(a.id)),void m.a.push("/".concat(e.name,"/channels/").concat(a.name))}m.a.push("/select_team")}},1121:function(e,t,a){"use strict";a.d(t,"a",(function(){return d}));var n=a(33),s=a.n(n),i=a(7),r=a.n(i),o=a(1352),l=a(1106);function c(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class d extends r.a.Component{constructor(e){super(e),c(this,"handleKeypress",e=>{if("Enter"===e.key&&this.props.show){const e=document.getElementById("cancelModalButton");e&&e===document.activeElement?this.handleCancel():this.handleConfirm()}}),c(this,"handleCheckboxChange",e=>{this.setState({checked:e.target.checked})}),c(this,"handleConfirm",()=>{this.props.onConfirm(this.state.checked)}),c(this,"handleCancel",()=>{this.props.onCancel(this.state.checked)}),this.state={checked:!1}}componentDidMount(){this.props.show&&document.addEventListener("keydown",this.handleKeypress)}componentWillUnmount(){document.removeEventListener("keydown",this.handleKeypress)}shouldComponentUpdate(e){return e.show!==this.props.show}componentDidUpdate(e){e.show&&!this.props.show?document.removeEventListener("keydown",this.handleKeypress):!e.show&&this.props.show&&document.addEventListener("keydown",this.handleKeypress)}render(){let e,t,a;return this.props.showCheckbox&&(e=r.a.createElement("div",{className:"checkbox text-right margin-bottom--none"},r.a.createElement("label",null,r.a.createElement("input",{type:"checkbox",onChange:this.handleCheckboxChange,value:this.state.checked}),this.props.checkboxText))),t=this.props.cancelButtonText?this.props.cancelButtonText:r.a.createElement(l.a,{id:"confirm_modal.cancel",defaultMessage:"Cancel"}),this.props.hideCancel||(a=r.a.createElement("button",{type:"button",className:"btn btn-link btn-cancel",onClick:this.handleCancel,id:"cancelModalButton"},t)),r.a.createElement(o.a,{className:"modal-confirm "+this.props.modalClass,dialogClassName:"a11y__modal",show:this.props.show,onHide:this.props.onCancel,onExited:this.props.onExited,id:"confirmModal",role:"dialog","aria-labelledby":"confirmModalLabel"},r.a.createElement(o.a.Header,{closeButton:!1},r.a.createElement(o.a.Title,{componentClass:"h1",id:"confirmModalLabel"},this.props.title)),r.a.createElement(o.a.Body,null,this.props.message,e),r.a.createElement(o.a.Footer,null,a,r.a.createElement("button",{autoFocus:!0,type:"button",className:this.props.confirmButtonClass,onClick:this.handleConfirm,id:"confirmModalButton"},this.props.confirmButtonText)))}}c(d,"propTypes",{show:s.a.bool.isRequired,title:s.a.node,message:s.a.node,confirmButtonClass:s.a.string,modalClass:s.a.string,confirmButtonText:s.a.node,cancelButtonText:s.a.node,showCheckbox:s.a.bool,checkboxText:s.a.node,onConfirm:s.a.func.isRequired,onCancel:s.a.func.isRequired,onExited:s.a.func,hideCancel:s.a.bool}),c(d,"defaultProps",{title:"",message:"",confirmButtonClass:"btn btn-primary",confirmButtonText:"",modalClass:""})},1123:function(e,t,a){"use strict";a.d(t,"B",(function(){return f})),a.d(t,"b",(function(){return _})),a.d(t,"o",(function(){return E})),a.d(t,"w",(function(){return v})),a.d(t,"u",(function(){return y})),a.d(t,"y",(function(){return C})),a.d(t,"c",(function(){return w})),a.d(t,"a",(function(){return O})),a.d(t,"p",(function(){return T})),a.d(t,"d",(function(){return S})),a.d(t,"k",(function(){return P})),a.d(t,"l",(function(){return M})),a.d(t,"x",(function(){return I})),a.d(t,"L",(function(){return N})),a.d(t,"h",(function(){return j})),a.d(t,"O",(function(){return A})),a.d(t,"N",(function(){return R})),a.d(t,"M",(function(){return k})),a.d(t,"E",(function(){return L})),a.d(t,"D",(function(){return D})),a.d(t,"C",(function(){return x})),a.d(t,"s",(function(){return U})),a.d(t,"m",(function(){return q})),a.d(t,"n",(function(){return H})),a.d(t,"q",(function(){return F})),a.d(t,"t",(function(){return B})),a.d(t,"j",(function(){return G})),a.d(t,"H",(function(){return V})),a.d(t,"i",(function(){return W})),a.d(t,"F",(function(){return z})),a.d(t,"g",(function(){return Y})),a.d(t,"e",(function(){return K})),a.d(t,"f",(function(){return Q})),a.d(t,"v",(function(){return J})),a.d(t,"J",(function(){return Z})),a.d(t,"A",(function(){return X})),a.d(t,"K",(function(){return $})),a.d(t,"I",(function(){return ee})),a.d(t,"z",(function(){return te})),a.d(t,"r",(function(){return ae})),a.d(t,"G",(function(){return ne}));a(52);var n=a(1152),s=a(20),i=a(173),r=a(18),o=a(62),l=a(1120),c=a(1196),d=a(11),m=a(0);function u(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function p(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?u(a,!0).forEach((function(t){h(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):u(a).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function h(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const g=d.a.dispatch,b=d.a.getState;async function f(e,t){const{data:a,error:s}=await g(n.reloadConfig());a&&e?(g(n.getConfig()),g(n.getEnvironmentConfig()),e(a)):s&&t&&t(p({id:s.server_error_id},s))}async function _(e,t,a){const{data:n,error:i}=await s.updateUserMfa(e,!1)(g,b);n&&t?t(n):i&&a&&a(p({id:i.server_error_id},i))}async function E(e,t){const{data:a,error:s}=await n.getClusterStatus()(g,b);a&&e?e(a):s&&t&&t(p({id:s.server_error_id},s))}async function v(e,t){const{data:a,error:s}=await n.testLdap()(g,b);a&&e?e(a):s&&t&&t(p({id:s.server_error_id},s))}async function y(e,t){const{data:a,error:s}=await n.invalidateCaches()(g,b);a&&e?e(a):s&&t&&t(p({id:s.server_error_id},s))}async function C(e,t){const{data:a,error:s}=await n.recycleDatabase()(g,b);a&&e?e(a):s&&t&&t(p({id:s.server_error_id},s))}async function w(e,t,a,n,i){const{data:r,error:o}=await s.updateUserPassword(e,t,a)(g,b);r&&n?n(r):o&&i&&i(p({id:o.server_error_id},o))}async function O(e,t,a){const{data:n,error:i}=await s.patchUser(e)(g,b);n&&t?t(n):i&&a&&a(p({id:i.server_error_id},i))}function T(e){return Object(o.bindClientFunc)({clientFunc:r.Client4.getOAuthAppInfo,params:[e]})}function S({responseType:e,clientId:t,redirectUri:a,state:n,scope:s}){return Object(o.bindClientFunc)({clientFunc:r.Client4.authorizeOAuthApp,params:[e,t,a,n,s]})}async function P(e,t,a,n,i,r,o){const{data:l,error:c}=await s.switchEmailToLdap(e,t,n,i,a)(g,b);l&&r?r(l):c&&o&&o(p({id:c.server_error_id},c))}async function M(e,t,a,n,i,r){const{data:o,error:l}=await s.switchEmailToOAuth(n,e,t,a)(g,b);o&&i?i(o):l&&r&&r(p({id:l.server_error_id},l))}async function I(e,t,a,n,i){const{data:r,error:o}=await s.switchOAuthToEmail(e,t,a)(g,b);r?(r.follow_link&&Object(l.e)(r.follow_link),n&&n(r)):o&&i&&i(p({id:o.server_error_id},o))}async function N(e,t,a){const{data:s,error:i}=await n.uploadBrandImage(e)(g,b);s&&t?t(s):i&&a&&a(p({id:i.server_error_id},i))}async function j(e,t){const{data:a,error:s}=await n.deleteBrandImage()(g,b);a&&e?e(a):s&&t&&t(p({id:s.server_error_id},s))}async function A(e,t,a){const{data:s,error:i}=await n.uploadPublicSamlCertificate(e)(g,b);s&&t?t("saml-public.crt"):i&&a&&a(p({id:i.server_error_id},i))}async function R(e,t,a){const{data:s,error:i}=await n.uploadPrivateSamlCertificate(e)(g,b);s&&t?t("saml-private.key"):i&&a&&a(p({id:i.server_error_id},i))}async function k(e,t,a){const{data:s,error:i}=await n.uploadIdpSamlCertificate(e)(g,b);s&&t?t("saml-idp.crt"):i&&a&&a(p({id:i.server_error_id},i))}async function L(e,t){const{data:a,error:s}=await n.removePublicSamlCertificate()(g,b);a&&e?e(a):s&&t&&t(p({id:s.server_error_id},s))}async function D(e,t){const{data:a,error:s}=await n.removePrivateSamlCertificate()(g,b);a&&e?e(a):s&&t&&t(p({id:s.server_error_id},s))}async function x(e,t){const{data:a,error:s}=await n.removeIdpSamlCertificate()(g,b);a&&e?e(a):s&&t&&t(p({id:s.server_error_id},s))}async function U(e){await n.getStandardAnalytics(e)(g,b)}async function q(e){await n.getAdvancedAnalytics(e)(g,b)}async function H(e){await n.getBotPostsPerDayAnalytics(e)(g,b)}async function F(e){await n.getPostsPerDayAnalytics(e)(g,b)}async function B(e){await n.getUsersPerDayAnalytics(e)(g,b)}async function G(e,t,a){const{data:s,error:i}=await n.testElasticsearch(e)(g,b);s&&t?t(s):i&&a&&a(p({id:i.server_error_id},i))}async function V(e,t){const{data:a,error:s}=await n.testS3Connection()(g,b);a&&e?e(a):s&&t&&t(p({id:s.server_error_id},s))}async function W(e,t){const{data:a,error:s}=await n.purgeElasticsearchIndexes()(g,b);a&&e?e(a):s&&t&&t(p({id:s.server_error_id},s))}function z(e){return{type:m.f.SET_NAVIGATION_BLOCKED,blocked:e}}function Y(e){return{type:m.f.DEFER_NAVIGATION,onNavigationConfirmed:e}}function K(){return{type:m.f.CANCEL_NAVIGATION}}function Q(){return(e,t)=>{const a=Object(c.b)(t());a&&a(),e({type:m.f.CONFIRM_NAVIGATION})}}async function J(e,t){const{data:a,error:n}=await g(i.invalidateAllEmailInvites());a&&e?e(a):n&&t&&t(p({id:n.server_error_id},n))}async function Z(e,t){const{data:a,error:s}=await g(n.testEmail());a&&e?e(a):s&&t&&t(p({id:s.server_error_id},s))}function X(e,t){return a=>{a({type:m.f.RECEIVED_ADMIN_CONSOLE_REDUCER,data:{pluginId:e,reducer:t}})}}function $(e){return t=>{t({type:m.f.REMOVED_ADMIN_CONSOLE_REDUCER,data:{pluginId:e}})}}async function ee(e,t,a){const{data:s,error:i}=await g(n.testSiteURL(a));s&&e?e(s):i&&t&&t(p({id:i.server_error_id},i))}function te(e,t,a,{showTitle:n}){return s=>{s({type:m.f.RECEIVED_ADMIN_CONSOLE_CUSTOM_COMPONENT,data:{pluginId:e,key:t,component:a,options:{showTitle:n}}})}}async function ae(e,t,a){const{data:s,error:i}=await g(n.getSamlMetadataFromIdp(a));s&&e?e(s):i&&t&&t(p({id:i.server_error_id},i))}async function ne(e,t,a){const{data:s,error:i}=await n.setSamlIdpCertificateFromMetadata(a)(g,b);s&&e?e("saml-idp.crt"):i&&t&&t(p({id:i.server_error_id},i))}},1125:function(e,t,a){"use strict";a.d(t,"b",(function(){return s})),a.d(t,"a",(function(){return i}));var n=a(0);function s(e){return t=>{t({type:n.f.MODAL_OPEN,modalId:e.modalId,dialogProps:e.dialogProps,dialogType:e.dialogType})}}function i(e){return t=>{t({type:n.f.MODAL_CLOSE,modalId:e})}}},1126:function(e,t,a){"use strict";a(1291),a(34);var n=a(33),s=a.n(n),i=a(7),r=a.n(i),o=a(14),l=a(1120);a(1370);function c(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class d extends r.a.PureComponent{constructor(e){super(e),c(this,"node",void 0),c(this,"show",()=>{this.setState({show:!0})}),c(this,"hide",()=>{this.setState({show:!1})}),c(this,"onClick",e=>{const{id:t,postId:a,subMenu:n,action:s,root:i}=this.props,r=o.Y(),c=Object.entries(e.nativeEvent).find(([e,t])=>"path"===e);let d;c&&(d=c[1]),r?n&&n.length?(i||e.stopPropagation(),Object(l.m)(n)):s&&s(a):d&&d.slice(0,2).find(e=>e.id===t)&&s?s(a):d||e.nativeEvent.composedPath||!s?!d&&e.nativeEvent.composedPath().slice(0,2).find(e=>e.id===t)&&s&&s(a):s(a)}),this.node=r.a.createRef(),this.state={show:!1}}render(){const{id:e,postId:t,text:a,subMenu:n,root:s,icon:i,filter:l,xOffset:c,ariaLabel:m}=this.props,u=o.Y();if(l&&!l(e))return"";let p=a;i&&(p=r.a.createElement(r.a.Fragment,null,r.a.createElement("span",{className:"icon"},i),a));const h=n&&n.length,g=this.node&&this.node.current?this.node.current.getBoundingClientRect().width:0,b=r.a.isValidElement(a)?20:0,f=s?2:b,_={visibility:this.state.show&&h&&!u?"visible":"hidden",right:parseInt(String(c),10)-f+"px"};let E="";return u||(E=r.a.createElement("ul",{className:"a11y__popup Menu dropdown-menu SubMenu",style:_},h?n.map(e=>r.a.createElement(d,{key:e.id,id:e.id,postId:t,text:e.text,subMenu:e.subMenu,action:e.action,filter:e.filter,xOffset:g,ariaLabel:m,root:!1})):"")),r.a.createElement("li",{className:"SubMenuItem MenuItem",role:"menuitem",id:e+"_menuitem",ref:this.node},r.a.createElement("div",{id:e,"aria-label":m,onMouseEnter:this.show,onMouseLeave:this.hide,onClick:this.onClick},r.a.createElement("span",{id:"channelHeaderDropdownIconLeft_"+e,className:"fa fa-angle-left SubMenu__icon-left"+(h&&!u?"":"-empty"+(u?" mobile":"")),"aria-label":o.gb("post_info.submenu.icon","submenu icon").toLowerCase()}),p,r.a.createElement("span",{id:"channelHeaderDropdownIconRight_"+e,className:"fa fa-angle-right SubMenu__icon-right"+(h&&u?"":"-empty"),"aria-label":o.gb("post_info.submenu.icon","submenu icon").toLowerCase()}),E))}}c(d,"propTypes",{id:s.a.string,postId:s.a.string,text:s.a.node.isRequired,subMenu:s.a.arrayOf(s.a.shape({id:s.a.string,postId:s.a.string,text:s.a.node.isRequired,subMenu:s.a.arrayOf(s.a.shape({id:s.a.string,postId:s.a.string,text:s.a.node.isRequired,subMenu:s.a.arrayOf(s.a.shape({id:s.a.string,postId:s.a.string,text:s.a.node.isRequired,subMenu:s.a.arrayOf(s.a.object),icon:s.a.node,action:s.a.func,filter:s.a.func,xOffset:s.a.number,ariaLabel:s.a.string,root:s.a.bool,show:s.a.bool})),icon:s.a.node,action:s.a.func,filter:s.a.func,xOffset:s.a.number,ariaLabel:s.a.string,root:s.a.bool,show:s.a.bool})),icon:s.a.node,action:s.a.func,filter:s.a.func,xOffset:s.a.number,ariaLabel:s.a.string,root:s.a.bool,show:s.a.bool})),icon:s.a.node,action:s.a.func,filter:s.a.func,xOffset:s.a.number,ariaLabel:s.a.string,root:s.a.bool,show:s.a.bool}),c(d,"defaultProps",{show:!0});a(1534);function m(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class u extends r.a.PureComponent{constructor(...e){super(...e),m(this,"handleDividerClick",e=>{e.preventDefault(),e.stopPropagation()})}render(){const{children:e}=this.props,t=this.props.divider||r.a.createElement("li",{className:"MenuGroup menu-divider",onClick:this.handleDividerClick});return r.a.createElement(r.a.Fragment,null,t,e)}}m(u,"propTypes",{divider:s.a.node,children:s.a.node});var p=a(1215);const h=({onClick:e,ariaLabel:t,text:a,extraText:n,id:s,buttonClass:i,isDangerous:o,testid:l})=>r.a.createElement("button",{"data-testid":l,id:s,"aria-label":t,className:"style--none"+(n?" MenuItem__with-help":"")+(i?" "+i:"")+(o?" MenuItem__dangerous":""),onClick:e},a&&r.a.createElement("span",{className:"MenuItem__primary-text"},a),n&&r.a.createElement("span",{className:"MenuItem__help-text"},n));h.propTypes={onClick:s.a.func.isRequired,ariaLabel:s.a.string,text:s.a.node.isRequired,extraText:s.a.string,id:s.a.string,buttonClass:s.a.string,isDangerous:s.a.bool,testid:s.a.string};const g=Object(p.a)(h);g.displayName="MenuItemAction";var b=g;const f=({url:e,text:t})=>r.a.createElement("a",{target:"_blank",rel:"noopener noreferrer",href:e},t);f.propTypes={url:s.a.string.isRequired,text:s.a.node.isRequired};const _=Object(p.a)(f);_.displayName="MenuItemExternalLink";var E=_,v=a(1104);const y=({to:e,text:t})=>r.a.createElement(v.a,{to:e},r.a.createElement("span",{className:"MenuItem__primary-text"},t));y.propTypes={to:s.a.string.isRequired,text:s.a.node.isRequired};const C=Object(p.a)(y);C.displayName="MenuItemLink";var w=C,O=a(1269);const T=({modalId:e,dialogType:t,dialogProps:a,text:n,extraText:s})=>r.a.createElement(O.a,{accessibilityLabel:n,modalId:e,dialogType:t,dialogProps:a,className:s&&"MenuItem__with-help"},n&&r.a.createElement("span",{className:"MenuItem__primary-text"},n),s&&r.a.createElement("span",{className:"MenuItem__help-text"},s));T.propTypes={modalId:s.a.string.isRequired,dialogType:s.a.elementType.isRequired,dialogProps:s.a.object,extraText:s.a.string,text:s.a.string.isRequired};const S=Object(p.a)(T);S.displayName="MenuItemToggleModalRedux";var P=S;a(1535);function M(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}a.d(t,"a",(function(){return I}));class I extends r.a.PureComponent{constructor(e){super(e),M(this,"node",void 0),M(this,"observer",void 0),M(this,"hideUnneededDividers",()=>{if(null===this.node.current)return;this.observer.disconnect();const e=Object.values(this.node.current.children).slice(0,this.node.current.children.length);let t=!1,a=!0;for(const n of e)n.classList.contains("menu-divider")||n.classList.contains("mobile-menu-divider")?(n.style.display="block",(a||t)&&(n.style.display="none"),t=!0):(a=!1,t=!1);for(const t of e.reverse()){if(!t.classList.contains("menu-divider")&&!t.classList.contains("mobile-menu-divider"))break;t.style.display="none"}this.observer.observe(this.node.current,{attributes:!0,childList:!0,subtree:!0})}),M(this,"handleMenuClick",e=>{e.target===this.node.current&&(e.preventDefault(),e.stopPropagation())}),this.node=r.a.createRef(),this.observer=new MutationObserver(this.hideUnneededDividers)}componentDidMount(){this.hideUnneededDividers()}componentDidUpdate(){this.hideUnneededDividers()}componentWillUnmount(){this.observer.disconnect()}rect(){return this.node&&this.node.current?this.node.current.getBoundingClientRect():null}render(){const{children:e,openUp:t,openLeft:a,id:n,ariaLabel:s,customStyles:i}=this.props;let l={};return i?l=i:(a&&!Object(o.Y)()&&(l.left="inherit",l.right=0),t&&!Object(o.Y)()&&(l.bottom="100%",l.top="auto")),r.a.createElement("div",{"aria-label":s,className:"a11y__popup Menu",id:n,role:"menu"},r.a.createElement("ul",{ref:this.node,style:l,className:"Menu__content dropdown-menu",onClick:this.handleMenuClick},e))}}M(I,"propTypes",{children:s.a.node,openLeft:s.a.bool,openUp:s.a.bool,id:s.a.string,ariaLabel:s.a.string.isRequired,customStyles:s.a.object}),M(I,"Group",u),M(I,"ItemAction",b),M(I,"ItemExternalLink",E),M(I,"ItemLink",w),M(I,"ItemToggleModalRedux",P),M(I,"ItemSubMenu",d)},1127:function(e,t,a){"use strict";a(34);var n=a(7),s=a.n(n),i=a(1106);function r(e,t){if(null==e)return{};var a,n,s=function(e,t){if(null==e)return{};var a,n,s={},i=Object.keys(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||(s[a]=e[a]);return s}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(s[a]=e[a])}return s}const o=s.a.forwardRef((e,t)=>{const{placeholder:a}=e,n=r(e,["placeholder"]);return s.a.createElement(i.a,{id:a.id,defaultMessage:a.defaultMessage,values:a.values},e=>s.a.createElement("input",Object.assign({},n,{ref:t,placeholder:e})))});o.displayName="LocalizedInput",t.a=o},1129:function(e,t,a){"use strict";a.d(t,"a",(function(){return l}));a(34);var n=a(33),s=a.n(n),i=a(7),r=a.n(i);function o(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class l extends r.a.Component{render(){const{error:e=null,errors:t=[],iconClassName:a,margin:n,textClassName:s,type:i}=this.props;if(!e&&0===t.length)return null;let o=e;if(!o)for(const e of t)e&&(o=e);return o?"modal"===i?r.a.createElement("div",{className:"form-group"},r.a.createElement("label",{className:"col-sm-12 has-error"},o)):"backstage"===i?r.a.createElement("div",{className:"pull-left has-error"},r.a.createElement("label",{className:"control-label"},o)):n?r.a.createElement("div",{className:"form-group has-error"},r.a.createElement("label",{className:"control-label"},o)):r.a.createElement("div",{className:"col-sm-12 ".concat(s||"has-error")},r.a.createElement("label",{className:"control-label"},r.a.createElement("i",{className:"fa ".concat(a||"fa-exclamation-circle")})," ",o)):null}}o(l,"propTypes",{type:s.a.node,error:s.a.node,textClassName:s.a.string,iconClassName:s.a.string,margin:s.a.bool,errors:s.a.arrayOf(s.a.node)}),o(l,"defaultProps",{error:null,errors:[]})},1133:function(e,t,a){"use strict";var n=a(33),s=a.n(n),i=a(7),r=a.n(i),o=a(0),l=(a(34),a(1936)),c=a(1966),d=a(14);function m(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const u=80;class p extends r.a.PureComponent{constructor(...e){super(...e),m(this,"onEntering",(e,t)=>{const a=Object(l.c)(e);Object(l.b)(Object(l.a)(({update:e,complete:t})=>{e({display:"block"}),t()}),Object(l.d)({from:{opacity:0},to:{opacity:1},duration:u})).start(a.set)}),m(this,"onExiting",e=>{const t=Object(l.c)(e);Object(l.b)(Object(l.d)({from:{opacity:1},to:{opacity:0},duration:u}),Object(l.a)(({update:e,complete:t})=>{e({display:"none"}),t()})).start(t.set)})}render(){return r.a.createElement(c.a,Object.assign({in:this.props.show,classNames:"MenuWrapperAnimation",enter:!0,exit:!0,mountOnEnter:!0,unmountOnExit:!0},Object(d.Y)()?{}:{onEntering:this.onEntering,onExiting:this.onExiting},{timeout:{enter:u,exit:u}}),this.props.children)}}m(p,"propTypes",{children:s.a.node,show:s.a.bool.isRequired});a(1532);function h(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}a.d(t,"a",(function(){return g}));class g extends r.a.PureComponent{constructor(e){if(super(e),h(this,"node",void 0),h(this,"keyboardClose",e=>{e.key===o.Q.KeyCodes.ESCAPE[0]&&this.close(),e.key===o.Q.KeyCodes.TAB[0]&&this.closeOnBlur(e)}),h(this,"closeOnBlur",e=>{this.node&&this.node.current&&e.target&&this.node.current.contains(e.target)||this.close()}),h(this,"close",()=>{this.state.open&&(this.setState({open:!1}),this.props.onToggle&&this.props.onToggle(!1))}),h(this,"toggle",()=>{const e=!this.state.open;this.setState({open:e}),this.props.onToggle&&this.props.onToggle(e)}),!Array.isArray(e.children)||2!==e.children.length)throw new Error("MenuWrapper needs exactly 2 children");this.state={open:!1},this.node=r.a.createRef()}componentDidMount(){document.addEventListener("click",this.closeOnBlur,!0),document.addEventListener("keyup",this.keyboardClose,!0)}componentWillUnmount(){document.removeEventListener("click",this.closeOnBlur,!0),document.removeEventListener("keyup",this.keyboardClose,!0)}render(){const{children:e}=this.props,t=this.props.animationComponent;return r.a.createElement("div",{id:this.props.id,className:"MenuWrapper "+this.props.className,onClick:this.toggle,ref:this.node},e?Object.values(e)[0]:{},r.a.createElement(t,{show:this.state.open},e?Object.values(e)[1]:{}))}}h(g,"propTypes",{children:s.a.node,className:s.a.string,onToggle:s.a.func,animationComponent:s.a.any,id:s.a.string}),h(g,"defaultProps",{className:"",animationComponent:p})},1134:function(e,t,a){"use strict";var n=a(33),s=a.n(n),i=a(7),r=a.n(i),o=a(1106),l=a(1245);const c=e=>r.a.createElement(l.a,{className:"BotBadge "+e.className,show:e.show},r.a.createElement(o.a,{id:"post_info.bot",defaultMessage:"BOT"}));c.propTypes={className:s.a.string,show:s.a.bool},c.defaultProps={show:!0,className:""},t.a=c},1135:function(e,t,a){"use strict";a.d(t,"a",(function(){return u}));var n=a(33),s=a.n(n),i=a(7),r=a.n(i),o=a(1106),l=a(1150),c=a(0),d=a(14);function m(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class u extends r.a.PureComponent{constructor(e){super(e),m(this,"onKeyDown",e=>{this.props.shiftEnter&&e.keyCode===c.Q.KeyCodes.ENTER&&e.shiftKey||!0!==this.props.disableEnterSubmit&&Object(d.W)(e,c.Q.KeyCodes.ENTER)&&this.props.submit&&"SELECT"!==e.target.tagName&&e.target.parentElement&&"react-select__input"!==e.target.parentElement.className&&!e.target.classList.contains("btn-cancel")&&this.settingList.current&&this.settingList.current.contains(e.target)&&this.handleSubmit(e)}),m(this,"handleSubmit",e=>{e.preventDefault(),this.props.setting?this.props.submit(this.props.setting):this.props.submit()}),m(this,"handleUpdateSection",e=>{this.props.updateSection(this.props.section),e.preventDefault()}),this.settingList=r.a.createRef()}componentDidMount(){if(this.settingList.current){const e=this.settingList.current.querySelectorAll('.btn:not(.save-button):not(.btn-cancel), input.form-control, select, textarea, [tabindex]:not([tabindex="-1"])');e.length>0?e[0].focus():this.settingList.current.focus()}document.addEventListener("keydown",this.onKeyDown)}componentWillUnmount(){document.removeEventListener("keydown",this.onKeyDown)}render(){let e=null;this.props.clientError&&(e=r.a.createElement("div",{className:"form-group"},r.a.createElement("label",{id:"clientError",className:"col-sm-12 has-error"},this.props.clientError)));let t=null;this.props.serverError&&(t=r.a.createElement("div",{className:"form-group"},r.a.createElement("label",{id:"serverError",className:"col-sm-12 has-error"},this.props.serverError)));let a=null,n="setting-list__hint";"top"===this.props.infoPosition&&(n="padding-bottom x2"),this.props.extraInfo&&(a=r.a.createElement("div",{id:"extraInfo",className:n},this.props.extraInfo));let s="";this.props.submit&&(s=r.a.createElement(l.a,{defaultMessage:this.props.saveButtonText,saving:this.props.saving,disabled:this.props.saving,onClick:this.handleSubmit}));const i=this.props.inputs;let c,d;c="full"===this.props.width?"col-sm-12":"medium"===this.props.width?"col-sm-10 col-sm-offset-2":"col-sm-9 col-sm-offset-3",this.props.title&&(d=r.a.createElement("h4",{id:"settingTitle",className:"col-sm-12 section-title"},this.props.title));let m,u=r.a.createElement("div",{className:"setting-list-item"},i,a);return"top"===this.props.infoPosition&&(u=r.a.createElement("div",null,a,i)),m=this.props.cancelButtonText?this.props.cancelButtonText:r.a.createElement(o.a,{id:"setting_item_max.cancel",defaultMessage:"Cancel"}),r.a.createElement("section",{className:"section-max form-horizontal ".concat(this.props.containerStyle)},d,r.a.createElement("div",{className:c},r.a.createElement("div",{tabIndex:"-1",ref:this.settingList,className:"setting-list"},u,r.a.createElement("div",{className:"setting-list-item"},r.a.createElement("hr",null),this.props.submitExtra,t,e,s,r.a.createElement("button",{id:"cancelSetting",className:"btn btn-sm btn-cancel cursor--pointer style--none",onClick:this.handleUpdateSection},m)))))}}m(u,"defaultProps",{infoPosition:"bottom",saving:!1,section:"",containerStyle:""}),m(u,"propTypes",{inputs:s.a.node,containerStyle:s.a.string,clientError:s.a.oneOfType([s.a.string,s.a.object]),serverError:s.a.string,extraInfo:s.a.element,infoPosition:s.a.string,section:s.a.string,updateSection:s.a.func,setting:s.a.string,submit:s.a.func,disableEnterSubmit:s.a.bool,submitExtra:s.a.node,saving:s.a.bool,title:s.a.node,width:s.a.string,cancelButtonText:s.a.node,shiftEnter:s.a.bool,saveButtonText:s.a.string})},1137:function(e,t,a){"use strict";a(34);var n=a(7),s=a.n(n),i=a(1106);function r(e,t){if(null==e)return{};var a,n,s=function(e,t){if(null==e)return{};var a,n,s={},i=Object.keys(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||(s[a]=e[a]);return s}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(s[a]=e[a])}return s}const o=s.a.forwardRef((e,t)=>{const{component:a,title:n}=e,o=r(e,["component","title"]);if("i"!==a&&"span"!==a)return null;const l=a;return s.a.createElement(i.a,{id:n.id,defaultMessage:n.defaultMessage,values:n.values},e=>s.a.createElement(l,Object.assign({},o,{ref:t,title:e})))});o.defaultProps={component:"i"},o.displayName="LocalizedIcon",t.a=o},1140:function(e,t,a){"use strict";var n=a(33),s=a.n(n),i=a(7),r=a.n(i);a(1528);const o=({url:e,username:t,size:a="md"})=>r.a.createElement("img",{className:"Avatar Avatar-".concat(a),alt:"".concat(t||"user"," profile image"),src:e});o.propTypes={url:s.a.string.isRequired,username:s.a.string,size:s.a.string},o.defaultProps={size:"md"},t.a=o},1143:function(e,t,a){"use strict";a.d(t,"a",(function(){return n}));class n{constructor(){this.latestPrefix="",this.latestComplete=!0,this.disableDispatches=!1,this.requestStarted=!1}handlePretextChanged(e){}resetRequest(){this.requestStarted=!1}startNewRequest(e){this.latestPrefix=e,this.latestComplete=!1,this.requestStarted=!0}shouldCancelDispatch(e){if(this.disableDispatches)return!0;if(!this.requestStarted)return!0;if(e===this.latestPrefix)this.latestComplete=!0;else if(this.latestComplete)return!0;return!1}allowDividers(){return!0}presentationType(){return"text"}}},1144:function(e,t,a){"use strict";a.d(t,"a",(function(){return l}));a(34);var n=a(33),s=a.n(n),i=a(7),r=a.n(i);function o(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class l extends r.a.Component{constructor(...e){super(...e),o(this,"handleClick",e=>{e.preventDefault(),this.props.onClick(this.props.term,this.props.matchedPretext)}),o(this,"handleMouseMove",e=>{e.preventDefault(),this.props.onMouseMove(this.props.term)})}static get propTypes(){return{item:s.a.oneOfType([s.a.object,s.a.string]).isRequired,term:s.a.string.isRequired,matchedPretext:s.a.string.isRequired,isSelection:s.a.bool,onClick:s.a.func,onMouseMove:s.a.func}}}o(l,"baseProps",{role:"button",tabIndex:-1})},1146:function(e,t,a){"use strict";var n=a(309),s=a(6);function i(e){return e.views.settings.previousActiveSection}var r=a(0);function o(e){return{type:r.f.UPDATE_ACTIVE_SECTION,data:e}}a(34);var l=a(33),c=a.n(l),d=a(7),m=a.n(d),u=a(1106),p=a(14),h=a(1424);function g(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class b extends m.a.PureComponent{constructor(...e){super(...e),g(this,"getEdit",e=>{this.edit=e}),g(this,"handleUpdateSection",e=>{e.preventDefault(),this.props.actions.updateActiveSection(this.props.section),this.props.updateSection(this.props.section)})}componentDidMount(){this.props.previousActiveSection===this.props.section&&this.edit.focus()}render(){let e=null,t=null;return!this.props.disableOpen&&Object(p.Y)()?e=m.a.createElement("div",{className:"section-min__edit"},m.a.createElement("button",{id:this.props.section+"Edit",className:"color--link cursor--pointer style--none",onClick:this.handleUpdateSection,ref:this.getEdit,"aria-labelledby":this.props.section+"Title "+this.props.section+"Edit"},m.a.createElement(h.a,null),this.props.describe)):this.props.disableOpen||(e=m.a.createElement("div",{className:"section-min__edit"},m.a.createElement("button",{id:this.props.section+"Edit",className:"color--link cursor--pointer style--none text-left",onClick:this.handleUpdateSection,ref:this.getEdit,"aria-labelledby":this.props.section+"Title "+this.props.section+"Edit"},m.a.createElement(h.a,null),m.a.createElement(u.a,{id:"setting_item_min.edit",defaultMessage:"Edit"}))),t=m.a.createElement("div",{id:this.props.section+"Desc",className:"section-min__describe"},this.props.describe)),m.a.createElement("div",{className:"section-min",onClick:this.handleUpdateSection},m.a.createElement("div",{className:"d-flex"},m.a.createElement("h4",{id:this.props.section+"Title",className:"section-min__title"},this.props.title),e),t)}}g(b,"defaultProps",{section:""}),g(b,"propTypes",{title:c.a.node,disableOpen:c.a.bool,section:c.a.string,updateSection:c.a.func,describe:c.a.node,previousActiveSection:c.a.string,actions:c.a.shape({updateActiveSection:c.a.func.isRequired}).isRequired});t.a=Object(n.connect)((function(e){return{previousActiveSection:i(e)}}),(function(e){return{actions:Object(s.bindActionCreators)({updateActiveSection:o},e)}}))(b)},1147:function(e,t,a){"use strict";a(52);var n=a(81),s=a(36),i=a(31),r=a(5),o=a(20),l=a(173),c=a(12),d=a(13),m=a(16),u=a(10),p=a(19),h=a(100),g=a(316),b=a.n(g),f=a(1148),_=a(1275);const E=(e,t)=>e.views.channel.lastGetPosts[t];var v=a(1351),y=a(95),C=a(0),w=a(14),O=a(116);function T(){return e=>{e({type:C.f.UPDATE_MOBILE_VIEW,data:Object(w.Y)()})}}function S(){return async(e,t)=>{const a=t(),n=Object(d.getCurrentChannel)(a),s=Object(d.getChannelsNameMapInCurrentTeam)(a);let i=Object(h.getChannelByName)(s,Object(_.a)(a));return n.id===i.id&&(i=Object(h.getChannelByName)(s,Object(d.getRedirectChannelNameForTeam)(a,Object(m.getCurrentTeamId)(a)))),e(M(i))}}function P(e){return async(t,a)=>{const n=a();return t(M(Object(d.getChannel)(n,e)))}}function M(e){return async(t,a)=>{const n=a(),s=Object(m.getCurrentRelativeTeamUrl)(n);if(e.fake||e.userId){const a=e.userId?e.name:e.display_name,i=Object(u.getUserByUsername)(n,a);if(!i)return{error:!0};if((await t(Object(f.e)(i.id))).error)return{error:!0};y.a.push("".concat(s,"/messages/@").concat(e.name))}else if(e.type===C.j.GM_CHANNEL){const t=Object(d.getChannel)(n,e.id);y.a.push("".concat(s,"/channels/").concat(t.name))}else y.a.push("".concat(s,"/channels/").concat(e.name));return{data:!0}}}function I(e){return async(t,a)=>{const n=a(),i=Object(u.getCurrentUserId)(n),r=Object(m.getCurrentTeamId)(n);return t(Object(s.joinChannel)(i,r,e))}}function N(e){return async(t,a)=>{const n=a(),i=Object(p.getMyPreferences)(n),o=Object(u.getCurrentUserId)(n),c=Object(m.getCurrentTeam)(n);Object(h.isFavoriteChannel)(i,e)&&t(Object(s.unfavoriteChannel)(e));const g=Object(m.getCurrentRelativeTeamUrl)(n);O.a.removePreviousChannelName(o,c.id);const{error:b}=await t(Object(s.leaveChannel)(e));if(b)return{error:b};const f=O.a.getPreviousChannelName(o,c.id),_=Object(d.getChannelsNameMapInCurrentTeam)(n),E=Object(h.getChannelByName)(_,f);return E&&Object(d.getMyChannelMemberships)(a())[E.id]||O.a.removePreviousChannelName(o,c.id),0===Object(d.getMyChannels)(a()).filter(e=>e.type===C.j.OPEN_CHANNEL||e.type===C.j.PRIVATE_CHANNEL).length?(O.a.removePreviousChannelName(o,c.id),t(Object(l.selectTeam)("")),t({type:r.TeamTypes.LEAVE_TEAM,data:c}),y.a.push("/")):y.a.push(g),{data:!0}}}function j(e,t){return async(a,n)=>{const s=n(),i=Object(m.getCurrentTeamId)(s);return a(Object(o.autocompleteUsers)(e,i,t))}}function A(e){return async t=>{const a=Date.now(),{data:n,error:s}=await t(i.getPostsUnread(e));return s?{error:s,atLatestMessage:!1,atOldestmessage:!1}:(t({type:C.f.INCREASE_POST_VISIBILITY,data:e,amount:n.order.length}),""===n.next_post_id&&t({type:C.f.RECEIVED_POSTS_FOR_CHANNEL_AT_TIME,channelId:e,time:a}),{atLatestMessage:""===n.next_post_id,atOldestmessage:""===n.prev_post_id})}}function R(e,t){return async a=>{const{data:n,error:s}=await a(i.getPostsAround(e,t,c.Posts.POST_CHUNK_SIZE/2));return s?{error:s,atLatestMessage:!1,atOldestmessage:!1}:(a({type:C.f.INCREASE_POST_VISIBILITY,data:e,amount:n.order.length}),{atLatestMessage:""===n.next_post_id,atOldestmessage:""===n.prev_post_id})}}function k(e){return async t=>{const a=Date.now(),{data:n,error:s}=await t(i.getPosts(e,0,c.Posts.POST_CHUNK_SIZE/2));return s?{error:s,atLatestMessage:!1,atOldestmessage:!1}:(t({type:C.f.RECEIVED_POSTS_FOR_CHANNEL_AT_TIME,channelId:e,time:a}),{data:n,atLatestMessage:""===n.next_post_id,atOldestmessage:""===n.prev_post_id})}}function L({channelId:e,postId:t,type:a}){return async s=>{const r=C.j.POST_CHUNK_SIZE/2;s({type:C.f.LOADING_POSTS,data:!0,channelId:e});let o;o=a===C.z.BEFORE_ID?await s(i.getPostsBefore(e,t,0,r)):await s(i.getPostsAfter(e,t,0,r));const{data:l}=o,c=[{type:C.f.LOADING_POSTS,data:!1,channelId:e}];return o.error?{error:o.error,moreToLoad:!0}:(c.push({type:C.f.INCREASE_POST_VISIBILITY,data:e,amount:l.order.length}),s(Object(n.batchActions)(c)),{moreToLoad:a===C.z.BEFORE_ID?""!==l.prev_post_id:""!==l.next_post_id})}}function D(e,t){return async(a,n)=>{const s=Date.now(),r=n(),o=Object(v.a)(r);let l=t;const c=E(r,e);c&&c<o.lastDisconnectAt&&(l=c);const{data:d,error:m}=await a(i.getPostsSince(e,l));return d&&a({type:C.f.RECEIVED_POSTS_FOR_CHANNEL_AT_TIME,channelId:e,time:s}),{data:d,error:m}}}function x(){return()=>{b.a.emit(C.m.POST_LIST_SCROLL_TO_BOTTOM)}}function U(e){return(t,a)=>{Object(d.isManuallyUnread)(a(),e)||t(Object(s.markChannelAsRead)(e))}}a.d(t,"b",(function(){return T})),a.d(t,"c",(function(){return S})),a.d(t,"m",(function(){return P})),a.d(t,"l",(function(){return M})),a.d(t,"d",(function(){return I})),a.d(t,"e",(function(){return N})),a.d(t,"a",(function(){return j})),a.d(t,"i",(function(){return A})),a.d(t,"h",(function(){return R})),a.d(t,"f",(function(){return k})),a.d(t,"g",(function(){return L})),a.d(t,"n",(function(){return D})),a.d(t,"k",(function(){return x})),a.d(t,"j",(function(){return U}))},1148:function(e,t,a){"use strict";a.d(t,"e",(function(){return E})),a.d(t,"f",(function(){return v})),a.d(t,"d",(function(){return y})),a.d(t,"g",(function(){return C})),a.d(t,"b",(function(){return w})),a.d(t,"c",(function(){return O})),a.d(t,"a",(function(){return T}));a(52),a(137),a(34);var n=a(81),s=a(5),i=a(36),r=a(73),o=a(101),l=a(13),c=a(16),d=a(10),m=a(311),u=a(176),p=a(95),h=a(0),g=a(14);function b(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function f(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?b(a,!0).forEach((function(t){_(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):b(a).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function _(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function E(e){return async(t,a)=>{const o=a(),c=Object(d.getCurrentUserId)(o),u=Object(g.s)(c,e),p=Object(l.getChannelByName)(o,u);if(!p)return t(i.createDirectChannel(c,e));Object(m.d)("api","api_channels_join_direct");const b=Date.now(),_={category:h.B.CATEGORY_DIRECT_CHANNEL_SHOW,name:e,value:"true"},E={category:h.B.CATEGORY_CHANNEL_OPEN_TIME,name:p.id,value:b.toString()},v=[{type:s.PreferenceTypes.RECEIVED_PREFERENCES,data:[_]},{type:s.PreferenceTypes.RECEIVED_PREFERENCES,data:[E]}];return t(Object(n.batchActions)(v)),t(Object(r.savePreferences)(c,[f({user_id:c},_),f({user_id:c},E)])),{data:p}}}function v(e){return async(t,a)=>{const n=await t(i.createGroupChannel(e));return n.error&&p.a.push(Object(c.getCurrentTeamUrl)(a())),n}}function y(){return async(e,t)=>{const a=t(),n=Object(l.getUnreadChannelIds)(a);await e(i.fetchMyChannelsAndMembers(Object(c.getCurrentTeamId)(a)));for(const e of n){const t=Object(l.getChannel)(a,e);t&&t.type===h.j.DM_CHANNEL?Object(u.d)(t.id):t&&t.type===h.j.GM_CHANNEL&&Object(u.e)(t.id)}Object(u.j)()}}function C(e,t){return async(a,n)=>{const s=n(),r=Object(c.getCurrentTeamId)(s);if(!r)throw new Error("No team id");const{data:l,error:d}=await a(i.searchChannels(r,e,t));if(l){const e=Object(o.getMyChannelMemberships)(s);return{data:t?l:l.filter(t=>!e[t.id])}}return{error:d}}}function w(e,t,a){return async(n,s)=>{const r=s(),o=Object(c.getCurrentTeamId)(r);if(!o)return;const{data:l,error:d}=await n(i.autocompleteChannels(o,e));l&&t?t(l):d&&a&&a(f({id:d.server_error_id},d))}}function O(e,t,a){return async(n,s)=>{const r=s(),o=Object(c.getCurrentTeamId)(r);if(!o)return;const{data:l,error:d}=await n(i.autocompleteChannelsForSearch(o,e));l&&t?t(l):d&&a&&a(f({id:d.server_error_id},d))}}function T(e,t){return async a=>{try{const n=t.map(t=>a(i.addChannelMember(e,t)));return await Promise.all(n)}catch(e){return{error:e}}}}},1150:function(e,t,a){"use strict";a.d(t,"a",(function(){return m}));var n=a(33),s=a.n(n),i=a(7),r=a.n(i),o=a(1106),l=a(1160);function c(e,t){if(null==e)return{};var a,n,s=function(e,t){if(null==e)return{};var a,n,s={},i=Object.keys(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||(s[a]=e[a]);return s}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(s[a]=e[a])}return s}function d(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class m extends r.a.PureComponent{render(){const e=this.props,{saving:t,disabled:a,savingMessage:n,defaultMessage:s,btnClass:i,extraClasses:o}=e,d=c(e,["saving","disabled","savingMessage","defaultMessage","btnClass","extraClasses"]);let m="save-button btn";return a&&!t||(m+=" "+i),o&&(m+=" "+o),r.a.createElement("button",Object.assign({type:"submit",id:"saveSetting",className:m,disabled:a},d),r.a.createElement(l.a,{loading:t,text:n},r.a.createElement("span",null,s)))}}d(m,"propTypes",{saving:s.a.bool.isRequired,disabled:s.a.bool,id:s.a.string,onClick:s.a.func,savingMessage:s.a.node,defaultMessage:s.a.node,btnClass:s.a.string,extraClasses:s.a.string}),d(m,"defaultProps",{btnClass:"btn-primary",defaultMessage:r.a.createElement(o.a,{id:"save_button.save",defaultMessage:"Save"}),disabled:!1,extraClasses:"",savingMessage:r.a.createElement(o.a,{id:"save_button.saving",defaultMessage:"Saving"})})},1154:function(e,t,a){"use strict";a.d(t,"a",(function(){return d}));var n=a(33),s=a.n(n),i=a(7),r=a.n(i),o=a(1137),l=a(27);function c(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class d extends r.a.PureComponent{render(){return r.a.createElement("span",{id:"loadingSpinner",className:"LoadingSpinner"+(this.props.text?" with-text":"")},r.a.createElement(o.a,{className:"fa fa-spinner fa-fw fa-pulse spinner",component:"span",title:{id:Object(l.b)("generic_icons.loading"),defaultMessage:"Loading Icon"}}),this.props.text)}}c(d,"propTypes",{text:s.a.node}),c(d,"defaultProps",{text:null})},1159:function(e,t,a){"use strict";var n=a(309),s=a(21),i=a(12),r=a(13),o=a(15),l=a(19),c=a(16),d=a(10),m=a(172),u=a(33),p=a.n(u),h=a(7),g=a.n(h),b=a(1268),f=a(40);function _(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class E extends g.a.PureComponent{render(){if(!this.props.enableFormatting)return g.a.createElement("span",null,this.props.message);const e=Object.assign({autolinkedUrlSchemes:this.props.autolinkedUrlSchemes,siteURL:this.props.siteURL,mentionKeys:this.props.mentionKeys,atMentions:!0,channelNamesMap:this.props.channelNamesMap,proxyImages:this.props.hasImageProxy&&this.props.proxyImages,team:this.props.team,minimumHashtagLength:this.props.minimumHashtagLength},this.props.options),t=f.e(this.props.message,e);return Object(b.a)(t,this.props.isRHS,{imageProps:this.props.imageProps,imagesMetadata:this.props.imagesMetadata,hasPluginTooltips:this.props.hasPluginTooltips,postId:this.props.postId,postType:this.props.postType})}}_(E,"propTypes",{channelNamesMap:p.a.object.isRequired,autolinkedUrlSchemes:p.a.array,enableFormatting:p.a.bool.isRequired,isRHS:p.a.bool,mentionKeys:p.a.arrayOf(p.a.object).isRequired,message:p.a.string.isRequired,options:p.a.object,siteURL:p.a.string.isRequired,team:p.a.object.isRequired,hasImageProxy:p.a.bool.isRequired,minimumHashtagLength:p.a.number,proxyImages:p.a.bool,imageProps:p.a.object,imagesMetadata:p.a.object,hasPluginTooltips:p.a.bool,postId:p.a.string,postType:p.a.string}),_(E,"defaultProps",{options:{},isRHS:!1,proxyImages:!0,imagesMetadata:{},postId:""});t.a=Object(n.connect)((function(){const e=Object(s.createSelector)(r.getChannelsNameMapInCurrentTeam,(e,t)=>t&&t.channelNamesMap,(e,t)=>t?Object.assign({},t,e):e);return function(t,a){const n=Object(o.getConfig)(t);return{autolinkedUrlSchemes:Object(o.getAutolinkedUrlSchemes)(t),channelNamesMap:e(t,a),enableFormatting:Object(l.getBool)(t,i.Preferences.CATEGORY_ADVANCED_SETTINGS,"formatting",!0),mentionKeys:Object(d.getCurrentUserMentionKeys)(t),siteURL:Object(m.e)(),team:Object(c.getCurrentTeam)(t),hasImageProxy:"true"===n.HasImageProxy,minimumHashtagLength:parseInt(n.MinimumHashtagLength,10)}}}))(E)},1160:function(e,t,a){"use strict";a.d(t,"a",(function(){return c}));var n=a(33),s=a.n(n),i=a(7),r=a.n(i),o=a(1154);function l(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class c extends r.a.Component{render(){const{text:e,loading:t,children:a}=this.props;return t?r.a.createElement(o.a,{text:e}):a}}l(c,"propTypes",{loading:s.a.bool,text:s.a.node,children:s.a.node}),l(c,"defaultProps",{loading:!0,text:null,children:null})},1161:function(e,t,a){"use strict";var n=a(33),s=a.n(n),i=a(7),r=a.n(i),o=a(1106),l=a(1245);const c=e=>r.a.createElement(l.a,{className:"GuestBadge "+e.className,show:e.show},r.a.createElement(o.a,{id:"post_info.guest",defaultMessage:"GUEST"}));c.propTypes={className:s.a.string,show:s.a.bool},c.defaultProps={show:!0,className:""},t.a=c},1163:function(e,t,a){"use strict";a.d(t,"a",(function(){return d}));var n=a(33),s=a.n(n),i=a(7),r=a.n(i),o=a(1137),l=a(27);function c(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class d extends r.a.PureComponent{render(){const e="fa fa-warning"+(this.props.additionalClassName?" "+this.props.additionalClassName:"");return r.a.createElement(o.a,{className:e,title:{id:Object(l.b)("generic_icons.warning"),defaultMessage:"Warning Icon"}})}}c(d,"propTypes",{additionalClassName:s.a.oneOfType([s.a.string,s.a.oneOf([null])])}),c(d,"defaultProps",{additionalClassName:null})},1166:function(e,t,a){"use strict";a.d(t,"b",(function(){return r})),a.d(t,"a",(function(){return o})),a.d(t,"f",(function(){return l})),a.d(t,"d",(function(){return c})),a.d(t,"c",(function(){return d})),a.d(t,"e",(function(){return m}));a(1588),a(113),a(98);var n=a(1593),s=a(0),i=a(17);function r(e){const t="true"===e.EnableFileAttachments,a="true"===e.EnableMobileFileUpload;return!!t&&(!i.o()||a)}function o(e){return!i.o()||"true"===e.EnableMobileFileDownload}function l(e){let t=e;return e.length>s.Q.MAX_FILENAME_LENGTH&&(t=e.substring(0,Math.min(s.Q.MAX_FILENAME_LENGTH,e.length))+"..."),t}function c(e){const t=e.split("/"),a=t[0],n=t[1];if("video"===a)return"video";if("audio"===a)return"audio";if("image"===a)return"image";if(n){if("pdf"===n)return"pdf";if(n.includes("vnd.ms-excel")||n.includes("spreadsheetml")||n.includes("vnd.sun.xml.calc")||n.includes("opendocument.spreadsheet"))return"spreadsheet";if(n.includes("vnd.ms-powerpoint")||n.includes("presentationml")||n.includes("vnd.sun.xml.impress")||n.includes("opendocument.presentation"))return"presentation";if("msword"===n||n.includes("vnd.ms-word")||n.includes("officedocument.wordprocessingml")||n.includes("application/x-mswrite"))return"word"}return"other"}function d(e){var t=new DataView(e);if(65496!==t.getUint16(0,!1))return-2;for(var a=t.byteLength,n=2;n<a;){var s=t.getUint16(n,!1);if(n+=2,65505===s){if(1165519206!==t.getUint32(n+=2,!1))return-1;var i=18761===t.getUint16(n+=6,!1);n+=t.getUint32(n+4,i);var r=t.getUint16(n,i);n+=2;for(var o=0;o<r;o++)if(274===t.getUint16(n+12*o,i))return t.getUint16(n+12*o+8,i)}else{if(65280!=(65280&s))break;n+=t.getUint16(n,!1)}}return-1}function m(e){const{transform:t,"transform-origin":a}=Object(n.a)(e);return{transform:t,transformOrigin:a}}},1170:function(e,t,a){"use strict";a.d(t,"a",(function(){return r}));var n=a(7),s=a.n(n),i=a(1106);class r extends s.a.PureComponent{render(){return s.a.createElement("span",this.props,s.a.createElement(i.a,{id:"generic_icons.channel.public",defaultMessage:"Public Channel Icon"},e=>s.a.createElement("svg",{width:"13px",height:"13px",viewBox:"0 0 14 14",role:"presentation","aria-label":e},s.a.createElement("g",{stroke:"none",strokeWidth:"1",fill:"inherit",fillRule:"evenodd"},s.a.createElement("g",{transform:"translate(-115.000000, -147.000000)",fillRule:"nonzero",fill:"inherit"},s.a.createElement("g",{transform:"translate(95.000000, 0.000000)"},s.a.createElement("g",{transform:"translate(20.000000, 113.000000)"},s.a.createElement("g",{transform:"translate(0.000000, 34.000000)"},s.a.createElement("path",{d:"M10.409,0.893375 C9.40275,0.329875 8.24075,0.00875 7,0 C3.13075,0 0,3.140375 0,7 C0,10.521875 2.594375,13.42775 5.97625,13.93 C6.314875,13.974625 6.6535,14 7,14 C8.24075,14 9.40275,13.678875 10.409,13.1145 C12.551875,11.918375 14,9.6285 14,7 C13.99125,4.3715 12.551875,2.090375 10.409,0.893375 Z M11.554375,4.375 L9.431625,4.375 C9.302125,3.5 9.10875,2.736125 8.86725,2.085125 C10.003875,2.519125 10.9515,3.5 11.554375,4.375 Z M6.941375,1.73775 C6.960625,1.736875 6.979875,1.73425 7,1.73425 C7.020125,1.73425 7.039375,1.736875 7.058625,1.73775 C7.340375,2.172625 7.697375,3.5 7.92225,4.375 L6.07775,4.375 C6.302625,3.5 6.659625,2.172625 6.941375,1.73775 Z M1.81475,7.875 C1.7675,7.875 1.73425,7.29925 1.73425,7 C1.73425,6.70075 1.764875,6.125 1.813,6.125 L4.396875,6.125 C4.384625,6.125 4.375,6.7025 4.375,7 C4.375,7.2975 4.384625,7.875 4.396875,7.875 L1.81475,7.875 Z M4.354875,11.54475 C4.346125,11.54475 4.337375,11.54475 4.337375,11.536 C3.548125,11.07575 2.893625,10.5 2.436875,9.625 L4.568375,9.625 C4.697875,10.5 4.890375,11.262125 5.131875,11.91225 C4.8615,11.81075 4.599875,11.692625 4.354875,11.54475 Z M4.568375,4.375 L2.443875,4.375 C3.045875,3.5 3.994375,2.517375 5.131875,2.083375 C4.89125,2.734375 4.697875,3.5 4.568375,4.375 Z M7.0595,12.26225 C7.039375,12.26225 7.020125,12.26575 7,12.26575 C6.979875,12.26575 6.960625,12.26225 6.9405,12.26225 C6.65875,11.8265 6.302625,11.375 6.07775,9.625 L7.921375,9.625 C7.697375,11.375 7.34125,11.8265 7.0595,12.26225 Z M8.11125,7.875 L5.88875,7.875 C5.873875,7.875 5.8625,7.30625 5.8625,7 C5.8625,6.69375 5.873875,6.125 5.88875,6.125 L8.11125,6.125 C8.126125,6.125 8.1375,6.69375 8.1375,7 C8.1375,7.30625 8.126125,7.875 8.11125,7.875 Z M10.409,11.0075 C10.13075,11.242 9.828,11.45025 9.506875,11.631375 C9.30125,11.74075 9.086875,11.839625 8.8655,11.923625 C9.107,11.270875 9.30125,10.5 9.431625,9.625 L11.557875,9.625 C11.25425,10.5 10.8675,10.618125 10.409,11.0075 Z M9.603125,7.875 C9.615375,7.875 9.625,7.2975 9.625,7 C9.625,6.7025 9.615375,6.125 9.603125,6.125 L12.186125,6.125 C12.235125,6.125 12.26575,6.70075 12.26575,7 C12.26575,7.29925 12.233375,7.875 12.18525,7.875 L9.603125,7.875 Z"})))))))))}}},1171:function(e,t,a){"use strict";a.d(t,"a",(function(){return r}));var n=a(7),s=a.n(n),i=a(1106);class r extends s.a.PureComponent{render(){return s.a.createElement("span",this.props,s.a.createElement(i.a,{id:"generic_icons.channel.private",defaultMessage:"Private Channel Icon"},e=>s.a.createElement("svg",{width:"12px",height:"13px",viewBox:"0 0 13 15",role:"presentation",title:e},s.a.createElement("g",{stroke:"none",strokeWidth:"1",fill:"inherit",fillRule:"evenodd"},s.a.createElement("g",{transform:"translate(-116.000000, -175.000000)",fillRule:"nonzero",fill:"inherit"},s.a.createElement("g",{transform:"translate(95.000000, 0.000000)"},s.a.createElement("g",{transform:"translate(20.000000, 113.000000)"},s.a.createElement("g",{transform:"translate(1.000000, 62.000000)"},s.a.createElement("path",{d:"M12.0714286,6.5 L11.1428571,6.5 L11.1428571,4.64285714 C11.1428571,2.07814286 9.06471429,0 6.5,0 C3.93528571,0 1.85714286,2.07814286 1.85714286,4.64285714 L1.85714286,6.5 L0.928571429,6.5 C0.415071429,6.5 0,7.00792857 0,7.52142857 L0,13.9285714 C0,14.4420714 0.415071429,14.8571429 0.928571429,14.8571429 L12.0714286,14.8571429 C12.5849286,14.8571429 13,14.4420714 13,13.9285714 L13,7.52142857 C13,7.00792857 12.5849286,6.5 12.0714286,6.5 Z M6.5,1.85714286 C8.03585714,1.85714286 9.28571429,3.107 9.28571429,4.64285714 L9.28571429,6.5 L8.35714286,6.5 L4.64285714,6.5 L3.71428571,6.5 L3.71428571,4.64285714 C3.71428571,3.107 4.96414286,1.85714286 6.5,1.85714286 Z"})))))))))}}},1172:function(e,t,a){"use strict";var n=a(309),s=a(19),i=a(33),r=a.n(i),o=a(7),l=a.n(o);function c(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function d(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?c(a,!0).forEach((function(t){m(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):c(a).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function m(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class u extends l.a.PureComponent{render(){const e=this.props.pluggableName;let t;if(this.props.children)t=l.a.Children.only(this.props.children).type;else if(!e)return null;const a=this.props.components,n=t?this.props.children.props:{},s=e||t.getComponentName();let i=d({},this.props);if(Reflect.deleteProperty(i,"children"),Reflect.deleteProperty(i,"components"),Reflect.deleteProperty(i,"pluggableName"),i=d({},i,{},n),a.hasOwnProperty(s)){let e=a[s];this.props.pluggableId&&(e=e.filter(e=>e.id===this.props.pluggableId));const t=e.map(e=>{const t=e.component;return l.a.createElement(t,Object.assign({},i,{theme:this.props.theme,key:s+e.id}))});return l.a.createElement(l.a.Fragment,null,t)}return null==t?null:l.a.cloneElement(this.props.children,d({},i))}}m(u,"propTypes",{children:r.a.element,pluggableName:r.a.string,components:r.a.object.isRequired,theme:r.a.object.isRequired,pluggableId:r.a.string});t.a=Object(n.connect)((function(e){return{components:e.plugins.components,theme:Object(s.getTheme)(e)}}))(u)},1174:function(e,t,a){"use strict";a.d(t,"a",(function(){return d}));var n=a(33),s=a.n(n),i=a(7),r=a.n(i),o=a(1389);function l(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const c={xs:"xsmall",sm:"small",md:"medium",lg:"large"};class d extends r.a.PureComponent{render(){const{placement:e,popoverSize:t,children:a,popoverStyle:n,title:s,id:i,onMouseOut:l,onMouseOver:d,className:m,style:u}=this.props;return r.a.createElement(o.a,{id:i,style:u,className:m,bsStyle:n,placement:e,bsClass:"popover",title:s,bsSize:t&&c[t],onMouseOut:l,onMouseOver:d},a)}}l(d,"propTypes",{id:s.a.string,children:s.a.node,popoverStyle:s.a.oneOf(["info"]),popoverSize:s.a.oneOf(["xs","sm","md","lg"]),title:s.a.node,placement:s.a.oneOf(["bottom","top","right","left"]),className:s.a.string,style:s.a.any,onMouseOut:s.a.func,onMouseOver:s.a.func}),l(d,"defaultProps",{placement:"right",popoverStyle:"info",popoverSize:"sm"})},1176:function(e,t,a){"use strict";a.d(t,"a",(function(){return u}));a(34);var n=a(33),s=a.n(n),i=a(7),r=a.n(i),o=a(1117),l=a(1346),c=a(1237),d=a(1140);function m(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class u extends r.a.PureComponent{constructor(...e){super(...e),m(this,"overlay",r.a.createRef()),m(this,"hideProfilePopover",()=>{this.overlay.current&&this.overlay.current.hide()})}render(){const e="string"==typeof this.props.profileSrc&&""!==this.props.profileSrc?this.props.profileSrc:this.props.src,t="profile-icon ".concat(this.props.isEmoji?"emoji":"");return this.props.userId?r.a.createElement(o.a,{ref:this.overlay,trigger:"click",placement:"right",rootClose:!0,overlay:r.a.createElement(l.a,{className:"user-profile-popover",userId:this.props.userId,src:e,isBusy:this.props.isBusy,hide:this.hideProfilePopover,isRHS:this.props.isRHS,hasMention:this.props.hasMention})},r.a.createElement("button",{className:"status-wrapper style--none ".concat(this.props.wrapperClass),tabIndex:-1},r.a.createElement("span",{className:t},r.a.createElement(d.a,{username:this.props.username,size:this.props.size,url:this.props.src})),r.a.createElement(c.a,{status:this.props.status}))):r.a.createElement("span",{className:"status-wrapper"},r.a.createElement("span",{className:t},r.a.createElement(d.a,{size:this.props.size,url:this.props.src})),r.a.createElement(c.a,{status:this.props.status}))}}m(u,"propTypes",{hasMention:s.a.bool,isBusy:s.a.bool,isEmoji:s.a.bool,isRHS:s.a.bool,profileSrc:s.a.string,size:s.a.string,src:s.a.string.isRequired,status:s.a.string,userId:s.a.string,username:s.a.string,wrapperClass:s.a.string}),m(u,"defaultProps",{size:"md",isRHS:!1,isEmoji:!1,hasMention:!1,wrapperClass:""})},1177:function(e,t,a){"use strict";function n(e,t){return e.views.modals.modalState[t]&&e.views.modals.modalState[t].open}a.d(t,"a",(function(){return n}))},1178:function(e,t,a){"use strict";a.d(t,"a",(function(){return s})),a.d(t,"b",(function(){return i}));a(52);var n=a(0);function s(e){return async t=>(t({type:n.D.SET_MODAL_SEARCH,data:e}),{data:!0})}function i(e,t,a=""){return async s=>(s({type:n.D.SET_SYSTEM_USERS_SEARCH,data:{term:e,team:t,filter:a}}),{data:!0})}},1181:function(e,t,a){"use strict";var n=a(309),s=a(6),i=a(10),r=a(61),o=a(12),l=a(15),c=a(1612),d=a(41),m=a(1152),u=a(1310),p=(a(72),a(7)),h=a.n(p),g=a(33),b=a.n(g),f=a(0),_=a(172),E=(a(34),a(1106)),v=a(314),y=a(11);const C=5184e6,w=1296e6;function O(){const e=Object(l.getLicense)(y.a.getState());return"true"===e.IsLicensed&&Date.now()-parseInt(e.ExpiresAt,10)>w}var T=a(1118),S=a(27),P=a(1114),M=a(1390),I=a(1117);function N(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class j extends h.a.PureComponent{constructor(...e){super(...e),N(this,"handleClose",e=>{e.preventDefault(),this.props.handleClose&&this.props.handleClose()})}componentDidMount(){let e=document.body.getAttribute("announcementBarCount")||0;e++,document.body.classList.add("announcement-bar--fixed"),document.body.setAttribute("announcementBarCount",e)}componentWillUnmount(){let e=document.body.getAttribute("announcementBarCount");e--,document.body.setAttribute("announcementBarCount",e),0===e&&document.body.classList.remove("announcement-bar--fixed")}render(){if(!this.props.message)return null;let e="announcement-bar";const t={},a={};let n;this.props.color&&this.props.textColor?(t.backgroundColor=this.props.color,t.color=this.props.textColor,a.color=this.props.textColor):this.props.type===f.i.DEVELOPER?e="announcement-bar announcement-bar-developer":this.props.type===f.i.CRITICAL?e="announcement-bar announcement-bar-critical":this.props.type===f.i.SUCCESS&&(e="announcement-bar announcement-bar-success"),this.props.showCloseButton&&(n=h.a.createElement("a",{href:"#",className:"announcement-bar__close",style:a,onClick:this.handleClose},"×"));let s=this.props.message;"string"==typeof s&&(s=h.a.createElement(P.b,{id:this.props.message}));const i=h.a.createElement(M.a,{id:"announcement-bar__tooltip"},s);return h.a.createElement("div",{className:e,style:t},h.a.createElement(I.a,{delayShow:f.j.OVERLAY_TIME_DELAY,placement:"bottom",overlay:i},h.a.createElement("span",null,s)),n)}}N(j,"propTypes",{showCloseButton:b.a.bool,color:b.a.string,textColor:b.a.string,type:b.a.string,message:b.a.node.isRequired,handleClose:b.a.func}),N(j,"defaultProps",{showCloseButton:!1,color:"",textColor:"",type:f.i.CRITICAL,handleClose:null});var A=a(40);function R(e,t){if(null==e)return{};var a,n,s=function(e,t){if(null==e)return{};var a,n,s={},i=Object.keys(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||(s[a]=e[a]);return s}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(s[a]=e[a])}return s}function k(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const L="__announcement__";class D extends h.a.PureComponent{constructor(e){super(e),k(this,"handleDismiss",()=>{this.props.allowDismissal&&(localStorage.setItem(L+this.props.text,!0),this.setState({dismissed:!0}),this.props.onDismissal&&this.props.onDismissal())}),this.state={dismissed:!0}}static getDerivedStateFromProps(e){return{dismissed:localStorage.getItem(L+e.text)}}render(){if(this.state.dismissed)return null;const e=this.props,{allowDismissal:t,text:a,siteURL:n}=e,s=R(e,["allowDismissal","text","siteURL"]);return h.a.createElement(j,Object.assign({},s,{showCloseButton:t,handleClose:this.handleDismiss,message:h.a.createElement("span",{dangerouslySetInnerHTML:{__html:A.e(a,{singleline:!0,mentionHighlight:!1,siteURL:n})}})}))}}function x(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}k(D,"propTypes",{allowDismissal:b.a.bool.isRequired,text:b.a.string.isRequired,siteURL:b.a.string,onDismissal:b.a.func});const U="https://licensing.mattermost.com/renew";class q extends h.a.PureComponent{constructor(...e){super(...e),x(this,"dismissExpiringLicense",()=>{this.props.actions.dismissNotice(f.h.LICENSE_EXPIRING)})}render(){if(this.props.canViewSystemErrors){const e=U+"?id="+this.props.license.id+"&user_count="+this.props.totalUsers;if(O())return h.a.createElement(j,{type:f.i.CRITICAL,message:h.a.createElement(P.b,{id:f.h.LICENSE_EXPIRED,defaultMessage:"Enterprise license is expired and some features may be disabled. [Please renew](!{link}).",values:{link:e}})});if(function(){const e=Object(l.getLicense)(y.a.getState());return"true"===e.IsLicensed&&parseInt(e.ExpiresAt,10)-Date.now()<0}())return h.a.createElement(j,{type:f.i.CRITICAL,message:h.a.createElement(P.b,{id:f.h.LICENSE_EXPIRED,defaultMessage:"Enterprise license is expired and some features may be disabled. [Please renew](!{link}).",values:{link:e}})});if(function(){const e=Object(l.getLicense)(y.a.getState());return"true"===e.IsLicensed&&parseInt(e.ExpiresAt,10)-Date.now()<=C}()&&!this.props.dismissedExpiringLicense)return h.a.createElement(j,{showCloseButton:!0,handleClose:this.dismissExpiringLicense,type:f.i.ANNOUNCEMENT,message:h.a.createElement(P.b,{id:f.h.LICENSE_EXPIRING,defaultMessage:"Enterprise license expires on {date, date, long}. [Please renew](!{link}).",values:{date:new Date(parseInt(this.props.license.ExpiresAt,10)),link:e}})})}else if(O())return h.a.createElement(j,{type:f.i.CRITICAL,message:h.a.createElement(E.a,{id:f.h.LICENSE_PAST_GRACE,defaultMessage:"Enterprise license is expired and some features may be disabled. Please contact your System Administrator for details."})});const{formatMessage:e}=this.props.intl;if("true"!==this.props.config.SendEmailNotifications&&"true"===this.props.config.EnablePreviewModeBanner){const t=e({id:f.h.PREVIEW_MODE,defaultMessage:"Preview Mode: Email notifications have not been configured"});return h.a.createElement(D,{allowDismissal:!0,text:t,type:f.i.ANNOUNCEMENT})}if(this.props.canViewSystemErrors&&""===this.props.config.SiteURL){let t,a;"true"===this.props.config.EnableSignUpWithGitLab?(t=Object(S.b)("announcement_bar.error.site_url_gitlab.full"),a="Please configure your [Site URL](https://docs.mattermost.com/administration/config-settings.html#site-url) in the [System Console]({siteURL}/admin_console/environment/web_server) or in gitlab.rb if you're using GitLab Mattermost."):(t=Object(S.b)("announcement_bar.error.site_url.full"),a="Please configure your [Site URL](https://docs.mattermost.com/administration/config-settings.html#site-url) in the [System Console]({siteURL}/admin_console/environment/web_server).");const n=e({id:t,defaultMessage:a},{siteURL:this.props.siteURL});return h.a.createElement(D,{allowDismissal:!0,text:n,siteURL:this.props.siteURL,type:f.i.ANNOUNCEMENT})}return null}}x(q,"propTypes",{config:b.a.object,intl:T.a.isRequired,license:b.a.object,user:b.a.object,canViewSystemErrors:b.a.bool.isRequired,totalUsers:b.a.number,dismissedExpiringLicense:b.a.bool,siteURL:b.a.string.isRequired,actions:b.a.shape({dismissNotice:b.a.func.isRequired}).isRequired});var H=Object(v.c)(q);var F=Object(n.connect)((function(e){return{siteURL:Object(_.e)(e),dismissedExpiringLicense:Boolean(e.views.notice.hasBeenDismissed[f.h.LICENSE_EXPIRING])}}),(function(e){return{actions:Object(s.bindActionCreators)({dismissNotice:u.a},e)}}))(H),B=a(1400);function G(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class V extends h.a.PureComponent{constructor(e){super(e),G(this,"reloadPage",()=>{window.location.reload()}),this.state={serverVersionOnAppLoad:e.serverVersion}}static getDerivedStateFromProps(e,t){return!t.serverVersionOnAppLoad&&e.serverVersion?{serverVersionOnAppLoad:e.serverVersion}:null}render(){const{serverVersionOnAppLoad:e}=this.state,{serverVersion:t}=this.props;return e?Object(B.a)(e,t)?null:h.a.createElement(j,{type:f.i.ANNOUNCEMENT,message:h.a.createElement(h.a.Fragment,null,h.a.createElement(E.a,{id:"version_bar.new",defaultMessage:"A new version of Mattermost is available."})," ",h.a.createElement("a",{onClick:this.reloadPage},h.a.createElement(E.a,{id:"version_bar.refresh",defaultMessage:"Refresh the app now"})),".")}):null}}G(V,"propTypes",{serverVersion:b.a.string});var W,z,Y,K=Object(n.connect)((function(e){return{serverVersion:e.entities.general.serverVersion}}))(V);class Q extends h.a.PureComponent{render(){let e=null;"true"===this.props.config.EnableBanner&&this.props.config.BannerText.trim()&&(e=h.a.createElement(D,{color:this.props.config.BannerColor,textColor:this.props.config.BannerTextColor,allowDismissal:"true"===this.props.config.AllowBannerDismissal,text:this.props.config.BannerText}));let t=null;return this.props.latestError&&(t=h.a.createElement(j,{type:this.props.latestError.error.type,message:this.props.latestError.error.message,showCloseButton:!0,handleClose:this.props.actions.dismissError})),h.a.createElement(h.a.Fragment,null,e,t,h.a.createElement(K,null),h.a.createElement(F,{config:this.props.config,license:this.props.license,canViewSystemErrors:this.props.canViewSystemErrors,totalUsers:this.props.totalUsers,user:this.props.user}))}}W=Q,z="propTypes",Y={license:b.a.object,config:b.a.object,user:b.a.shape({email:b.a.string.isRequired,email_verified:b.a.bool}),canViewSystemErrors:b.a.bool.isRequired,latestError:b.a.object,totalUsers:b.a.number,actions:b.a.shape({dismissError:b.a.func.isRequired}).isRequired},z in W?Object.defineProperty(W,z,{value:Y,enumerable:!0,configurable:!0,writable:!0}):W[z]=Y;t.a=Object(n.connect)((function(e){const t=Object(r.haveISystemPermission)(e,{permission:o.Permissions.MANAGE_SYSTEM}),a=Object(l.getLicense)(e),n=Object(l.getConfig)(e),s=Object(i.getCurrentUser)(e),d=Object(c.getDisplayableErrors)(e),m=e.entities.admin.analytics.TOTAL_USERS;let u=null;return d&&d.length>=1&&(u=d[0]),{license:a,config:n,user:s,canViewSystemErrors:t,latestError:u,totalUsers:m}}),(function(e){const t=d.dismissError.bind(null,0);return{actions:Object(s.bindActionCreators)({getStandardAnalytics:m.getStandardAnalytics,dismissError:t,dismissNotice:u.a},e)}}))(Q)},1182:function(e,t,a){"use strict";a(34);var n=a(309),s=a(61),i=a(33),r=a.n(i),o=a(7),l=a.n(o);function c(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class d extends l.a.Component{render(){return this.props.hasPermission&&!this.props.invert?this.props.children:!this.props.hasPermission&&this.props.invert?this.props.children:null}}c(d,"defaultProps",{invert:!1}),c(d,"propTypes",{permissions:r.a.arrayOf(r.a.string).isRequired,hasPermission:r.a.bool.isRequired,invert:r.a.bool.isRequired,children:r.a.node.isRequired});t.a=Object(n.connect)((function(e,t){for(const a of t.permissions)if(Object(s.haveISystemPermission)(e,{permission:a}))return{hasPermission:!0};return{hasPermission:!1}}))(d)},1183:function(e,t,a){"use strict";a(34);var n=a(309),s=a(61),i=a(33),r=a.n(i),o=a(7),l=a.n(o);function c(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class d extends l.a.Component{render(){return this.props.hasPermission&&!this.props.invert?this.props.children:!this.props.hasPermission&&this.props.invert?this.props.children:null}}c(d,"defaultProps",{invert:!1}),c(d,"propTypes",{teamId:r.a.string,permissions:r.a.arrayOf(r.a.string).isRequired,hasPermission:r.a.bool.isRequired,invert:r.a.bool.isRequired,children:r.a.node.isRequired});t.a=Object(n.connect)((function(e,t){if(!t.teamId)return{hasPermission:!1};for(const a of t.permissions)if(Object(s.haveITeamPermission)(e,{team:t.teamId,permission:a}))return{hasPermission:!0};return{hasPermission:!1}}))(d)},1184:function(e,t,a){"use strict";a.d(t,"a",(function(){return d}));var n=a(33),s=a.n(n),i=a(7),r=a.n(i),o=a(1160);function l(e,t){if(null==e)return{};var a,n,s=function(e,t){if(null==e)return{};var a,n,s={},i=Object.keys(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||(s[a]=e[a]);return s}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(s[a]=e[a])}return s}function c(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class d extends i.PureComponent{render(){const e=this.props,{spinning:t,spinningText:a,children:n}=e,s=l(e,["spinning","spinningText","children"]);return r.a.createElement("button",Object.assign({className:"btn btn-primary",disabled:t},s),r.a.createElement(o.a,{loading:t,text:a},n))}}c(d,"propTypes",{children:s.a.node,spinning:s.a.bool,spinningText:s.a.node.isRequired,onClick:s.a.func}),c(d,"defaultProps",{spinning:!1})},1185:function(e,t,a){"use strict";a.d(t,"a",(function(){return b}));a(183),a(34);var n=a(33),s=a.n(n),i=a(7),r=a.n(i),o=a(316),l=a.n(o),c=a(1246),d=a(0),m=a(17),u=a(14);function p(e,t){if(null==e)return{};var a,n,s=function(e,t){if(null==e)return{};var a,n,s={},i=Object.keys(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||(s[a]=e[a]);return s}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(s[a]=e[a])}return s}function h(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const g=d.Q.KeyCodes;class b extends r.a.Component{constructor(e){super(e),h(this,"handleMentionKeyClick",(e,t)=>{if(this.props.isRHS!==t)return;let a="@"+e;this.props.value&&/[^\s]$/.test(this.props.value)&&(a=" "+a),this.addTextAtCaret(a,"")}),h(this,"getTextbox",()=>{if(!this.inputRef.current)return null;const e=this.inputRef.current.getInput();return e.getDOMNode?e.getDOMNode():e}),h(this,"recalculateSize",()=>{const e=this.inputRef.current.getInput();e.recalculateSize&&e.recalculateSize()}),h(this,"handleEmitClearSuggestions",(e=0)=>{setTimeout(()=>{this.clear()},e)}),h(this,"preventSuggestionListClose",()=>{this.preventSuggestionListCloseFlag=!0}),h(this,"handleFocusOut",e=>{this.preventSuggestionListCloseFlag?this.preventSuggestionListCloseFlag=!1:this.container.contains(e.relatedTarget)||m.h()&&!e.relatedTarget||(this.handleEmitClearSuggestions(),this.setState({focused:!1}),this.props.onBlur&&this.props.onBlur())}),h(this,"handleFocusIn",e=>{this.container.contains(e.relatedTarget)||this.preventSuggestionListCloseFlag||(this.setState({focused:!0}),(this.props.openOnFocus||this.props.openWhenEmpty)&&setTimeout(()=>{const e=this.getTextbox();if(e){const t=e.value.substring(0,e.selectionEnd);(this.props.openWhenEmpty||t.length>=this.props.requiredCharacters)&&this.handlePretextChanged(t)}}),this.props.onFocus&&this.props.onFocus())}),h(this,"handleChange",e=>{const t=this.getTextbox(),a=t.value.substring(0,t.selectionEnd).toLowerCase();this.composing||this.pretext===a||this.handlePretextChanged(a),this.props.onChange&&this.props.onChange(e)}),h(this,"handleCompositionStart",()=>{this.composing=!0,this.props.onComposition&&this.props.onComposition()}),h(this,"handleCompositionUpdate",e=>{if(!e.data)return;const t=this.getTextbox(),a=t.value.substring(0,t.selectionStart)+e.data;this.handlePretextChanged(a),this.props.onComposition&&this.props.onComposition()}),h(this,"handleCompositionEnd",()=>{this.composing=!1,this.props.onComposition&&this.props.onComposition()}),h(this,"addTextAtCaret",(e,t)=>{const a=this.getTextbox(),n=a.selectionEnd,s=this.props.value,i=a.value.substring(0,a.selectionEnd);let r,o=!1;if(i.toLowerCase().endsWith(t.toLowerCase()))r=i.substring(0,i.length-t.length);else{const a=e.substring(t.length),n=b.findOverlap(i,a);o=0===n.length,r=i.substring(0,i.length-n.length-t.length)}const l=s.substring(n);let c;if(c=o?i:r+e+" "+l,a.value=c,this.props.onChange){const e={target:a};this.props.onChange(e)}window.requestAnimationFrame(()=>{a.value===c&&u.ob(a,r.length+e.length+1)})}),h(this,"replaceText",e=>{const t=this.getTextbox();if(t.value=e,this.props.onChange){const e={target:t};this.props.onChange(e)}}),h(this,"handleCompleteWord",(e,t)=>{if(this.props.replaceAllInputOnSelect?this.replaceText(e):this.addTextAtCaret(e,t),this.props.onItemSelected){const t=this.state.items,a=this.state.terms;for(let n=0;n<a.length;n++)if(a[n]===e){this.props.onItemSelected(t[n]);break}}this.clear(),this.inputRef.current.focus();for(const a of this.props.providers)a.handleCompleteWord&&a.handleCompleteWord(e,t)}),h(this,"selectNext",()=>{this.setSelectionByDelta(1)}),h(this,"selectPrevious",()=>{this.setSelectionByDelta(-1)}),h(this,"setSelectionByDelta",e=>{let t=this.state.terms.indexOf(this.state.selection);-1!==t?((t+=e)<0?t=0:t>this.state.terms.length-1&&(t=this.state.terms.length-1),this.setState({selection:this.state.terms[t]})):this.setState({selection:""})}),h(this,"setSelection",e=>{this.setState({selection:e})}),h(this,"clear",()=>{this.state.cleared||this.setState({cleared:!0,matchedPretext:[],terms:[],items:[],components:[],selection:""})}),h(this,"hasSuggestions",()=>this.state.items.some(e=>!e.loading)),h(this,"handleKeyDown",e=>{if((this.props.openWhenEmpty||this.props.value)&&this.hasSuggestions())if(u.W(e,g.UP))this.selectPrevious(),e.preventDefault();else if(u.W(e,g.DOWN))this.selectNext(),e.preventDefault();else if(u.W(e,g.ENTER)||this.props.completeOnTab&&u.W(e,g.TAB)){let t="";for(let e=0;e<this.state.terms.length;e++)this.state.terms[e]===this.state.selection&&(t=this.state.matchedPretext[e]);this.pretext.endsWith(t)?this.handleCompleteWord(this.state.selection,t):(clearTimeout(this.timeoutId),this.nonDebouncedPretextChanged(this.pretext,!0)),this.props.onKeyDown&&this.props.onKeyDown(e),e.preventDefault()}else u.W(e,g.ESCAPE)?(this.clear(),this.setState({presentationType:"text"}),e.preventDefault(),e.stopPropagation()):this.props.onKeyDown&&this.props.onKeyDown(e);else this.props.onKeyDown&&this.props.onKeyDown(e)}),h(this,"handleReceivedSuggestions",e=>{const t=[],a=[];for(let n=0;n<e.terms.length;n++)t.push(e.component),a.push(e.matchedPretext);const n=e.terms,s=e.items;let i=this.state.selection;return n.length>0?this.state.selection&&-1!==n.indexOf(this.state.selection)||(i=n[0]):this.state.selection&&(i=""),this.setState({cleared:!1,selection:i,terms:n,items:s,components:t,matchedPretext:a}),{selection:i,matchedPretext:e.matchedPretext}}),h(this,"handleReceivedSuggestionsAndComplete",e=>{const{selection:t,matchedPretext:a}=this.handleReceivedSuggestions(e);t&&this.handleCompleteWord(t,a)}),h(this,"nonDebouncedPretextChanged",(e,t=!1)=>{this.pretext=e;let a=!1,n=this.handleReceivedSuggestions;t&&(n=this.handleReceivedSuggestionsAndComplete);for(const t of this.props.providers)if(a=t.handlePretextChanged(e,n)||a){this.setState({presentationType:t.presentationType(),allowDividers:t.allowDividers()});break}a||this.clear()}),h(this,"debouncedPretextChanged",e=>{clearTimeout(this.timeoutId),this.timeoutId=setTimeout(()=>this.nonDebouncedPretextChanged(e),d.Q.SEARCH_TIMEOUT_MILLISECONDS)}),h(this,"handlePretextChanged",e=>{this.pretext=e,this.debouncedPretextChanged(e)}),h(this,"blur",()=>{this.inputRef.current.blur()}),h(this,"setContainerRef",e=>{this.container&&(this.container.removeEventListener("focusin",this.handleFocusIn),this.container.removeEventListener("focusout",this.handleFocusOut)),e&&(e.addEventListener("focusin",this.handleFocusIn),e.addEventListener("focusout",this.handleFocusOut)),this.container=e}),this.suggestionReadOut=r.a.createRef(),this.composing=!1,this.pretext="",this.timeoutId="",this.preventSuggestionListCloseFlag=!1,this.state={focused:!1,cleared:!0,matchedPretext:[],items:[],terms:[],components:[],selection:"",allowDividers:!0,presentationType:"text"},this.inputRef=r.a.createRef()}componentDidMount(){this.props.listenForMentionKeyClick&&l.a.addListener("mention_key_click",this.handleMentionKeyClick)}componentWillUnmount(){l.a.removeListener("mention_key_click",this.handleMentionKeyClick)}componentDidUpdate(e){const{value:t}=this.props;if(""!==t||this.pretext===t){if(e.contextId!==this.props.contextId){const e=this.getTextbox(),t=e.value.substring(0,e.selectionEnd).toLowerCase();this.handlePretextChanged(t)}}else this.handlePretextChanged(t)}render(){const e=this.props,{listComponent:t,dateComponent:a,listStyle:n,renderNoResults:s}=e,i=p(e,["listComponent","dateComponent","listStyle","renderNoResults"]),o=this.props.renderDividers&&this.state.allowDividers;Reflect.deleteProperty(i,"providers"),Reflect.deleteProperty(i,"onChange"),Reflect.deleteProperty(i,"onComposition"),Reflect.deleteProperty(i,"onItemSelected"),Reflect.deleteProperty(i,"completeOnTab"),Reflect.deleteProperty(i,"isRHS"),Reflect.deleteProperty(i,"requiredCharacters"),Reflect.deleteProperty(i,"openOnFocus"),Reflect.deleteProperty(i,"openWhenEmpty"),Reflect.deleteProperty(i,"onFocus"),Reflect.deleteProperty(i,"onBlur"),Reflect.deleteProperty(i,"containerClass"),Reflect.deleteProperty(i,"replaceAllInputOnSelect"),Reflect.deleteProperty(i,"renderDividers"),Reflect.deleteProperty(i,"contextId"),Reflect.deleteProperty(i,"listenForMentionKeyClick"),Reflect.deleteProperty(i,"wrapperHeight");const l=t,d=a;return r.a.createElement("div",{ref:this.setContainerRef,className:this.props.containerClass},r.a.createElement("div",{ref:this.suggestionReadOut,"aria-live":"polite",role:"alert",className:"sr-only"}),r.a.createElement(c.a,Object.assign({ref:this.inputRef,autoComplete:"off"},i,{onInput:this.handleChange,onCompositionStart:this.handleCompositionStart,onCompositionUpdate:this.handleCompositionUpdate,onCompositionEnd:this.handleCompositionEnd,onKeyDown:this.handleKeyDown})),(this.props.openWhenEmpty||this.props.value.length>=this.props.requiredCharacters)&&"text"===this.state.presentationType&&r.a.createElement(l,{ariaLiveRef:this.suggestionReadOut,open:this.state.focused,pretext:this.pretext,location:n,renderDividers:o,renderNoResults:s,onCompleteWord:this.handleCompleteWord,preventClose:this.preventSuggestionListClose,onItemHover:this.setSelection,cleared:this.state.cleared,matchedPretext:this.state.matchedPretext,items:this.state.items,terms:this.state.terms,selection:this.state.selection,components:this.state.components,wrapperHeight:this.props.wrapperHeight}),(this.props.openWhenEmpty||this.props.value.length>=this.props.requiredCharacters)&&"date"===this.state.presentationType&&r.a.createElement(d,{items:this.state.items,terms:this.state.terms,components:this.state.components,matchedPretext:this.state.matchedPretext,onCompleteWord:this.handleCompleteWord}))}static findOverlap(e,t){const a=e.toLowerCase(),n=t.toLowerCase();for(let e=n.length;e>0;e--){const t=n.substring(0,e);if(a.endsWith(t))return t}return""}}h(b,"propTypes",{listComponent:s.a.func.isRequired,dateComponent:s.a.func,value:s.a.string.isRequired,providers:s.a.arrayOf(s.a.object),listStyle:s.a.string,containerClass:s.a.string,renderDividers:s.a.bool,renderNoResults:s.a.bool,completeOnTab:s.a.bool,onFocus:s.a.func,onBlur:s.a.func,onChange:s.a.func,onKeyDown:s.a.func,onComposition:s.a.func,onItemSelected:s.a.func,isRHS:s.a.bool,requiredCharacters:s.a.number,openOnFocus:s.a.bool,disabled:s.a.bool,openWhenEmpty:s.a.bool,replaceAllInputOnSelect:s.a.bool,contextId:s.a.string,listenForMentionKeyClick:s.a.bool,wrapperHeight:s.a.number}),h(b,"defaultProps",{listStyle:"top",containerClass:"",renderDividers:!1,renderNoResults:!1,completeOnTab:!0,isRHS:!1,requiredCharacters:1,openOnFocus:!1,openWhenEmpty:!1,replaceAllInputOnSelect:!1,listenForMentionKeyClick:!1})},1186:function(e,t,a){"use strict";a.d(t,"a",(function(){return E}));a(34);var n=a(96),s=a.n(n),i=a(33),r=a.n(i),o=a(7),l=a.n(o),c=a(310),d=a.n(c),m=a(1106),u=a(14),p=a(0),h=a(1114),g=a(1154);function b(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function f(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?b(a,!0).forEach((function(t){_(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):b(a).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function _(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class E extends l.a.PureComponent{constructor(e){super(e),_(this,"getContent",()=>s()(this.contentRef.current)),_(this,"scrollToItem",e=>{const t=this.getContent();if(!t||0===t.length)return;const a=t[0].clientHeight;if(a<t[0].scrollHeight){const n=t.scrollTop(),i=parseInt(t.css("padding-top"),10),r=parseInt(t.css("padding-top"),10),o=s()(d.a.findDOMNode(this.itemRefs.get(e)));if(0===o.length)return;const l=o[0].offsetTop-parseInt(o.css("margin-top"),10),c=parseInt(o.css("margin-bottom"),10)+parseInt(o.css("padding-bottom"),10),m=o[0].offsetTop+o.height()+c;l-i<n?t.scrollTop(l-i):m+i+r>n+a&&t.scrollTop(m-a+i+r)}}),this.contentRef=l.a.createRef(),this.itemRefs=new Map,this.suggestionReadOut=l.a.createRef(),this.currentLabel="",this.currentItem={}}componentDidUpdate(e){this.props.selection!==e.selection&&this.props.selection&&this.scrollToItem(this.props.selection),Object(u.R)(this.currentItem)||this.generateLabel(this.currentItem)}componentWillUnmount(){this.removeLabel()}announceLabel(){const e=this.props.ariaLiveRef.current;e&&(e.innerHTML=this.currentLabel)}removeLabel(){const e=this.props.ariaLiveRef.current;e&&(e.innerHTML="")}generateLabel(e){e.username?(this.currentLabel=e.username,(e.first_name||e.last_name)&&e.nickname?this.currentLabel+=" ".concat(e.first_name," ").concat(e.last_name," ").concat(e.nickname):e.nickname?this.currentLabel+=" ".concat(e.nickname):(e.first_name||e.last_name)&&(this.currentLabel+=" ".concat(e.first_name," ").concat(e.last_name))):"mention.channels"===e.type&&(this.currentLabel=e.channel.display_name),this.currentLabel&&(this.currentLabel=this.currentLabel.toLowerCase()),this.announceLabel()}renderDivider(e){return l.a.createElement("div",{key:e+"-divider",className:"suggestion-list__divider"},l.a.createElement("span",null,l.a.createElement(m.a,{id:"suggestion."+e})))}renderNoResults(){return l.a.createElement("div",{key:"list-no-results",className:"suggestion-list__no-results",ref:this.contentRef},l.a.createElement(h.b,{id:"suggestion_list.no_matches",defaultMessage:"No items match __{value}__",values:{value:this.props.pretext||'""'}}))}render(){if(!this.props.open||this.props.cleared)return null;const e=[];if(0===this.props.items.length){if(!this.props.renderNoResults)return null;e.push(this.renderNoResults())}let t;for(let a=0;a<this.props.items.length;a++){const n=this.props.items[a],s=this.props.terms[a],i=s===this.props.selection,r=this.props.components[a];this.props.renderDividers&&n.type!==t&&(e.push(this.renderDivider(n.type)),t=n.type),n.loading?e.push(l.a.createElement(g.a,{key:n.type})):(i&&(this.currentItem=n),e.push(l.a.createElement(r,{key:s,ref:e=>this.itemRefs.set(s,e),item:this.props.items[a],term:s,matchedPretext:this.props.matchedPretext[a],isSelection:i,onClick:this.props.onCompleteWord,onMouseMove:this.props.onItemHover})))}const a="suggestion-list suggestion-list--"+this.props.location,n="suggestion-list__content suggestion-list__content--"+this.props.location;let s=p.j.SUGGESTION_LIST_MAXHEIGHT;this.props.wrapperHeight&&(s=Math.min(Object(u.rb)()-(this.props.wrapperHeight+p.j.SUGGESTION_LIST_MAXHEIGHT),p.j.SUGGESTION_LIST_MAXHEIGHT));const i={maxHeight:s};return l.a.createElement("div",{className:a},l.a.createElement("div",{id:"suggestionList",ref:this.contentRef,style:f({},i),className:n,onMouseDown:this.props.preventClose},e))}}_(E,"propTypes",{ariaLiveRef:r.a.object,open:r.a.bool.isRequired,location:r.a.string,renderDividers:r.a.bool,renderNoResults:r.a.bool,onCompleteWord:r.a.func.isRequired,preventClose:r.a.func,onItemHover:r.a.func.isRequired,pretext:r.a.string.isRequired,cleared:r.a.bool.isRequired,matchedPretext:r.a.array.isRequired,items:r.a.array.isRequired,terms:r.a.array.isRequired,selection:r.a.string.isRequired,components:r.a.array.isRequired,wrapperHeight:r.a.number}),_(E,"defaultProps",{renderDividers:!1,renderNoResults:!1})},1188:function(e,t,a){"use strict";a.d(t,"a",(function(){return r}));var n=a(7),s=a.n(n),i=a(1106);class r extends s.a.PureComponent{render(){return s.a.createElement("span",this.props,s.a.createElement(i.a,{id:"generic_icons.archive",defaultMessage:"Archive Icon"},e=>s.a.createElement("svg",{width:"14",height:"14",viewBox:"0 0 14 14",role:"img","aria-label":e},s.a.createElement("path",{d:"M8.5 6.5q0-0.203-0.148-0.352t-0.352-0.148h-2q-0.203 0-0.352 0.148t-0.148 0.352 0.148 0.352 0.352 0.148h2q0.203 0 0.352-0.148t0.148-0.352zM13 5v7.5q0 0.203-0.148 0.352t-0.352 0.148h-11q-0.203 0-0.352-0.148t-0.148-0.352v-7.5q0-0.203 0.148-0.352t0.352-0.148h11q0.203 0 0.352 0.148t0.148 0.352zM13.5 1.5v2q0 0.203-0.148 0.352t-0.352 0.148h-12q-0.203 0-0.352-0.148t-0.148-0.352v-2q0-0.203 0.148-0.352t0.352-0.148h12q0.203 0 0.352 0.148t0.148 0.352z"}))))}}},1190:function(e,t,a){"use strict";a.d(t,"d",(function(){return u})),a.d(t,"b",(function(){return p})),a.d(t,"a",(function(){return h})),a.d(t,"c",(function(){return g})),a.d(t,"e",(function(){return b}));a(52);var n=a(5),s=a(36),i=a(173),r=a(13),o=a(20),l=a(95);function c(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function d(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?c(a,!0).forEach((function(t){m(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):c(a).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function m(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function u(e,t){return async(a,n)=>{const l=await a(i.removeUserFromTeam(e,t));return a(Object(o.getUser)(t)),a(i.getTeamStats(e)),a(Object(s.getChannelStats)(Object(r.getCurrentChannelId)(n()))),l}}function p(e,t){return async a=>{const{data:s,error:r}=await a(i.addUserToTeamFromInvite(e,t));if(s){const{data:e}=await a(i.getTeam(s.team_id));return a({type:n.TeamTypes.RECEIVED_MY_TEAM_MEMBER,data:d({},s,{delete_at:0,msg_count:0,mention_count:0})}),{data:e}}return{error:r}}}function h(e,t){return async a=>{const{data:s,error:r}=await a(i.addUserToTeam(e,t));if(s){const{data:e}=await a(i.getTeam(s.team_id));return a({type:n.TeamTypes.RECEIVED_MY_TEAM_MEMBER,data:d({},s,{delete_at:0,msg_count:0,mention_count:0})}),{data:e}}return{error:r}}}function g(e,t){return async(a,n)=>{const{data:o,error:l}=await a(i.addUsersToTeamGracefully(e,t));return l?{error:l}:(a(Object(s.getChannelStats)(Object(r.getCurrentChannelId)(n()))),{data:o})}}function b(e){return(t,a)=>{const n=a(),i=Object(r.getCurrentChannelId)(n);Object(r.isManuallyUnread)(n,i)||t(Object(s.viewChannel)(i)),l.a.push(e)}}},1191:function(e,t,a){"use strict";a.d(t,"a",(function(){return r}));var n=a(7),s=a.n(n),i=a(1106);class r extends s.a.PureComponent{render(){return s.a.createElement("span",this.props,s.a.createElement(i.a,{id:"generic_icons.search",defaultMessage:"Search Icon"},e=>s.a.createElement("svg",{width:"14px",height:"14px",viewBox:"0 0 19 18",role:"img","aria-label":e},s.a.createElement("g",{stroke:"inherit",strokeWidth:"1",fill:"none",fillRule:"evenodd"},s.a.createElement("g",{transform:"translate(-719.000000, -20.000000)",strokeWidth:"1.5"},s.a.createElement("g",{transform:"translate(0.000000, 1.000000)"},s.a.createElement("g",{transform:"translate(63.000000, 10.000000)"},s.a.createElement("g",{transform:"translate(657.000000, 10.000000)"},s.a.createElement("circle",{cx:"7",cy:"7",r:"7"}),s.a.createElement("path",{d:"M12.5,11.5 L16.5,15.5",strokeLinecap:"round"})))))))))}}},1196:function(e,t,a){"use strict";function n(e){return e.views.admin.navigationBlock.blocked}function s(e){return e.views.admin.navigationBlock.showNavigationPrompt}function i(e){return e.views.admin.navigationBlock.onNavigationConfirmed}a.d(t,"a",(function(){return n})),a.d(t,"c",(function(){return s})),a.d(t,"b",(function(){return i}))},1204:function(e,t,a){"use strict";a(60);var n=a(33),s=a.n(n),i=a(7),r=a.n(i),o=a(14);a(1707);function l(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class c extends r.a.PureComponent{render(){const{name:e,url:t,size:a,withHover:n}=this.props,s=n?"":"no-hover",i=t||Object(o.L)({display_name:e});let l;return l=i?r.a.createElement("div",{"data-testid":"teamIconImage",className:"TeamIcon__image TeamIcon__".concat(a),"aria-label":"Team Icon",style:{backgroundImage:"url('".concat(i,"')")}}):r.a.createElement("div",{"data-testid":"teamIconInitial",className:"TeamIcon__initials TeamIcon__initials__".concat(a),"aria-label":"Team Initials"},e?e.replace(/\s/g,"").substring(0,2):"??"),r.a.createElement("div",{className:"TeamIcon ".concat(s," TeamIcon__").concat(a)},r.a.createElement("div",{className:"TeamIcon__content ".concat(s)},l))}}l(c,"propTypes",{url:s.a.string,name:s.a.string.isRequired,size:s.a.oneOf(["sm","md","lg"]),withHover:s.a.bool}),l(c,"defaultProps",{size:"md"}),t.a=c},1208:function(e,t,a){"use strict";a(34);var n=a(33),s=a.n(n),i=a(7),r=a.n(i),o=a(1106),l=a(1221),c=a(0),d=a(1150),m=(a(137),a(14)),u=a(1119);function p(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const h=c.Q.KeyCodes;class g extends r.a.Component{constructor(e){super(e),p(this,"toSelect",-1),p(this,"listRef",r.a.createRef()),p(this,"selectedRef",r.a.createRef()),p(this,"setSelected",e=>{this.setState({selected:e})}),p(this,"handleArrowPress",e=>{if(Object(m.e)(e)&&e.shiftKey)return;const t=this.props.options;if(0===t.length)return;let a;switch(e.key){case h.DOWN[0]:if(-1===this.state.selected){a=0;break}a=Math.min(this.state.selected+1,t.length-1);break;case h.UP[0]:if(-1===this.state.selected){a=0;break}a=Math.max(this.state.selected-1,0);break;default:return}e.preventDefault(),this.setState({selected:a}),this.props.onSelect(t[a])}),p(this,"defaultOptionRenderer",(e,t,a,n)=>{let s="";return t&&(s="more-modal__row--selected"),r.a.createElement("div",{ref:t?"selected":e.value,className:s,key:"multiselectoption"+e.value,onClick:()=>a(e),onMouseMove:function(e){function t(){return e.apply(this,arguments)}return t.toString=function(){return e.toString()},t}(()=>n(e))},e.label)}),p(this,"onMouseMove",e=>{const t=this.props.options.indexOf(e);-1!==t&&this.state.selected!==t&&this.setSelected(t)}),this.state={selected:-1}}componentDidMount(){document.addEventListener("keydown",this.handleArrowPress)}componentWillUnmount(){document.removeEventListener("keydown",this.handleArrowPress)}componentDidUpdate(e,t){const a=this.props.options;if(a&&a.length>0&&this.state.selected>=0&&this.props.onSelect(a[this.state.selected]),t.selected!==this.state.selected&&this.listRef.current&&this.selectedRef.current){const e=this.selectedRef.current.getBoundingClientRect().top,t=this.selectedRef.current.getBoundingClientRect().bottom,a=this.listRef.current.getBoundingClientRect().top;t>this.listRef.current.getBoundingClientRect().bottom?this.selectedRef.current.scrollIntoView(!1):e<a&&this.selectedRef.current.scrollIntoView(!0)}}render(){const e=this.props.options;let t;if(this.props.loading)t=r.a.createElement("div",{"aria-hidden":!0},r.a.createElement(u.a,{position:"absolute",key:"loading"}));else if(null==e||0===e.length)t=r.a.createElement("div",{key:"no-users-found",className:"no-channel-message"},r.a.createElement("p",{className:"primary-message"},r.a.createElement(o.a,{id:"multiselect.list.notFound",defaultMessage:"No items found"})));else{let a;a=this.props.optionRenderer?this.props.optionRenderer:this.defaultOptionRenderer;const n=e.map((e,t)=>a(e,this.state.selected===t,this.props.onAdd,this.onMouseMove)),s=e[this.state.selected],i=this.props.ariaLabelRenderer(s);t=r.a.createElement("div",{className:"more-modal__list"},r.a.createElement("div",{className:"sr-only","aria-live":"polite","aria-atomic":"true"},i),r.a.createElement("div",{ref:"list",id:"multiSelectList",role:"presentation","aria-hidden":!0},n))}return r.a.createElement("div",{className:"multi-select__wrapper","aria-live":"polite"},t)}}function b(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function f(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?b(a,!0).forEach((function(t){_(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):b(a).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function _(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}p(g,"propTypes",{ariaLabelRenderer:s.a.any.isRequired,loading:s.a.bool,onAdd:s.a.func.isRequired,onPageChange:s.a.func,onSelect:s.a.func.isRequired,optionRenderer:s.a.func.isRequired,options:s.a.arrayOf(s.a.any),page:s.a.number.isRequired,perPage:s.a.number}),p(g,"defaultProps",{options:[],perPage:50,onAction:()=>null}),a.d(t,"a",(function(){return v}));const E=c.j.KeyCodes;class v extends r.a.Component{constructor(e){super(e),_(this,"listRef",r.a.createRef()),_(this,"reactSelectRef",r.a.createRef()),_(this,"selected",null),_(this,"handleA11yActivateEvent",()=>{this.setState({a11yActive:!0})}),_(this,"handleA11yDeactivateEvent",()=>{this.setState({a11yActive:!1})}),_(this,"nextPage",()=>{this.props.handlePageChange&&this.props.handlePageChange(this.state.page+1,this.state.page),this.listRef.current&&this.listRef.current.setSelected(0),this.setState({page:this.state.page+1})}),_(this,"prevPage",()=>{0!==this.state.page&&(this.props.handlePageChange&&this.props.handlePageChange(this.state.page-1,this.state.page),this.listRef.current&&this.listRef.current.setSelected(0),this.setState({page:this.state.page-1}))}),_(this,"resetPaging",()=>{this.setState({page:0})}),_(this,"onSelect",e=>{this.selected=e}),_(this,"onAdd",e=>{if(this.props.maxValues&&this.props.values.length>=this.props.maxValues)return;for(let t=0;t<this.props.values.length;t++)if(this.props.values[t].id===e.id)return;this.props.handleAdd(e),this.selected=null,this.reactSelectRef.current&&(this.reactSelectRef.current.select.handleInputChange({currentTarget:{value:""}}),this.onInput(""),this.reactSelectRef.current.focus());const t=this.props.submitImmediatelyOn;t&&t(e)&&this.props.handleSubmit([e])}),_(this,"onInput",(e,t={action:""})=>{t&&"input-blur"!==t.action&&"menu-close"!==t.action&&this.state.input!==e&&(this.setState({input:e}),this.listRef.current&&(""===e?this.listRef.current.setSelected(-1):this.listRef.current.setSelected(0)),this.selected=null,this.props.handleInput(e,this))}),_(this,"onInputKeyDown",e=>{switch(e.key){case E.ENTER[0]:e.preventDefault()}}),_(this,"handleEnterPress",e=>{switch(e.key){case E.ENTER[0]:if(null==this.selected)return void this.props.handleSubmit();this.onAdd(this.selected)}}),_(this,"handleOnClick",e=>{e.preventDefault(),this.props.handleSubmit()}),_(this,"onChange",(e,t)=>{if("remove-value"!==t.action&&"pop-value"!==t.action)return;const a=[...this.props.values];for(let e=0;e<a.length;e++)if(a[e].id===t.removedValue.id){a.splice(e,1);break}this.props.handleDelete(a)}),this.state={a11yActive:!1,page:0,input:""}}componentDidMount(){const e=this.reactSelectRef.current&&this.reactSelectRef.current.select.inputRef;document.addEventListener("keydown",this.handleEnterPress),e&&"function"==typeof e.addEventListener&&(e.addEventListener(c.c.ACTIVATE,this.handleA11yActivateEvent),e.addEventListener(c.c.DEACTIVATE,this.handleA11yDeactivateEvent),this.reactSelectRef.current.focus())}componentWillUnmount(){const e=this.reactSelectRef.current&&this.reactSelectRef.current.select.inputRef;e&&"function"==typeof e.addEventListener&&(e.removeEventListener(c.c.ACTIVATE,this.handleA11yActivateEvent),e.removeEventListener(c.c.DEACTIVATE,this.handleA11yDeactivateEvent)),document.removeEventListener("keydown",this.handleEnterPress)}render(){const e=Object.assign([...this.props.options]),{totalCount:t,users:a,values:n}=this.props;let s,i;this.props.numRemainingText?s=this.props.numRemainingText:null!=this.props.maxValues&&(s=r.a.createElement(o.a,{id:"multiselect.numRemaining",defaultMessage:"You can add {num, number} more. ",values:{num:this.props.maxValues-this.props.values.length}})),this.props.buttonSubmitText?i=this.props.buttonSubmitText:null!=this.props.maxValues&&(i=r.a.createElement(o.a,{id:"multiselect.go",defaultMessage:"Go"}));let c,m,u,p=[];this.props.noteText&&(u=r.a.createElement("div",{className:"multi-select__note"},r.a.createElement("div",{className:"note__icon"},r.a.createElement(o.a,{id:"generic_icons.info",defaultMessage:"Info Icon"},e=>r.a.createElement("span",{className:"fa fa-info",title:e}))),r.a.createElement("div",null,this.props.noteText)));const h={};for(let e=0;e<n.length;e++)h[n[e].id]=!0;for(let t=e.length-1;t>=0;t--)h[e[t].id]&&e.splice(t,1);if(e&&e.length>this.props.perPage){const t=this.state.page*this.props.perPage,a=t+this.props.perPage;p=e.slice(t,a),this.props.loading||(e.length>a&&(c=r.a.createElement("button",{className:"btn btn-link filter-control filter-control__next",onClick:this.nextPage},r.a.createElement(o.a,{id:"filtered_user_list.next",defaultMessage:"Next"}))),this.state.page>0&&(m=r.a.createElement("button",{className:"btn btn-link filter-control filter-control__prev",onClick:this.prevPage},r.a.createElement(o.a,{id:"filtered_user_list.prev",defaultMessage:"Previous"}))))}else p=e;let b;return a&&a.length&&t&&(b=r.a.createElement(o.a,{id:"multiselect.numMembers",defaultMessage:"{memberOptions, number} of {totalCount, number} members",values:{memberOptions:p.length,totalCount:this.props.totalCount}})),r.a.createElement("div",{className:"filtered-user-list"},r.a.createElement("div",{className:"filter-row filter-row--full"},r.a.createElement("div",{className:"multi-select__container"},r.a.createElement(l.b,{id:"selectItems",ref:this.reactSelectRef,isMulti:!0,options:this.props.options,styles:w,components:{Menu:y,IndicatorsContainer:y,MultiValueLabel:C(this.props.valueRenderer)},isClearable:!1,openMenuOnFocus:!1,menuIsOpen:!1,onInputChange:this.onInput,onKeyDown:this.onInputKeyDown,onChange:this.onChange,value:this.props.values,placeholder:this.props.placeholderText,inputValue:this.state.input,getOptionValue:e=>e.id,getOptionLabel:this.props.ariaLabelRenderer,"aria-label":this.props.placeholderText,className:this.state.a11yActive?"multi-select__focused":""}),r.a.createElement(d.a,{id:"saveItems",saving:this.props.saving,disabled:this.props.saving,onClick:this.handleOnClick,defaultMessage:i,savingMessage:this.props.buttonSubmitLoadingText})),r.a.createElement("div",{className:"multi-select__help"},s,b),r.a.createElement("div",{className:"multi-select__help"},u)),r.a.createElement(g,{ref:this.listRef,options:p,optionRenderer:this.props.optionRenderer,ariaLabelRenderer:this.props.ariaLabelRenderer,page:this.state.page,perPage:this.props.perPage,onPageChange:this.props.handlePageChange,onAdd:this.onAdd,onSelect:this.onSelect,loading:this.props.loading}),r.a.createElement("div",{className:"filter-controls"},m,c))}}_(v,"propTypes",{ariaLabelRenderer:s.a.any,buttonSubmitLoadingText:s.a.oneOfType([s.a.element,s.a.string]),buttonSubmitText:s.a.oneOfType([s.a.element,s.a.string]),handleAdd:s.a.func.isRequired,handleDelete:s.a.func.isRequired,handleInput:s.a.func.isRequired,handlePageChange:s.a.func,handleSubmit:s.a.func.isRequired,loading:s.a.bool,maxValues:s.a.number,noteText:s.a.element,numRemainingText:s.a.element,optionRenderer:s.a.func.isRequired,options:s.a.arrayOf(s.a.shape({deleteAt:s.a.number,display_name:s.a.string,id:s.a.string.isRequired,label:s.a.string.isRequired,scheme_id:s.a.string,value:s.a.string.isRequired})).isRequired,perPage:s.a.number.isRequired,placeholderText:s.a.string,saving:s.a.bool,submitImmediatelyOn:s.a.func,totalCount:s.a.number,users:s.a.array,valueRenderer:s.a.any.isRequired,values:s.a.arrayOf(s.a.shape({deleteAt:s.a.number,display_name:s.a.string,id:s.a.string.isRequired,label:s.a.string.isRequired,scheme_id:s.a.string,value:s.a.string.isRequired})).isRequired}),_(v,"defaultProps",{ariaLabelRenderer:function(e){if(!e)return null;return e.label}});const y=()=>null,C=e=>t=>r.a.createElement("div",{style:{paddingRight:"5px",paddingLeft:"5px",borderRight:"1px solid rgba(0, 126, 255, 0.24)"}},r.a.createElement(e,t)),w={container:()=>({display:"table-cell",paddingRight:"15px",verticalAlign:"top",width:"100%"}),control:e=>f({},e,{borderRadius:"1px",borderColor:"hsl(0,0%,80%)",minHeight:"36px","&:hover":{},boxShadow:"",backgroundColor:"hsl(0,0%,100%)"}),multiValue:e=>f({},e,{whiteSpace:"nowrap",border:"1px solid rgba(0, 126, 255, 0.24)",backgroundColor:"rgba(0, 126, 255, 0.08)",color:"#007eff"}),multiValueRemove:e=>f({},e,{":hover":{backgroundColor:"rgba(0, 126, 255, 0.15)"}})}},1209:function(e,t,a){"use strict";a.d(t,"c",(function(){return s})),a.d(t,"b",(function(){return i})),a.d(t,"a",(function(){return r}));var n=a(0);const s=()=>e=>e({type:n.f.TOGGLE_LHS}),i=()=>e=>e({type:n.f.OPEN_LHS}),r=()=>e=>e({type:n.f.CLOSE_LHS})},1210:function(e,t,a){"use strict";(function(e){a.d(t,"b",(function(){return Y})),a.d(t,"a",(function(){return K})),a.d(t,"d",(function(){return J})),a.d(t,"i",(function(){return Z})),a.d(t,"c",(function(){return X})),a.d(t,"f",(function(){return te})),a.d(t,"g",(function(){return ae})),a.d(t,"e",(function(){return ne})),a.d(t,"j",(function(){return se})),a.d(t,"h",(function(){return ie}));a(52),a(137),a(113),a(60),a(98),a(99),a(34),a(592);var n=a(81),s=a(5),i=a(12),r=a(36),o=a(140),l=a(593),c=a(31),d=a(41),m=a(173),u=a(20),p=a(18),h=a(10),g=a(16),b=a(15),f=a(13),_=a(29),E=a(61),v=a(39),y=a(1125),C=a(1498),w=a(174),O=a(1147),T=a(95),S=a(1148),P=a(1120),M=a(313),I=a(118),N=a(176),j=a(11),A=a(1348),R=a(1490),k=a(0),L=a(312),D=a(172),x=a(14),U=a(1951),q=a(1484);function H(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function F(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?H(a,!0).forEach((function(t){B(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):H(a).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function B(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const G=j.a.dispatch,V=j.a.getState,W=7,z={};function Y(){if(!window.WebSocket)return void console.log("Browser does not support websocket");const e=Object(b.getConfig)(V());let t="";e.WebsocketURL?t=e.WebsocketURL:("https:"===(t=new URL(Object(D.e)())).protocol?t.protocol="wss:":t.protocol="ws:",/:\d+$/.test(t.host)||("wss:"===t.protocol?t.host+=":"+e.WebsocketSecurePort:t.host+=":"+e.WebsocketPort),t=t.toString()),t.length>0&&"/"===t[t.length-1]&&(t=t.substring(0,t.length-1)),t+=p.Client4.getUrlVersion()+"/websocket",A.a.setEventCallback(le),A.a.setFirstConnectCallback(re),A.a.setReconnectCallback(()=>X(!1)),A.a.setMissedEventCallback(()=>X(!1)),A.a.setCloseCallback(oe),A.a.initialize(t)}function K(){A.a.close()}const Q={};function J(e,t){Q[e]=t}function Z(e){Reflect.deleteProperty(Q,e)}function X(e=!0){e&&(K(),Y()),G({type:s.GeneralTypes.WEBSOCKET_SUCCESS,timestamp:Date.now()}),Object(R.c)(),Object.values(Q).forEach(e=>{e&&"function"==typeof e&&e()});const t=V();if(t.entities.teams.currentTeamId){const e=Object(f.getCurrentChannelId)(t),a=Object(_.getMostRecentPostIdInChannel)(t,e),n=Object(_.getPost)(t,a);G(Object(S.d)()),G(n?Object(O.n)(e,n.create_at):Object(c.getPosts)(e)),I.a(),G(m.getMyTeamUnreads())}t.websocket.lastDisconnectAt&&G(Object(u.checkForModifiedUsers)()),G(Object(C.b)()),G(Object(d.clearErrors)())}let $="";const ee=9e5;function te(){clearInterval($),$=setInterval(()=>{null!=Object(h.getCurrentUser)(V())&&X(!1)},ee)}function ae(){clearInterval($)}function ne(e,t,a){z[e]||(z[e]={}),z[e][t]=a}function se(e,t){const a=z[e];a&&Reflect.deleteProperty(a,t)}function ie(e){Reflect.deleteProperty(z,e)}function re(){G(Object(n.batchActions)([{type:s.GeneralTypes.WEBSOCKET_SUCCESS,timestamp:Date.now()},Object(d.clearErrors)()]))}function oe(e){e>W&&G(Object(d.logError)({type:"critical",message:k.h.WEBSOCKET_PORT_ERROR},!0)),G(Object(n.batchActions)([{type:s.GeneralTypes.WEBSOCKET_FAILURE,timestamp:Date.now()},Object(C.a)()]))}function le(t){switch(t.event){case k.G.POSTED:case k.G.EPHEMERAL_MESSAGE:ce(t);break;case k.G.POST_EDITED:!function(e){const t=JSON.parse(e.data.post);G(Object(c.receivedPost)(t)),Object(c.getProfilesAndStatusesForPosts)([t],G,V);const a=Object(f.getCurrentChannelId)(V());a===e.broadcast.channel_id&&window.isActive&&G(Object(r.viewChannel)(a))}(t);break;case k.G.POST_DELETED:!function(e){const t=JSON.parse(e.data.post);G(Object(c.postDeleted)(t))}(t);break;case k.G.POST_UNREAD:!function(e){G({type:k.f.POST_UNREAD_SUCCESS,data:{lastViewedAt:e.data.last_viewed_at,channelId:e.broadcast.channel_id,msgCount:e.data.msg_count,mentionCount:e.data.mention_count}})}(t);break;case k.G.LEAVE_TEAM:!function(t){const a=V(),i=[{type:s.UserTypes.RECEIVED_PROFILE_NOT_IN_TEAM,data:{id:t.data.team_id,user_id:t.data.user_id}},{type:s.TeamTypes.REMOVE_MEMBER_FROM_TEAM,data:{team_id:t.data.team_id,user_id:t.data.user_id}}],r=Object(f.getChannelsInTeam)(a),o=r&&r[t.data.team_id]||[];for(const e of o)i.push({type:s.ChannelTypes.REMOVE_MEMBER_FROM_CHANNEL,data:{id:e,user_id:t.data.user_id}});G(Object(n.batchActions)(i)),Object(h.getCurrentUserId)(a)===t.data.user_id&&(G({type:s.TeamTypes.LEAVE_TEAM,data:{id:t.data.team_id}}),Object(g.getCurrentTeamId)(a)===t.data.team_id&&(e.location.pathname.startsWith("/admin_console")||Object(P.f)()))}(t);break;case k.G.UPDATE_TEAM:!function(e){G({type:s.TeamTypes.UPDATED_TEAM,data:JSON.parse(e.data.team)})}(t);break;case k.G.DELETE_TEAM:!function(e){const t=JSON.parse(e.data.team),a=j.a.getState(),{teams:i}=a.entities.teams;if(t&&i&&i[t.id]&&0===i[t.id].delete_at){const{currentUserId:e}=a.entities.users,{currentTeamId:i,myMembers:r}=a.entities.teams,o=Object.values(r),l=o.find(t=>t.user_id===e&&t.team_id===i);let c="";if(t&&l&&t.id===l.team_id){const e={};Object(g.getMyTeams)(a).forEach(t=>{e[t.id]=t});for(let a=0;a<o.length;a++){const n=o[a].team_id;if(e&&e[n]&&0===e[n].delete_at&&t.id!==n){c=n;break}}}if(G(Object(n.batchActions)([{type:s.TeamTypes.RECEIVED_TEAM_DELETED,data:{id:t.id}},{type:s.TeamTypes.UPDATED_TEAM,data:t}])),c){G({type:s.TeamTypes.SELECT_TEAM,data:c});const e=V(),t=Object(f.getRedirectChannelNameForTeam)(e,c);T.a.push("".concat(Object(g.getCurrentTeamUrl)(e),"/channels/").concat(t))}else T.a.push("/")}}(t);break;case k.G.ADDED_TO_TEAM:!async function(e){await G(m.getTeam(e.data.team_id)),await G(m.getMyTeamMembers()),await G(m.getMyTeamUnreads())}(t);break;case k.G.USER_ADDED:!function(e){const t=Object(f.getCurrentChannelId)(V());t===e.broadcast.channel_id&&(G(Object(r.getChannelStats)(t)),G({type:s.UserTypes.RECEIVED_PROFILE_IN_CHANNEL,data:{id:e.broadcast.channel_id,user_id:e.data.user_id}}));const a=Object(g.getCurrentTeamId)(V()),n=Object(h.getCurrentUserId)(V());a===e.data.team_id&&n===e.data.user_id&&G(Object(r.getChannelAndMyMember)(e.broadcast.channel_id))}(t);break;case k.G.USER_REMOVED:!function(e){const t=V(),a=Object(f.getCurrentChannel)(t)||{},o=Object(h.getCurrentUserId)(t);if(e.broadcast.user_id===o){G(Object(S.d)());const n=Object(v.n)(t);if(e.data.channel_id===n&&G(Object(w.b)()),e.data.channel_id===a.id)if(e.data.remover_id===e.broadcast.user_id)T.a.push(Object(g.getCurrentRelativeTeamUrl)(t));else{Object(h.getUser)(t,e.data.remover_id)||G(Object(u.getUser)(e.data.remover_id)),G(Object(y.b)({modalId:k.u.REMOVED_FROM_CHANNEL,dialogType:U.a,dialogProps:{channelName:a.display_name,removerId:e.data.remover_id}})),Object(P.f)()}G({type:s.ChannelTypes.LEAVE_CHANNEL,data:{id:e.data.channel_id,user_id:e.broadcast.user_id}})}else e.broadcast.channel_id===a.id&&(G(Object(r.getChannelStats)(a.id)),G({type:s.UserTypes.RECEIVED_PROFILE_NOT_IN_CHANNEL,data:{id:e.broadcast.channel_id,user_id:e.data.user_id}}));const l=e.broadcast.channel_id||e.data.channel_id,c=e.broadcast.user_id||e.data.user_id,d=Object(f.getChannel)(t,l);!d||Object(E.haveISystemPermission)(t,{permission:i.Permissions.VIEW_MEMBERS})||Object(E.haveITeamPermission)(t,{permission:i.Permissions.VIEW_MEMBERS,team:d.team_id})||G(Object(n.batchActions)([{type:s.UserTypes.RECEIVED_PROFILE_NOT_IN_TEAM,data:{id:d.team_id,user_id:c}},{type:s.TeamTypes.REMOVE_MEMBER_FROM_TEAM,data:{team_id:d.team_id,user_id:c}}]))}(t);break;case k.G.USER_UPDATED:!async function(e){const t=V(),a=Object(h.getCurrentUser)(t),n=e.data.user;if(Object(x.V)(n)){let e=Object(f.getMembersInCurrentChannel)(t);const a=Object(f.getCurrentChannelId)(t);e&&e[n.id]?G(Object(r.getChannelStats)(a)):(await G(Object(r.getChannelMember)(a,n.id)),(e=Object(f.getMembersInCurrentChannel)(V()))&&e[n.id]&&G(Object(r.getChannelStats)(a)))}a.id===n.id?n.update_at>a.update_at&&Object(u.getMe)()(G,V):G({type:s.UserTypes.RECEIVED_PROFILE,data:n})}(t);break;case k.G.ROLE_ADDED:!function(e){const t=JSON.parse(e.data.role);G({type:s.RoleTypes.RECEIVED_ROLE,data:t})}(t);break;case k.G.ROLE_REMOVED:!function(e){const t=JSON.parse(e.data.role);G({type:s.RoleTypes.ROLE_DELETED,data:t})}(t);break;case k.G.MEMBERROLE_UPDATED:!function(e){const t=JSON.parse(e.data.member),a=t.roles.split(" ");G(Object(o.loadRolesIfNeeded)(a)),G({type:s.TeamTypes.RECEIVED_MY_TEAM_MEMBER,data:t})}(t);break;case k.G.ROLE_UPDATED:!function(e){const t=JSON.parse(e.data.role);G({type:s.RoleTypes.RECEIVED_ROLE,data:t})}(t);break;case k.G.CHANNEL_CREATED:!function(e){const t=e.data.channel_id,a=e.data.team_id,n=V();Object(g.getCurrentTeamId)(n)!==a||Object(f.getChannel)(n,t)||G(Object(r.getChannelAndMyMember)(t))}(t);break;case k.G.CHANNEL_DELETED:!function(e){const t=V(),a="true"===Object(b.getConfig)(t).ExperimentalViewArchivedChannels;if(Object(f.getCurrentChannelId)(t)===e.data.channel_id&&!a){const e=Object(g.getCurrentRelativeTeamUrl)(t),a=Object(g.getCurrentTeamId)(t),n=Object(f.getRedirectChannelNameForTeam)(t,a);T.a.push(e+"/channels/"+n)}G({type:s.ChannelTypes.RECEIVED_CHANNEL_DELETED,data:{id:e.data.channel_id,team_id:e.broadcast.team_id,deleteAt:e.data.delete_at,viewArchivedChannels:a}})}(t);break;case k.G.CHANNEL_CONVERTED:!function(e){const t=e.data.channel_id;if(t){const e=Object(f.getChannel)(V(),t);e&&G({type:s.ChannelTypes.RECEIVED_CHANNEL,data:F({},e,{type:i.General.PRIVATE_CHANNEL})})}}(t);break;case k.G.CHANNEL_UPDATED:G(function(e){return(t,a)=>{const n=JSON.parse(e.data.channel);t({type:s.ChannelTypes.RECEIVED_CHANNEL,data:n});const i=a();n.id===Object(f.getCurrentChannelId)(i)&&T.a.replace("".concat(Object(g.getCurrentRelativeTeamUrl)(i),"/channels/").concat(n.name))}}(t));break;case k.G.CHANNEL_MEMBER_UPDATED:!function(e){const t=JSON.parse(e.data.channelMember),a=t.roles.split(" ");G(Object(o.loadRolesIfNeeded)(a)),G({type:s.ChannelTypes.RECEIVED_MY_CHANNEL_MEMBER,data:t})}(t);break;case k.G.DIRECT_ADDED:!function(e){G(Object(r.getChannelAndMyMember)(e.broadcast.channel_id))}(t);break;case k.G.PREFERENCE_CHANGED:!function(e){const t=JSON.parse(e.data.preference);G({type:s.PreferenceTypes.RECEIVED_PREFERENCES,data:[t]}),de(t)&&Object(N.j)()}(t);break;case k.G.PREFERENCES_CHANGED:!function(e){const t=JSON.parse(e.data.preferences);G({type:s.PreferenceTypes.RECEIVED_PREFERENCES,data:t}),-1!==t.findIndex(de)&&Object(N.j)()}(t);break;case k.G.PREFERENCES_DELETED:!function(e){const t=JSON.parse(e.data.preferences);G({type:s.PreferenceTypes.DELETED_PREFERENCES,data:t})}(t);break;case k.G.TYPING:G(function(e){return(t,a)=>{const n=a(),s=Object(b.getConfig)(n),r=Object(h.getCurrentUserId)(n),o=e.data.user_id,l={id:e.broadcast.channel_id+e.data.parent_id,userId:o,now:Date.now()};t({type:i.WebsocketEvents.TYPING,data:l}),setTimeout(()=>{t({type:i.WebsocketEvents.STOP_TYPING,data:l})},parseInt(s.TimeBetweenUserTypingUpdatesMilliseconds,10)),o!==r&&t(Object(u.getMissingProfilesByIds)([o])),Object(h.getStatusForUserId)(n,o)!==i.General.ONLINE&&t(Object(u.getStatusesByIds)([o]))}}(t));break;case k.G.STATUS_CHANGED:!function(e){G({type:s.UserTypes.RECEIVED_STATUSES,data:[{user_id:e.data.user_id,status:e.data.status}]})}(t);break;case k.G.HELLO:!function(e){Object(l.setServerVersion)(e.data.server_version)(G,V)}(t);break;case k.G.REACTION_ADDED:!function(e){const t=JSON.parse(e.data.reaction);G(Object(c.getCustomEmojiForReaction)(t.emoji_name)),G({type:s.PostTypes.RECEIVED_REACTION,data:t})}(t);break;case k.G.REACTION_REMOVED:!function(e){const t=JSON.parse(e.data.reaction);G({type:s.PostTypes.REACTION_DELETED,data:t})}(t);break;case k.G.EMOJI_ADDED:!function(e){const t=JSON.parse(e.data.emoji);G({type:s.EmojiTypes.RECEIVED_CUSTOM_EMOJI,data:t})}(t);break;case k.G.CHANNEL_VIEWED:!function(e){window.isActive&&Object(f.getCurrentChannelId)(V())===e.data.channel_id||Object(h.getCurrentUserId)(V())!==e.broadcast.user_id||G(Object(r.markChannelAsRead)(e.data.channel_id,"",!1))}(t);break;case k.G.PLUGIN_ENABLED:!function(e){const t=e.data.manifest;Object(R.b)(t).catch(e=>{console.error(e.message)})}(t);break;case k.G.PLUGIN_DISABLED:!function(e){const t=e.data.manifest;Object(R.d)(t)}(t);break;case k.G.USER_ROLE_UPDATED:!function(t){const a=j.a.getState().entities.users.profiles[t.data.user_id];if(a){const n=t.data.roles,i=n.split(" "),r=a.roles.includes(k.j.PERMISSIONS_SYSTEM_ADMIN)&&!n.includes(k.j.PERMISSIONS_SYSTEM_ADMIN);j.a.dispatch({type:s.UserTypes.RECEIVED_PROFILE,data:F({},a,{roles:n})}),G(Object(o.loadRolesIfNeeded)(i)),r&&e.location.pathname.startsWith("/admin_console")&&Object(P.f)()}}(t);break;case k.G.CONFIG_CHANGED:!function(e){j.a.dispatch({type:s.GeneralTypes.CLIENT_CONFIG_RECEIVED,data:e.data.config})}(t);break;case k.G.LICENSE_CHANGED:!function(e){j.a.dispatch({type:s.GeneralTypes.CLIENT_LICENSE_RECEIVED,data:e.data.license})}(t);break;case k.G.PLUGIN_STATUSES_CHANGED:!function(e){j.a.dispatch({type:s.AdminTypes.RECEIVED_PLUGIN_STATUSES,data:e.data.plugin_statuses})}(t);break;case k.G.OPEN_DIALOG:!function(e){const t=e.data&&e.data.dialog||{},a=JSON.parse(t);j.a.dispatch({type:s.IntegrationTypes.RECEIVED_DIALOG,data:a});const n=V().entities.integrations.dialogTriggerId;if(a.trigger_id!==n)return;j.a.dispatch(Object(y.b)({modalId:k.u.INTERACTIVE_DIALOG,dialogType:q.a}))}(t)}Object.values(z).forEach(e=>{e&&e.hasOwnProperty(t.event)&&"function"==typeof e[t.event]&&e[t.event](t)})}const ce=function(e){let t,a=[],i=0;const r=()=>{t=null,a.length>0&&G(function(e){return(t,a)=>{const s=e.map(e=>JSON.parse(e.data.post)),i=s.map(c.receivedNewPost);t(Object(n.batchActions)(i)),t(Object(c.getThreadsForPosts)(s)),Object(c.getProfilesAndStatusesForPosts)(s,t,a)}}(a)),a=[],i=0};return function(n){t&&i>2?(a.push(n)>200&&(a=[],console.log("channel broken because of too many incoming messages")),clearTimeout(t),t=setTimeout(r,e)):(i+=1,G(function(e){return(t,a)=>{const n=JSON.parse(e.data.post);t(Object(M.e)(n,e)),Object(c.getProfilesAndStatusesForPosts)([n],t,a),n.user_id===Object(h.getCurrentUserId)(a())||Object(L.e)(n)||Object(h.getIsManualStatusForUserId)(a(),n.user_id)||t({type:s.UserTypes.RECEIVED_STATUSES,data:[{user_id:n.user_id,status:k.O.ONLINE}]})}}(n)),clearTimeout(t),t=setTimeout(r,e))}}(100);function de(e){return e.category===k.j.Preferences.CATEGORY_DIRECT_CHANNEL_SHOW&&"true"===e.value}}).call(this,a(24))},1213:function(e,t,a){"use strict";var n=a(95),s=a(111),i=a(80),r=a(11),o=a(0),l=a(14);const c=r.a.dispatch,d=r.a.getState;var m=new class{setItem(e,t){c(i.f(e,t))}getItem(e,t){return s.d(e,t)(d())}removeItem(e){c(i.d(e))}setGlobalItem(e,t){c(i.e(e,t))}getGlobalItem(e,t=null){return s.c(e,t)(d())}removeGlobalItem(e){c(i.c(e))}signalLogout(){if(this.isLocalStorageSupported()){const e=l.o();l.lb(o.I.ANNOUNCEMENT),sessionStorage.setItem(o.I.LOGOUT,e),localStorage.setItem(o.I.LOGOUT,e),localStorage.removeItem(o.I.LOGOUT)}}isSignallingLogout(e){return e===sessionStorage.getItem(o.I.LOGOUT)}signalLogin(){if(this.isLocalStorageSupported()){const e=l.o();sessionStorage.setItem(o.I.LOGIN,e),localStorage.setItem(o.I.LOGIN,e),localStorage.removeItem(o.I.LOGIN)}}isSignallingLogin(e){return e===sessionStorage.getItem(o.I.LOGIN)}clear(e){c(i.b(e))}isLocalStorageSupported(){if(this.hasCheckedLocalStorage)return this.localStorageSupported;this.localStorageSupported=!1;try{localStorage.setItem("__testLocal__","1"),"1"===localStorage.getItem("__testLocal__")&&(this.localStorageSupported=!0),localStorage.removeItem("__testLocal__","1")}catch(e){this.localStorageSupported=!1}try{sessionStorage.setItem("__testSession__","1"),sessionStorage.removeItem("__testSession__")}catch(e){n.a.push("/error?type="+o.l.LOCAL_STORAGE)}return this.hasCheckedLocalStorage=!0,this.localStorageSupported}hasSeenLandingPage(){return localStorage.getItem(o.I.LANDING_PAGE_SEEN)}setLandingPageSeen(e){localStorage.setItem(o.I.LANDING_PAGE_SEEN,e)}getLandingPreference(e){return localStorage.getItem(o.I.LANDING_PREFERENCE+String(e))}setLandingPreferenceToMattermostApp(e){localStorage.setItem(o.I.LANDING_PREFERENCE+String(e),o.s.MATTERMOSTAPP)}setLandingPreferenceToBrowser(e){localStorage.setItem(o.I.LANDING_PREFERENCE+String(e),o.s.BROWSER)}clearLandingPreference(e){localStorage.removeItem(o.I.LANDING_PREFERENCE+String(e))}};t.a=m},1214:function(e,t,a){"use strict";function n(e,t){return e?e.filter(e=>e&&!e.delete_at>0&&null!=e.display_name).sort((e,a)=>(function(e,t,a){return t.display_name!==a.display_name?t.display_name.localeCompare(a.display_name,e,{numeric:!0}):t.name.localeCompare(a.name,e,{numeric:!0})})(t,e,a)):[]}a.d(t,"a",(function(){return n}))},1215:function(e,t,a){"use strict";a.d(t,"a",(function(){return c}));var n=a(33),s=a.n(n),i=a(7),r=a.n(i);a(1370);function o(e,t){if(null==e)return{};var a,n,s=function(e,t){if(null==e)return{};var a,n,s={},i=Object.keys(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||(s[a]=e[a]);return s}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(s[a]=e[a])}return s}function l(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function c(e){class t extends r.a.PureComponent{render(){const t=this.props,{id:a,show:n,icon:s,text:i}=t,l=o(t,["id","show","icon","text"]);if(!n)return null;let c=i;return s&&(c=r.a.createElement(r.a.Fragment,null,r.a.createElement("span",{className:"icon"},s),i)),r.a.createElement("li",{className:"MenuItem",role:"menuitem",id:a},r.a.createElement(e,Object.assign({text:c},l)))}}return l(t,"propTypes",{show:s.a.bool,id:s.a.string,icon:s.a.node,text:s.a.string}),l(t,"defaultProps",{show:!0}),l(t,"displayName",void 0),t}},1218:function(e,t,a){"use strict";a.d(t,"a",(function(){return u}));var n=a(33),s=a.n(n),i=a(7),r=a.n(i),o=a(14),l=a(1393);function c(e,t){if(null==e)return{};var a,n,s=function(e,t){if(null==e)return{};var a,n,s={},i=Object.keys(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||(s[a]=e[a]);return s}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(s[a]=e[a])}return s}function d(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const m=48;class u extends r.a.PureComponent{constructor(e){super(e),d(this,"dimensionsAvailable",e=>e&&e.width&&e.height),d(this,"isSmallImage",(e,t)=>e<m||t<m),d(this,"handleLoad",e=>{if(this.mounted){const t=e.target,a=this.isSmallImage(t.naturalWidth,t.naturalHeight);this.setState({loaded:!0,error:!1,isSmallImage:a,imageWidth:t.naturalWidth},()=>{this.props.onImageLoaded&&t.naturalHeight&&this.props.onImageLoaded({height:t.naturalHeight,width:t.naturalWidth})})}}),d(this,"handleError",()=>{this.mounted&&(this.props.onImageLoadFail&&this.props.onImageLoadFail(),this.setState({error:!0}))}),d(this,"onEnterKeyDown",e=>{"Enter"===e.key&&this.props.onClick(e)}),d(this,"renderImageLoaderIfNeeded",()=>this.state.loaded||!this.props.showLoader||this.state.error?null:r.a.createElement("div",{style:{position:"absolute",top:"50%",transform:"translate(-50%, -50%)",left:"50%"}},r.a.createElement(l.a,{containerClass:"file__image-loading"}))),d(this,"renderImageWithContainerIfNeeded",()=>{const e=this.props,{fileInfo:t,src:a}=e,n=c(e,["fileInfo","src"]);Reflect.deleteProperty(n,"showLoader"),Reflect.deleteProperty(n,"onImageLoaded"),Reflect.deleteProperty(n,"onImageLoadFail"),Reflect.deleteProperty(n,"dimensions"),Reflect.deleteProperty(n,"handleSmallImageContainer");let s=Object(o.gb)("file_attachment.thumbnail","file thumbnail");t&&(s+=" ".concat(t.name).toLowerCase());const i=r.a.createElement("img",Object.assign({},n,{"aria-label":s,tabIndex:"0",onKeyDown:this.onEnterKeyDown,className:this.props.className+(this.props.handleSmallImageContainer&&this.state.isSmallImage?" small-image--inside-container":""),src:a,onError:this.handleError,onLoad:this.handleLoad}));if(this.props.handleSmallImageContainer&&this.state.isSmallImage){let e="small-image__container cursor--pointer a11y--active";return this.state.imageWidth<m&&(e+=" small-image__container--min-width"),r.a.createElement("div",{onClick:this.props.onClick,className:e,style:this.state.imageWidth>m?{width:this.state.imageWidth+2}:{}},i)}return i}),d(this,"renderImageOrPlaceholder",()=>{const{dimensions:e}=this.props;let t;this.dimensionsAvailable(e)&&!this.state.loaded&&(t=r.a.createElement("div",{className:"image-loading__container ".concat(this.props.className),style:{maxWidth:e.width}},this.renderImageLoaderIfNeeded(),r.a.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 ".concat(e.width," ").concat(e.height),style:{maxHeight:e.height,maxWidth:e.width,verticalAlign:"middle"}})));const a=!this.dimensionsAvailable(e)||this.state.loaded;return r.a.createElement(r.a.Fragment,null,t,r.a.createElement("div",{className:"file-preview__button",style:{display:a?"initial":"none"}},this.renderImageWithContainerIfNeeded()))});const{dimensions:t}=e;this.state={loaded:!1,isSmallImage:!!this.dimensionsAvailable(t)&&this.isSmallImage(t.width,t.height)},this.heightTimeout=0}componentDidMount(){this.mounted=!0}componentWillUnmount(){this.mounted=!1}render(){return this.renderImageOrPlaceholder()}}d(u,"propTypes",{src:s.a.string.isRequired,dimensions:s.a.object,fileInfo:s.a.object,showLoader:s.a.bool,onImageLoaded:s.a.func,onImageLoadFail:s.a.func,onClick:s.a.func,className:s.a.string,handleSmallImageContainer:s.a.bool})},1220:function(e,t,a){"use strict";a.d(t,"a",(function(){return r}));var n=a(7),s=a.n(n),i=a(1106);class r extends s.a.PureComponent{render(){return s.a.createElement(i.a,{id:"generic_icons.success",defaultMessage:"Success Icon"},e=>s.a.createElement("i",{className:"fa fa-check",title:e}))}}},1222:function(e,t,a){"use strict";a.d(t,"a",(function(){return r}));var n=a(7),s=a.n(n),i=a(1106);class r extends s.a.PureComponent{render(){return s.a.createElement(i.a,{id:"generic_icons.back",defaultMessage:"Back Icon"},e=>s.a.createElement("i",{className:"fa fa-angle-left",title:e}))}}},1224:function(e,t,a){"use strict";a.d(t,"a",(function(){return r}));var n=a(7),s=a.n(n),i=a(1106);class r extends s.a.PureComponent{render(){return s.a.createElement(i.a,{id:"generic_icons.add",defaultMessage:"Add Icon"},e=>s.a.createElement("i",{className:"fa fa-plus",title:e}))}}},1225:function(e,t,a){"use strict";a.d(t,"a",(function(){return c}));var n=a(33),s=a.n(n),i=a(7),r=a.n(i);function o(e,t){if(null==e)return{};var a,n,s=function(e,t){if(null==e)return{};var a,n,s={},i=Object.keys(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||(s[a]=e[a]);return s}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(s[a]=e[a])}return s}function l(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class c extends r.a.Component{constructor(e){super(e),l(this,"show",e=>{e&&e.preventDefault(),this.setState({show:!0})}),l(this,"hide",()=>{this.setState({show:!1})}),this.state={show:!1}}render(){const e=this.props,{children:t,dialogType:a,dialogProps:n,onClick:s}=e,i=o(e,["children","dialogType","dialogProps","onClick"]);let l,c=this.show;return s&&(c=e=>{s(),this.show(e)}),this.state.show&&(l=r.a.createElement(a,Object.assign({},n,{onHide:()=>{this.hide(),n.onHide&&n.onHide()}}))),r.a.createElement("button",Object.assign({},i,{className:"style--none "+i.className,onClick:c,"data-testid":"add-group"}),t,l)}}c.propTypes={children:s.a.node.isRequired,dialogType:s.a.func.isRequired,dialogProps:s.a.object,onClick:s.a.func,className:s.a.string},c.defaultProps={dialogProps:{},className:""}},1237:function(e,t,a){"use strict";var n=a(33),s=a.n(n),i=a(7),r=a.n(i),o=a(1106);class l extends r.a.PureComponent{render(){return r.a.createElement("span",this.props,r.a.createElement(o.a,{id:"mobile.set_status.away.icon",defaultMessage:"Away Icon"},e=>r.a.createElement("svg",{width:"13px",height:"13px",viewBox:"0 0 12 12",style:c,role:"img","aria-label":e},r.a.createElement("path",{className:"away--icon",d:"M9.081,5.712C9.267,5.712 9.417,5.863 9.417,6.048L9.417,9.086L11.864,10.499C12.025,10.592 12.08,10.797 11.987,10.958L11.482,11.832C11.39,11.993 11.184,12.048 11.023,11.955L7.904,10.154C7.788,10.087 7.727,9.961 7.737,9.836C7.736,9.827 7.736,9.818 7.736,9.809L7.736,6.048C7.736,5.863 7.886,5.712 8.072,5.712L9.081,5.712ZM4.812,11.513L4.605,11.513C2.325,11.41 0.253,10.374 0.046,9.027C-0.058,8.923 0.046,8.509 0.046,8.405C0.15,7.576 0.357,6.437 0.771,5.815C0.978,5.401 2.015,5.297 2.015,5.297C2.015,5.297 2.015,7.369 4.605,7.369L5.019,7.369C4.915,7.784 4.812,8.198 4.812,8.612C4.812,9.648 5.226,10.581 5.848,11.41C5.537,11.513 5.123,11.513 4.812,11.513ZM4.605,0.117C6.034,0.117 7.195,1.277 7.195,2.707C7.195,4.136 6.034,5.297 4.605,5.297C3.175,5.297 2.015,4.136 2.015,2.707C2.015,1.277 3.175,0.117 4.605,0.117Z"}))))}}const c={fillRule:"evenodd",clipRule:"evenodd",strokeLinejoin:"round",strokeMiterlimit:1.41421};class d extends r.a.PureComponent{render(){return r.a.createElement("span",this.props,r.a.createElement(o.a,{id:"mobile.set_status.away.icon",defaultMessage:"Away Icon"},e=>r.a.createElement("svg",{width:"100%",height:"100%",viewBox:"0 0 20 20",style:m,role:"img","aria-label":e},r.a.createElement("path",{className:"away--icon",d:"M10,0C15.519,0 20,4.481 20,10C20,15.519 15.519,20 10,20C4.481,20 0,15.519 0,10C0,4.481 4.481,0 10,0ZM10.27,3C10.949,3 11.5,3.586 11.5,4.307L11.5,9.379L15.002,12.881C15.492,13.37 15.499,14.158 15.019,14.638L14.638,15.019C14.158,15.499 13.37,15.492 12.881,15.002L8.887,11.008C8.739,10.861 8.636,10.686 8.576,10.501C8.528,10.402 8.5,10.299 8.5,10.193L8.5,4.307C8.5,3.586 9.051,3 9.73,3L10.27,3Z"}))))}}const m={fillRule:"evenodd",clipRule:"evenodd",strokeLinejoin:"round",strokeMiterlimit:1.41421};class u extends r.a.PureComponent{render(){return r.a.createElement("span",this.props,r.a.createElement(o.a,{id:"mobile.set_status.dnd.icon",defaultMessage:"Do Not Disturb Icon"},e=>r.a.createElement("svg",{x:"0px",y:"0px",width:"13px",height:"13px",viewBox:"-299 391 12 12",style:p,role:"img","aria-label":e},r.a.createElement("g",null,r.a.createElement("ellipse",{className:"dnd--icon",cx:"-294.6",cy:"394",rx:"2.5",ry:"2.5"}),r.a.createElement("path",{className:"dnd--icon",d:"M-293.8,399.4c0-0.4,0.1-0.7,0.2-1c-0.3,0.1-0.6,0.2-1,0.2c-2.5,0-2.5-2-2.5-2s-1,0.1-1.2,0.5c-0.4,0.6-0.6,1.7-0.7,2.5 c0,0.1-0.1,0.5,0,0.6c0.2,1.3,2.2,2.3,4.4,2.4c0,0,0.1,0,0.1,0c0,0,0.1,0,0.1,0c0.7,0,1.4-0.1,2-0.3 C-293.3,401.5-293.8,400.5-293.8,399.4z"})),r.a.createElement("path",{className:"dnd--icon",d:"M-287,400c0,0.1-0.1,0.1-0.1,0.1l-4.9,0c-0.1,0-0.1-0.1-0.1-0.1v-1.6c0-0.1,0.1-0.1,0.1-0.1l4.9,0c0.1,0,0.1,0.1,0.1,0.1 V400z"}))))}}const p={enableBackground:"new -299 391 12 12"};class h extends r.a.PureComponent{render(){return r.a.createElement("span",this.props,r.a.createElement(o.a,{id:"mobile.set_status.dnd.icon",defaultMessage:"Do Not Disturb Icon"},e=>r.a.createElement("svg",{width:"100%",height:"100%",viewBox:"0 0 20 20",style:g,role:"img","aria-label":e},r.a.createElement("path",{className:"dnd--icon",d:"M10,0c5.519,0 10,4.481 10,10c0,5.519 -4.481,10 -10,10c-5.519,0 -10,-4.481 -10,-10c0,-5.519 4.481,-10 10,-10Zm5.25,8.5l-10.5,0c-0.414,0 -0.75,0.336 -0.75,0.75l0,1.5c0,0.414 0.336,0.75 0.75,0.75l10.5,0c0.414,0 0.75,-0.336 0.75,-0.75l0,-1.5c0,-0.414 -0.336,-0.75 -0.75,-0.75Z"}))))}}const g={fillRule:"evenodd",clipRule:"evenodd",strokeLinejoin:"round",strokeMiterlimit:1.41421};class b extends r.a.PureComponent{render(){return r.a.createElement("span",this.props,r.a.createElement(o.a,{id:"mobile.set_status.offline.icon",defaultMessage:"Offline Icon"},e=>r.a.createElement("svg",{x:"0px",y:"0px",width:"13px",height:"13px",viewBox:"-299 391 12 12",style:f,role:"img","aria-label":e},r.a.createElement("g",null,r.a.createElement("g",null,r.a.createElement("ellipse",{className:"offline--icon",cx:"-294.5",cy:"394",rx:"2.5",ry:"2.5"}),r.a.createElement("path",{className:"offline--icon",d:"M-294.3,399.7c0-0.4,0.1-0.8,0.2-1.2c-0.1,0-0.2,0-0.4,0c-2.5,0-2.5-2-2.5-2s-1,0.1-1.2,0.5c-0.4,0.6-0.6,1.7-0.7,2.5 c0,0.1-0.1,0.5,0,0.6c0.2,1.3,2.2,2.3,4.4,2.4h0.1h0.1c0.3,0,0.7,0,1-0.1C-293.9,401.6-294.3,400.7-294.3,399.7z"}))),r.a.createElement("g",null,r.a.createElement("path",{className:"offline--icon",d:"M-288.9,399.4l1.8-1.8c0.1-0.1,0.1-0.3,0-0.3l-0.7-0.7c-0.1-0.1-0.3-0.1-0.3,0l-1.8,1.8l-1.8-1.8c-0.1-0.1-0.3-0.1-0.3,0 l-0.7,0.7c-0.1,0.1-0.1,0.3,0,0.3l1.8,1.8l-1.8,1.8c-0.1,0.1-0.1,0.3,0,0.3l0.7,0.7c0.1,0.1,0.3,0.1,0.3,0l1.8-1.8l1.8,1.8 c0.1,0.1,0.3,0.1,0.3,0l0.7-0.7c0.1-0.1,0.1-0.3,0-0.3L-288.9,399.4z"})))))}}const f={enableBackground:"new -299 391 12 12"};class _ extends r.a.PureComponent{render(){return r.a.createElement("span",this.props,r.a.createElement(o.a,{id:"mobile.set_status.offline.icon",defaultMessage:"Offline Icon"},e=>r.a.createElement("svg",{width:"100%",height:"100%",className:"offline--icon",viewBox:"0 0 20 20",style:E,role:"img","aria-label":e},r.a.createElement("path",{d:"M10,0c5.519,0 10,4.481 10,10c0,5.519 -4.481,10 -10,10c-5.519,0 -10,-4.481 -10,-10c0,-5.519 4.481,-10 10,-10Zm0,2c4.415,0 8,3.585 8,8c0,4.415 -3.585,8 -8,8c-4.415,0 -8,-3.585 -8,-8c0,-4.415 3.585,-8 8,-8Z"}))))}}const E={fillRule:"evenodd",clipRule:"evenodd",strokeLinejoin:"round",strokeMiterlimit:1.41421};class v extends r.a.PureComponent{render(){return r.a.createElement("span",this.props,r.a.createElement(o.a,{id:"mobile.set_status.online.icon",defaultMessage:"Online Icon"},e=>r.a.createElement("svg",{x:"0px",y:"0px",width:"13px",height:"13px",viewBox:"-243 245 12 12",style:y,role:"img","aria-label":e},r.a.createElement("g",null,r.a.createElement("path",{className:"online--icon",d:"M-236,250.5C-236,250.5-236,250.5-236,250.5C-236,250.5-236,250.5-236,250.5C-236,250.5-236,250.5-236,250.5z"}),r.a.createElement("ellipse",{className:"online--icon",cx:"-238.5",cy:"248",rx:"2.5",ry:"2.5"})),r.a.createElement("path",{className:"online--icon",d:"M-238.9,253.8c0-0.4,0.1-0.9,0.2-1.3c-2.2-0.2-2.2-2-2.2-2s-1,0.1-1.2,0.5c-0.4,0.6-0.6,1.7-0.7,2.5c0,0.1-0.1,0.5,0,0.6 c0.2,1.3,2.2,2.3,4.4,2.4c0,0,0.1,0,0.1,0c0,0,0.1,0,0.1,0c0,0,0.1,0,0.1,0C-238.7,255.7-238.9,254.8-238.9,253.8z"}),r.a.createElement("g",null,r.a.createElement("g",null,r.a.createElement("path",{className:"online--icon",d:"M-232.3,250.1l1.3,1.3c0,0,0,0.1,0,0.1l-4.1,4.1c0,0,0,0-0.1,0c0,0,0,0,0,0l-2.7-2.7c0,0,0-0.1,0-0.1l1.2-1.2 c0,0,0.1,0,0.1,0l1.4,1.4l2.9-2.9C-232.4,250.1-232.3,250.1-232.3,250.1z"}))))))}}const y={enableBackground:"new -243 245 12 12"};class C extends r.a.PureComponent{render(){return r.a.createElement("span",this.props,r.a.createElement(o.a,{id:"mobile.set_status.online.icon",defaultMessage:"Online Icon"},e=>r.a.createElement("svg",{width:"100%",height:"100%",viewBox:"0 0 20 20",style:w,role:"img","aria-label":e},r.a.createElement("path",{className:"online--icon",d:"M10,0c5.519,0 10,4.481 10,10c0,5.519 -4.481,10 -10,10c-5.519,0 -10,-4.481 -10,-10c0,-5.519 4.481,-10 10,-10Zm6.19,7.18c0,0.208 -0.075,0.384 -0.224,0.53l-5.782,5.64l-1.087,1.059c-0.149,0.146 -0.33,0.218 -0.543,0.218c-0.213,0 -0.394,-0.072 -0.543,-0.218l-1.086,-1.059l-2.891,-2.82c-0.149,-0.146 -0.224,-0.322 -0.224,-0.53c0,-0.208 0.075,-0.384 0.224,-0.53l1.086,-1.059c0.149,-0.146 0.33,-0.218 0.543,-0.218c0.213,0 0.394,0.072 0.543,0.218l2.348,2.298l5.24,-5.118c0.149,-0.146 0.33,-0.218 0.543,-0.218c0.213,0 0.394,0.072 0.543,0.218l1.086,1.059c0.149,0.146 0.224,0.322 0.224,0.53Z"}))))}}const w={fillRule:"evenodd",clipRule:"evenodd",strokeLinejoin:"round",strokeMiterlimit:1.41421};function O(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}a.d(t,"a",(function(){return T}));class T extends r.a.PureComponent{render(){const{button:e,status:t,type:a}=this.props;if(!t)return null;let n="status "+this.props.className;e&&(n=this.props.className);let s="span";return s="avatar"===a?"online"===t?v:"away"===t?l:"dnd"===t?u:b:"online"===t?C:"away"===t?d:"dnd"===t?h:_,r.a.createElement(s,{className:n})}}O(T,"propTypes",{button:s.a.bool,status:s.a.string,className:s.a.string,type:s.a.string}),O(T,"defaultProps",{className:"",button:!1})},1239:function(e,t,a){"use strict";var n=a(309),s=a(15),i=(a(34),a(33)),r=a.n(i),o=a(7),l=a.n(o),c=a(312);function d(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class m extends l.a.PureComponent{constructor(...e){super(...e),d(this,"isSVGImage",()=>this.props.imageMetadata?"svg"===this.props.imageMetadata.format:-1!==this.props.src.indexOf(".svg")),d(this,"shouldRenderImage",()=>this.props.enableSVGs||!this.isSVGImage())}render(){let e=Object(c.f)(this.props.src,this.props.hasImageProxy);return this.shouldRenderImage()||(e=""),this.props.children(e)}}d(m,"propTypes",{children:r.a.func.isRequired,enableSVGs:r.a.bool.isRequired,hasImageProxy:r.a.bool.isRequired,imageMetadata:r.a.object,src:r.a.string.isRequired});t.a=Object(n.connect)((function(e){const t=Object(s.getConfig)(e);return{enableSVGs:"true"===t.EnableSVGs,hasImageProxy:"true"===t.HasImageProxy}}))(m)},1240:function(e,t,a){"use strict";a.d(t,"a",(function(){return m})),a.d(t,"c",(function(){return p})),a.d(t,"d",(function(){return h})),a.d(t,"b",(function(){return g}));a(52),a(34);var n=a(593),s=a(20),i=a(18),r=a(0),o=a(1495),l=a(175);function c(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function d(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function m(){return async e=>{const t=[e(Object(n.getClientConfig)()),e(Object(n.getLicenseConfig)())],a=await Promise.all(t);return document.cookie.indexOf("MMUSERID=")>-1&&a.push(await e(s.loadMe())),a}}const u={};function p(e,t){return u[e]=t,(e,a)=>{const n=a(),s=Object(l.a)(n),i=Object(l.b)(n,s),o={};Object.assign(o,i),i&&(Object.assign(o,t(s)),e({type:r.f.RECEIVED_TRANSLATIONS,data:{locale:s,translations:o}}))}}function h(e){Reflect.deleteProperty(u,e)}function g(e,t){return async a=>{const n=function(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?c(a,!0).forEach((function(t){d(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):c(a).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}({},o);if(Object.values(u).forEach(t=>{Object.assign(n,t(e))}),"en"!==e)try{const e=await i.Client4.getTranslations(t);Object.assign(n,e)}catch(e){console.error(e)}a({type:r.f.RECEIVED_TRANSLATIONS,data:{locale:e,translations:n}})}}},1245:function(e,t,a){"use strict";a.d(t,"a",(function(){return l}));var n=a(33),s=a.n(n),i=a(7),r=a.n(i);a(1527);function o(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class l extends r.a.Component{render(){return this.props.show?r.a.createElement("div",{className:"Badge"},r.a.createElement("div",{className:"Badge__box "+this.props.className},this.props.children)):null}}o(l,"propTypes",{show:s.a.bool,children:s.a.node.isRequired,className:s.a.string}),o(l,"defaultProps",{show:!0,className:""})},1246:function(e,t,a){"use strict";a.d(t,"a",(function(){return d}));a(34);var n=a(33),s=a.n(n),i=a(7),r=a.n(i);function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function l(e,t){if(null==e)return{};var a,n,s=function(e,t){if(null==e)return{};var a,n,s={},i=Object.keys(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||(s[a]=e[a]);return s}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(s[a]=e[a])}return s}function c(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class d extends r.a.PureComponent{constructor(...e){super(...e),c(this,"updateInputFromProps",()=>{this.input&&this.input.value!==this.props.value&&(this.input.value=this.props.value)}),c(this,"getInput",()=>this.input),c(this,"setInput",e=>{this.input=e})}componentDidUpdate(e){e.value!==this.props.value&&(this.props.delayInputUpdate?requestAnimationFrame(this.updateInputFromProps):this.updateInputFromProps())}get value(){return this.input.value}set value(e){this.input.value=e}focus(){this.input.focus()}blur(){this.input.blur()}render(){const e=this.props,{value:t,inputComponent:a}=e,n=l(e,["value","inputComponent"]);return Reflect.deleteProperty(n,"delayInputUpdate"),r.a.createElement(a||"input",function(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(a,!0).forEach((function(t){c(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(a).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}({},n,{ref:this.setInput,defaultValue:t}))}}c(d,"propTypes",{delayInputUpdate:s.a.bool,inputComponent:s.a.elementType,value:s.a.string.isRequired}),c(d,"defaultProps",{delayInputUpdate:!1,value:""})},1259:function(e,t,a){e.exports=a.p+"files/b96d9389dbf73d7c1584084920ee7c03.png"},1260:function(e,t,a){"use strict";a.d(t,"a",(function(){return r}));var n=a(7),s=a.n(n),i=a(1106);class r extends s.a.PureComponent{render(){return s.a.createElement("span",this.props,s.a.createElement(i.a,{id:"generic_icons.menu",defaultMessage:"Menu Icon"},e=>s.a.createElement("svg",{width:"16px",height:"10px",viewBox:"0 0 16 10",version:"1.1",role:"img",title:e},s.a.createElement("g",{stroke:"none",strokeWidth:"1",fill:"inherit",fillRule:"evenodd"},s.a.createElement("g",{transform:"translate(-188.000000, -38.000000)",fillRule:"nonzero",fill:"inherit"},s.a.createElement("g",null,s.a.createElement("g",null,s.a.createElement("g",{transform:"translate(188.000000, 38.000000)"},s.a.createElement("path",{d:"M15.5,0 C15.776,0 16,0.224 16,0.5 L16,1.5 C16,1.776 15.776,2 15.5,2 L0.5,2 C0.224,2 0,1.776 0,1.5 L0,0.5 C0,0.224 0.224,0 0.5,0 L15.5,0 Z M15.5,4 C15.776,4 16,4.224 16,4.5 L16,5.5 C16,5.776 15.776,6 15.5,6 L0.5,6 C0.224,6 0,5.776 0,5.5 L0,4.5 C0,4.224 0.224,4 0.5,4 L15.5,4 Z M15.5,8 C15.776,8 16,8.224 16,8.5 L16,9.5 C16,9.776 15.776,10 15.5,10 L0.5,10 C0.224,10 0,9.776 0,9.5 L0,8.5 C0,8.224 0.224,8 0.5,8 L15.5,8 Z"})))))))))}}},1267:function(e,t,a){"use strict";var n=a(309),s=a(15),i=a(29),r=a(1166),o=(a(52),a(34),a(33)),l=a.n(o),c=a(7),d=a.n(c),m=a(1352),u=a(1155),p=a(1120),h=a(0),g=a(14),b=a(96),f=a.n(b),_=a(310),E=a.n(_),v=a(1270);function y(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class C extends d.a.PureComponent{constructor(e){super(e),y(this,"handleFileInfoChanged",e=>{let t=E.a.findDOMNode(this.refs.video);t||(t=document.createElement("video"));const a=t.canPlayType(e.mime_type);this.setState({canPlay:"probably"===a||"maybe"===a})}),y(this,"handleLoadError",()=>{this.setState({canPlay:!1})}),y(this,"stop",()=>{if(this.refs.video){const e=E.a.findDOMNode(this.refs.video);e.pause(),e.currentTime=0}}),this.state={canPlay:!0}}componentDidMount(){this.handleFileInfoChanged(this.props.fileInfo),this.refs.source&&f()(E.a.findDOMNode(this.refs.source)).one("error",this.handleLoadError)}componentDidUpdate(e){this.props.fileUrl!==e.fileUrl&&this.handleFileInfoChanged(this.props.fileInfo),this.refs.source&&f()(E.a.findDOMNode(this.refs.source)).one("error",this.handleLoadError)}render(){if(!this.state.canPlay)return d.a.createElement(v.a,{fileInfo:this.props.fileInfo,fileUrl:this.props.fileUrl});let e=h.Q.WEB_VIDEO_WIDTH,t=h.Q.WEB_VIDEO_HEIGHT;return g.Y()&&(e=h.Q.MOBILE_VIDEO_WIDTH,t=h.Q.MOBILE_VIDEO_HEIGHT),d.a.createElement("video",{key:this.props.fileInfo.id,ref:"video","data-setup":"{}",controls:"controls",width:e,height:t},d.a.createElement("source",{ref:"source",src:this.props.fileUrl}))}}y(C,"propTypes",{fileInfo:l.a.object.isRequired,fileUrl:l.a.string.isRequired});a(138);var w=a(136),O=a(1154);function T(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class S extends d.a.Component{constructor(e){super(e),T(this,"updateStateFromProps",e=>{const t=w.b(e.fileInfo.extension);!t||e.fileInfo.size>h.Q.CODE_PREVIEW_MAX_FILE_SIZE?this.setState({code:"",lang:"",loading:!1,success:!1}):(this.setState({code:"",lang:t,loading:!0}),f.a.ajax({async:!0,url:e.fileUrl,type:"GET",dataType:"text",error:this.handleReceivedError,success:this.handleReceivedCode}))}),T(this,"handleReceivedCode",e=>{let t=e;"#document"===e.nodeName&&(t=(new XMLSerializer).serializeToString(e)),this.setState({code:t,loading:!1,success:!0})}),T(this,"handleReceivedError",()=>{this.setState({loading:!1,success:!1})}),this.state={code:"",lang:"",loading:!0,success:!0}}componentDidMount(){this.updateStateFromProps(this.props)}UNSAFE_componentWillReceiveProps(e){this.props.fileUrl!==e.fileUrl&&this.updateStateFromProps(e)}static supports(e){return Boolean(w.b(e.extension))}render(){if(this.state.loading)return d.a.createElement("div",{className:"view-image__loading"},d.a.createElement(O.a,null));if(!this.state.success)return d.a.createElement(v.a,{fileInfo:this.props.fileInfo,fileUrl:this.props.fileUrl});const e=this.state.code.match(/\r\n|\r|\n|$/g).length;let t="";for(let a=1;a<=e;a++)t+=t?"\n"+a:a;const a=w.c(this.state.lang),n=w.d(this.state.lang,this.state.code);return d.a.createElement("div",{className:"post-code"},d.a.createElement("span",{className:"post-code__language"},"".concat(this.props.fileInfo.name," - ").concat(a)),d.a.createElement("div",{className:"post-code__container"},d.a.createElement("code",{className:"hljs"},d.a.createElement("table",null,d.a.createElement("tbody",null,d.a.createElement("tr",null,d.a.createElement("td",{className:"post-code__lineno"},t),d.a.createElement("td",{dangerouslySetInnerHTML:{__html:n}})))))))}}S.propTypes={fileInfo:l.a.object.isRequired,fileUrl:l.a.string.isRequired};var P=a(1393);function M({fileInfo:e,canDownloadFiles:t}){const{has_preview_image:a,id:n,link:s}=e,i=s||Object(u.getFileDownloadUrl)(n),r=a?Object(u.getFilePreviewUrl)(n):i;return t?d.a.createElement("a",{href:i,target:"_blank",rel:"noopener noreferrer",download:!0},d.a.createElement("img",{"data-testid":"imagePreview",alt:"preview url image",src:r})):d.a.createElement("img",{src:r})}M.propTypes={fileInfo:l.a.object.isRequired,canDownloadFiles:l.a.bool.isRequired};var I=a(17),N=a(1106);function j(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class A extends d.a.PureComponent{render(){var e="";this.props.enablePublicLink&&this.props.showPublicLink&&(e=d.a.createElement("div",null,d.a.createElement("a",{href:"#",className:"public-link text","data-title":"Public Image",onClick:this.props.onGetPublicLink},d.a.createElement(N.a,{id:"view_image_popover.publicLink",defaultMessage:"Get Public Link"})),d.a.createElement("span",{className:"text"}," | ")));let t=null;if(this.props.canDownloadFiles){let a;const n={};this.props.isExternalFile&&!this.props.isDesktopApp?a=d.a.createElement(N.a,{id:"view_image_popover.open",defaultMessage:"Open"}):(a=d.a.createElement(N.a,{id:"view_image_popover.download",defaultMessage:"Download"}),n.download=this.props.filename),t=d.a.createElement("div",{className:"image-links"},e,d.a.createElement("a",Object.assign({href:this.props.fileURL,className:"text",target:"_blank",rel:"noopener noreferrer"},n),a))}return d.a.createElement("div",{"data-testid":"fileCountFooter",ref:"imageFooter",className:"modal-button-bar"},d.a.createElement("span",{className:"pull-left text"},d.a.createElement(N.a,{id:"view_image_popover.file",defaultMessage:"File {count, number} of {total, number}",values:{count:this.props.fileIndex+1,total:this.props.totalFiles}})),t)}}j(A,"propTypes",{fileIndex:l.a.number.isRequired,totalFiles:l.a.number.isRequired,filename:l.a.string.isRequired,fileURL:l.a.string.isRequired,showPublicLink:l.a.bool,enablePublicLink:l.a.bool.isRequired,canDownloadFiles:l.a.bool.isRequired,isExternalFile:l.a.bool.isRequired,onGetPublicLink:l.a.func,isDesktopApp:l.a.bool.isRequired}),j(A,"defaultProps",{fileIndex:0,totalFiles:0,filename:"",fileURL:"",showPublicLink:!0});var R=Object(n.connect)((function(){return{isDesktopApp:Object(I.d)()}}))(A);function k(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function L(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?k(a,!0).forEach((function(t){D(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):k(a).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function D(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const x=d.a.lazy(()=>a.e(29).then(a.bind(null,1963))),U=h.Q.KeyCodes;class q extends d.a.PureComponent{constructor(e){super(e),D(this,"handleNext",e=>{e&&e.stopPropagation();let t=this.state.imageIndex+1;t>this.props.fileInfos.length-1&&(t=0),this.showImage(t)}),D(this,"handlePrev",e=>{e&&e.stopPropagation();let t=this.state.imageIndex-1;t<0&&(t=this.props.fileInfos.length-1),this.showImage(t)}),D(this,"handleKeyPress",e=>{g.W(e,U.RIGHT)?this.handleNext():g.W(e,U.LEFT)&&this.handlePrev()}),D(this,"onModalShown",e=>{document.addEventListener("keyup",this.handleKeyPress),this.showImage(e.startIndex)}),D(this,"onModalHidden",()=>{document.addEventListener("keyup",this.handleKeyPress),this.refs.video&&this.refs.video.stop()}),D(this,"showImage",e=>{this.setState({imageIndex:e});const t=window.innerHeight-100;this.setState({imageHeight:t}),this.state.loaded[e]||this.loadImage(e)}),D(this,"loadImage",e=>{const t=this.props.fileInfos[e];if(g.y(t.extension)===h.n.IMAGE&&Boolean(t.id)){let a;a=t.has_image_preview?Object(u.getFilePreviewUrl)(t.id):Object(u.getFileUrl)(t.id),g.fb(a,()=>this.handleImageLoaded(e),t=>this.handleImageProgress(e,t))}else this.handleImageLoaded(e)}),D(this,"handleImageLoaded",e=>{this.setState(t=>({loaded:L({},t.loaded,{[e]:!0})}))}),D(this,"handleImageProgress",(e,t)=>{this.setState(a=>({progress:L({},a.progress,{[e]:t})}))}),D(this,"handleGetPublicLink",()=>{this.props.onModalDismissed(),p.k(this.props.fileInfos[this.state.imageIndex].id)}),D(this,"onMouseEnterImage",()=>{this.setState({showCloseBtn:!0})}),D(this,"onMouseLeaveImage",()=>{this.setState({showCloseBtn:!1})}),this.state={imageIndex:this.props.startIndex,imageHeight:"100%",loaded:g.n(!1,this.props.fileInfos.length),progress:g.n(0,this.props.fileInfos.length),showCloseBtn:!1}}UNSAFE_componentWillReceiveProps(e){!0===e.show&&!1===this.props.show?this.onModalShown(e):!1===e.show&&!0===this.props.show&&this.onModalHidden(),this.props.fileInfos.length!==e.fileInfos.length&&this.setState({loaded:g.n(!1,e.fileInfos.length),progress:g.n(0,e.fileInfos.length)})}render(){if(this.props.fileInfos.length<1||this.props.fileInfos.length-1<this.state.imageIndex)return null;const e=this.props.fileInfos[this.state.imageIndex],t=!e.link,a=e.link||e.name,n=e.link||Object(u.getFileUrl)(e.id),s=e.link||Object(u.getFileDownloadUrl)(e.id),i=!e.id;let r,o="a11y__modal modal-image";if(this.state.loaded[this.state.imageIndex]){const t=g.y(e.extension);t===h.n.IMAGE||t===h.n.SVG?r=d.a.createElement(M,{fileInfo:e,canDownloadFiles:this.props.canDownloadFiles}):t===h.n.VIDEO||t===h.n.AUDIO?r=d.a.createElement(C,{fileInfo:e,fileUrl:n}):e&&e.extension&&e.extension===h.n.PDF?r=d.a.createElement(d.a.Suspense,{fallback:null},d.a.createElement(x,{fileInfo:e,fileUrl:n})):S.supports(e)?(o+=" modal-code",r=d.a.createElement(S,{fileInfo:e,fileUrl:n})):r=d.a.createElement(v.a,{fileInfo:e,fileUrl:n})}else{const e=g.gb("view_image.loading","Loading"),t=Math.floor(this.state.progress[this.state.imageIndex]);r=d.a.createElement(P.a,{loading:e,progress:t})}for(const t of this.props.pluginFilePreviewComponents)if(t.override(e,this.props.post)){r=d.a.createElement(t.component,{fileInfo:e,post:this.props.post});break}let l=null,c=null;this.props.fileInfos.length>1&&(l=d.a.createElement("a",{id:"previewArrowLeft",ref:"previewArrowLeft",className:"modal-prev-bar",href:"#",onClick:this.handlePrev},d.a.createElement("i",{className:"image-control image-prev"})),c=d.a.createElement("a",{id:"previewArrowRight",ref:"previewArrowRight",className:"modal-next-bar",href:"#",onClick:this.handleNext},d.a.createElement("i",{className:"image-control image-next"})));let p="modal-close";return this.state.showCloseBtn&&(p+=" modal-close--show"),d.a.createElement(m.a,{show:this.props.show,onHide:this.props.onModalDismissed,className:"modal-image",dialogClassName:o,role:"dialog","aria-labelledby":"viewImageModalLabel"},d.a.createElement(m.a.Body,null,d.a.createElement("div",{className:"modal-image__wrapper",onClick:this.props.onModalDismissed},d.a.createElement("div",{onMouseEnter:this.onMouseEnterImage,onMouseLeave:this.onMouseLeaveImage,onClick:e=>e.stopPropagation()},d.a.createElement(m.a.Title,{componentClass:"h1",id:"viewImageModalLabel",className:"hide"},a),d.a.createElement("div",{className:p,onClick:this.props.onModalDismissed}),d.a.createElement("div",{className:"modal-image__content"},r),d.a.createElement(R,{showPublicLink:t,fileIndex:this.state.imageIndex,totalFiles:this.props.fileInfos.length,filename:a,fileURL:s,enablePublicLink:this.props.enablePublicLink,canDownloadFiles:this.props.canDownloadFiles,isExternalFile:i,onGetPublicLink:this.handleGetPublicLink}))),l,c))}}D(q,"propTypes",{post:l.a.object.isRequired,show:l.a.bool.isRequired,onModalDismissed:l.a.func.isRequired,fileInfos:l.a.arrayOf(l.a.object).isRequired,startIndex:l.a.number.isRequired,canDownloadFiles:l.a.bool.isRequired,enablePublicLink:l.a.bool.isRequired,pluginFilePreviewComponents:l.a.arrayOf(l.a.object)}),D(q,"defaultProps",{show:!1,fileInfos:[],startIndex:0,pluginFilePreviewComponents:[],post:{}});t.a=Object(n.connect)((function(e,t){const a=Object(s.getConfig)(e);return{canDownloadFiles:Object(r.a)(a),enablePublicLink:"true"===a.EnablePublicLink,pluginFilePreviewComponents:e.plugins.components.FilePreview,post:t.post||Object(i.getPost)(e,t.postId)}}))(q)},1268:function(e,t,a){"use strict";var n,s,i,r=a(7),o=a.n(r),l=a(1537),c=a(1487),d=a(309),m=a(15),u=(a(52),a(33)),p=a.n(u),h=a(1106);class g extends o.a.Component{constructor(e){super(e),this.state={katex:null}}componentDidMount(){a.e(30).then(a.t.bind(null,1962,7)).then(e=>{this.setState({katex:e})})}render(){if(null==this.state.katex||!this.props.enableLatex)return o.a.createElement("div",{className:"post-body--code tex"},this.props.content);try{const e=this.state.katex.renderToString(this.props.content,{throwOnError:!1,displayMode:!0});return o.a.createElement("div",{className:"post-body--code tex",dangerouslySetInnerHTML:{__html:e}})}catch(e){return o.a.createElement("div",{className:"post-body--code tex"},o.a.createElement(h.a,{id:"katex.error",defaultMessage:"Couldn't compile your Latex code. Please review the syntax and try again."}))}}}n=g,s="propTypes",i={content:p.a.string.isRequired,enableLatex:p.a.bool.isRequired},s in n?Object.defineProperty(n,s,{value:i,enumerable:!0,configurable:!0,writable:!0}):n[s]=i,g.defaultProps={enableLatex:!1};var b=Object(d.connect)((function(e){return{enableLatex:"true"===Object(m.getConfig)(e).EnableLatex}}))(g),f=a(1587),_=a(0),E=a(1239),v=a(1218),y=a(1267),C=a(1596),w=a.n(C);function O(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class T extends o.a.PureComponent{constructor(e){super(e),O(this,"showModal",e=>{this.props.imageIsLink||(e.preventDefault(),this.setState({showModal:!0}))}),O(this,"hideModal",()=>{this.setState({showModal:!1})}),O(this,"handleLoadFail",()=>{this.setState({loadFailed:!0})}),O(this,"isHeaderChangeMessage",()=>this.props.postType&&this.props.postType===_.Q.PostTypes.HEADER_CHANGE),O(this,"onUpdated",e=>{this.props.src&&this.props.src!==e&&this.setState({loadFailed:!1})}),O(this,"handleImageLoaded",({height:e,width:t})=>{this.setState({loaded:!0},()=>{this.props.onImageLoaded&&this.props.onImageLoaded({height:e,width:t})})}),this.state={showModal:!1,loadFailed:!1,loaded:!1}}componentDidUpdate(e){this.onUpdated(e.src)}render(){const{imageMetadata:e,src:t,alt:a,imageIsLink:n}=this.props;if(""===t||this.state.loadFailed){let e="markdown-inline-img broken-image";return this.isHeaderChangeMessage()&&(e+=" broken-image--scaled-down"),o.a.createElement("div",{style:{display:"inline-block"}},o.a.createElement("img",{className:e,alt:a,src:w.a}))}return o.a.createElement(E.a,{src:t,imageMetadata:e},s=>{if(!s)return o.a.createElement("a",{className:"theme markdown__link",href:t,rel:"noopener noreferrer",target:"_blank",title:this.props.title},a);const i=(e=>{const t=e.lastIndexOf(".");return t>0?e.substring(t+1):null})(s);let r="";if(this.state.loaded)r="".concat(this.props.className,n||!i?" markdown-inline-img--hover markdown-inline-img--no-border":" markdown-inline-img--hover cursor--pointer a11y--active"),this.isHeaderChangeMessage()&&(r+=" markdown-inline-img--scaled-down");else{const e=this.isHeaderChangeMessage()?"markdown-inline-img--scaled-down-loading":"markdown-inline-img--loading";r="".concat(this.props.className," ").concat(e)}const{height:l,width:c,title:d}=this.props;return o.a.createElement(o.a.Fragment,null,o.a.createElement(v.a,{alt:a,className:r,src:s,height:l,width:c,title:d,dimensions:e,showLoader:!1,onClick:this.showModal,onImageLoadFail:this.handleLoadFail,onImageLoaded:this.handleImageLoaded}),!n&&i&&o.a.createElement(y.a,{show:this.state.showModal,onModalDismissed:this.hideModal,postId:this.props.postId,startIndex:0,fileInfos:[{has_preview_image:!1,link:s,extension:e.format||i,name:a}]}))})}}O(T,"defaultProps",{imageMetadata:{}}),O(T,"propTypes",{alt:p.a.string,imageMetadata:p.a.object,src:p.a.string.isRequired,height:p.a.number,width:p.a.number,title:p.a.string,className:p.a.string.isRequired,postId:p.a.string.isRequired,imageIsLink:p.a.bool.isRequired,onImageLoaded:p.a.func,postType:p.a.string});var S=a(315),P=a(69);class M extends o.a.PureComponent{render(){const e=":"+this.props.name+":";return this.props.imageUrl?o.a.createElement("span",{alt:e,className:"emoticon",title:e,style:{backgroundImage:"url("+this.props.imageUrl+")"}}):e}}!function(e,t,a){t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a}(M,"propTypes",{name:p.a.string.isRequired,imageUrl:p.a.string.isRequired});var I=Object(d.connect)((function(e,t){const a=Object(P.a)(e).get(t.name);return{imageUrl:a?Object(S.getEmojiImageUrl)(a):""}}))(M);function N(e,t){if(null==e)return{};var a,n,s=function(e,t){if(null==e)return{};var a,n,s={},i=Object.keys(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||(s[a]=e[a]);return s}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(s[a]=e[a])}return s}function j(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function A(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}t.a=function(e,t,a={}){if(!e)return null;const n=new l.Parser,s=new l.ProcessNodeDefinitions(o.a),i=[{replaceChildren:!1,shouldProcessNode:e=>"tag"===e.type&&"input"===e.name&&"checkbox"===e.attribs.type,processNode:e=>{const t=e.attribs||{};return e.attribs.checked=Boolean(t.checked),o.a.createElement("input",function(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?j(a,!0).forEach((function(t){A(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):j(a).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}({},e.attribs))}}];if(a.hasPluginTooltips){const e="href";i.push({replaceChildren:!0,shouldProcessNode:t=>"tag"===t.type&&"a"===t.name&&t.attribs[e],processNode:(t,a)=>o.a.createElement(f.a,{href:t.attribs[e],title:a[0]})})}if(!("mentions"in a)||a.mentions){const e="data-mention";i.push({replaceChildren:!0,shouldProcessNode:t=>t.attribs&&t.attribs[e],processNode:(a,n)=>{const s=a.attribs[e];return o.a.createElement(c.a,{mentionName:s,isRHS:t,hasMention:!0},n)}})}if(!("emoji"in a)||a.emoji){const e="data-emoticon";i.push({replaceChildren:!0,shouldProcessNode:t=>t.attribs&&t.attribs[e],processNode:t=>{const a=t.attribs[e];return o.a.createElement(I,{name:a})}})}return"images"in a&&!a.images||i.push({shouldProcessNode:e=>"tag"===e.type&&"img"===e.name,processNode:e=>{const t=e.attribs,{class:n}=t,s=N(t,["class"]);return o.a.createElement(T,Object.assign({className:n,imageMetadata:a.imagesMetadata&&a.imagesMetadata[s.src]},s,a.imageProps,{postId:a.postId,imageIsLink:(e=>!(!e||"tag"!==e.type||"a"!==e.name))(e.parentNode),postType:a.postType}))}}),"latex"in a&&!a.latex||i.push({shouldProcessNode:e=>e.attribs&&e.attribs["data-latex"],processNode:e=>o.a.createElement(b,{content:e.attribs["data-latex"]})}),i.push({shouldProcessNode:()=>!0,processNode:s.processDefaultNode}),n.parseWithInstructions(e,(function(){return!0}),i)}},1269:function(e,t,a){"use strict";var n=a(309),s=a(6),i=a(1125),r=a(33),o=a.n(r),l=a(7),c=a.n(l),d=a(314),m=a(1118);function u(e,t){if(null==e)return{};var a,n,s=function(e,t){if(null==e)return{};var a,n,s={},i=Object.keys(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||(s[a]=e[a]);return s}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(s[a]=e[a])}return s}function p(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class h extends c.a.Component{show(e){e&&e.preventDefault();const{modalId:t,dialogProps:a,dialogType:n}=this.props,s={modalId:t,dialogProps:a,dialogType:n};this.props.actions.openModal(s)}render(){const e=this.props,{children:t,onClick:a}=e,n=u(e,["children","onClick"]),{formatMessage:s}=this.props.intl,i=s({id:"accessibility.button.dialog",defaultMessage:"{dialogName} dialog"},{dialogName:n.accessibilityLabel});delete n.modalId,delete n.dialogType,delete n.dialogProps,delete n.accessibilityLabel;let r=()=>this.show();return a&&(r=e=>{a(),this.show(e)}),c.a.createElement("button",Object.assign({},n,{className:"style--none "+n.className,"data-toggle":"modal toggle","aria-label":i,onClick:r}),t)}}p(h,"propTypes",{accessibilityLabel:o.a.string,children:o.a.node.isRequired,modalId:o.a.string.isRequired,dialogType:o.a.func.isRequired,dialogProps:o.a.object,intl:m.a.isRequired,onClick:o.a.func,className:o.a.string,actions:o.a.shape({openModal:o.a.func.isRequired}).isRequired}),p(h,"defaultProps",{dialogProps:{},className:""});var g=Object(d.c)(h);t.a=Object(n.connect)(null,(function(e){return{actions:Object(s.bindActionCreators)({openModal:i.b},e)}}))(g)},1270:function(e,t,a){"use strict";var n,s,i,r=a(309),o=a(15),l=a(1166),c=a(33),d=a.n(c),m=a(7),u=a.n(m),p=a(14);class h extends u.a.PureComponent{render(){const e=this.props.fileInfo,t=this.props.fileUrl,a=[];""!==e.extension&&a.push(p.gb("file_info_preview.type","File type ")+e.extension.toUpperCase()),e.size&&a.push(p.gb("file_info_preview.size","Size ")+p.m(e.size));const n=a.join(", ");let s=null;return s=this.props.canDownloadFiles?u.a.createElement("a",{className:"file-details__preview",href:t,target:"_blank",rel:"noopener noreferrer"},u.a.createElement("span",{className:"file-details__preview-helper"}),u.a.createElement("img",{alt:"file preview",src:p.x(e)})):u.a.createElement("span",{className:"file-details__preview"},u.a.createElement("span",{className:"file-details__preview-helper"}),u.a.createElement("img",{alt:"file preview",src:p.x(e)})),u.a.createElement("div",{className:"file-details__container"},s,u.a.createElement("div",{className:"file-details"},u.a.createElement("div",{className:"file-details__name"},e.name),u.a.createElement("div",{className:"file-details__info"},n)))}}n=h,s="propTypes",i={fileInfo:d.a.object.isRequired,fileUrl:d.a.string.isRequired,canDownloadFiles:d.a.bool.isRequired},s in n?Object.defineProperty(n,s,{value:i,enumerable:!0,configurable:!0,writable:!0}):n[s]=i;t.a=Object(r.connect)((function(e){const t=Object(o.getConfig)(e);return{canDownloadFiles:Object(l.a)(t)}}))(h)},1271:function(e,t,a){"use strict";var n=a(309),s=a(6),i=a(20),r=a(15),o=a(10),l=(a(52),a(96)),c=a.n(l),d=a(7),m=a.n(d),u=a(1352),p=a(310),h=a.n(p),g=a(1388),b=a(1106),f=a(314),_=a(33),E=a.n(_),v=a(0),y=a(1118),C=a(14),w=a(27),O=a(1121);function T(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const S=m.a.lazy(()=>Promise.all([a.e(1),a.e(21),a.e(17)]).then(a.bind(null,1965))),P=m.a.lazy(()=>a.e(3).then(a.bind(null,1961))),M=Object(g.defineMessages)({general:{id:Object(w.b)("user.settings.modal.general"),defaultMessage:"General"},security:{id:Object(w.b)("user.settings.modal.security"),defaultMessage:"Security"},notifications:{id:Object(w.b)("user.settings.modal.notifications"),defaultMessage:"Notifications"},display:{id:Object(w.b)("user.settings.modal.display"),defaultMessage:"Display"},sidebar:{id:Object(w.b)("user.settings.modal.sidebar"),defaultMessage:"Sidebar"},advanced:{id:Object(w.b)("user.settings.modal.advanced"),defaultMessage:"Advanced"},checkEmail:{id:"user.settings.general.checkEmail",defaultMessage:"Check your email at {email} to verify the address. Cannot find the email?"},confirmTitle:{id:Object(w.b)("user.settings.modal.confirmTitle"),defaultMessage:"Discard Changes?"},confirmMsg:{id:Object(w.b)("user.settings.modal.confirmMsg"),defaultMessage:"You have unsaved changes, are you sure you want to discard them?"},confirmBtns:{id:Object(w.b)("user.settings.modal.confirmBtns"),defaultMessage:"Yes, Discard"}});class I extends m.a.Component{constructor(e){super(e),T(this,"handleResend",e=>{this.setState({resendStatus:"sending"}),this.props.actions.sendVerificationEmail(e).then(({data:e,error:t})=>{e?this.setState({resendStatus:"success"}):t&&this.setState({resendStatus:"failure"})})}),T(this,"handleKeyDown",e=>{C.e(e)&&e.shiftKey&&C.W(e,v.Q.KeyCodes.A)&&this.handleHide()}),T(this,"handleHide",()=>{this.requireConfirm?this.showConfirmModal(()=>this.handleHide()):this.setState({show:!1})}),T(this,"handleHidden",()=>{this.setState({active_tab:"general",active_section:""}),this.props.onHide()}),T(this,"handleCollapse",()=>{c()(h.a.findDOMNode(this.modalBodyRef.current)).closest(".modal-dialog").removeClass("display--content"),this.setState({active_tab:"",active_section:""})}),T(this,"handleConfirm",()=>{this.setState({showConfirmModal:!1,enforceFocus:!0}),this.requireConfirm=!1,this.customConfirmAction=null,this.afterConfirm&&(this.afterConfirm(),this.afterConfirm=null)}),T(this,"handleCancelConfirmation",()=>{this.setState({showConfirmModal:!1,enforceFocus:!0}),this.afterConfirm=null}),T(this,"showConfirmModal",e=>{e&&(this.afterConfirm=e),this.customConfirmAction?this.customConfirmAction(this.handleConfirm):this.setState({showConfirmModal:!0,enforceFocus:!1})}),T(this,"closeModal",()=>{this.requireConfirm?this.showConfirmModal(this.closeModal):this.handleHide()}),T(this,"collapseModal",()=>{this.requireConfirm?this.showConfirmModal(this.collapseModal):this.handleCollapse()}),T(this,"updateTab",(e,t)=>{!t&&this.requireConfirm?this.showConfirmModal(()=>this.updateTab(e,!0)):this.setState({active_tab:e,active_section:""})}),T(this,"updateSection",(e,t)=>{!t&&this.requireConfirm?this.showConfirmModal(()=>this.updateSection(e,!0)):this.setState({active_section:e})}),this.state={active_tab:"general",active_section:"",showConfirmModal:!1,enforceFocus:!0,show:!0},this.requireConfirm=!1,this.customConfirmAction=null,this.modalBodyRef=m.a.createRef()}componentDidMount(){document.addEventListener("keydown",this.handleKeyDown)}componentWillUnmount(){document.removeEventListener("keydown",this.handleKeyDown)}componentDidUpdate(e,t){this.state.active_tab!==t.active_tab&&c()(h.a.findDOMNode(this.modalBodyRef.current)).scrollTop(0)}render(){const{formatMessage:e}=this.props.intl;if(null==this.props.currentUser)return m.a.createElement("div",null);var t=[];return t.push({name:"general",uiName:e(M.general),icon:"icon fa fa-gear",iconTitle:C.gb("user.settings.general.icon","General Settings Icon")}),t.push({name:"security",uiName:e(M.security),icon:"icon fa fa-lock",iconTitle:C.gb("user.settings.security.icon","Security Settings Icon")}),t.push({name:"notifications",uiName:e(M.notifications),icon:"icon fa fa-exclamation-circle",iconTitle:C.gb("user.settings.notifications.icon","Notification Settings Icon")}),t.push({name:"display",uiName:e(M.display),icon:"icon fa fa-eye",iconTitle:C.gb("user.settings.display.icon","Display Settings Icon")}),t.push({name:"sidebar",uiName:e(M.sidebar),icon:"icon fa fa-columns",iconTitle:C.gb("user.settings.sidebar.icon","Sidebar Settings Icon")}),t.push({name:"advanced",uiName:e(M.advanced),icon:"icon fa fa-list-alt",iconTitle:C.gb("user.settings.advance.icon","Advanced Settings Icon")}),m.a.createElement(u.a,{id:"accountSettingsModal",dialogClassName:"a11y__modal settings-modal",show:this.state.show,onHide:this.handleHide,onExited:this.handleHidden,enforceFocus:this.state.enforceFocus,role:"dialog","aria-labelledby":"accountSettingsModalLabel"},m.a.createElement(u.a.Header,{id:"accountSettingsHeader",closeButton:!0},m.a.createElement(u.a.Title,{componentClass:"h1",id:"accountSettingsModalLabel"},m.a.createElement(b.a,{id:"user.settings.modal.title",defaultMessage:"Account Settings"}))),m.a.createElement(u.a.Body,{ref:this.modalBodyRef},m.a.createElement("div",{className:"settings-table"},m.a.createElement("div",{className:"settings-links"},m.a.createElement(m.a.Suspense,{fallback:null},m.a.createElement(P,{tabs:t,activeTab:this.state.active_tab,updateTab:this.updateTab}))),m.a.createElement("div",{className:"settings-content minimize-settings"},m.a.createElement(m.a.Suspense,{fallback:null},m.a.createElement(S,{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}}))))),m.a.createElement(O.a,{title:e(M.confirmTitle),message:e(M.confirmMsg),confirmButtonText:e(M.confirmBtns),show:this.state.showConfirmModal,onConfirm:this.handleConfirm,onCancel:this.handleCancelConfirmation}))}}T(I,"propTypes",{currentUser:E.a.object.isRequired,onHide:E.a.func.isRequired,intl:y.a.isRequired,actions:E.a.shape({sendVerificationEmail:E.a.func.isRequred}).isRequired});var N=Object(f.c)(I);t.a=Object(n.connect)((function(e){const t=Object(r.getConfig)(e),a="true"===t.CloseUnusedDirectMessages,n="true"===t.ExperimentalChannelOrganization,s="true"===t.SendEmailNotifications,i="true"===t.RequireEmailVerification;return{currentUser:Object(o.getCurrentUser)(e),closeUnusedDirectMessages:a,experimentalChannelOrganization:n,sendEmailNotifications:s,requireEmailVerification:i}}),(function(e){return{actions:Object(s.bindActionCreators)({sendVerificationEmail:i.sendVerificationEmail},e)}}))(N)},1272:function(e,t,a){"use strict";a(182),a(137),a(170);var n=a(309),s=a(6),i=a(1192),r=a(1223),o=a(16),l=a(1178),c=(a(52),a(34),a(33)),d=a.n(c),m=a(7),u=a.n(m),p=a(1352),h=a(1106),g=a(12),b=a(0),f=a(14),_=a(1208),E=a(1259),v=a.n(E),y=a(1224);function C(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function w(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const O=50,T=10;class S extends u.a.Component{constructor(e){super(e),w(this,"handleHide",()=>{this.props.actions.setModalSearchTerm(""),this.setState({show:!1})}),w(this,"handleExit",()=>{this.props.onHide&&this.props.onHide()}),w(this,"handleResponse",e=>{let t=null;e&&e.message&&(t=e.message),this.setState({saving:!1,addError:t})}),w(this,"handleSubmit",async e=>{e&&e.preventDefault();const t=this.state.values.map(e=>e.id);if(0!==t.length){if(this.props.skipCommit)return this.props.onAddCallback&&this.props.onAddCallback(t),void this.handleHide();this.setState({saving:!0}),t.forEach(async e=>{const{error:t}=await this.props.actions.linkGroupSyncable(e,this.props.currentTeamId,g.Groups.SYNCABLE_TYPE_TEAM,{auto_add:!0});this.handleResponse(t),t||this.handleHide()})}}),w(this,"addValue",e=>{const t=Object.assign([],this.state.values),a=t.map(e=>e.id);e&&e.id&&-1===a.indexOf(e.id)&&t.push(e),this.setState({values:t})}),w(this,"setGroupsLoadingState",e=>{this.setState({loadingGroups:e})}),w(this,"handlePageChange",(e,t)=>{e>t&&(this.setGroupsLoadingState(!0),this.props.actions.getGroupsNotAssociatedToTeam(this.props.currentTeamId,this.props.searchTerm,e,O+1).then(()=>{this.setGroupsLoadingState(!1)}))}),w(this,"handleDelete",e=>{this.setState({values:e})}),w(this,"search",e=>{this.props.actions.setModalSearchTerm(e)}),this.searchTimeoutId=0,this.state={values:[],show:!0,search:!1,saving:!1,addError:null,loadingGroups:!0}}componentDidMount(){Promise.all([this.props.actions.getGroupsNotAssociatedToTeam(this.props.currentTeamId,"",0,O+1),this.props.actions.getAllGroupsAssociatedToTeam(this.props.currentTeamId)]).then(()=>{this.setGroupsLoadingState(!1)})}UNSAFE_componentWillReceiveProps(e){if(this.props.searchTerm!==e.searchTerm){clearTimeout(this.searchTimeoutId);const t=e.searchTerm;if(""===t)return;this.searchTimeoutId=setTimeout(async()=>{this.setGroupsLoadingState(!0),await this.props.actions.getGroupsNotAssociatedToTeam(this.props.currentTeamId,t),this.setGroupsLoadingState(!1)},b.Q.SEARCH_TIMEOUT_MILLISECONDS)}}renderOption(e,t,a,n){const s=t?"more-modal__row--selected":"";return u.a.createElement("div",{key:e.id,ref:t?"selected":e.id,className:"more-modal__row clickable "+s,onClick:()=>a(e),onMouseMove:()=>n(e)},u.a.createElement("img",{className:"more-modal__image",src:v.a,alt:"group picture",width:"32",height:"32"}),u.a.createElement("div",{className:"more-modal__details"},u.a.createElement("div",{className:"more-modal__name"},e.display_name," ","-"," ",u.a.createElement("span",{className:"more-modal__name_sub"},u.a.createElement(h.a,{id:"numMembers",defaultMessage:"{num, number} {num, plural, one {member} other {members}}",values:{num:e.member_count}})))),u.a.createElement("div",{className:"more-modal__actions"},u.a.createElement("div",{className:"more-modal__actions--round"},u.a.createElement(y.a,null))))}renderValue(e){return e.data.display_name}render(){const e=u.a.createElement("div",{id:"numGroupsRemaining"},u.a.createElement(h.a,{id:"multiselect.numGroupsRemaining",defaultMessage:"Use ↑↓ to browse, ↵ to select. You can add {num, number} more {num, plural, one {group} other {groups}}. ",values:{num:T-this.state.values.length}})),t=Object(f.gb)("multiselect.add","Add"),a=Object(f.gb)("multiselect.adding","Adding...");let n=null;this.state.addError&&(n=u.a.createElement("div",{className:"has-error col-sm-12"},u.a.createElement("label",{className:"control-label font-weight--normal"},this.state.addError)));let s=this.props.groups;if(this.props.excludeGroups){const e=e=>!this.props.excludeGroups.find(t=>t.id===e.id);s=s.filter(e)}if(this.props.includeGroups){const e=e=>this.props.includeGroups.find(t=>t.id===e.id);s=[...s,...this.props.includeGroups.filter(e)]}return s=s.map(e=>(function(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?C(a,!0).forEach((function(t){w(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):C(a).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e})({label:e.display_name,value:e.id},e)),u.a.createElement(p.a,{id:"addGroupsToTeamModal",dialogClassName:"a11y__modal more-modal more-direct-channels",show:this.state.show,onHide:this.handleHide,onExited:this.handleExit},u.a.createElement(p.a.Header,{closeButton:!0},u.a.createElement(p.a.Title,{componentClass:"h1"},u.a.createElement(h.a,{id:"add_groups_to_team.title",defaultMessage:"Add New Groups To {teamName} Team",values:{teamName:u.a.createElement("strong",null,this.props.currentTeamName)}}))),u.a.createElement(p.a.Body,null,n,u.a.createElement(_.a,{key:"addGroupsToTeamKey",options:s,optionRenderer:this.renderOption,values:this.state.values,valueRenderer:this.renderValue,perPage:O,handlePageChange:this.handlePageChange,handleInput:this.search,handleDelete:this.handleDelete,handleAdd:this.addValue,handleSubmit:this.handleSubmit,maxValues:T,numRemainingText:e,buttonSubmitText:t,buttonSubmitLoadingText:a,saving:this.state.saving,loading:this.state.loadingGroups,placeholderText:Object(f.gb)("multiselect.addGroupsPlaceholder","Search and add groups")})))}}w(S,"propTypes",{currentTeamName:d.a.string.isRequired,currentTeamId:d.a.string.isRequired,searchTerm:d.a.string.isRequired,groups:d.a.array.isRequired,excludeGroups:d.a.arrayOf(d.a.object),includeGroups:d.a.arrayOf(d.a.object),onHide:d.a.func,skipCommit:d.a.bool,onAddCallback:d.a.func,actions:d.a.shape({getGroupsNotAssociatedToTeam:d.a.func.isRequired,setModalSearchTerm:d.a.func.isRequired,linkGroupSyncable:d.a.func.isRequired,getAllGroupsAssociatedToTeam:d.a.func.isRequired}).isRequired});t.a=Object(n.connect)((function(e,t){const a=e.views.search.modalSearch,n=t.team||Object(o.getCurrentTeam)(e)||{};let s=Object(r.getGroupsNotAssociatedToTeam)(e,n.id);if(a){const e=RegExp(a,"i");s=s.filter(t=>e.test(t.display_name)||e.test(t.name))}return{currentTeamName:n.display_name,currentTeamId:n.id,skipCommit:t.skipCommit,onAddCallback:t.onAddCallback,excludeGroups:t.excludeGroups,searchTerm:a,groups:s}}),(function(e){return{actions:Object(s.bindActionCreators)({getGroupsNotAssociatedToTeam:i.getGroupsNotAssociatedToTeam,setModalSearchTerm:l.a,linkGroupSyncable:i.linkGroupSyncable,getAllGroupsAssociatedToTeam:i.getAllGroupsAssociatedToTeam},e)}}))(S)},1273:function(e,t,a){"use strict";a(182),a(137),a(170);var n=a(309),s=a(6),i=a(1192),r=a(1223),o=a(13),l=a(1178),c=(a(52),a(34),a(33)),d=a.n(c),m=a(7),u=a.n(m),p=a(1352),h=a(1106),g=a(12),b=a(0),f=a(14),_=a(1208),E=a(1259),v=a.n(E),y=a(1224);function C(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function w(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const O=50,T=10;class S extends u.a.Component{constructor(e){super(e),w(this,"handleHide",()=>{this.props.actions.setModalSearchTerm(""),this.setState({show:!1})}),w(this,"handleExit",()=>{this.props.onHide&&this.props.onHide()}),w(this,"handleResponse",e=>{let t=null;e&&e.message&&(t=e.message),this.setState({saving:!1,addError:t})}),w(this,"handleSubmit",async e=>{e&&e.preventDefault();const t=this.state.values.map(e=>e.id);if(0!==t.length){if(this.props.skipCommit)return this.props.onAddCallback&&this.props.onAddCallback(t),void this.handleHide();this.setState({saving:!0}),t.forEach(async e=>{const{error:t}=await this.props.actions.linkGroupSyncable(e,this.props.currentChannelId,g.Groups.SYNCABLE_TYPE_CHANNEL,{auto_add:!0});this.handleResponse(t),t||this.handleHide()})}}),w(this,"addValue",e=>{const t=Object.assign([],this.state.values),a=t.map(e=>e.id);e&&e.id&&-1===a.indexOf(e.id)&&t.push(e),this.setState({values:t})}),w(this,"setGroupsLoadingState",e=>{this.setState({loadingGroups:e})}),w(this,"handlePageChange",(e,t)=>{e>t&&(this.setGroupsLoadingState(!0),this.props.actions.getGroupsNotAssociatedToChannel(this.props.currentChannelId,this.props.searchTerm,e,O+1).then(()=>{this.setGroupsLoadingState(!1)}))}),w(this,"handleDelete",e=>{this.setState({values:e})}),w(this,"search",e=>{this.props.actions.setModalSearchTerm(e)}),this.searchTimeoutId=0,this.state={values:[],show:!0,search:!1,saving:!1,addError:null,loadingGroups:!0}}componentDidMount(){Promise.all([this.props.actions.getGroupsNotAssociatedToChannel(this.props.currentChannelId,"",0,O+1),this.props.actions.getAllGroupsAssociatedToChannel(this.props.currentChannelId)]).then(()=>{this.setGroupsLoadingState(!1)})}UNSAFE_componentWillReceiveProps(e){if(this.props.searchTerm!==e.searchTerm){clearTimeout(this.searchTimeoutId);const t=e.searchTerm;if(""===t)return;this.searchTimeoutId=setTimeout(async()=>{this.setGroupsLoadingState(!0),await this.props.actions.getGroupsNotAssociatedToChannel(this.props.currentChannelId,t),this.setGroupsLoadingState(!1)},b.Q.SEARCH_TIMEOUT_MILLISECONDS)}}renderOption(e,t,a,n){const s=t?"more-modal__row--selected":"";return u.a.createElement("div",{key:e.id,ref:t?"selected":e.id,className:"more-modal__row clickable "+s,onClick:()=>a(e),onMouseMove:()=>n(e)},u.a.createElement("img",{className:"more-modal__image",src:v.a,alt:"group picture",width:"32",height:"32"}),u.a.createElement("div",{className:"more-modal__details"},u.a.createElement("div",{className:"more-modal__name"},e.display_name," ","-"," ",u.a.createElement("span",{className:"more-modal__name_sub"},u.a.createElement(h.a,{id:"numMembers",defaultMessage:"{num, number} {num, plural, one {member} other {members}}",values:{num:e.member_count}})))),u.a.createElement("div",{className:"more-modal__actions"},u.a.createElement("div",{className:"more-modal__actions--round"},u.a.createElement(y.a,null))))}renderValue(e){return e.data.display_name}render(){const e=u.a.createElement("div",{id:"numGroupsRemaining"},u.a.createElement(h.a,{id:"multiselect.numGroupsRemaining",defaultMessage:"Use ↑↓ to browse, ↵ to select. You can add {num, number} more {num, plural, one {group} other {groups}}. ",values:{num:T-this.state.values.length}})),t=Object(f.gb)("multiselect.add","Add"),a=Object(f.gb)("multiselect.adding","Adding...");let n=null;this.state.addError&&(n=u.a.createElement("div",{className:"has-error col-sm-12"},u.a.createElement("label",{className:"control-label font-weight--normal"},this.state.addError)));let s=this.props.groups;if(this.props.excludeGroups){const e=e=>!this.props.excludeGroups.find(t=>t.id===e.id);s=s.filter(e)}if(this.props.includeGroups){const e=e=>this.props.includeGroups.find(t=>t.id===e.id);s=[...s,...this.props.includeGroups.filter(e)]}return s=s.map(e=>(function(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?C(a,!0).forEach((function(t){w(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):C(a).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e})({label:e.display_name,value:e.id},e)),u.a.createElement(p.a,{id:"addGroupsToChannelModal",dialogClassName:"a11y__modal more-modal more-direct-channels",show:this.state.show,onHide:this.handleHide,onExited:this.handleExit},u.a.createElement(p.a.Header,{closeButton:!0},u.a.createElement(p.a.Title,null,u.a.createElement(h.a,{id:"add_groups_to_channel.title",defaultMessage:"Add New Groups To {channelName} Channel",values:{channelName:u.a.createElement("strong",null,this.props.currentChannelName)}}))),u.a.createElement(p.a.Body,null,n,u.a.createElement(_.a,{key:"addGroupsToChannelKey",options:s,optionRenderer:this.renderOption,values:this.state.values,valueRenderer:this.renderValue,perPage:O,handlePageChange:this.handlePageChange,handleInput:this.search,handleDelete:this.handleDelete,handleAdd:this.addValue,handleSubmit:this.handleSubmit,maxValues:T,numRemainingText:e,buttonSubmitText:t,buttonSubmitLoadingText:a,saving:this.state.saving,loading:this.state.loadingGroups,placeholderText:Object(f.gb)("multiselect.addGroupsPlaceholder","Search and add groups")})))}}w(S,"propTypes",{currentChannelName:d.a.string.isRequired,currentChannelId:d.a.string.isRequired,searchTerm:d.a.string.isRequired,groups:d.a.array.isRequired,excludeGroups:d.a.arrayOf(d.a.object),includeGroups:d.a.arrayOf(d.a.object),onHide:d.a.func,skipCommit:d.a.bool,onAddCallback:d.a.func,actions:d.a.shape({getGroupsNotAssociatedToChannel:d.a.func.isRequired,setModalSearchTerm:d.a.func.isRequired,linkGroupSyncable:d.a.func.isRequired,getAllGroupsAssociatedToChannel:d.a.func.isRequired}).isRequired});t.a=Object(n.connect)((function(e,t){const a=e.views.search.modalSearch,n=t.channel||Object(o.getCurrentChannel)(e)||{};let s=Object(r.getGroupsNotAssociatedToChannel)(e,n.id);if(a){const e=RegExp(a,"i");s=s.filter(t=>e.test(t.display_name)||e.test(t.name))}return{currentChannelName:n.display_name,currentChannelId:n.id,skipCommit:t.skipCommit,onAddCallback:t.onAddCallback,excludeGroups:t.excludeGroups,searchTerm:a,groups:s}}),(function(e){return{actions:Object(s.bindActionCreators)({getGroupsNotAssociatedToChannel:i.getGroupsNotAssociatedToChannel,setModalSearchTerm:l.a,linkGroupSyncable:i.linkGroupSyncable,getAllGroupsAssociatedToChannel:i.getAllGroupsAssociatedToChannel},e)}}))(S)},1275:function(e,t,a){"use strict";a.d(t,"a",(function(){return r})),a.d(t,"c",(function(){return o})),a.d(t,"b",(function(){return l}));var n=a(16),s=a(10),i=a(116);const r=e=>{const t=Object(s.getCurrentUserId)(e),a=Object(n.getCurrentTeamId)(e);return i.a.getPreviousChannelName(t,a)},o=e=>{const t=Object(s.getCurrentUserId)(e),a=Object(n.getCurrentTeamId)(e);return i.a.getPenultimateChannelName(t,a)},l=(e,t)=>{const a=Object(s.getCurrentUserId)(e),r=Object(n.getTeamByName)(e,t),o=r&&r.id;return i.a.getPreviousChannelName(a,o)}},1288:function(e,t,a){"use strict";a.d(t,"a",(function(){return p}));a(52);var n=a(7),s=a.n(n),i=a(18),r=a(14),o=a(1161),l=a(1134),c=a(1140),d=a(1143),m=a(1144);class u extends m.a{render(){const{item:e,isSelection:t}=this.props;let a="suggestion-list__item mentions__name";t&&(a+=" suggestion--selected");const n=e.username;let d="";return(e.first_name||e.last_name)&&e.nickname?d="- ".concat(r.z(e)," (").concat(e.nickname,")"):e.nickname?d="- (".concat(e.nickname,")"):(e.first_name||e.last_name)&&(d="- ".concat(r.z(e))),s.a.createElement("div",Object.assign({className:a,onClick:this.handleClick,onMouseMove:this.handleMouseMove},m.a.baseProps),s.a.createElement(c.a,{size:"xs",username:n,url:i.Client4.getUsersRoute()+"/"+e.id+"/image?_="+(e.last_picture_update||0)}),s.a.createElement("span",{className:"admin-setting-user--align"},"@"+n),s.a.createElement("span",{className:"admin-setting-user__fullname"}," ",d),s.a.createElement(l.a,{show:Boolean(e.is_bot)}),s.a.createElement(o.a,{show:r.V(e)}))}}class p extends d.a{constructor(e){super(),this.autocompleteUsers=e}async handlePretextChanged(e,t){const a=e.toLowerCase();this.startNewRequest(a);const n=await this.autocompleteUsers(a);if(this.shouldCancelDispatch(a))return!1;const s=Object.assign([],n.users);return t({matchedPretext:a,terms:s.map(e=>e.username),items:s,component:u}),!0}}},1289:function(e,t,a){"use strict";var n=a(33),s=a.n(n),i=a(7),r=a.n(i);const o=({inputId:e,label:t,labelClassName:a,inputClassName:n,children:s,footer:i,helpText:o})=>r.a.createElement("div",{"data-testid":e,className:"form-group"},r.a.createElement("label",{"data-testid":e+"label",className:"control-label "+a,htmlFor:e},t),r.a.createElement("div",{className:n},s,r.a.createElement("div",{"data-testid":e+"help-text",className:"help-text"},o),i));o.propTypes={inputId:s.a.string,label:s.a.node.isRequired,labelClassName:s.a.string,inputClassName:s.a.string,children:s.a.node.isRequired,helpText:s.a.node,footer:s.a.node},t.a=o},1290:function(e,t,a){"use strict";var n=a(1529);const s=a(0).Q.PayloadSources,i=Object.assign(new n.Dispatcher,{handleServerAction:function(e){e.type||console.warn("handleServerAction called with undefined action type");var t={source:s.SERVER_ACTION,action:e};this.dispatch(t)},handleViewAction:function(e){e.type||console.warn("handleViewAction called with undefined action type");var t={source:s.VIEW_ACTION,action:e};this.dispatch(t)}});t.a=i},1310:function(e,t,a){"use strict";a.d(t,"a",(function(){return s}));var n=a(0);function s(e){return t=>(t({type:n.f.DISMISS_NOTICE,data:e}),{data:!0})}},1311:function(e,t,a){"use strict";a.d(t,"a",(function(){return r}));var n=a(7),s=a.n(n),i=a(1106);class r extends s.a.PureComponent{render(){return s.a.createElement("span",this.props,s.a.createElement(i.a,{id:"generic_icons.mattermost",defaultMessage:"Mattermost Logo"},e=>s.a.createElement("svg",{version:"1.1",x:"0px",y:"0px",viewBox:"0 0 500 500",style:o.background,role:"img","aria-label":e},s.a.createElement("g",null,s.a.createElement("g",null,s.a.createElement("path",{style:o.st0,d:"M396.9,47.7l2.6,53.1c43,47.5,60,114.8,38.6,178.1c-32,94.4-137.4,144.1-235.4,110.9 S51.1,253.1,83,158.7C104.5,95.2,159.2,52,222.5,40.5l34.2-40.4C150-2.8,49.3,63.4,13.3,169.9C-31,300.6,39.1,442.5,169.9,486.7 s272.6-25.8,316.9-156.6C522.7,223.9,483.1,110.3,396.9,47.7z"})),s.a.createElement("path",{style:o.st0,d:"M335.6,204.3l-1.8-74.2l-1.5-42.7l-1-37c0,0,0.2-17.8-0.4-22c-0.1-0.9-0.4-1.6-0.7-2.2 c0-0.1-0.1-0.2-0.1-0.3c0-0.1-0.1-0.2-0.1-0.2c-0.7-1.2-1.8-2.1-3.1-2.6c-1.4-0.5-2.9-0.4-4.2,0.2c0,0-0.1,0-0.1,0 c-0.2,0.1-0.3,0.1-0.4,0.2c-0.6,0.3-1.2,0.7-1.8,1.3c-3,3-13.7,17.2-13.7,17.2l-23.2,28.8l-27.1,33l-46.5,57.8 c0,0-21.3,26.6-16.6,59.4s29.1,48.7,48,55.1c18.9,6.4,48,8.5,71.6-14.7C336.4,238.4,335.6,204.3,335.6,204.3z"})))))}}const o={background:{enableBackground:"new 0 0 500 500"},st0:{fillRule:"evenodd",clipRule:"evenodd"}}},1312:function(e,t,a){e.exports=a.p+"files/fb02f374b8f73825415db1bccd4bd76d.gif"},1346:function(e,t,a){"use strict";var n=a(309),s=a(6),i=a(10),r=a(16),o=a(13),l=a(1148),c=(a(52),a(34),a(173)),d=a(36),m=a(39);function u(e){return async(t,a)=>{const n=a(),s=Object(r.getCurrentTeamId)(n),i=Object(m.o)(n),l=Object(o.getCurrentChannel)(n);let u;return u=!1===i.exists?l.id:i.channel_id,Promise.all([t(Object(c.getTeamMember)(s,e)),t(Object(d.getChannelMember)(u,e))])}}var p=a(1125),h=a(110),g=a(33),b=a.n(g),f=a(7),_=a.n(f),E=a(1390),v=a(1106),y=a(314),C=a(316),w=a.n(C),O=a(1350),T=a(1117),S=a(1271),P=a(95),M=a(1120),I=a(0),N=a(27),j=a(1118),A=a(14),R=a(1172),k=a(1352),L=a(54),D=(a(113),a(99),a(101)),x=a(15),U=a(324),q=a(61),H=a(12),F=a(100),B=a(41),G=a(1170),V=a(1171),W=a(1188),z=a(11),Y=a(1143),K=a(1144);function Q(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function J(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class Z extends K.a{static get propTypes(){return function(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?Q(a,!0).forEach((function(t){J(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):Q(a).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}({},super.propTypes)}render(){const{item:e,isSelection:t}=this.props,a=e.channel,n=a.delete_at&&0!==a.delete_at;let s="mentions__name";t&&(s+=" suggestion--selected");const i=a.display_name;let r=null;return n?r=_.a.createElement(W.a,{className:"icon icon__archive"}):a.type===I.j.OPEN_CHANNEL?r=_.a.createElement(G.a,{className:"icon icon__globe icon--body"}):a.type===I.j.PRIVATE_CHANNEL&&(r=_.a.createElement(V.a,{className:"icon icon__lock icon--body"})),_.a.createElement("div",Object.assign({onClick:this.handleClick,className:s,onMouseMove:this.handleMouseMove,ref:e=>{this.node=e}},K.a.baseProps),r,i)}}let X="";function $(e,t){const a=!!e.channel.delete_at&&0!==e.channel.delete_at,n=!!t.channel.delete_at&&0!==t.channel.delete_at;if(a&&!n)return 1;if(!a&&n)return-1;const s=Object(U.getCurrentUserLocale)(z.a.getState()),i=e.channel,r=t.channel,o=i.display_name.toLowerCase(),l=r.display_name.toLowerCase(),c=o.startsWith(X),d=l.startsWith(X);return c&&d?Object(F.sortChannelsByTypeAndDisplayName)(s,i,r):c||d?c?-1:1:Object(F.sortChannelsByTypeAndDisplayName)(s,i,r)}class ee extends Y.a{constructor(e){super(),this.autocompleteChannelsForSearch=e}makeChannelSearchFilter(e){const t=e.toLowerCase();return e=>{const a=z.a.getState(),n=e.id,s=Object(r.getCurrentTeamId)(a),i=e.display_name;return e.type===I.j.OPEN_CHANNEL&&Object(q.haveIChannelPermission)(a,{channel:n,team:s,permission:H.Permissions.MANAGE_PUBLIC_CHANNEL_MEMBERS})?i.toLowerCase().includes(t):!(e.type!==I.j.PRIVATE_CHANNEL||!Object(q.haveIChannelPermission)(a,{channel:n,team:s,permission:H.Permissions.MANAGE_PRIVATE_CHANNEL_MEMBERS}))&&i.toLowerCase().includes(t)}}handlePretextChanged(e,t){if(e){X=e,this.startNewRequest(e);const a=z.a.getState(),n=Object(o.getChannelsInCurrentTeam)(a);this.formatChannelsAndDispatch(e,t,n),this.fetchChannels(e,t)}return!0}async fetchChannels(e,t){const a=z.a.getState(),n=Object(r.getCurrentTeamId)(a);if(!n)return;const s=this.autocompleteChannelsForSearch(n,e);let i=[];try{const{data:e}=await s;i=e}catch(e){z.a.dispatch(Object(B.logError)(e))}if(this.shouldCancelDispatch(e))return;const l=Object(o.getChannelsInCurrentTeam)(a).concat(i);this.formatChannelsAndDispatch(e,t,l)}formatChannelsAndDispatch(e,t,a){const n=[],s=z.a.getState(),i=Object(D.getMyChannelMemberships)(s);if(this.shouldCancelDispatch(e))return;const r={},o=this.makeChannelSearchFilter(e),l="true"===Object(x.getConfig)(s).ExperimentalViewArchivedChannels;for(const e of Object.keys(a)){const t=a[e];if(t&&(!r[t.id]&&o(t))){const e=Object.assign({},t),a=0!==t.delete_at,s={channel:e,name:e.name,deactivated:!1};if(!l&&a)continue;if(!i[t.id])continue;if(a&&!i[t.id])continue;if(t.type===I.j.OPEN_CHANNEL)s.type=I.j.OPEN_CHANNEL;else{if(t.type!==I.j.PRIVATE_CHANNEL)continue;s.type=I.j.PRIVATE_CHANNEL}r[t.id]=!0,n.push(s)}}t({matchedPretext:e,terms:n.sort($).map(e=>e.channel.name),items:n,component:Z})}}var te=a(1185),ae=a(1186);function ne(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class se extends _.a.Component{constructor(e){super(e),ne(this,"enableChannelProvider",()=>{this.suggestionProviders[0].disableDispatches=!1}),ne(this,"focusTextbox",()=>{if(null==this.channelSearchBox)return;const e=this.channelSearchBox.getTextbox();document.activeElement!==e&&(e.focus(),Object(A.kb)(e))}),ne(this,"onInputChange",e=>{this.setState({text:e.target.value,selectedChannelId:null})}),ne(this,"onHide",()=>{this.setState({show:!1}),this.props.onHide()}),ne(this,"setSearchBoxRef",e=>{this.channelSearchBox=e,this.focusTextbox()}),ne(this,"handleSubmitError",e=>{e&&this.setState({submitError:e.message,saving:!1})}),ne(this,"didSelectChannel",e=>{const t=e.channel,a=this.props.user.id;this.setState({text:t.display_name,selectedChannelId:t.id,checkingForMembership:!0,submitError:""}),this.props.actions.getChannelMember(t.id,a).then(()=>{this.setState({checkingForMembership:!1})})}),ne(this,"handleSubmit",e=>{e&&e.preventDefault&&e.preventDefault();const t=this.state.selectedChannelId,a=this.props.user;t&&(this.isUserMemberOfChannel(t)||this.state.saving||(this.setState({saving:!0}),this.props.actions.addChannelMember(t,a.id).then(({error:e})=>{e?this.handleSubmitError(e):this.onHide()})))}),ne(this,"isUserMemberOfChannel",e=>{const t=this.props.user,a=this.props.channelMembers;return!!e&&(!!a[e]&&Boolean(a[e][t.id]))}),this.state={show:!0,saving:!1,checkingForMembership:!1,text:"",selectedChannelId:null,submitError:""},this.suggestionProviders=[new ee(e.actions.autocompleteChannelsForSearch)],this.enableChannelProvider()}render(){const e=this.props.user,t=this.state.selectedChannelId,a=this.isUserMemberOfChannel(t);let n,s=Object(L.getFullName)(e);s||(s="@".concat(e.username)),this.state.saving||(this.state.submitError?n=_.a.createElement("label",{id:"add-user-to-channel-modal__invite-error",className:"modal__error has-error control-label"},this.state.submitError):a&&(n=_.a.createElement("label",{id:"add-user-to-channel-modal__user-is-member",className:"modal__error has-error control-label"},_.a.createElement(v.a,{id:"add_user_to_channel_modal.membershipExistsError",defaultMessage:"{name} is already a member of that channel",values:{name:s}}))));const i=_.a.createElement(v.a,{id:"add_user_to_channel_modal.help",defaultMessage:"Type to find a channel. Use ↑↓ to browse, ↵ to select, ESC to dismiss."}),r=_.a.createElement(te.a,{ref:this.setSearchBoxRef,className:"form-control focused",onChange:this.onInputChange,value:this.state.text,onKeyDown:this.handleKeyDown,onItemSelected:this.didSelectChannel,listComponent:ae.a,maxLength:"64",providers:this.suggestionProviders,listStyle:"bottom",completeOnTab:!1,renderDividers:!1,delayInputUpdate:!0,openWhenEmpty:!0}),o=a||this.state.checkingForMembership||Boolean(!this.state.selectedChannelId)||this.state.saving;return _.a.createElement(k.a,{dialogClassName:"a11y__modal modal--overflow",show:this.state.show,onHide:this.onHide,onExited:this.props.onHide,ref:"modal",enforceFocus:!0,role:"dialog","aria-labelledby":"addChannelModalLabel"},_.a.createElement(k.a.Header,{closeButton:!0},_.a.createElement(k.a.Title,{componentClass:"h1",id:"addChannelModalLabel"},_.a.createElement(v.a,{id:"add_user_to_channel_modal.title",defaultMessage:"Add {name} to a channel",values:{name:s}}))),_.a.createElement("form",{role:"form",onSubmit:this.handleSubmit},_.a.createElement(k.a.Body,null,_.a.createElement("div",{className:"modal__hint"},i),r,_.a.createElement("div",null,n,_.a.createElement("br",null))),_.a.createElement(k.a.Footer,null,_.a.createElement("button",{type:"button",className:"btn btn-link",onClick:this.onHide},_.a.createElement(v.a,{id:"add_user_to_channel_modal.cancel",defaultMessage:"Cancel"})),_.a.createElement("button",{type:"button",id:"add-user-to-channel-modal__add-button",className:"btn btn-primary",onClick:this.handleSubmit,disabled:o},_.a.createElement(v.a,{id:"add_user_to_channel_modal.add",defaultMessage:"Add"})))))}}ne(se,"propTypes",{onHide:b.a.func.isRequired,user:b.a.object.isRequired,channelMembers:b.a.object.isRequired,actions:b.a.shape({addChannelMember:b.a.func.isRequired,getChannelMember:b.a.func.isRequired,autocompleteChannelsForSearch:b.a.func.isRequired}).isRequired});var ie=Object(n.connect)((function(e){return{channelMembers:Object(o.getChannelMembersInChannels)(e)||{}}}),(function(e){return{actions:Object(s.bindActionCreators)({addChannelMember:d.addChannelMember,getChannelMember:d.getChannelMember,autocompleteChannelsForSearch:d.autocompleteChannelsForSearch},e)}}))(se),re=a(1137),oe=a(1269),le=a(1140),ce=a(1174);function de(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function me(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class ue extends _.a.PureComponent{static getComponentName(){return"ProfilePopover"}constructor(e){super(e),me(this,"handleShowDirectChannel",e=>{const{actions:t}=this.props;if(e.preventDefault(),!this.props.user)return;const a=this.props.user;-1===this.state.loadingDMChannel&&(this.setState({loadingDMChannel:a.id}),t.openDirectChannelToUserId(a.id).then(e=>{e.error||(A.Y()&&M.c(),this.setState({loadingDMChannel:-1}),this.props.hide&&this.props.hide(),P.a.push("".concat(this.props.teamUrl,"/messages/@").concat(a.username)))}))}),me(this,"handleMentionKeyClick",e=>{e.preventDefault(),this.props.user&&(this.props.hide&&this.props.hide(),w.a.emit("mention_key_click",this.props.user.username,this.props.isRHS))}),me(this,"handleEditAccountSettings",e=>{e.preventDefault(),this.props.user&&(this.props.hide&&this.props.hide(),this.props.actions.openModal({ModalId:I.u.USER_SETTINGS,dialogType:S.a}))}),this.state={loadingDMChannel:-1}}componentDidMount(){this.props.actions.getMembershipForCurrentEntities(this.props.userId)}render(){if(!this.props.user)return null;const e=Object.assign({},this.props);delete e.user,delete e.userId,delete e.src,delete e.status,delete e.hideStatus,delete e.isBusy,delete e.hide,delete e.isRHS,delete e.hasMention,delete e.dispatch,delete e.enableTimezone,delete e.currentUserId,delete e.currentTeamId,delete e.teamUrl,delete e.actions,delete e.isTeamAdmin,delete e.isChannelAdmin,delete e.canManageAnyChannelMembersInCurrentTeam,delete e.intl;const{formatMessage:t}=this.props.intl;var a=[];a.push(_.a.createElement(le.a,{size:"xxl",username:this.props.user.username,url:this.props.src,key:"user-popover-image"}));const n=A.z(this.props.user);if((n||this.props.user.position)&&a.push(_.a.createElement("hr",{key:"user-popover-hr",className:"divider divider--expanded"})),n&&a.push(_.a.createElement(T.a,{delayShow:I.Q.OVERLAY_TIME_DELAY,placement:"top",overlay:_.a.createElement(E.a,{id:"fullNameTooltip"},n),key:"user-popover-fullname"},_.a.createElement("div",{className:"overflow--ellipsis text-nowrap"},_.a.createElement("strong",null,n)))),this.props.user.is_bot&&a.push(_.a.createElement("div",{key:"bot-description",className:"overflow--ellipsis text-nowrap"},this.props.user.bot_description)),this.props.user.position){const e=this.props.user.position.substring(0,I.Q.MAX_POSITION_LENGTH);a.push(_.a.createElement(T.a,{delayShow:I.Q.OVERLAY_TIME_DELAY,placement:"top",overlay:_.a.createElement(E.a,{id:"positionTooltip"},e),key:"user-popover-position"},_.a.createElement("div",{className:"overflow--ellipsis text-nowrap padding-bottom padding-top half"},e)))}const s=this.props.user.email;if(s&&!this.props.user.is_bot&&(a.push(_.a.createElement("hr",{key:"user-popover-hr2",className:"divider divider--expanded"})),a.push(_.a.createElement("div",{"data-toggle":"tooltip",title:s,key:"user-popover-email"},_.a.createElement("a",{href:"mailto:"+s,className:"text-nowrap text-lowercase user-popover__email padding-bottom half"},s)))),a.push(_.a.createElement(R.a,{key:"profilePopoverPluggable2",pluggableName:"PopoverUserAttributes",user:this.props.user,hide:this.props.hide,status:this.props.hideStatus?null:this.props.status})),this.props.enableTimezone&&this.props.user.timezone&&a.push(_.a.createElement("div",{key:"user-popover-local-time",className:"padding-bottom half"},_.a.createElement(v.a,{id:"user_profile.account.localTime",defaultMessage:"Local Time: "}),_.a.createElement(O.a,{userTimezone:this.props.user.timezone}))),this.props.user.id===this.props.currentUserId&&a.push(_.a.createElement("div",{"data-toggle":"tooltip",key:"user-popover-settings",className:"popover__row first"},_.a.createElement("a",{href:"#",onClick:this.handleEditAccountSettings},_.a.createElement(re.a,{className:"fa fa-pencil-square-o",title:{id:Object(N.b)("generic_icons.edit"),defaultMessage:"Edit Icon"}}),_.a.createElement(v.a,{id:"user_profile.account.editSettings",defaultMessage:"Edit Account Settings"})))),this.props.user.id!==this.props.currentUserId&&(a.push(_.a.createElement("div",{"data-toggle":"tooltip",key:"user-popover-dm",className:"popover__row first"},_.a.createElement("a",{href:"#",className:"text-nowrap user-popover__email",onClick:this.handleShowDirectChannel},_.a.createElement(re.a,{className:"fa fa-paper-plane",title:{id:Object(N.b)("user_profile.send.dm.icon"),defaultMessage:"Send Message Icon"}}),_.a.createElement(v.a,{id:"user_profile.send.dm",defaultMessage:"Send Message"})))),this.props.canManageAnyChannelMembersInCurrentTeam&&this.props.isInCurrentTeam)){const e=t({id:"user_profile.add_user_to_channel",defaultMessage:"Add to a Channel"});a.push(_.a.createElement("div",{"data-toggle":"tooltip",className:"popover__row first",key:"user-popover-add-to-channel"},_.a.createElement("a",{href:"#",className:"text-nowrap"},_.a.createElement(oe.a,{accessibilityLabel:e,ref:"addUserToChannelModalButton",modalId:I.u.ADD_USER_TO_CHANNEL,role:"menuitem",dialogType:ie,dialogProps:{user:this.props.user},onClick:this.props.hide},_.a.createElement(re.a,{className:"fa fa-user-plus",title:{id:Object(N.b)("user_profile.add_user_to_channel.icon"),defaultMessage:"Add User to Channel Icon"}}),e))))}let i;a.push(_.a.createElement(R.a,{key:"profilePopoverPluggable3",pluggableName:"PopoverUserActions",user:this.props.user,hide:this.props.hide,status:this.props.hideStatus?null:this.props.status})),this.props.user.is_bot?i=_.a.createElement("span",{className:"user-popover__role"},A.gb("bots.is_bot","BOT")):A.V(this.props.user)?i=_.a.createElement("span",{className:"user-popover__role"},A.gb("post_info.guest","GUEST")):A.ab(this.props.user.roles)?i=_.a.createElement("span",{className:"user-popover__role"},A.gb("admin.permissions.roles.system_admin.name","System Admin")):this.props.isTeamAdmin?i=_.a.createElement("span",{className:"user-popover__role"},A.gb("admin.permissions.roles.team_admin.name","Team Admin")):this.props.isChannelAdmin&&(i=_.a.createElement("span",{className:"user-popover__role"},A.gb("admin.permissions.roles.channel_admin.name","Channel Admin")));let r="@".concat(this.props.user.username);return this.props.hasMention&&(r=_.a.createElement("a",{onClick:this.handleMentionKeyClick},r)),r=_.a.createElement("span",{"data-testid":"profilePopoverTitle_".concat(this.props.user.username)},_.a.createElement("span",{className:"user-popover__username"},r),i),_.a.createElement(ce.a,Object.assign({},e,{title:r,id:"user-profile-popover"}),a)}}me(ue,"propTypes",function(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?de(a,!0).forEach((function(t){me(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):de(a).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}({src:b.a.string.isRequired,user:b.a.object,status:b.a.string,hideStatus:b.a.bool,hide:b.a.func,isRHS:b.a.bool,currentTeamId:b.a.string.isRequired,currentUserId:b.a.string.isRequired,hasMention:b.a.bool,isInCurrentTeam:b.a.bool.isRequired,teamUrl:b.a.string.isRequired,isTeamAdmin:b.a.bool.isRequired,isChannelAdmin:b.a.bool.isRequired,canManageAnyChannelMembersInCurrentTeam:b.a.bool.isRequired,actions:b.a.shape({getMembershipForCurrentEntities:b.a.func.isRequired,openDirectChannelToUserId:b.a.func.isRequired,openModal:b.a.func.isRequired}).isRequired,intl:j.a.isRequired},ce.a.propTypes)),me(ue,"defaultProps",{isRHS:!1,hasMention:!1,status:I.O.OFFLINE}),delete ue.propTypes.id;var pe=Object(y.c)(ue);t.a=Object(n.connect)((function(e,t){const a=t.userId,n=Object(r.getCurrentTeam)(e),s=Object(r.getTeamMember)(e,n.id,a);let l=!1;s&&s.scheme_admin&&(l=!0);const c=Object(m.o)(e),d=Object(o.getCurrentChannel)(e);let u;u=!1===c.exists?d.id:c.channel_id;const p=Object(o.getChannelMembersInChannels)(e)[u][a];let g=!1;return"search"!==Object(m.k)(e)&&null!=p&&p.scheme_admin&&(g=!0),{currentTeamId:n.id,currentUserId:Object(i.getCurrentUserId)(e),enableTimezone:Object(h.a)(e),isTeamAdmin:l,isChannelAdmin:g,isInCurrentTeam:Boolean(s)&&0===s.delete_at,canManageAnyChannelMembersInCurrentTeam:Object(o.canManageAnyChannelMembersInCurrentTeam)(e),status:Object(i.getStatusForUserId)(e,a),teamUrl:Object(r.getCurrentRelativeTeamUrl)(e),user:Object(i.getUser)(e,a)}}),(function(e){return{actions:Object(s.bindActionCreators)({openDirectChannelToUserId:l.e,openModal:p.b,getMembershipForCurrentEntities:u},e)}}))(pe)},1347:function(e,t,a){"use strict";var n=a(309),s=a(21),i=a(6),r=a(19),o=a(15),l=a(61),c=a(73),d=a(12),m=a(1152),u=a(0),p=a(1310),h=a(7),g=a.n(h),b=a(1114),f=a(1400),_=a(17),E=a(323),v=a.n(E),y=[{name:"apiv3_deprecation",adminOnly:!0,title:g.a.createElement(b.b,{id:"system_notice.title",defaultMessage:"**Notice**\\nfrom Mattermost"}),icon:v.a,body:g.a.createElement(b.b,{id:"system_notice.body.api3",defaultMessage:"If you’ve created or installed integrations in the last two years, find out how [recent changes](!https://about.mattermost.com/default-apiv3-deprecation-guide) may have affected them."}),allowForget:!0,show:(e,t)=>!(t.InstallationDate>=new Date(2018,5,16,0,0,0,0).getTime())},{name:"advanced_permissions",adminOnly:!0,title:g.a.createElement(b.b,{id:"system_notice.title",defaultMessage:"**Notice**\\nfrom Mattermost"}),icon:v.a,body:g.a.createElement(b.b,{id:"system_notice.body.permissions",defaultMessage:"Some policy and permission System Console settings have moved with the release of [advanced permissions](!https://about.mattermost.com/default-advanced-permissions) in Enterprise E10 and E20."}),allowForget:!0,show:(e,t,a)=>"false"!==a.IsLicensed&&(!(t.InstallationDate>new Date(2018,5,16,0,0,0,0).getTime())&&!("true"===a.IsLicensed&&a.IssuedAt>new Date(2018,5,16,0,0,0,0).getTime()))},{name:"ee_upgrade_advice",adminOnly:!0,title:g.a.createElement(b.b,{id:"system_notice.title",defaultMessage:"**Notice**\\nfrom Mattermost"}),icon:v.a,body:g.a.createElement(b.b,{id:"system_notice.body.ee_upgrade_advice",defaultMessage:"Enterprise Edition is recommended to ensure optimal operation and reliability. [Learn more](!https://mattermost.com/performance)."}),allowForget:!1,show:(e,t,a,n)=>{return!!n.hasOwnProperty("TOTAL_USERS")&&(!(n.TOTAL_USERS<1e4)&&("true"!==a.IsLicensed||"true"!==a.Cluster))}},{name:"ie11_deprecation",title:g.a.createElement(b.b,{id:"system_notice.title",defaultMessage:"**Notice**\\nfrom Mattermost"}),icon:v.a,allowForget:!1,body:g.a.createElement(b.b,{id:"system_notice.body.ie11_deprecation",defaultMessage:"Your browser, IE11, will no longer be supported in an upcoming release. [Find out how to move to another browser in one simple step](!https://forum.mattermost.org/t/mattermost-is-dropping-support-for-internet-explorer-ie11-in-v5-16/7575)."}),show:e=>!f.b(e,"5.16.0")&&!!_.g()}],C=(a(34),a(33)),w=a.n(C),O=a(1106),T=a(27),S=a(1137),P=a(1311);function M(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class I extends g.a.PureComponent{constructor(...e){super(...e),M(this,"getCurrentNotice",()=>{for(const e of this.props.notices)if(!this.props.dismissedNotices[e.name]&&!this.props.preferences[e.name]&&(!e.adminOnly||this.props.isSystemAdmin)&&e.show(this.props.serverVersion,this.props.config,this.props.license,this.props.analytics))return e;return null}),M(this,"hide",(e=!1)=>{const t=this.getCurrentNotice();t&&(e||this.props.actions.savePreferences(this.props.currentUserId,[{user_id:this.props.currentUserId,category:u.B.CATEGORY_SYSTEM_NOTICE,name:t.name,value:"dismissed"}]),this.props.actions.dismissNotice(t.name))}),M(this,"hideAndRemind",()=>{this.hide(!0)}),M(this,"hideAndForget",()=>{this.hide(!1)})}componentDidMount(){this.props.isSystemAdmin&&this.props.actions.getStandardAnalytics()}componentDidUpdate(e){e.isSystemAdmin!==this.props.isSystemAdmin&&this.props.isSystemAdmin&&this.props.actions.getStandardAnalytics()}render(){const e=this.getCurrentNotice();if(null==e)return null;let t;return e.adminOnly&&(t=g.a.createElement("div",{className:"system-notice__info"},g.a.createElement(S.a,{className:"fa fa-eye",title:{id:Object(T.b)("system_notice.adminVisible.icon"),defaultMessage:"Only visible to System Admins Icon"}}),g.a.createElement(O.a,{id:"system_notice.adminVisible",defaultMessage:"Only visible to System Admins"}))),g.a.createElement("div",{className:"system-notice bg--white shadow--2"},g.a.createElement("div",{className:"system-notice__header"},g.a.createElement("div",{className:"system-notice__logo"},g.a.createElement(P.a,null)),g.a.createElement("div",{className:"system-notice__title"},e.title)),g.a.createElement("div",{className:"system-notice__body"},e.body),t,g.a.createElement("div",{className:"system-notice__footer"},g.a.createElement("button",{id:"systemnotice_remindme",className:"btn btn-transparent",onClick:this.hideAndRemind},g.a.createElement(O.a,{id:"system_notice.remind_me",defaultMessage:"Remind Me Later"})),e.allowForget&&g.a.createElement("button",{id:"systemnotice_dontshow",className:"btn btn-transparent",onClick:this.hideAndForget},g.a.createElement(O.a,{id:"system_notice.dont_show",defaultMessage:"Don't Show Again"}))))}}M(I,"propTypes",{currentUserId:w.a.string.isRequired,notices:w.a.arrayOf(w.a.object).isRequired,preferences:w.a.object.isRequired,dismissedNotices:w.a.object.isRequired,isSystemAdmin:w.a.bool,serverVersion:w.a.string.isRequired,config:w.a.object.isRequired,license:w.a.object.isRequired,analytics:w.a.object,actions:w.a.shape({savePreferences:w.a.func.isRequired,dismissNotice:w.a.func.isRequired,getStandardAnalytics:w.a.func.isRequired}).isRequired});t.a=Object(n.connect)((function(){const e=Object(r.makeGetCategory)(),t=Object(s.createSelector)(e,e=>{const t={};return e.forEach(e=>{t[e.name]=e}),t});return function(e){const a=Object(o.getLicense)(e),n=Object(o.getConfig)(e),s=e.entities.general.serverVersion,i=e.entities.admin.analytics;return{currentUserId:e.entities.users.currentUserId,preferences:t(e,u.B.CATEGORY_SYSTEM_NOTICE),dismissedNotices:e.views.notice.hasBeenDismissed,isSystemAdmin:Object(l.haveISystemPermission)(e,{permission:d.Permissions.MANAGE_SYSTEM}),notices:y,config:n,license:a,serverVersion:s,analytics:i}}}),(function(e){return{actions:Object(i.bindActionCreators)({savePreferences:c.savePreferences,dismissNotice:p.a,getStandardAnalytics:m.getStandardAnalytics},e)}}))(I)},1348:function(e,t,a){"use strict";const n=7,s=3e3,i=3e5;var r=new class{constructor(){this.conn=null,this.connectionUrl=null,this.sequence=1,this.eventSequence=0,this.connectFailCount=0,this.eventCallback=null,this.responseCallbacks={},this.firstConnectCallback=null,this.reconnectCallback=null,this.missedEventCallback=null,this.errorCallback=null,this.closeCallback=null}initialize(e=this.connectionUrl,t){this.conn||(null!=e?(0===this.connectFailCount&&console.log("websocket connecting to "+e),this.conn=new WebSocket(e),this.connectionUrl=e,this.conn.onopen=()=>{this.eventSequence=0,t&&this.sendMessage("authentication_challenge",{token:t}),this.connectFailCount>0?(console.log("websocket re-established connection"),this.reconnectCallback&&this.reconnectCallback()):this.firstConnectCallback&&this.firstConnectCallback(),this.connectFailCount=0},this.conn.onclose=()=>{this.conn=null,this.sequence=1,0===this.connectFailCount&&console.log("websocket closed"),this.connectFailCount++,this.closeCallback&&this.closeCallback(this.connectFailCount);let a=s;this.connectFailCount>n&&(a=s*this.connectFailCount*this.connectFailCount)>i&&(a=i),setTimeout(()=>{this.initialize(e,t)},a)},this.conn.onerror=e=>{this.connectFailCount<=1&&(console.log("websocket error"),console.log(e)),this.errorCallback&&this.errorCallback(e)},this.conn.onmessage=e=>{const t=JSON.parse(e.data);t.seq_reply?(t.error&&console.log(t),this.responseCallbacks[t.seq_reply]&&(this.responseCallbacks[t.seq_reply](t),Reflect.deleteProperty(this.responseCallbacks,t.seq_reply))):this.eventCallback&&(t.seq!==this.eventSequence&&this.missedEventCallback&&(console.log("missed websocket event, act_seq="+t.seq+" exp_seq="+this.eventSequence),this.missedEventCallback()),this.eventSequence=t.seq+1,this.eventCallback(t))}):console.log("websocket must have connection url"))}setEventCallback(e){this.eventCallback=e}setFirstConnectCallback(e){this.firstConnectCallback=e}setReconnectCallback(e){this.reconnectCallback=e}setMissedEventCallback(e){this.missedEventCallback=e}setErrorCallback(e){this.errorCallback=e}setCloseCallback(e){this.closeCallback=e}close(){this.connectFailCount=0,this.sequence=1,this.conn&&this.conn.readyState===WebSocket.OPEN&&(this.conn.onclose=()=>{},this.conn.close(),this.conn=null,console.log("websocket closed"))}sendMessage(e,t,a){const n={action:e,seq:this.sequence++,data:t};a&&(this.responseCallbacks[n.seq]=a),this.conn&&this.conn.readyState===WebSocket.OPEN?this.conn.send(JSON.stringify(n)):this.conn&&this.conn.readyState!==WebSocket.CLOSED||(this.conn=null,this.initialize())}userTyping(e,t,a){const n={};n.channel_id=e,n.parent_id=t,this.sendMessage("user_typing",n,a)}userUpdateActiveStatus(e,t,a){const n={user_is_active:e,manual:t};this.sendMessage("user_update_active_status",n,a)}getStatuses(e){this.sendMessage("get_statuses",null,e)}getStatusesByIds(e,t){const a={};a.user_ids=e,this.sendMessage("get_statuses_by_ids",a,t)}};t.a=r},1350:function(e,t,a){"use strict";var n=a(309),s=a(10),i=a(180),r=a(181),o=a(19),l=a(110),c=a(0),d=(a(137),a(33)),m=a.n(d),u=a(7),p=a.n(u),h=a(314),g=a(133),b=a.n(g);function f(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function _(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class E extends p.a.PureComponent{render(){const{enableTimezone:e,eventTime:t,timeZone:a,useMilitaryTime:n}=this.props,s=t?new Date(t):new Date,i=b()(s);let r=i.toString();e&&a&&(i.tz(a),r=i.toString()+" ("+i.tz()+")");const o=function(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?f(a,!0).forEach((function(t){_(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):f(a).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}({},e&&a?{timeZone:a}:{},{hour12:!n});let l=this.props.intl.formatTime(s,o);if(l===String(s)){const e=n?"HH:mm":"hh:mm A";l=i.format(e)}return p.a.createElement("time",{"aria-label":s.toString(),className:"post__time",dateTime:s.toISOString(),title:r},p.a.createElement("span",null,l))}}_(E,"propTypes",{eventTime:m.a.number,useMilitaryTime:m.a.bool,timeZone:m.a.oneOfType([m.a.string,m.a.oneOf([null])]),enableTimezone:m.a.bool,intl:m.a.any.isRequired});var v=Object(h.c)(E);t.a=Object(n.connect)((function(e,t){const a=Object(s.getCurrentUserId)(e);let n;return n=t.userTimezone?t.userTimezone:Object(i.getUserTimezone)(e,a),{enableTimezone:Object(l.a)(e),useMilitaryTime:Object(o.getBool)(e,c.B.CATEGORY_DISPLAY_SETTINGS,c.B.USE_MILITARY_TIME,!1),timeZone:Object(r.getUserCurrentTimezone)(n)}}))(v)},1351:function(e,t,a){"use strict";a.d(t,"a",(function(){return n}));const n=e=>e.websocket},1366:function(e,t,a){"use strict";a.d(t,"a",(function(){return l}));a(52);var n=a(7),s=a.n(n),i=a(1143),r=a(1144);class o extends r.a{render(){const{item:e,isSelection:t}=this.props;let a="mentions__name";return t&&(a+=" suggestion--selected"),s.a.createElement("div",Object.assign({className:a,onClick:this.handleClick,onMouseMove:this.handleMouseMove},r.a.baseProps),e.text)}}class l extends i.a{constructor(e){super(),this.options=e}handlePretextChanged(e,t){return 0===e.length?(this.displayAllOptions(t),!0):!!e&&(this.filterOptions(e,t),!0)}async displayAllOptions(e){e({matchedPretext:"",terms:this.options.map(e=>e.text),items:this.options,component:o})}async filterOptions(e,t){const a=this.options.filter(t=>t.text.toLowerCase().indexOf(e)>=0),n=a.map(e=>e.text);t({matchedPretext:e,terms:n,items:a,component:o})}}},1367:function(e,t,a){"use strict";a.d(t,"a",(function(){return l}));var n=a(7),s=a.n(n),i=a(1143),r=a(1144);class o extends r.a{render(){const e=this.props.isSelection,t=this.props.item,a=t.display_name,n=t.purpose;let i="mentions__name no-flex";e&&(i+=" suggestion--selected");const o="(~"+t.name+")";return s.a.createElement("div",Object.assign({className:i,onClick:this.handleClick,onMouseMove:this.handleMouseMove},r.a.baseProps),s.a.createElement("div",{className:"mention__align"},s.a.createElement("span",null,a),s.a.createElement("span",{className:"mention__channelname"}," ",o)),s.a.createElement("div",{className:"mention__purpose"},n))}}class l extends i.a{constructor(e){super(),this.autocompleteChannels=e}handlePretextChanged(e,t){const a=e.toLowerCase();return this.startNewRequest(a),this.autocompleteChannels(a,e=>{if(this.shouldCancelDispatch(a))return;const n=Object.assign([],e);t({matchedPretext:a,terms:n.map(e=>e.display_name),items:n,component:o})}),!0}}},1368:function(e,t,a){"use strict";a.d(t,"a",(function(){return c}));a(34);var n=a(33),s=a.n(n),i=a(7),r=a.n(i),o=a(1289);function l(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class c extends r.a.Component{constructor(...e){super(...e),l(this,"handleChange",e=>{"number"===this.props.type?this.props.onChange(this.props.id,parseInt(e.target.value,10)):this.props.onChange(this.props.id,e.target.value)})}render(){const{resizable:e}=this.props;let{type:t}=this.props,a=null;if("textarea"===t){let t={};e||(t=Object.assign({},{resize:"none"})),a=r.a.createElement("textarea",{"data-testid":this.props.id+"input",id:this.props.id,style:t,className:"form-control",rows:5,placeholder:this.props.placeholder,value:this.props.value,maxLength:this.props.maxLength,onChange:this.handleChange,disabled:this.props.disabled})}else t=["input","email","tel","number","url","password"].includes(t)?t:"input",a=r.a.createElement("input",{"data-testid":this.props.id+t,id:this.props.id,className:"form-control",type:t,placeholder:this.props.placeholder,value:this.props.value,maxLength:this.props.maxLength,onChange:this.handleChange,disabled:this.props.disabled});return r.a.createElement(o.a,{label:this.props.label,labelClassName:this.props.labelClassName,inputClassName:this.props.inputClassName,helpText:this.props.helpText,inputId:this.props.id,footer:this.props.footer},a)}}l(c,"propTypes",{id:s.a.string.isRequired,label:s.a.node.isRequired,labelClassName:s.a.string,placeholder:s.a.string,helpText:s.a.node,footer:s.a.node,value:s.a.oneOfType([s.a.string,s.a.number]).isRequired,inputClassName:s.a.string,maxLength:s.a.number,resizable:s.a.bool,disabled:s.a.bool,type:s.a.oneOf(["input","textarea","number","email","tel","url","password"])}),l(c,"validTypes",["input","textarea","number","email","tel","url","password"]),l(c,"defaultProps",{labelClassName:"",inputClassName:"",type:"input",maxLength:-1,resizable:!0})},1369:function(e,t,a){"use strict";a.d(t,"a",(function(){return d}));var n=a(33),s=a.n(n),i=a(7),r=a.n(i),o=a(1185),l=a(1186);function c(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class d extends r.a.PureComponent{constructor(e){super(e),c(this,"onChange",e=>{e&&e.target&&this.setState({input:e.target.value})}),c(this,"handleSelected",e=>{this.setState({input:""}),this.props.onSelected&&this.props.onSelected(e),requestAnimationFrame(()=>{this.suggestionRef&&this.suggestionRef.blur()})}),c(this,"setSuggestionRef",e=>{this.suggestionRef=e}),c(this,"onFocus",()=>{this.setState({focused:!0}),this.props.toggleFocus&&this.props.toggleFocus(!0)}),c(this,"onBlur",()=>{this.setState({focused:!1}),this.props.toggleFocus&&this.props.toggleFocus(!1)}),this.state={input:""}}render(){const{providers:e,placeholder:t,footer:a,label:n,labelClassName:s,helpText:i,inputClassName:c,value:d,disabled:m}=this.props,{focused:u}=this.state;let p,h,{input:g}=this.state;return u||(g=d),n&&(p=r.a.createElement("label",{className:"control-label "+s},n)),i&&(h=r.a.createElement("div",{className:"help-text"},i)),r.a.createElement("div",{"data-testid":"autoCompleteSelector",className:"form-group"},p,r.a.createElement("div",{className:c},r.a.createElement(o.a,{placeholder:t,ref:this.setSuggestionRef,listComponent:l.a,className:"form-control",containerClass:"select-suggestion-container",value:g,onChange:this.onChange,onItemSelected:this.handleSelected,onFocus:this.onFocus,onBlur:this.onBlur,providers:e,completeOnTab:!0,renderDividers:!1,renderNoResults:!0,openOnFocus:!0,openWhenEmpty:!0,replaceAllInputOnSelect:!0,disabled:m}),h,a))}}c(d,"propTypes",{providers:s.a.array.isRequired,value:s.a.string.isRequired,onSelected:s.a.func,label:s.a.node,labelClassName:s.a.string,inputClassName:s.a.string,helpText:s.a.node,placeholder:s.a.string,footer:s.a.node,disabled:s.a.bool,toggleFocus:s.a.func}),c(d,"defaultProps",{value:"",id:"",labelClassName:"",inputClassName:""})},1370:function(e,t,a){},1391:function(e,t,a){"use strict";function n(e,t,a,n){let s;return s=e.top>a?"top":t-e.bottom>(n||a)?"bottom":"left"}a.d(t,"a",(function(){return n}))},1393:function(e,t,a){"use strict";var n=a(33),s=a.n(n),i=a(7),r=a.n(i),o=a(1154);const l=({loading:e,progress:t,containerClass:a})=>{let n=r.a.createElement("span",{className:"loader-percent"});return t&&(n=r.a.createElement("span",{className:"loader-percent"},"".concat(e," ").concat(t,"%"))),r.a.createElement("div",{className:a},r.a.createElement(o.a,null),n)};l.propTypes={loading:s.a.string,progress:s.a.number,containerClass:s.a.string},l.defaultProps={containerClass:"view-image__loading"},t.a=l},1399:function(e,t,a){"use strict";a.d(t,"a",(function(){return o}));var n=a(0),s=a(14);n.l.PAGE_NOT_FOUND;const i=["/mfa/setup","/mfa/confirm"],r=["","email","ldap"];function o(e,t,a,n){if("true"===t.MFA&&"true"===a.EnableMultifactorAuthentication&&"true"===a.EnforceMultifactorAuthentication&&-1===i.indexOf(n)){if(Object(s.V)(e)&&"true"!==a.GuestAccountsEnforceMultifactorAuthentication)return!1;if(e&&!e.mfa_active&&-1!==r.indexOf(e.auth_service))return!0}return!1}},1400:function(e,t,a){"use strict";a.d(t,"a",(function(){return n})),a.d(t,"b",(function(){return s}));a(98);function n(e,t){if(e===t)return!0;return(e||"").split(".").slice(0,-2).join(".")===(t||"").split(".").slice(0,-2).join(".")}function s(e,t){if(e===t)return!0;const a=(e||"").split(".").filter(e=>null!==/^[0-9]+$/.exec(e)),n=(t||"").split(".").filter(e=>null!==/^[0-9]+$/.exec(e));for(let e=0;e<Math.max(a.length,n.length);e++){if((a[e]||0)>(n[e]||0))return!0;if((a[e]||0)<(n[e]||0))return!1}return!0}},1403:function(e,t,a){"use strict";a.d(t,"a",(function(){return d}));var n=a(33),s=a.n(n),i=a(7),r=a.n(i);function o(e,t){if(null==e)return{};var a,n,s=function(e,t){if(null==e)return{};var a,n,s={},i=Object.keys(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||(s[a]=e[a]);return s}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(s[a]=e[a])}return s}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function c(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class d extends r.a.Component{constructor(e){super(e),c(this,"height",void 0),c(this,"recalculateSize",()=>{if(!this.refs.reference||!this.refs.textarea)return;const e=this.refs.reference.scrollHeight,t=this.refs.textarea;if(e>0&&e!==this.height){const a=getComputedStyle(t),n=parseInt(a.borderTopWidth||"0",10)+parseInt(a.borderBottomWidth||"0",10);t.style.height=String(e+n)+"px",this.height=e,this.props.onHeightChange&&this.props.onHeightChange(e,parseInt(a.maxHeight||"0",10))}}),c(this,"getDOMNode",()=>this.refs.textarea),c(this,"handleChange",e=>{this.props.onChange&&this.props.onChange(e)}),this.height=0}get value(){return this.refs.textarea.value}set value(e){this.refs.textarea.value=e}get selectionStart(){return this.refs.textarea.selectionStart}set selectionStart(e){this.refs.textarea.selectionStart=e}get selectionEnd(){return this.refs.textarea.selectionEnd}set selectionEnd(e){this.refs.textarea.selectionEnd=e}focus(){this.refs.textarea.focus()}blur(){this.refs.textarea.blur()}componentDidMount(){this.recalculateSize()}componentDidUpdate(){this.recalculateSize()}render(){const e=function(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?l(a,!0).forEach((function(t){c(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):l(a).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}({},this.props);Reflect.deleteProperty(e,"onHeightChange"),Reflect.deleteProperty(e,"providers"),Reflect.deleteProperty(e,"channelId");const{value:t,defaultValue:a,placeholder:n,disabled:s,onInput:i,id:d}=e,u=o(e,["value","defaultValue","placeholder","disabled","onInput","id"]),p={rows:0,height:0};this.height<=0?p.rows=1:p.height=this.height;let h=null;const g=n?n.toLowerCase():"";return this.props.value||this.props.defaultValue||(h=r.a.createElement("div",Object.assign({},u,{style:m.placeholder}),n)),r.a.createElement("div",null,h,r.a.createElement("textarea",Object.assign({ref:"textarea",id:d},p,u,{role:"textbox","aria-label":g,disabled:s,onChange:this.handleChange,onInput:i,value:t,defaultValue:a})),r.a.createElement("div",{style:m.container},r.a.createElement("textarea",Object.assign({ref:"reference",id:d+"-reference",style:m.reference,disabled:!0,rows:1},u,{value:t||a,"aria-hidden":!0}))))}}c(d,"propTypes",{id:s.a.string,disabled:s.a.bool,value:s.a.string,defaultValue:s.a.string,onChange:s.a.func,onHeightChange:s.a.func,onInput:s.a.func,placeholder:s.a.string});const m={container:{height:0,overflow:"hidden"},reference:{height:"auto",width:"100%"},placeholder:{overflow:"hidden",textOverflow:"ellipsis",opacity:.5,pointerEvents:"none",position:"absolute",whiteSpace:"nowrap",background:"none"}}},1407:function(e,t,a){},1424:function(e,t,a){"use strict";a.d(t,"a",(function(){return r}));var n=a(7),s=a.n(n),i=a(1106);class r extends s.a.PureComponent{render(){return s.a.createElement(i.a,{id:"generic_icons.edit",defaultMessage:"Edit Icon"},e=>s.a.createElement("i",{className:"fa fa-pencil",title:e}))}}},1425:function(e,t,a){"use strict";a.d(t,"a",(function(){return _}));a(34),a(592);var n=a(33),s=a.n(n),i=a(7),r=a.n(i),o=a(1106),l=a(1390),c=a(0),d=a(14),m=a(1166),u=a(1129),p=a(1114),h=a(1117),g=a(1160);function b(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function f(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class _ extends i.Component{constructor(e){super(e),f(this,"handleCancel",e=>{this.setState({removeSrc:!1,setDefaultSrc:!1}),this.props.updateSection(e)}),f(this,"handleFileSelected",()=>{this.confirmButton.current&&this.confirmButton.current.focus()}),f(this,"handleSave",e=>{e.preventDefault(),this.state.removeSrc?this.props.onRemove():this.state.setDefaultSrc?this.props.onSetDefault():this.props.onSubmit()}),f(this,"handleRemoveSrc",e=>{e.preventDefault(),this.setState({removeSrc:!0}),this.focusFirstElement()}),f(this,"handleSetDefaultSrc",e=>{e.preventDefault(),this.setState({setDefaultSrc:!0}),this.focusFirstElement()}),f(this,"handleFileChange",e=>{this.setState({removeSrc:!1,setDefaultSrc:!1}),this.props.onFileChange(e)}),f(this,"handleInputFile",()=>{this.selectInput.current.value="",this.selectInput.current.click()}),f(this,"setPicture",e=>{if(e){this.previewBlob=URL.createObjectURL(e);var t=new FileReader;t.onload=e=>{const t=m.c(e.target.result),a=m.e(t);this.setState({image:this.previewBlob,orientationStyles:a})},t.readAsArrayBuffer(e)}}),f(this,"renderImg",()=>{const e=this.props.imageContext;if(this.props.file){const t=function(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?b(a,!0).forEach((function(t){f(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):b(a).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}({backgroundImage:"url("+this.state.image+")"},this.state.orientationStyles);return r.a.createElement("div",{className:"".concat(e,"-img-preview")},r.a.createElement("div",{className:"img-preview__image"},r.a.createElement("div",{alt:"".concat(e," image preview"),style:t,className:"".concat(e,"-img-preview")})))}if(this.state.setDefaultSrc)return r.a.createElement("img",{className:"".concat(e,"-img"),alt:"".concat(e," image"),src:this.props.defaultImageSrc});if(this.props.src&&!this.state.removeSrc){const t=r.a.createElement("img",{className:"".concat(e,"-img"),alt:"".concat(e," image"),src:this.props.src});if(!this.props.onRemove&&!this.props.onSetDefault)return t;let a,n;return this.props.onRemove?(a=r.a.createElement(o.a,{id:"setting_picture.remove",defaultMessage:"Remove this icon"}),n=this.handleRemoveSrc):this.props.onSetDefault&&(a=r.a.createElement(o.a,{id:"setting_picture.remove_profile_picture",defaultMessage:"Remove profile picture"}),n=this.handleSetDefaultSrc),r.a.createElement("div",{className:"".concat(e,"-img__container")},r.a.createElement("div",{className:"img-preview__image","aria-hidden":!0},t),r.a.createElement(h.a,{delayShow:c.j.OVERLAY_TIME_DELAY,placement:"right",overlay:r.a.createElement(l.a,{id:"removeIcon"},r.a.createElement("div",{"aria-hidden":!0},a))},r.a.createElement("button",{"data-testid":"removeSettingPicture",className:"".concat(e,"-img__remove"),onClick:n},r.a.createElement("span",{"aria-hidden":!0},"×"),r.a.createElement("span",{className:"sr-only"},a))))}return null}),this.settingList=r.a.createRef(),this.selectInput=r.a.createRef(),this.confirmButton=r.a.createRef(),this.state={image:null,removeSrc:!1,setDefaultSrc:!1}}focusFirstElement(){this.settingList.current&&this.settingList.current.focus()}componentDidMount(){this.focusFirstElement(),this.selectInput.current&&this.selectInput.current.addEventListener("input",this.handleFileSelected)}componentDidUpdate(e){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.props.imageContext,t=this.renderImg();let a,n,s="btn btn-sm",i=!1;return this.props.submitActive||this.state.removeSrc||this.state.setDefaultSrc?s+=" btn-primary":(s+=" btn-inactive disabled",i=!0),a="team"===e?r.a.createElement(p.b,{id:"setting_picture.help.team",defaultMessage:"Upload a team icon in BMP, JPG or PNG format.\\nSquare images with a solid background color are recommended."}):r.a.createElement(o.a,{id:"setting_picture.help.profile",defaultMessage:"Upload a picture in BMP, JPG or PNG format. Maximum file size: {max}",values:{max:Object(d.m)(this.props.maxFileSize)}}),t&&(n=r.a.createElement("li",{className:"setting-list-item",role:"presentation"},t)),r.a.createElement("section",{className:"section-max form-horizontal"},r.a.createElement("h4",{className:"col-xs-12 section-title"},this.props.title),r.a.createElement("div",{className:"col-xs-offset-3 col-xs-8"},r.a.createElement("div",{className:"setting-list",ref:this.settingList,tabIndex:"-1","aria-label":this.props.title,"aria-describedby":"setting-picture__helptext"},n,r.a.createElement("div",{id:"setting-picture__helptext",className:"setting-list-item padding-top x2"},a),r.a.createElement("div",{className:"setting-list-item"},r.a.createElement("hr",null),r.a.createElement(u.a,{errors:[this.props.clientError,this.props.serverError],type:"modal"}),r.a.createElement("input",{"data-testid":"uploadPicture",ref:this.selectInput,className:"hidden",accept:".jpg,.png,.bmp",type:"file",onChange:this.handleFileChange,disabled:this.props.loadingPicture,"aria-hidden":!0,tabIndex:"-1"}),r.a.createElement("button",{"data-testid":"inputSettingPictureButton",className:"btn btn-sm btn-primary btn-file sel-btn",disabled:this.props.loadingPicture,onClick:this.handleInputFile,"aria-label":Object(d.gb)("setting_picture.select","Select")},r.a.createElement(o.a,{id:"setting_picture.select",defaultMessage:"Select"})),r.a.createElement("button",{tabIndex:i?"-1":"0","data-testid":"saveSettingPicture",disabled:i,ref:this.confirmButton,className:s,onClick:this.props.loadingPicture?()=>!0:this.handleSave,"aria-label":this.props.loadingPicture?Object(d.gb)("setting_picture.uploading","Uploading..."):Object(d.gb)("setting_picture.save","Save")},r.a.createElement(g.a,{loading:this.props.loadingPicture,text:Object(d.gb)("setting_picture.uploading","Uploading...")},r.a.createElement(o.a,{id:"setting_picture.save",defaultMessage:"Save"}))),r.a.createElement("button",{"data-testid":"cancelSettingPicture",className:"btn btn-link btn-sm theme",href:"#",onClick:this.handleCancel,"aria-label":Object(d.gb)("setting_picture.cancel","Cancel")},r.a.createElement(o.a,{id:"setting_picture.cancel",defaultMessage:"Cancel"}))))))}}f(_,"defaultProps",{imageContext:"profile"}),f(_,"propTypes",{clientError:s.a.string,serverError:s.a.string,src:s.a.string,defaultImageSrc:s.a.string,file:s.a.object,loadingPicture:s.a.bool,submitActive:s.a.bool,onRemove:s.a.func,onSetDefault:s.a.func,onSubmit:s.a.func,title:s.a.string,onFileChange:s.a.func,updateSection:s.a.func,imageContext:s.a.string,maxFileSize:s.a.number})},1484:function(e,t,a){"use strict";var n=a(309),s=a(6),i=a(1139),r=(a(52),a(34),a(7)),o=a.n(r),l=a(33),c=a.n(l),d=a(1352),m=a(1106),u=a(1526),p=a(1184),h=a(14),g=a(1148),b=a(176),f=(a(113),a(1366)),_=a(1288),E=a(1367),v=a(1368),y=a(1369),C=a(1289);function w(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class O extends o.a.Component{constructor(...e){super(...e),w(this,"handleChange",e=>{this.props.onChange(this.props.id,e.target.checked)})}render(){return o.a.createElement(C.a,{label:this.props.label,labelClassName:this.props.labelClassName,inputClassName:this.props.inputClassName,helpText:this.props.helpText,inputId:this.props.id},o.a.createElement("div",{className:"checkbox"},o.a.createElement("label",null,o.a.createElement("input",{id:this.props.id,type:"checkbox",checked:this.props.value,onChange:this.handleChange}),o.a.createElement("span",null,this.props.placeholder))))}}function T(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}w(O,"propTypes",{id:c.a.string.isRequired,label:c.a.node.isRequired,labelClassName:c.a.string,helpText:c.a.node,placeholder:c.a.string.isRequired,value:c.a.bool.isRequired,inputClassName:c.a.string}),w(O,"defaultProps",{labelClassName:"",inputClassName:""});class S extends o.a.Component{constructor(...e){super(...e),T(this,"handleChange",e=>{this.props.onChange(this.props.id,e.target.value)})}render(){return o.a.createElement(C.a,{label:this.props.label,labelClassName:this.props.labelClassName,inputClassName:this.props.inputClassName,helpText:this.props.helpText,inputId:this.props.id},this.props.options.map(({value:e,text:t})=>o.a.createElement("div",{className:"radio",key:e},o.a.createElement("label",null,o.a.createElement("input",{type:"radio",value:e,name:this.props.id,checked:e===this.props.value,onChange:this.handleChange}),t))))}}function P(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}T(S,"propTypes",{id:c.a.string.isRequired,options:c.a.arrayOf(c.a.shape({text:c.a.string.isRequired,value:c.a.string.isRequired})),label:c.a.node.isRequired,value:c.a.string,labelClassName:c.a.string,inputClassName:c.a.string,helpText:c.a.node}),T(S,"defaultProps",{labelClassName:"",inputClassName:"",options:[]});const M=150,I=3e3;class N extends o.a.PureComponent{constructor(e){super(e),P(this,"handleSelected",e=>{const{name:t,dataSource:a,onChange:n}=this.props;"users"===a?(n(t,e.id),this.setState({value:e.username})):"channels"===a?(n(t,e.id),this.setState({value:e.display_name})):(n(t,e.value),this.setState({value:e.text}))});let t="";if(this.providers=[],"select"===e.type&&("users"===e.dataSource?this.providers=[new _.a(e.actions.autocompleteUsers)]:"channels"===e.dataSource?this.providers=[new E.a(e.actions.autocompleteChannels)]:e.options&&(this.providers=[new f.a(e.options)]),e.value&&e.options)){const a=e.options.find(t=>t.value===e.value);t=a?a.text:""}this.state={value:t}}render(){const{name:e,subtype:t,displayName:a,value:n,placeholder:s,onChange:i,helpText:r,errorText:l,optional:c,options:d}=this.props;let{type:u,maxLength:p}=this.props,h=a;h=c?o.a.createElement(o.a.Fragment,null,a+" ",o.a.createElement("span",{className:"font-weight--normal light"},o.a.createElement(m.a,{id:"interactive_dialog.element.optional",defaultMessage:"(optional)"}))):o.a.createElement(o.a.Fragment,null,a,o.a.createElement("span",{className:"error-text"}," *"));let g=r;return l&&(g=o.a.createElement(o.a.Fragment,null,r,o.a.createElement("div",{className:"error-text margin-top x2"},l))),"text"===u||"textarea"===u?("text"===u?(p=p||M,u=t&&v.a.validTypes.includes(t)?t:"input"):p=p||I,o.a.createElement(v.a,{id:e,type:u,label:h,maxLength:p,value:n||"",placeholder:s,helpText:g,onChange:i,resizable:!1})):"select"===u?o.a.createElement(y.a,{id:e,providers:this.providers,onSelected:this.handleSelected,label:h,helpText:g,placeholder:s,value:this.state.value}):"bool"===u?o.a.createElement(O,{id:e,label:h,value:n||!1,helpText:g,placeholder:s,onChange:i}):"radio"===u?o.a.createElement(S,{id:e,label:h,helpText:g,options:d,value:n,onChange:i}):null}}P(N,"propTypes",{displayName:c.a.string.isRequired,name:c.a.string.isRequired,type:c.a.string.isRequired,subtype:c.a.string,placeholder:c.a.string,helpText:c.a.string,errorText:c.a.node,maxLength:c.a.number,dataSource:c.a.string,optional:c.a.bool,options:c.a.arrayOf(c.a.object),value:c.a.any,onChange:c.a.func,actions:c.a.shape({autocompleteChannels:c.a.func.isRequired,autocompleteUsers:c.a.func.isRequired}).isRequired});var j,A,R,k=Object(n.connect)(null,(function(e){return{actions:Object(s.bindActionCreators)({autocompleteChannels:g.b,autocompleteUsers:b.b},e)}}))(N),L=a(82);class D extends o.a.PureComponent{render(){const e=L.a(this.props.value,{breaks:!0,sanitize:!0,gfm:!0});return o.a.createElement("span",{id:this.props.id,dangerouslySetInnerHTML:{__html:e}})}}function x(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function U(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}j=D,A="propTypes",R={id:c.a.string,value:c.a.string.isRequired},A in j?Object.defineProperty(j,A,{value:R,enumerable:!0,configurable:!0,writable:!0}):j[A]=R;class q extends o.a.Component{constructor(e){super(e),U(this,"handleSubmit",async e=>{e.preventDefault();const{elements:t}=this.props,a=this.state.values,n={};if(t&&t.forEach(e=>{const t=Object(u.checkDialogElementForError)(e,a[e.name]);t&&(n[e.name]=o.a.createElement(m.a,{id:t.id,defaultMessage:t.defaultMessage,values:t.values}))}),this.setState({errors:n}),0!==Object.keys(n).length)return;const{url:s,callbackId:i,state:r}=this.props,l={url:s,callback_id:i,state:r,submission:a};this.setState({submitting:!0});const{data:c}=await this.props.actions.submitInteractiveDialog(l);this.setState({submitting:!1});let d=!1;c&&(c.error&&(d=!0,this.setState({error:c.error})),c.errors&&Object.keys(c.errors).length>=0&&Object(u.checkIfErrorsMatchElements)(c.errors,t)&&(d=!0,this.setState({errors:c.errors}))),d||this.handleHide(!0)}),U(this,"onHide",()=>{this.handleHide(!1)}),U(this,"handleHide",(e=!1)=>{const{url:t,callbackId:a,state:n,notifyOnCancel:s}=this.props;if(!e&&s){const e={url:t,callback_id:a,state:n,cancelled:!0};this.props.actions.submitInteractiveDialog(e)}this.setState({show:!1})}),U(this,"onChange",(e,t)=>{const a=function(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?x(a,!0).forEach((function(t){U(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):x(a).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}({},this.state.values,{[e]:t});this.setState({values:a})});const t={};null!=e.elements&&e.elements.forEach(e=>{"bool"===e.type?t[e.name]=!0===e.default||"true"===String(e.default).toLowerCase():t[e.name]=e.default||null}),this.state={show:!0,values:t,error:null,errors:{},submitting:!1}}render(){const{title:e,introductionText:t,iconUrl:a,submitLabel:n,elements:s}=this.props;let i,r=o.a.createElement(m.a,{id:"interactive_dialog.submit",defaultMessage:"Submit"});return n&&(r=n),a&&(i=o.a.createElement("img",{id:"interactiveDialogIconUrl",alt:"modal title icon",className:"more-modal__image",width:"36",height:"36",src:a})),o.a.createElement(d.a,{id:"interactiveDialogModal",dialogClassName:"a11y__modal about-modal",show:this.state.show,onHide:this.onHide,onExited:this.props.onHide,backdrop:"static",role:"dialog","aria-labelledby":"interactiveDialogModalLabel"},o.a.createElement(d.a.Header,{closeButton:!0,style:{borderBottom:null==s&&"0px"}},o.a.createElement(d.a.Title,{componentClass:"h1",id:"interactiveDialogModalLabel"},i,e)),(s||t)&&o.a.createElement(d.a.Body,null,t&&o.a.createElement(D,{id:"interactiveDialogModalIntroductionText",value:t}),s&&s.map(e=>o.a.createElement(k,{key:"dialogelement"+e.name,displayName:e.display_name,name:e.name,type:e.type,subtype:e.subtype,helpText:e.help_text,errorText:this.state.errors[e.name],placeholder:e.placeholder,minLength:e.min_length,maxLength:e.max_length,dataSource:e.data_source,optional:e.optional,options:e.options,value:this.state.values[e.name],onChange:this.onChange}))),o.a.createElement(d.a.Footer,null,this.state.error&&o.a.createElement("div",{className:"error-text"},this.state.error),o.a.createElement("button",{id:"interactiveDialogCancel",type:"button",className:"btn btn-link cancel-button",onClick:this.onHide},o.a.createElement(m.a,{id:"interactive_dialog.cancel",defaultMessage:"Cancel"})),o.a.createElement(p.a,{id:"interactiveDialogSubmit",type:"button",className:"btn btn-primary save-button",onClick:this.handleSubmit,spinning:this.state.submitting,spinningText:Object(h.gb)("interactive_dialog.submitting","Submitting...")},r)))}}U(q,"propTypes",{url:c.a.string.isRequired,callbackId:c.a.string,elements:c.a.arrayOf(c.a.object),title:c.a.string.isRequired,introductionText:c.a.string,iconUrl:c.a.string,submitLabel:c.a.string,notifyOnCancel:c.a.bool,state:c.a.string,onHide:c.a.func,actions:c.a.shape({submitInteractiveDialog:c.a.func.isRequired}).isRequired});t.a=Object(n.connect)((function(e){const t=e.entities.integrations.dialog;return t&&t.dialog?{url:t.url,callbackId:t.dialog.callback_id,elements:t.dialog.elements,title:t.dialog.title,introductionText:t.dialog.introduction_text,iconUrl:t.dialog.icon_url,submitLabel:t.dialog.submit_label,notifyOnCancel:t.dialog.notify_on_cancel,state:t.dialog.state}:{}}),(function(e){return{actions:Object(s.bindActionCreators)({submitInteractiveDialog:i.submitInteractiveDialog},e)}}))(q)},1485:function(e,t,a){"use strict";a(170);var n=a(96),s=a.n(n),i=a(33),r=a.n(i),o=a(7),l=a.n(o),c=a(310),d=a.n(c),m=a(1106),u=a(1246),p=(a(34),a(0)),h=a(1119),g=a(309),b=a(10),f=(a(137),a(18)),_=a(14),E=a(1176),v=a(1161),y=a(1134),C=a(1114);function w(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class O extends l.a.Component{render(){let e=null;this.props.actions&&(e=this.props.actions.map((e,t)=>l.a.createElement(e,Object.assign({key:t.toString(),user:this.props.user,index:this.props.index,totalUsers:this.props.totalUsers},this.props.actionProps,this.props.actionUserProps))));let t,a=this.props.user.email,n="more-modal__description";this.props.extraInfo&&this.props.extraInfo.length>0?(a=l.a.createElement(C.b,{id:"admin.user_item.emailTitle",defaultMessage:"**Email:** {email}",values:{email:this.props.user.email}}),n=""):t=this.props.user.status?this.props.user.status:this.props.status,this.props.user.is_bot&&(t=null,a=null);let s=null,i=null;return this.props.userCount>=0&&(s=_.h("userListRowName"+this.props.userCount),i=_.h("userListRowEmail"+this.props.userCount)),l.a.createElement("div",{key:this.props.user.id,className:"more-modal__row"},l.a.createElement(E.a,{src:f.Client4.getProfilePictureUrl(this.props.user.id,this.props.user.last_picture_update),status:t,size:"md"}),l.a.createElement("div",{className:"more-modal__details","data-testid":"userListItemDetails"},l.a.createElement("div",{id:s,className:"more-modal__name"},_.k(this.props.user),l.a.createElement(y.a,{className:"badge-popoverlist",show:Boolean(this.props.user.is_bot)}),l.a.createElement(v.a,{className:"badge-popoverlist",show:_.V(this.props.user)})),l.a.createElement("div",{id:i,className:n},a),this.props.extraInfo),l.a.createElement("div",{"data-testid":"userListItemActions",className:"more-modal__actions"},e))}}w(O,"propTypes",{user:r.a.object.isRequired,status:r.a.string,extraInfo:r.a.arrayOf(r.a.object),actions:r.a.arrayOf(r.a.func),actionProps:r.a.object,actionUserProps:r.a.object,index:r.a.number,totalUsers:r.a.number,userCount:r.a.number}),w(O,"defaultProps",{extraInfo:[],actions:[],actionProps:{},actionUserProps:{}});var T=Object(g.connect)((function(e,t){const a=t.user||{};return{status:Object(b.getStatusForUserId)(e,a.id)}}))(O);function S(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class P extends l.a.Component{constructor(...e){super(...e),S(this,"scrollToTop",()=>{this.refs.container&&(this.refs.container.scrollTop=0)})}render(){const e=this.props.users,t=this.props.rowComponentType;let a;return null==e?l.a.createElement(h.a,null):(a=e.length>0?e.map((a,n)=>l.a.createElement(t,{key:a.id,user:a,extraInfo:this.props.extraInfo[a.id],actions:this.props.actions,actionProps:this.props.actionProps,actionUserProps:this.props.actionUserProps[a.id],index:n,totalUsers:e.length,userCount:n>=0&&n<p.Q.TEST_ID_COUNT?n:-1})):l.a.createElement("div",{key:"no-users-found",className:"more-modal__placeholder-row"},l.a.createElement("p",null,l.a.createElement(m.a,{id:"user_list.notFound",defaultMessage:"No users found"}))),l.a.createElement("div",{ref:"container"},a))}}S(P,"propTypes",{users:r.a.arrayOf(r.a.object),extraInfo:r.a.object,actions:r.a.arrayOf(r.a.func),actionProps:r.a.object,actionUserProps:r.a.object,rowComponentType:r.a.func}),S(P,"defaultProps",{users:[],extraInfo:{},actions:[],actionProps:{},rowComponentType:T});var M=a(1127),I=a(27);function N(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}a.d(t,"a",(function(){return A}));const j=500;class A extends l.a.Component{constructor(e){super(e),N(this,"nextPage",e=>{e.preventDefault(),this.setState({nextDisabled:!0}),this.nextTimeoutId=setTimeout(()=>this.setState({nextDisabled:!1}),j),this.props.nextPage(),s()(d.a.findDOMNode(this.refs.channelListScroll)).scrollTop(0)}),N(this,"previousPage",e=>{e.preventDefault(),this.props.previousPage(),s()(d.a.findDOMNode(this.refs.channelListScroll)).scrollTop(0)}),N(this,"focusSearchBar",()=>{this.props.focusOnMount&&this.refs.filter.focus()}),N(this,"handleInput",e=>{this.props.onTermChange(e.target.value),this.props.search(e.target.value)}),N(this,"renderCount",e=>{if(!e)return null;if(this.props.filter)return null;const t=e.length,a=this.props.total,n=Boolean(this.props.term);let s,i;return n?(s=-1,i=-1):(s=this.props.page*this.props.usersPerPage,i=Math.min(s+this.props.usersPerPage,a)),this.props.renderCount?this.props.renderCount(t,this.props.total,s,i,n):this.props.total?n?l.a.createElement(m.a,{id:"filtered_user_list.countTotal",defaultMessage:"{count, number} {count, plural, one {member} other {members}} of {total, number} total",values:{count:t,total:a}}):l.a.createElement(m.a,{id:"filtered_user_list.countTotalPage",defaultMessage:"{startCount, number} - {endCount, number} {count, plural, one {member} other {members}} of {total, number} total",values:{count:t,startCount:s+1,endCount:i,total:a}}):null}),this.nextTimeoutId=0,this.state={nextDisabled:!1}}componentDidMount(){this.focusSearchBar()}componentDidUpdate(e){this.props.page===e.page&&this.props.term===e.term||this.refs.userList.scrollToTop()}componentWillUnmount(){clearTimeout(this.nextTimeoutId)}render(){let e,t,a,n;if(this.props.term||!this.props.users)a=this.props.users;else if(!this.props.term){const n=this.props.page*this.props.usersPerPage,s=n+this.props.usersPerPage;a=this.props.users.slice(n,s),s<this.props.users.length&&(e=l.a.createElement("button",{id:"searchableUserListNextBtn",className:"btn btn-link filter-control filter-control__next",onClick:this.nextPage,disabled:this.state.nextDisabled},l.a.createElement(m.a,{id:"filtered_user_list.next",defaultMessage:"Next"}))),this.props.page>0&&(t=l.a.createElement("button",{id:"searchableUserListPrevBtn",className:"btn btn-link filter-control filter-control__prev",onClick:this.previousPage},l.a.createElement(m.a,{id:"filtered_user_list.prev",defaultMessage:"Previous"})))}return n=this.props.renderFilterRow?this.props.renderFilterRow(this.handleInput):l.a.createElement("div",{className:"col-xs-12"},l.a.createElement("label",{className:"hidden-label",htmlFor:"searchUsersInput"},l.a.createElement(m.a,{id:"filtered_user_list.search",defaultMessage:"Search users"})),l.a.createElement(u.a,{id:"searchUsersInput",ref:"filter",className:"form-control filter-textbox",placeholder:{id:Object(I.b)("filtered_user_list.search"),defaultMessage:"Search users"},inputComponent:M.a,value:this.props.term,onInput:this.handleInput})),l.a.createElement("div",{className:"filtered-user-list"},l.a.createElement("div",{className:"filter-row"},n,l.a.createElement("div",{className:"col-sm-12"},l.a.createElement("span",{id:"searchableUserListTotal",className:"member-count pull-left","aria-live":"polite"},this.renderCount(a)))),l.a.createElement("div",{className:"more-modal__list"},l.a.createElement(P,{ref:"userList",users:a,extraInfo:this.props.extraInfo,actions:this.props.actions,actionProps:this.props.actionProps,actionUserProps:this.props.actionUserProps,rowComponentType:this.props.rowComponentType})),l.a.createElement("div",{className:"filter-controls"},t,e))}}N(A,"propTypes",{users:r.a.arrayOf(r.a.object),usersPerPage:r.a.number,total:r.a.number,extraInfo:r.a.object,nextPage:r.a.func.isRequired,previousPage:r.a.func.isRequired,search:r.a.func.isRequired,actions:r.a.arrayOf(r.a.func),actionProps:r.a.object,actionUserProps:r.a.object,focusOnMount:r.a.bool,renderCount:r.a.func,filter:r.a.string,renderFilterRow:r.a.func,page:r.a.number.isRequired,term:r.a.string.isRequired,onTermChange:r.a.func.isRequired,rowComponentType:r.a.func}),N(A,"defaultProps",{users:[],usersPerPage:50,extraInfo:{},actions:[],actionProps:{},actionUserProps:{},showTeamToggle:!1,focusOnMount:!1})},1486:function(e,t,a){"use strict";var n,s,i,r=a(309),o=a(6),l=a(1125),c=a(33),d=a.n(c),m=a(7),u=a.n(m);function p(e,t){if(null==e)return{};var a,n,s=function(e,t){if(null==e)return{};var a,n,s={},i=Object.keys(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||(s[a]=e[a]);return s}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(s[a]=e[a])}return s}class h extends u.a.PureComponent{render(){const e=this.props,{modals:t}=e,a=p(e,["modals"]),{modalState:n}=t;if(!t)return u.a.createElement("div",null);const s=[];for(const e in n)if(n.hasOwnProperty(e)){const t=n[e];if(t.open){const n=u.a.createElement(t.dialogType,Object.assign({},t.dialogProps,{onHide:a.actions.closeModal.bind(this,e),key:"".concat(e,"_modal")}));s.push(n)}}return u.a.createElement("div",null,s)}}n=h,s="propTypes",i={modals:d.a.object.isRequired,actions:d.a.shape({closeModal:d.a.func.isRequired}).isRequired},s in n?Object.defineProperty(n,s,{value:i,enumerable:!0,configurable:!0,writable:!0}):n[s]=i;t.a=Object(r.connect)((function(e){return{modals:e.views.modals}}),(function(e){return{actions:Object(o.bindActionCreators)({closeModal:l.a},e)}}))(h)},1487:function(e,t,a){"use strict";var n=a(309),s=a(19),i=a(10),r=a(33),o=a.n(r),l=a(7),c=a.n(l),d=a(1303),m=a(18),u=a(54),p=a(1346),h=a(1391);function g(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const b=300;class f extends c.a.PureComponent{constructor(e){super(e),g(this,"handleClick",e=>{const t=this.overlayRef.current.getBoundingClientRect(),a=Object(h.a)(t,window.innerHeight,b);this.setState({target:e.target,show:!this.state.show,placement:a})}),g(this,"hideOverlay",()=>{this.setState({show:!1})}),this.state={show:!1},this.overlayRef=c.a.createRef()}getUserFromMentionName(e){const t=e.usersByUsername;let a=e.mentionName.toLowerCase();for(;a.length>0;){if(t.hasOwnProperty(a))return t[a];if(!/[._-]$/.test(a))break;a=a.substring(0,a.length-1)}return""}render(){const e=this.getUserFromMentionName(this.props);if(!e)return c.a.createElement(c.a.Fragment,null,this.props.children);const t=this.props.mentionName.substring(e.username.length);let a="mention-link";return e.id===this.props.currentUserId&&(a+=" mention--highlight"),c.a.createElement("span",null,c.a.createElement(d.a,{placement:this.state.placement,show:this.state.show,target:this.state.target,rootClose:!0,onHide:this.hideOverlay},c.a.createElement(p.a,{className:"user-profile-popover",userId:e.id,src:m.Client4.getProfilePictureUrl(e.id,e.last_picture_update),isRHS:this.props.isRHS,hasMention:this.props.hasMention,hide:this.hideOverlay})),c.a.createElement("a",{className:a,onClick:this.handleClick,ref:this.overlayRef},"@"+Object(u.displayUsername)(e,this.props.teammateNameDisplay)),t)}}g(f,"propTypes",{children:o.a.node,currentUserId:o.a.string.isRequired,hasMention:o.a.bool,isRHS:o.a.bool,mentionName:o.a.string.isRequired,teammateNameDisplay:o.a.string.isRequired,usersByUsername:o.a.object.isRequired}),g(f,"defaultProps",{isRHS:!1,hasMention:!1});t.a=Object(n.connect)((function(e){return{currentUserId:Object(i.getCurrentUserId)(e),teammateNameDisplay:Object(s.getTeammateNameDisplaySetting)(e),usersByUsername:Object(i.getUsersByUsername)(e)}}))(f)},1489:function(e,t,a){"use strict";var n=a(309),s=a(15),i=a(0),r=a(1177),o=a(33),l=a.n(o),c=a(7),d=a.n(c),m=a(1352),u=a(1106),p=a(1114),h=a(1311);function g(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class b extends d.a.PureComponent{constructor(e){super(e),g(this,"doHide",()=>{this.setState({show:!1})}),g(this,"handleExit",()=>{this.props.onHide()}),this.state={show:!0}}render(){const e=this.props.config,t=this.props.license;let a,n=d.a.createElement(u.a,{id:"about.teamEditiont0",defaultMessage:"Team Edition"}),s=d.a.createElement(u.a,{id:"about.teamEditionSt",defaultMessage:"All your team communication in one place, instantly searchable and accessible anywhere."}),r=d.a.createElement("div",null,d.a.createElement(u.a,{id:"about.teamEditionLearn",defaultMessage:"Join the Mattermost community at "}),d.a.createElement("a",{target:"_blank",rel:"noopener noreferrer",href:"http://www.mattermost.org/"},"mattermost.org"));"true"===e.BuildEnterpriseReady&&(n=d.a.createElement(u.a,{id:"about.teamEditiont1",defaultMessage:"Enterprise Edition"}),s=d.a.createElement(u.a,{id:"about.enterpriseEditionSt",defaultMessage:"Modern communication from behind your firewall."}),r=d.a.createElement("div",null,d.a.createElement(u.a,{id:"about.enterpriseEditionLearn",defaultMessage:"Learn more about Enterprise Edition at "}),d.a.createElement("a",{target:"_blank",rel:"noopener noreferrer",href:"http://about.mattermost.com/"},"about.mattermost.com")),"true"===t.IsLicensed&&(n=d.a.createElement(u.a,{id:"about.enterpriseEditione1",defaultMessage:"Enterprise Edition"}),a=d.a.createElement("div",{className:"form-group"},d.a.createElement(u.a,{id:"about.licensed",defaultMessage:"Licensed to:"})," ",t.Company)));const o=d.a.createElement("a",{target:"_blank",id:"tosLink",rel:"noopener noreferrer",href:i.d.TERMS_OF_SERVICE},d.a.createElement(u.a,{id:"about.tos",defaultMessage:"Terms of Service"})),l=d.a.createElement("a",{target:"_blank",id:"privacyLink",rel:"noopener noreferrer",href:i.d.PRIVACY_POLICY},d.a.createElement(u.a,{id:"about.privacy",defaultMessage:"Privacy Policy"}));let c;e.TermsOfServiceLink&&e.PrivacyPolicyLink&&(c=d.a.createElement("span",null," - "));let g=d.a.createElement("div",null,d.a.createElement(u.a,{id:"about.buildnumber",defaultMessage:"Build Number:"}),d.a.createElement("span",{id:"buildnumberString"}," "+e.BuildNumber));isNaN(e.BuildNumber)&&(g=null);let b=e.BuildNumber;return isNaN(e.BuildNumber)||(b="ci"),d.a.createElement(m.a,{dialogClassName:"a11y__modal about-modal",show:this.state.show,onHide:this.doHide,onExited:this.handleExit,role:"dialog","aria-labelledby":"aboutModalLabel"},d.a.createElement(m.a.Header,{closeButton:!0},d.a.createElement(m.a.Title,{componentClass:"h1",id:"aboutModalLabel"},d.a.createElement(u.a,{id:"about.title",values:{appTitle:e.SiteName||"Mattermost"},defaultMessage:"About {appTitle}"}))),d.a.createElement(m.a.Body,null,d.a.createElement("div",{className:"about-modal__content"},d.a.createElement("div",{className:"about-modal__logo"},d.a.createElement(h.a,null)),d.a.createElement("div",null,d.a.createElement("h3",{className:"about-modal__title"},"Mattermost"," ",n),d.a.createElement("p",{className:"about-modal__subtitle padding-bottom"},s),d.a.createElement("div",{className:"form-group less"},d.a.createElement("div",null,d.a.createElement(u.a,{id:"about.version",defaultMessage:"Mattermost Version:"}),d.a.createElement("span",{id:"versionString"}," "+b)),d.a.createElement("div",null,d.a.createElement(u.a,{id:"about.dbversion",defaultMessage:"Database Schema Version:"}),d.a.createElement("span",{id:"dbversionString"}," "+e.Version)),g,d.a.createElement("div",null,d.a.createElement(u.a,{id:"about.database",defaultMessage:"Database:"})," "+e.SQLDriverName)),a)),d.a.createElement("div",{className:"about-modal__footer"},r,d.a.createElement("div",{className:"form-group"},d.a.createElement("div",{className:"about-modal__copyright"},d.a.createElement(u.a,{id:"about.copyright",defaultMessage:"Copyright 2015 - {currentYear} Mattermost, Inc. All rights reserved",values:{currentYear:(new Date).getFullYear()}})),d.a.createElement("div",{className:"about-modal__links"},o,c,l))),d.a.createElement("div",{className:"about-modal__notice form-group padding-top x2"},d.a.createElement("p",null,d.a.createElement(p.b,{id:"about.notice",defaultMessage:"Mattermost is made possible by the open source software used in our [server](!https://about.mattermost.com/platform-notice-txt/), [desktop](!https://about.mattermost.com/desktop-notice-txt/) and [mobile](!https://about.mattermost.com/mobile-notice-txt/) apps."}))),d.a.createElement("div",{className:"about-modal__hash"},d.a.createElement("p",null,d.a.createElement(u.a,{id:"about.hash",defaultMessage:"Build Hash:"})," ",e.BuildHash,d.a.createElement("br",null),d.a.createElement(u.a,{id:"about.hashee",defaultMessage:"EE Build Hash:"})," ",e.BuildHashEnterprise,d.a.createElement("br",null),d.a.createElement(u.a,{id:"about.hashwebapp",defaultMessage:"Webapp Build Hash:"})," ",this.props.webappBuildHash||"fc08a2b49f1a994164697d2c51442baf21812d1f\n"),d.a.createElement("p",null,d.a.createElement(u.a,{id:"about.date",defaultMessage:"Build Date:"})," ",e.BuildDate))))}}g(b,"defaultProps",{show:!1}),g(b,"propTypes",{onHide:l.a.func.isRequired,config:l.a.object.isRequired,license:l.a.object.isRequired,webappBuildHash:l.a.string});t.a=Object(n.connect)((function(e){const t=i.u.ABOUT;return{config:Object(s.getConfig)(e),license:Object(s.getLicense)(e),show:Object(r.a)(e,t)}}))(b)},1490:function(e,t,a){"use strict";a(52),a(113),a(60),a(34);var n=a(1499),s=a.n(n),i=a(18),r=a(11),o=a(0),l=a(172),c=a(7),d=a.n(c),m=a(336),u=a.n(m),p=a(1210),h=a(174),g=a(1240),b=a(1123),f=a(14);function _(e,t,a,n=Object(f.o)()){return r.a.dispatch({type:o.f.RECEIVED_PLUGIN_COMPONENT,name:e,data:{id:n,pluginId:t,component:a}}),n}const E=e=>"function"==typeof e?d.a.createElement(e):e;class v{constructor(e){this.id=e}registerRootComponent(e){return _("Root",this.id,e)}registerPopoverUserAttributesComponent(e){return _("PopoverUserAttributes",this.id,e)}registerPopoverUserActionsComponent(e){return _("PopoverUserActions",this.id,e)}registerLeftSidebarHeaderComponent(e){return _("LeftSidebarHeader",this.id,e)}registerBottomTeamSidebarComponent(e){return _("BottomTeamSidebar",this.id,e)}registerPostMessageAttachmentComponent(e){return _("PostMessageAttachment",this.id,e)}registerLinkTooltipComponent(e){return _("LinkTooltip",this.id,e)}registerChannelHeaderButtonAction(e,t,a,n){const s=Object(f.o)(),i={id:s,pluginId:this.id,icon:E(e),action:t,dropdownText:E(a),tooltipText:n};return r.a.dispatch({type:o.f.RECEIVED_PLUGIN_COMPONENT,name:"ChannelHeaderButton",data:i}),r.a.dispatch({type:o.f.RECEIVED_PLUGIN_COMPONENT,name:"MobileChannelHeaderButton",data:i}),s}registerPostTypeComponent(e,t){const a=Object(f.o)();return r.a.dispatch({type:o.f.RECEIVED_PLUGIN_POST_COMPONENT,data:{id:a,pluginId:this.id,type:e,component:t}}),a}registerPostCardTypeComponent(e,t){const a=Object(f.o)();return r.a.dispatch({type:o.f.RECEIVED_PLUGIN_POST_CARD_COMPONENT,data:{id:a,pluginId:this.id,type:e,component:t}}),a}registerPostWillRenderEmbedComponent(e,t,a){const n=Object(f.o)();return r.a.dispatch({type:o.f.RECEIVED_PLUGIN_COMPONENT,name:"PostWillRenderEmbedComponent",data:{id:n,pluginId:this.id,component:t,match:e,toggleable:a}}),n}registerMainMenuAction(e,t,a){const n=Object(f.o)();return r.a.dispatch({type:o.f.RECEIVED_PLUGIN_COMPONENT,name:"MainMenu",data:{id:n,pluginId:this.id,text:E(e),action:t,mobileIcon:E(a)}}),n}registerChannelHeaderMenuAction(e,t){const a=Object(f.o)();return r.a.dispatch({type:o.f.RECEIVED_PLUGIN_COMPONENT,name:"ChannelHeader",data:{id:a,pluginId:this.id,text:E(e),action:t}}),a}registerPostDropdownMenuAction(e,t,a){const n=Object(f.o)();return r.a.dispatch({type:o.f.RECEIVED_PLUGIN_COMPONENT,name:"PostDropdownMenu",data:{id:n,pluginId:this.id,text:E(e),action:t,filter:a}}),n}registerPostDropdownSubMenuAction(e,t,a){const n=Object(f.o)();return{id:n,rootRegisterMenuItem:function e(t,a,n,s,i,l){return r.a.dispatch({type:o.f.RECEIVED_PLUGIN_COMPONENT,name:"PostDropdownMenu",data:{id:a,parentMenuId:n,pluginId:t,text:E(s),subMenu:[],action:i,filter:l}}),function(s,i,r){if(n)throw new Error("Submenus are currently limited to a single level.");return e(t,Object(f.o)(),a,s,i,r)}}(this.id,n,null,e,t,a)}}registerPostDropdownMenuComponent(e){return _("PostDropdownMenuItem",this.id,e)}registerFileUploadMethod(e,t,a){const n=Object(f.o)();return r.a.dispatch({type:o.f.RECEIVED_PLUGIN_COMPONENT,name:"FileUploadMethod",data:{id:n,pluginId:this.id,text:a,action:t,icon:e}}),n}registerFilesWillUploadHook(e){const t=Object(f.o)();return r.a.dispatch({type:o.f.RECEIVED_PLUGIN_COMPONENT,name:"FilesWillUploadHook",data:{id:t,pluginId:this.id,hook:e}}),t}unregisterComponent(e){r.a.dispatch({type:o.f.REMOVED_PLUGIN_COMPONENT,id:e})}unregisterPostTypeComponent(e){r.a.dispatch({type:o.f.REMOVED_PLUGIN_POST_COMPONENT,id:e})}registerReducer(e){u.a.register("plugins-"+this.id,e)}registerWebSocketEventHandler(e,t){Object(p.e)(this.id,e,t)}unregisterWebSocketEventHandler(e){Object(p.j)(this.id,e)}registerReconnectHandler(e){Object(p.d)(this.id,e)}unregisterReconnectHandler(){Object(p.i)(this.id)}registerMessageWillBePostedHook(e){const t=Object(f.o)();return r.a.dispatch({type:o.f.RECEIVED_PLUGIN_COMPONENT,name:"MessageWillBePosted",data:{id:t,pluginId:this.id,hook:e}}),t}registerSlashCommandWillBePostedHook(e){const t=Object(f.o)();return r.a.dispatch({type:o.f.RECEIVED_PLUGIN_COMPONENT,name:"SlashCommandWillBePosted",data:{id:t,pluginId:this.id,hook:e}}),t}registerMessageWillFormatHook(e){const t=Object(f.o)();return r.a.dispatch({type:o.f.RECEIVED_PLUGIN_COMPONENT,name:"MessageWillFormat",data:{id:t,pluginId:this.id,hook:e}}),t}registerFilePreviewComponent(e,t){const a=Object(f.o)();return r.a.dispatch({type:o.f.RECEIVED_PLUGIN_COMPONENT,name:"FilePreview",data:{id:a,pluginId:this.id,override:e,component:t}}),a}registerTranslations(e){r.a.dispatch(Object(g.c)(this.id,e))}registerAdminConsolePlugin(e){r.a.dispatch(Object(b.A)(this.id,e))}registerAdminConsoleCustomSetting(e,t,{showTitle:a}={}){r.a.dispatch(Object(b.z)(this.id,e,t,{showTitle:a}))}unregisterAdminConsolePlugin(){r.a.dispatch(Object(b.K)(this.id))}registerRightHandSidebarComponent(e,t){const a=Object(f.o)();return r.a.dispatch({type:o.f.RECEIVED_PLUGIN_COMPONENT,name:"RightHandSidebarComponent",data:{id:a,pluginId:this.id,component:e,title:t}}),{id:a,showRHSPlugin:Object(h.o)(a),hideRHSPlugin:Object(h.c)(a),toggleRHSPlugin:Object(h.r)(a)}}}async function y(){if("true"!==r.a.getState().entities.general.config.PluginsEnabled)return;const{data:e,error:t}=await C()(r.a.dispatch);t?console.error(t):null!=e&&0!==e.length&&await Promise.all(e.map(e=>O(e).catch(e=>{console.error(e.message)})))}function C(){return async e=>{let t;try{t=await i.Client4.getWebappPlugins()}catch(e){return{error:e}}return e({type:o.f.RECEIVED_WEBAPP_PLUGINS,data:t}),{data:t}}}a.d(t,"a",(function(){return y})),a.d(t,"b",(function(){return O})),a.d(t,"d",(function(){return T})),a.d(t,"c",(function(){return S})),window.regeneratorRuntime=s.a,window.plugins={},window.registerPlugin=function(e,t){window.plugins[e]=t};const w={};function O(e){return new Promise((t,a)=>{const n=w[e.id];if(n&&n.webapp.bundle_path===e.webapp.bundle_path)return void t();n&&r.a.dispatch({type:o.f.REMOVED_WEBAPP_PLUGIN,data:e});let s=e.webapp.bundle_path;s.includes("/static/")&&!s.includes("/static/plugins/")&&(s=s.replace("/static/","/static/plugins/")),console.log("Loading "+e.id+" plugin");const i=document.createElement("script");i.id="plugin_"+e.id,i.type="text/javascript",i.src=Object(l.e)()+s,i.onload=function(){!function(e){const t=window.plugins[e.id],a=new v(e.id);t&&t.initialize&&t.initialize(a,r.a)}(e),console.log("Loaded "+e.id+" plugin"),t()},i.onerror=function(){a(new Error("Unable to load bundle for plugin "+e.id))},document.getElementsByTagName("head")[0].appendChild(i),w[e.id]=e})}function T(e){if(!w[e.id])return;console.log("Removing "+e.id+" plugin"),delete w[e.id],r.a.dispatch({type:o.f.REMOVED_WEBAPP_PLUGIN,data:e});const t=window.plugins[e.id];t&&t.uninitialize?t.uninitialize():t&&t.deinitialize&&t.deinitialize(),Object(p.h)(e.id),Object(p.i)(e.id),r.a.dispatch(Object(b.K)(e.id)),Object(g.d)(e.id);const a=document.getElementById("plugin_"+e.id);a&&(a.parentNode.removeChild(a),console.log("Removed "+e.id+" plugin"))}async function S(){if("true"!==r.a.getState().entities.general.config.PluginsEnabled)return;const e=r.a.getState().plugins.plugins,{error:t}=await C()(r.a.dispatch);if(t)return void console.error(t);const a=r.a.getState().plugins.plugins;Object.values(a).forEach(t=>{const a=e[t.id];a&&a.version===t.version||O(t).catch(e=>{console.error(e.message)})}),Object.keys(e).forEach(t=>{if(!a.hasOwnProperty(t)){const a=e[t];r.a.dispatch({type:o.f.REMOVED_WEBAPP_PLUGIN,data:a}),T(a)}})}},1495:function(e){e.exports=JSON.parse('{"about.buildnumber":"Build Number:","about.copyright":"Copyright 2015 - {currentYear} Mattermost, Inc. All rights reserved","about.database":"Database:","about.date":"Build Date:","about.dbversion":"Database Schema Version:","about.enterpriseEditione1":"Enterprise Edition","about.enterpriseEditionLearn":"Learn more about Enterprise Edition at ","about.enterpriseEditionSt":"Modern communication from behind your firewall.","about.hash":"Build Hash:","about.hashee":"EE Build Hash:","about.hashwebapp":"Webapp Build Hash:","about.licensed":"Licensed to:","about.notice":"Mattermost is made possible by the open source software used in our [server](!https://about.mattermost.com/platform-notice-txt/), [desktop](!https://about.mattermost.com/desktop-notice-txt/) and [mobile](!https://about.mattermost.com/mobile-notice-txt/) apps.","about.privacy":"Privacy Policy","about.teamEditionLearn":"Join the Mattermost community at ","about.teamEditionSt":"All your team communication in one place, instantly searchable and accessible anywhere.","about.teamEditiont0":"Team Edition","about.teamEditiont1":"Enterprise Edition","about.title":"About {appTitle}","about.tos":"Terms of Service","about.version":"Mattermost Version:","access_history.title":"Access History","accessibility.button.attachment":"attachment","accessibility.button.dialog":"{dialogName} dialog","accessibility.button.Info":"Info","accessibility.button.Search":"Search","accessibility.sections.centerContent":"message list main region","accessibility.sections.centerFooter":"message input complimentary region","accessibility.sections.channelHeader":"channel header region","accessibility.sections.lhsHeader":"team menu region","accessibility.sections.lhsList":"channel sidebar region","accessibility.sections.rhs":"{regionTitle} complimentary region","accessibility.sections.rhsContent":"message details complimentary region","accessibility.sections.rhsFooter":"reply input region","accessibility.sidebar.types.mention":"mention","accessibility.sidebar.types.mentions":"mentions","accessibility.sidebar.types.private":"private channel","accessibility.sidebar.types.public":"public channel","accessibility.sidebar.types.unread":"unread","activity_log_modal.android":"Android","activity_log_modal.androidNativeApp":"Android Native App","activity_log_modal.androidNativeClassicApp":"Android Native Classic App","activity_log_modal.desktop":"Native Desktop App","activity_log_modal.iphoneNativeApp":"iPhone Native App","activity_log_modal.iphoneNativeClassicApp":"iPhone Native Classic App","activity_log.activeSessions":"Active Sessions","activity_log.browser":"Browser: {browser}","activity_log.firstTime":"First time active: {date}, {time}","activity_log.lastActivity":"Last activity: {date}, {time}","activity_log.logout":"Log Out","activity_log.moreInfo":"More info","activity_log.os":"OS: {os}","activity_log.sessionId":"Session ID: {id}","activity_log.sessionsDescription":"Sessions are created when you log in to a new browser on a device. Sessions let you use Mattermost without having to log in again for a time period specified by the System Admin. If you want to log out sooner, use the \'Logout\' button below to end a session.","add_channels_to_scheme.title":"Add Channels To **Channel Selection** List","add_command.autocomplete":"Autocomplete","add_command.autocomplete.help":"(Optional) Show slash command in autocomplete list.","add_command.autocompleteDescription":"Autocomplete Description","add_command.autocompleteDescription.help":"(Optional) Short description of slash command for the autocomplete list.","add_command.autocompleteDescription.placeholder":"Example: \\"Returns search results for patient records\\"","add_command.autocompleteHint":"Autocomplete Hint","add_command.autocompleteHint.help":"(Optional) Arguments associated with your slash command, displayed as help in the autocomplete list.","add_command.autocompleteHint.placeholder":"Example: [Patient Name]","add_command.cancel":"Cancel","add_command.description":"Description","add_command.description.help":"Description for your incoming webhook.","add_command.displayName":"Title","add_command.displayName.help":"Choose a title to be displayed on the slash command settings page. Maximum 64 characters.","add_command.doneHelp":"Your slash command has been set up. The following token will be sent in the outgoing payload. Please use it to verify the request came from your Mattermost team (see [documentation](!https://docs.mattermost.com/developer/slash-commands.html) for further details).","add_command.iconUrl":"Response Icon","add_command.iconUrl.help":"(Optional) Choose a profile picture override for the post responses to this slash command. Enter the URL of a .png or .jpg file at least 128 pixels by 128 pixels.","add_command.iconUrl.placeholder":"https://www.example.com/myicon.png","add_command.method":"Request Method","add_command.method.get":"GET","add_command.method.help":"The type of command request issued to the Request URL.","add_command.method.post":"POST","add_command.save":"Save","add_command.saving":"Saving...","add_command.token":"**Token**: {token}","add_command.trigger":"Command Trigger Word","add_command.trigger.help":"Trigger word must be unique, and cannot begin with a slash or contain any spaces.","add_command.trigger.helpExamples":"Examples: client, employee, patient, weather","add_command.trigger.helpReserved":"Reserved: {link}","add_command.trigger.helpReservedLinkText":"See built-in slash commands","add_command.trigger.placeholder":"Command trigger e.g. \\"hello\\" not including the slash","add_command.triggerInvalidLength":"A trigger word must contain between {min} and {max} characters","add_command.triggerInvalidSlash":"A trigger word cannot begin with a /","add_command.triggerInvalidSpace":"A trigger word must not contain spaces","add_command.triggerRequired":"A trigger word is required","add_command.url":"Request URL","add_command.url.help":"The callback URL to receive the HTTP POST or GET event request when the slash command is run.","add_command.url.placeholder":"Must start with http:// or https://","add_command.urlRequired":"A request URL is required","add_command.username":"Response Username","add_command.username.help":"(Optional) Choose a username override for responses for this slash command. Usernames can consist of up to 22 characters consisting of lowercase letters, numbers and they symbols \\"-\\", \\"_\\", and \\".\\" .","add_command.username.placeholder":"Username","add_emoji.cancel":"Cancel","add_emoji.header":"Add","add_emoji.image":"Image","add_emoji.image.button":"Select","add_emoji.image.help":"Choose the image for your emoji. The image can be a gif, png, or jpeg file with a max size of 1 MB. Dimensions will automatically resize to fit 128 by 128 pixels but keeping aspect ratio.","add_emoji.imageRequired":"An image is required for the emoji","add_emoji.name":"Name","add_emoji.name.help":"Choose a name for your emoji made of up to 64 characters consisting of lowercase letters, numbers, and the symbols \'-\' and \'_\'.","add_emoji.nameInvalid":"An emoji\'s name can only contain numbers, letters, and the symbols \'-\' and \'_\'.","add_emoji.nameRequired":"A name is required for the emoji","add_emoji.nameTaken":"This name is already in use by a system emoji. Please choose another name.","add_emoji.preview":"Preview","add_emoji.preview.sentence":"This is a sentence with {image} in it.","add_emoji.save":"Save","add_emoji.saving":"Saving...","add_groups_to_channel.title":"Add New Groups To {channelName} Channel","add_groups_to_team.title":"Add New Groups To {teamName} Team","add_incoming_webhook.cancel":"Cancel","add_incoming_webhook.channel":"Channel","add_incoming_webhook.channel.help":"The default public or private channel that receives the webhook payloads. You must belong to the private channel when setting up the webhook.","add_incoming_webhook.channelLocked":"Lock to this channel","add_incoming_webhook.channelLocked.help":"If set, the incoming webhook can only post to the channel selected above.","add_incoming_webhook.channelRequired":"A valid channel is required","add_incoming_webhook.description":"Description","add_incoming_webhook.description.help":"Description for your incoming webhook.","add_incoming_webhook.displayName":"Title","add_incoming_webhook.displayName.help":"Choose a title to be displayed on the webhook settings page. Maximum 64 characters.","add_incoming_webhook.doneHelp":"Your incoming webhook has been set up. Please send data to the following URL (see [documentation](!https://docs.mattermost.com/developer/webhooks-incoming.html) for further details).","add_incoming_webhook.icon_url":"Profile Picture","add_incoming_webhook.icon_url.help":"Choose the profile picture this integration will use when posting. Enter the URL of a .png or .jpg file at least 128 pixels by 128 pixels.","add_incoming_webhook.save":"Save","add_incoming_webhook.saving":"Saving...","add_incoming_webhook.url":"**URL**: {url}","add_incoming_webhook.username":"Username","add_incoming_webhook.username.help":"Choose the username this integration will post as. Usernames can be up to 22 characters, and may contain lowercase letters, numbers and the symbols \\"-\\", \\"_\\", and \\".\\" .","add_oauth_app.callbackUrls.help":"The redirect URIs to which the service will redirect users after accepting or denying authorization of your application, and which will handle authorization codes or access tokens. Must be a valid URL and start with http:// or https://.","add_oauth_app.callbackUrlsRequired":"One or more callback URLs are required","add_oauth_app.clientId":"**Client ID**: {id}","add_oauth_app.clientSecret":"**Client Secret**: {secret}","add_oauth_app.description.help":"Description for your OAuth 2.0 application.","add_oauth_app.descriptionRequired":"Description for the OAuth 2.0 application is required.","add_oauth_app.doneHelp":"Your OAuth 2.0 application has been set up. Please use the following Client ID and Client Secret when requesting authorization for your application (see [documentation](!https://docs.mattermost.com/developer/oauth-2-0-applications.html) for further details).","add_oauth_app.doneUrlHelp":"The following are your authorized redirect URL(s).","add_oauth_app.header":"Add","add_oauth_app.homepage.help":"The URL for the homepage of the OAuth 2.0 application. Make sure you use HTTP or HTTPS in your URL depending on your server configuration.","add_oauth_app.homepageRequired":"Homepage for the OAuth 2.0 application is required.","add_oauth_app.icon.help":"(Optional) The URL of the image used for your OAuth 2.0 application. Make sure you use HTTP or HTTPS in your URL.","add_oauth_app.name.help":"Display name for your OAuth 2.0 application made of up to 64 characters.","add_oauth_app.nameRequired":"Name for the OAuth 2.0 application is required.","add_oauth_app.trusted.help":"When true, the OAuth 2.0 application is considered trusted by the Mattermost server and doesn\'t require the user to accept authorization. When false, an additional window will appear, asking the user to accept or deny the authorization.","add_oauth_app.url":"**URL(s)**: {url}","add_outgoing_webhook.callbackUrls":"Callback URLs (One Per Line)","add_outgoing_webhook.callbackUrls.help":"The URL that messages will be sent to. If the URL is private, add it as a {link}.","add_outgoing_webhook.callbackUrls.helpLinkText":"trusted internal connection","add_outgoing_webhook.callbackUrlsRequired":"One or more callback URLs are required","add_outgoing_webhook.cancel":"Cancel","add_outgoing_webhook.channel":"Channel","add_outgoing_webhook.channel.help":"Public channel that delivers payload to webhook. Optional if at least one Trigger Word is specified.","add_outgoing_webhook.content_Type":"Content Type","add_outgoing_webhook.contentType.help1":"Choose the content type by which the request will be sent.","add_outgoing_webhook.contentType.help2":"If application/x-www-form-urlencoded is chosen, the server will encode the parameters in a URL format in the request body.","add_outgoing_webhook.contentType.help3":"If application/json is chosen, the server will format the request body as JSON.","add_outgoing_webhook.description":"Description","add_outgoing_webhook.description.help":"Description for your outgoing webhook.","add_outgoing_webhook.displayName":"Title","add_outgoing_webhook.displayName.help":"Choose a title to be displayed on the webhook settings page. Maximum 64 characters.","add_outgoing_webhook.doneHelp":"Your outgoing webhook has been set up. The following token will be sent in the outgoing payload. Please use it to verify the request came from your Mattermost team (see [documentation](!https://docs.mattermost.com/developer/webhooks-outgoing.html) for further details).","add_outgoing_webhook.icon_url":"Profile Picture","add_outgoing_webhook.icon_url.help":"Choose the profile picture this integration will use when posting. Enter the URL of a .png or .jpg file at least 128 pixels by 128 pixels.","add_outgoing_webhook.save":"Save","add_outgoing_webhook.saving":"Saving...","add_outgoing_webhook.token":"**Token**: {token}","add_outgoing_webhook.token.message":"Make sure to add this bot account to teams and channels you want it to interact in. See [documentation](https://mattermost.com/pl/default-bot-accounts) to learn more.","add_outgoing_webhook.triggerWords":"Trigger Words (One Per Line)","add_outgoing_webhook.triggerWords.help":"Messages that start with one of the specified words will trigger the outgoing webhook. Optional if Channel is selected.","add_outgoing_webhook.triggerWordsOrChannelRequired":"A valid channel or a list of trigger words is required","add_outgoing_webhook.triggerWordsTriggerWhen":"Trigger When","add_outgoing_webhook.triggerWordsTriggerWhen.help":"Choose when to trigger the outgoing webhook; if the first word of a message matches a Trigger Word exactly, or if it starts with a Trigger Word.","add_outgoing_webhook.triggerWordsTriggerWhenFullWord":"First word matches a trigger word exactly","add_outgoing_webhook.triggerWordsTriggerWhenStartsWith":"First word starts with a trigger word","add_outgoing_webhook.username":"Username","add_outgoing_webhook.username.help":"Choose the username this integration will post as. Usernames can be up to 22 characters, and may contain lowercase letters, numbers and the symbols \\"-\\", \\"_\\", and \\".\\".","add_teams_to_scheme.confirmation.accept":"Yes, Move Team","add_teams_to_scheme.confirmation.message":"This team is already selected in another team scheme, are you sure you want to move it to this team scheme?","add_teams_to_scheme.confirmation.title":"Team Override Scheme Change?","add_teams_to_scheme.title":"Add Teams To **Team Selection** List","add_user_to_channel_modal.add":"Add","add_user_to_channel_modal.cancel":"Cancel","add_user_to_channel_modal.help":"Type to find a channel. Use ↑↓ to browse, ↵ to select, ESC to dismiss.","add_user_to_channel_modal.membershipExistsError":"{name} is already a member of that channel","add_user_to_channel_modal.title":"Add {name} to a channel","admin.advance.cluster":"High Availability","admin.advance.metrics":"Performance Monitoring","admin.audits.reload":"Reload User Activity Logs","admin.authentication.email":"Email Authentication","admin.authentication.gitlab":"GitLab","admin.authentication.guest_access":"Guest Access (Beta)","admin.authentication.ldap":"AD/LDAP","admin.authentication.mfa":"Multi-factor Authentication","admin.authentication.oauth":"OAuth 2.0","admin.authentication.saml":"SAML 2.0","admin.authentication.signup":"Signup","admin.banner.heading":"Note:","admin.channel_settings.channel_detail.channel_configuration":"Channel Configuration","admin.channel_settings.channel_detail.channelName":"**Name**","admin.channel_settings.channel_detail.channelTeam":"**Team**","admin.channel_settings.channel_detail.groupsDescription":"Group members will be added to the channel based on your sync schedule.","admin.channel_settings.channel_detail.groupsTitle":"Groups","admin.channel_settings.channel_detail.manageDescription":"Choose between inviting members manually or syncing members automatically from groups.","admin.channel_settings.channel_detail.manageTitle":"Channel Management","admin.channel_settings.channel_detail.profileDescription":"Summary of the channel, including the channel name.","admin.channel_settings.channel_detail.profileTitle":"Channel Profile","admin.channel_settings.channel_detail.syncedGroupsDescription":"Add and remove team members based on their group membership on the next scheduled sync.","admin.channel_settings.channel_detail.syncedGroupsTitle":"Synced Groups","admin.channel_settings.channel_details.add_group":"Add Group","admin.channel_settings.channel_details.isDefaultDescr":"This default channel cannot be converted into a private channel.","admin.channel_settings.channel_details.isPublic":"Public channel or private channel","admin.channel_settings.channel_details.isPublicDescr":"If `public` the channel is discoverable and any user can join, or if `private` invitations are required. Toggle to convert public channels to private. When Group Sync is enabled, private channels cannot be converted to public.","admin.channel_settings.channel_details.syncGroupMembers":"Sync Group Members","admin.channel_settings.channel_details.syncGroupMembersDescr":"When enabled, adding and removing users from groups will add or remove them from this channel. The only way of inviting members to this channel is by adding the groups they belong to. [Learn More](!https://www.mattermost.com/pl/default-ldap-group-constrained-team-channel.html)","admin.channel_settings.channel_list.managementHeader":"Management","admin.channel_settings.channel_list.nameHeader":"Name","admin.channel_settings.channel_list.no_channels_found":"No channels found","admin.channel_settings.channel_list.teamHeader":"Team","admin.channel_settings.channel_row.configure":"Edit","admin.channel_settings.description":"Manage channel settings.","admin.channel_settings.groupsPageTitle":"{siteName} Channels","admin.channel_settings.title":"Channels","admin.cluster.ClusterName":"Cluster Name:","admin.cluster.ClusterNameDesc":"The cluster to join by name. Only nodes with the same cluster name will join together. This is to support Blue-Green deployments or staging pointing to the same database.","admin.cluster.ClusterNameEx":"E.g.: \\"Production\\" or \\"Staging\\"","admin.cluster.enableDescription":"When true, Mattermost will run in High Availability mode. Please see [documentation](!http://docs.mattermost.com/deployment/cluster.html) to learn more about configuring High Availability for Mattermost.","admin.cluster.enableTitle":"Enable High Availability Mode:","admin.cluster.GossipPort":"Gossip Port:","admin.cluster.GossipPortDesc":"The port used for the gossip protocol. Both UDP and TCP should be allowed on this port.","admin.cluster.GossipPortEx":"E.g.: \\"8074\\"","admin.cluster.loadedFrom":"This configuration file was loaded from Node ID {clusterId}. Please see the Troubleshooting Guide in our [documentation](!http://docs.mattermost.com/deployment/cluster.html) if you are accessing the System Console through a load balancer and experiencing issues.","admin.cluster.noteDescription":"Changing properties in this section will require a server restart before taking effect.","admin.cluster.OverrideHostname":"Override Hostname:","admin.cluster.OverrideHostnameDesc":"The default value of <blank> will attempt to get the Hostname from the OS or use the IP Address. You can override the hostname of this server with this property. It is not recommended to override the Hostname unless needed. This property can also be set to a specific IP Address if needed.","admin.cluster.OverrideHostnameEx":"E.g.: \\"app-server-01\\"","admin.cluster.should_not_change":"WARNING: These settings may not sync with the other servers in the cluster. High Availability inter-node communication will not start until you modify the config.json to be identical on all servers and restart Mattermost. Please see the [documentation](!http://docs.mattermost.com/deployment/cluster.html) on how to add or remove a server from the cluster. If you are accessing the System Console through a load balancer and experiencing issues, please see the Troubleshooting Guide in our [documentation](!http://docs.mattermost.com/deployment/cluster.html).","admin.cluster.status_table.config_hash":"Config File MD5","admin.cluster.status_table.hostname":"Hostname","admin.cluster.status_table.reload":" Reload Cluster Status","admin.cluster.status_table.status":"Status","admin.cluster.status_table.url":"Gossip Address","admin.cluster.status_table.version":"Version","admin.cluster.StreamingPort":"Streaming Port:","admin.cluster.StreamingPortDesc":"The port used for streaming data between servers.","admin.cluster.StreamingPortEx":"E.g.: \\"8075\\"","admin.cluster.unknown":"unknown","admin.cluster.UseExperimentalGossip":"Use Experimental Gossip:","admin.cluster.UseExperimentalGossipDesc":"When true, the server will attempt to communicate via the gossip protocol over the gossip port. When false the server will attempt to communicate over the streaming port. When false the gossip port and protocol are still used to determine cluster health.","admin.cluster.UseIpAddress":"Use IP Address:","admin.cluster.UseIpAddressDesc":"When true, the cluster will attempt to communicate via IP Address vs using the hostname.","admin.compliance_reports.desc":"Job Name:","admin.compliance_reports.desc_placeholder":"E.g. \\"Audit 445 for HR\\"","admin.compliance_reports.emails":"Emails:","admin.compliance_reports.emails_placeholder":"E.g. \\"bill@example.com, bob@example.com\\"","admin.compliance_reports.from":"From:","admin.compliance_reports.from_placeholder":"E.g. \\"2016-03-11\\"","admin.compliance_reports.keywords":"Keywords:","admin.compliance_reports.keywords_placeholder":"E.g. \\"shorting stock\\"","admin.compliance_reports.reload":"Reload Completed Compliance Reports","admin.compliance_reports.run":"Run Compliance Report","admin.compliance_reports.title":"Compliance Reports","admin.compliance_reports.to":"To:","admin.compliance_reports.to_placeholder":"E.g. \\"2016-03-15\\"","admin.compliance_table.desc":"Description","admin.compliance_table.download":"Download","admin.compliance_table.failed":"Failed","admin.compliance_table.files":"Files","admin.compliance_table.params":"Params","admin.compliance_table.pending":"Pending","admin.compliance_table.records":"Records","admin.compliance_table.status":"Status","admin.compliance_table.success":"Success","admin.compliance_table.timestamp":"Timestamp","admin.compliance_table.type":"Type","admin.compliance_table.userId":"Requested By","admin.compliance.complianceMonitoring":"Compliance Monitoring","admin.compliance.directoryDescription":"Directory to which compliance reports are written. If blank, will be set to ./data/.","admin.compliance.directoryExample":"E.g.: \\"./data/\\"","admin.compliance.directoryTitle":"Compliance Report Directory:","admin.compliance.enableDailyDesc":"When true, Mattermost will generate a daily compliance report.","admin.compliance.enableDailyTitle":"Enable Daily Report:","admin.compliance.enableDesc":"When true, Mattermost allows compliance reporting from the **Compliance and Auditing** tab. See [documentation](!https://docs.mattermost.com/administration/compliance.html) to learn more.","admin.compliance.enableTitle":"Enable Compliance Reporting:","admin.compliance.newComplianceExportBanner":"This feature is replaced by a new [Compliance Export]({siteURL}/admin_console/compliance/export) feature, and will be removed in a future release. We recommend migrating to the new system.","admin.complianceExport.createJob.help":"Initiates a Compliance Export job immediately.","admin.complianceExport.createJob.title":"Run Compliance Export Job Now","admin.complianceExport.exportFormat.actiance":"Actiance XML","admin.complianceExport.exportFormat.csv":"CSV","admin.complianceExport.exportFormat.description":"Format of the compliance export. Corresponds to the system that you want to import the data into.\\n \\nFor Actiance XML, compliance export files are written to the \\"exports\\" subdirectory of the configured [Local Storage Directory]({siteURL}/admin_console/environment/file_storage). For Global Relay EML, they are emailed to the configured email address.","admin.complianceExport.exportFormat.globalrelay":"Global Relay EML","admin.complianceExport.exportFormat.title":"Export Format:","admin.complianceExport.exportJobStartTime.description":"Set the start time of the daily scheduled compliance export job. Choose a time when fewer people are using your system. Must be a 24-hour time stamp in the form HH:MM.","admin.complianceExport.exportJobStartTime.example":"E.g.: \\"02:00\\"","admin.complianceExport.exportJobStartTime.title":"Compliance Export time:","admin.complianceExport.globalRelayCustomerType.a10.description":"A10/Type 10","admin.complianceExport.globalRelayCustomerType.a9.description":"A9/Type 9","admin.complianceExport.globalRelayCustomerType.description":"Type of Global Relay customer account your organization has.","admin.complianceExport.globalRelayCustomerType.title":"Global Relay Customer Account:","admin.complianceExport.globalRelayEmailAddress.description":"The email address your Global Relay server monitors for incoming compliance exports.","admin.complianceExport.globalRelayEmailAddress.example":"E.g.: \\"globalrelay@mattermost.com\\"","admin.complianceExport.globalRelayEmailAddress.title":"Global Relay Email Address:","admin.complianceExport.globalRelaySmtpPassword.description":"The password associated with the SMTP username.","admin.complianceExport.globalRelaySmtpPassword.example":"E.g.: \\"globalRelayPassword\\"","admin.complianceExport.globalRelaySmtpPassword.title":"Global Relay SMTP Password:","admin.complianceExport.globalRelaySmtpUsername.description":"The username for authenticating to the Global Relay SMTP server.","admin.complianceExport.globalRelaySmtpUsername.example":"E.g.: \\"globalRelayUser\\"","admin.complianceExport.globalRelaySmtpUsername.title":"Global Relay SMTP Username:","admin.complianceExport.messagesExportedCount":"{count} messages exported.","admin.complianceExport.title":"Compliance Export (Beta)","admin.complianceMonitoring.userActivityLogsTitle":"User Activity Logs","admin.connectionSecurityNone":"None","admin.connectionSecurityNoneDescription":"Mattermost will connect over an insecure connection.","admin.connectionSecurityStart":"STARTTLS","admin.connectionSecurityStartDescription":"Takes an existing insecure connection and attempts to upgrade it to a secure connection using TLS.","admin.connectionSecurityTitle":"Connection Security:","admin.connectionSecurityTls":"TLS","admin.connectionSecurityTlsDescription":"Encrypts the communication between Mattermost and your server.","admin.customization.androidAppDownloadLinkDesc":"Add a link to download the Android app. Users who access the site on a mobile web browser will be prompted with a page giving them the option to download the app. Leave this field blank to prevent the page from appearing.","admin.customization.androidAppDownloadLinkTitle":"Android App Download Link:","admin.customization.announcement.allowBannerDismissalDesc":"When true, users can dismiss the banner until its next update. When false, the banner is permanently visible until it is turned off by the System Admin.","admin.customization.announcement.allowBannerDismissalTitle":"Allow Banner Dismissal:","admin.customization.announcement.bannerColorTitle":"Banner Color:","admin.customization.announcement.bannerTextColorTitle":"Banner Text Color:","admin.customization.announcement.bannerTextDesc":"Text that will appear in the announcement banner.","admin.customization.announcement.bannerTextTitle":"Banner Text:","admin.customization.announcement.enableBannerDesc":"Enable an announcement banner across all teams.","admin.customization.announcement.enableBannerTitle":"Enable Announcement Banner:","admin.customization.appDownloadLinkDesc":"Add a link to a download page for the Mattermost apps. When a link is present, an option to \\"Download Mattermost Apps\\" will be added in the Main Menu so users can find the download page. Leave this field blank to hide the option from the Main Menu.","admin.customization.appDownloadLinkTitle":"Mattermost Apps Download Page Link:","admin.customization.customUrlSchemes":"Custom URL Schemes:","admin.customization.customUrlSchemesDesc":"Allows message text to link if it begins with any of the comma-separated URL schemes listed. By default, the following schemes will create links: \\"http\\", \\"https\\", \\"ftp\\", \\"tel\\", and \\"mailto\\".","admin.customization.customUrlSchemesPlaceholder":"E.g.: \\"git,smtp\\"","admin.customization.enableCustomEmojiDesc":"Enable users to create custom emoji for use in messages. When enabled, Custom Emoji settings can be accessed by switching to a team and clicking the three dots above the channel sidebar, and selecting \\"Custom Emoji\\".","admin.customization.enableCustomEmojiTitle":"Enable Custom Emoji:","admin.customization.enableEmojiPickerDesc":"The emoji picker allows users to select emoji to add as reactions or use in messages. Enabling the emoji picker with a large number of custom emoji may slow down performance.","admin.customization.enableEmojiPickerTitle":"Enable Emoji Picker:","admin.customization.enableGifPickerDesc":"Allow users to select GIFs from the emoji picker via a Gfycat integration.","admin.customization.enableGifPickerTitle":"Enable GIF Picker:","admin.customization.enableLatexDesc":"Enable rending of Latex code. If false, Latex code will be highlighted only.","admin.customization.enableLatexTitle":"Enable Latex Rendering:","admin.customization.enableLinkPreviewsDesc":"Display a preview of website content, image links and YouTube links below the message when available. The server must be connected to the internet and have access through the firewall (if applicable) to the websites from which previews are expected. Users can disable these previews from Account Settings > Display > Website Link Previews.","admin.customization.enableLinkPreviewsTitle":"Enable Link Previews:","admin.customization.enableSVGsDesc":"Enable previews for SVG file attachments and allow them to appear in messages.","admin.customization.enableSVGsTitle":"Enable SVGs:","admin.customization.gfycatApiKey":"Gfycat API Key:","admin.customization.gfycatApiKeyDescription":"Request an API key at [https://developers.gfycat.com/signup/#](!https://developers.gfycat.com/signup/#). Enter the client ID you receive via email to this field. When blank, uses the default API key provided by Gfycat.","admin.customization.gfycatApiSecret":"Gfycat API Secret:","admin.customization.gfycatApiSecretDescription":"The API secret generated by Gfycat for your API key. When blank, uses the default API secret provided by Gfycat.","admin.customization.iosAppDownloadLinkDesc":"Add a link to download the iOS app. Users who access the site on a mobile web browser will be prompted with a page giving them the option to download the app. Leave this field blank to prevent the page from appearing.","admin.customization.iosAppDownloadLinkTitle":"iOS App Download Link:","admin.data_retention.confirmChangesModal.clarification":"Once deleted, messages and files cannot be retrieved.","admin.data_retention.confirmChangesModal.confirm":"Confirm Settings","admin.data_retention.confirmChangesModal.description":"Are you sure you want to apply the following data retention policy:","admin.data_retention.confirmChangesModal.description.itemFileDeletion":"All files will be permanently deleted after {days} days.","admin.data_retention.confirmChangesModal.description.itemFileIndefinite":"All files will be retained indefinitely.","admin.data_retention.confirmChangesModal.description.itemMessageDeletion":"All messages will be permanently deleted after {days} days.","admin.data_retention.confirmChangesModal.description.itemMessageIndefinite":"All messages will be retained indefinitely.","admin.data_retention.confirmChangesModal.title":"Confirm data retention policy","admin.data_retention.createJob.help":"Initiates a Data Retention deletion job immediately.","admin.data_retention.createJob.title":"Run Deletion Job Now","admin.data_retention.deletionJobStartTime.description":"Set the start time of the daily scheduled data retention job. Choose a time when fewer people are using your system. Must be a 24-hour time stamp in the form HH:MM.","admin.data_retention.deletionJobStartTime.example":"E.g.: \\"02:00\\"","admin.data_retention.deletionJobStartTime.title":"Data Deletion Time:","admin.data_retention.enableFileDeletion.description":"Set how long Mattermost keeps file uploads in channels and direct messages.","admin.data_retention.enableFileDeletion.title":"File Retention:","admin.data_retention.enableMessageDeletion.description":"Set how long Mattermost keeps messages in channels and direct messages.","admin.data_retention.enableMessageDeletion.title":"Message Retention:","admin.data_retention.fileRetentionDays.description":"Set how many days file uploads are kept in Mattermost. Files older than the duration you set will be deleted nightly. The minimum time is one day.","admin.data_retention.fileRetentionDays.example":"E.g.: \\"60\\"","admin.data_retention.keepFilesForTime":"Keep files for a set amount of time","admin.data_retention.keepFilesIndefinitely":"Keep all files indefinitely","admin.data_retention.keepMessageForTime":"Keep messages for a set amount of time","admin.data_retention.keepMessagesIndefinitely":"Keep all messages indefinitely","admin.data_retention.messageRetentionDays.description":"Set how many days messages are kept in Mattermost. Messages, including file attachments older than the duration you set will be deleted nightly. The minimum time is one day.","admin.data_retention.messageRetentionDays.example":"E.g.: \\"60\\"","admin.data_retention.note.description":"Caution: Once a message or a file is deleted, the action is irreversible. Please be careful when setting up a custom data retention policy. See {documentationLink} to learn more.","admin.data_retention.note.description.documentationLinkText":"documentation","admin.data_retention.title":"Data Retention Policy","admin.database.title":"Database","admin.developer.title":"Developer Settings","admin.elasticsearch.bulkIndexingTitle":"Bulk Indexing:","admin.elasticsearch.connectionUrlDescription":"The address of the Elasticsearch server. {documentationLink}","admin.elasticsearch.connectionUrlExample":"E.g.: \\"https://elasticsearch.example.org:9200\\"","admin.elasticsearch.connectionUrlExample.documentationLinkText":"Please see documentation with server setup instructions.","admin.elasticsearch.connectionUrlTitle":"Server Connection Address:","admin.elasticsearch.createJob.help":"All users, channels and posts in the database will be indexed from oldest to newest. Elasticsearch is available during indexing but search results may be incomplete until the indexing job is complete.","admin.elasticsearch.createJob.title":"Index Now","admin.elasticsearch.elasticsearch_test_button":"Test Connection","admin.elasticsearch.enableAutocompleteDescription":"Requires a successful connection to the Elasticsearch server. When true, Elasticsearch will be used for all autocompletion queries on users and channels using the latest index. Autocompletion results may be incomplete until a bulk index of the existing users and channels database is finished. When false, database autocomplete is used.","admin.elasticsearch.enableAutocompleteTitle":"Enable Elasticsearch for autocomplete queries:","admin.elasticsearch.enableIndexingDescription":"When true, indexing of new posts occurs automatically. Search queries will use database search until \\"Enable Elasticsearch for search queries\\" is enabled. {documentationLink}","admin.elasticsearch.enableIndexingDescription.documentationLinkText":"Learn more about Elasticsearch in our documentation.","admin.elasticsearch.enableIndexingTitle":"Enable Elasticsearch Indexing:","admin.elasticsearch.enableSearchingDescription":"Requires a successful connection to the Elasticsearch server. When true, Elasticsearch will be used for all search queries using the latest index. Search results may be incomplete until a bulk index of the existing post database is finished. When false, database search is used.","admin.elasticsearch.enableSearchingTitle":"Enable Elasticsearch for search queries:","admin.elasticsearch.password":"E.g.: \\"yourpassword\\"","admin.elasticsearch.passwordDescription":"(Optional) The password to authenticate to the Elasticsearch server.","admin.elasticsearch.passwordTitle":"Server Password:","admin.elasticsearch.percentComplete":"{percent}% Complete","admin.elasticsearch.purgeIndexesButton":"Purge Indexes","admin.elasticsearch.purgeIndexesButton.error":"Failed to purge indexes: {error}","admin.elasticsearch.purgeIndexesButton.label":"Purge Indexes:","admin.elasticsearch.purgeIndexesButton.success":"Indexes purged successfully.","admin.elasticsearch.purgeIndexesHelpText":"Purging will entirely remove the indexes on the Elasticsearch server. Search results may be incomplete until a bulk index of the existing database is rebuilt.","admin.elasticsearch.skipTLSVerificationDescription":"When true, Mattermost will not require the Elasticsearch certificate to be signed by a trusted Certificate Authority.","admin.elasticsearch.skipTLSVerificationTitle":"Skip TLS Verification:","admin.elasticsearch.sniffDescription":"When true, sniffing finds and connects to all data nodes in your cluster automatically.","admin.elasticsearch.sniffTitle":"Enable Cluster Sniffing:","admin.elasticsearch.testConfigSuccess":"Test successful. Configuration saved.","admin.elasticsearch.testHelpText":"Tests if the Mattermost server can connect to the Elasticsearch server specified. Testing the connection only saves the configuration if the test is successful. See log file for more detailed error messages.","admin.elasticsearch.title":"Elasticsearch","admin.elasticsearch.usernameDescription":"(Optional) The username to authenticate to the Elasticsearch server.","admin.elasticsearch.usernameExample":"E.g.: \\"elastic\\"","admin.elasticsearch.usernameTitle":"Server Username:","admin.email.agreeHPNS":" I understand and accept the Mattermost Hosted Push Notification Service [Terms of Service](!https://about.mattermost.com/hpns-terms/) and [Privacy Policy](!https://about.mattermost.com/hpns-privacy/).","admin.email.allowEmailSignInDescription":"When true, Mattermost allows users to sign in using their email and password.","admin.email.allowEmailSignInTitle":"Enable sign-in with email: ","admin.email.allowSignupDescription":"When true, Mattermost allows account creation using email and password. This value should be false only when you want to limit sign up to a single sign-on service like AD/LDAP, SAML or GitLab.","admin.email.allowSignupTitle":"Enable account creation with email: ","admin.email.allowUsernameSignInDescription":"When true, users with email login can sign in using their username and password. This setting does not affect AD/LDAP login.","admin.email.allowUsernameSignInTitle":"Enable sign-in with username: ","admin.email.easHelp":"Learn more about compiling and deploying your own mobile apps from an [Enterprise App Store](!https://about.mattermost.com/default-enterprise-app-store).","admin.email.mhpns":"Use HPNS connection with uptime SLA to send notifications to iOS and Android apps","admin.email.mhpnsHelp":"Download [Mattermost iOS app](!https://about.mattermost.com/mattermost-ios-app/) from iTunes. Download [Mattermost Android app](!https://about.mattermost.com/mattermost-android-app/) from Google Play. Learn more about [HPNS](!https://about.mattermost.com/default-hpns/).","admin.email.mtpns":"Use TPNS connection to send notifications to iOS and Android apps","admin.email.mtpnsHelp":"Download [Mattermost iOS app](!https://about.mattermost.com/mattermost-ios-app/) from iTunes. Download [Mattermost Android app](!https://about.mattermost.com/mattermost-android-app/) from Google Play. Learn more about [TPNS](!https://about.mattermost.com/default-tpns/).","admin.email.pushOff":"Do not send push notifications","admin.email.pushOffHelp":"Please see [documentation on push notifications](!https://about.mattermost.com/default-mobile-push-notifications/) to learn more about setup options.","admin.email.pushServerEx":"E.g.: \\"https://push-test.mattermost.com\\"","admin.email.pushServerTitle":"Push Notification Server:","admin.email.pushTitle":"Enable Push Notifications: ","admin.email.requireVerificationDescription":"Typically set to true in production. When true, Mattermost requires email verification after account creation prior to allowing login. Developers may set this field to false to skip sending verification emails for faster development.","admin.email.requireVerificationTitle":"Require Email Verification: ","admin.email.selfPush":"Manually enter Push Notification Service location","admin.environment.fileStorage":"File Storage","admin.environment.imageProxy":"Image Proxy","admin.environment.notifications":"Notifications","admin.environment.notifications.contents.full":"Send full message contents","admin.environment.notifications.contents.generic":"Send generic description with only sender name","admin.environment.notifications.contents.help":"**Send full message contents** - Sender name and channel are included in email notifications. Typically used for compliance reasons if Mattermost contains confidential information and policy dictates it cannot be stored in email.\\n **Send generic description with only sender name** - Only the name of the person who sent the message, with no information about channel name or message contents are included in email notifications. Typically used for compliance reasons if Mattermost contains confidential information and policy dictates it cannot be stored in email.","admin.environment.notifications.contents.label":"Email Notification Contents:","admin.environment.notifications.enable.help":"Typically set to true in production. When true, Mattermost attempts to send email notifications. When false, email invitations and user account setting change emails are still sent as long as the SMTP server is configured. Developers may set this field to false to skip email setup for faster development.","admin.environment.notifications.enable.label":"Enable Email Notifications:","admin.environment.notifications.enableConfirmNotificationsToChannel.help":"When true, users will be prompted to confirm when posting @channel and @all in channels with over five members. When false, no confirmation is required.","admin.environment.notifications.enableConfirmNotificationsToChannel.label":"Show @channel and @all confirmation dialog:","admin.environment.notifications.enableEmailBatching.help":"When true, users will have email notifications for multiple direct messages and mentions combined into a single email. Batching will occur at a default interval of 15 minutes, configurable in Account Settings > Notifications.","admin.environment.notifications.enableEmailBatching.label":"Enable Email Batching:","admin.environment.notifications.enablePreviewModeBanner.help":"When true, the Preview Mode banner is displayed so users are aware that email notifications are disabled. When false, the Preview Mode banner is not displayed to users.","admin.environment.notifications.enablePreviewModeBanner.label":"Enable Preview Mode Banner:","admin.environment.notifications.feedbackEmail.help":"Email address displayed on email account used when sending notification emails from Mattermost.","admin.environment.notifications.feedbackEmail.label":"Notification From Address:","admin.environment.notifications.feedbackEmail.placeholder":"Ex: \\"mattermost@yourcompany.com\\", \\"admin@yourcompany.com\\"","admin.environment.notifications.feedbackOrganization.help":"Organization name and address displayed on email notifications from Mattermost, such as \\"© ABC Corporation, 565 Knight Way, Palo Alto, California, 94305, USA\\". If the field is left empty, the organization name and address will not be displayed.","admin.environment.notifications.feedbackOrganization.label":"Notification Footer Mailing Address:","admin.environment.notifications.feedbackOrganization.placeholder":"Ex: \\"© ABC Corporation, 565 Knight Way, Palo Alto, California, 94305, USA\\"","admin.environment.notifications.notificationDisplay.help":"Display name on email account used when sending notification emails from Mattermost.","admin.environment.notifications.notificationDisplay.label":"Notification Display Name:","admin.environment.notifications.notificationDisplay.placeholder":"Ex: \\"Mattermost Notification\\", \\"System\\", \\"No-Reply\\"","admin.environment.notifications.pushContents.full":"Full message content sent in the notification payload","admin.environment.notifications.pushContents.generic":"Generic description with sender and channel names","admin.environment.notifications.pushContents.genericNoChannel":"Generic description with only sender name","admin.environment.notifications.pushContents.help":"**Generic description with only sender name** - Includes only the name of the person who sent the message in push notifications, with no information about channel name or message contents.\\n **Generic description with sender and channel names** - Includes the name of the person who sent the message and the channel it was sent in, but not the message contents.\\n **Full message content sent in the notification payload** - Includes the message contents in the push notification payload that is relayed through Apple\'s Push Notification Service (APNS) or Google\'s Firebase Cloud Messaging (FCM). It is **highly recommended** this option only be used with an \\"https\\" protocol to encrypt the connection and protect confidential information sent in messages.","admin.environment.notifications.pushContents.idLoaded":"Full message content fetched from the server on receipt","admin.environment.notifications.pushContents.label":"Push Notification Contents:","admin.environment.notifications.pushContents.withIdLoaded.help":"**Generic description with only sender name** - Includes only the name of the person who sent the message in push notifications, with no information about channel name or message contents.\\n **Generic description with sender and channel names** - Includes the name of the person who sent the message and the channel it was sent in, but not the message contents.\\n **Full message content sent in the notification payload** - Includes the message contents in the push notification payload that is relayed through Apple\'s Push Notification Service (APNS) or Google\'s Firebase Cloud Messaging (FCM). It is **highly recommended** this option only be used with an \\"https\\" protocol to encrypt the connection and protect confidential information sent in messages.\\n**Full message content fetched from the server on receipt** - The notification payload relayed through APNS or FCM contains no message content, instead it contains a unique message ID used to fetch message content from the server when a push notification is received by a device. If the server cannot be reached, a generic notification will be displayed.","admin.environment.notifications.replyToAddress.help":"Email address used in the Reply-To header when sending notification emails from Mattermost.","admin.environment.notifications.replyToAddress.label":"Notification Reply-To Address:","admin.environment.notifications.replyToAddress.placeholder":"Ex: \\"mattermost@yourcompany.com\\", \\"admin@yourcompany.com\\"","admin.environment.pushNotificationServer":"Push Notification Server","admin.environment.sessionLengths":"Session Lengths","admin.environment.smtp":"SMTP","admin.environment.smtp.connectionSecurity.option.none":"None","admin.environment.smtp.connectionSecurity.option.starttls":"STARTTLS","admin.environment.smtp.connectionSecurity.option.tls":"TLS (Recommended)","admin.environment.smtp.connectionSecurity.title":"Connection Security:","admin.environment.smtp.connectionSmtpTest":"Test Connection","admin.environment.smtp.enableSecurityFixAlert.description":"When true, System Administrators are notified by email if a relevant security fix alert has been announced in the last 12 hours. Requires email to be enabled.","admin.environment.smtp.enableSecurityFixAlert.title":"Enable Security Alerts:","admin.environment.smtp.skipServerCertificateVerification.description":"When true, Mattermost will not verify the email server certificate.","admin.environment.smtp.skipServerCertificateVerification.title":"Skip Server Certificate Verification:","admin.environment.smtp.smtpAuth.description":"When true, SMTP Authentication is enabled.","admin.environment.smtp.smtpAuth.title":"Enable SMTP Authentication:","admin.environment.smtp.smtpFail":"Connection unsuccessful: {error}","admin.environment.smtp.smtpPassword.description":"Obtain this credential from administrator setting up your email server.","admin.environment.smtp.smtpPassword.placeholder":"Ex: \\"yourpassword\\", \\"jcuS8PuvcpGhpgHhlcpT1Mx42pnqMxQY\\"","admin.environment.smtp.smtpPassword.title":"SMTP Server Password:","admin.environment.smtp.smtpPort.description":"Port of SMTP email server.","admin.environment.smtp.smtpPort.placeholder":"Ex: \\"25\\", \\"465\\", \\"587\\"","admin.environment.smtp.smtpPort.title":"SMTP Server Port:","admin.environment.smtp.smtpServer.description":"Location of SMTP email server.","admin.environment.smtp.smtpServer.placeholder":"Ex: \\"smtp.yourcompany.com\\", \\"email-smtp.us-east-1.amazonaws.com\\"","admin.environment.smtp.smtpServer.title":"SMTP Server:","admin.environment.smtp.smtpSuccess":"No errors were reported while sending an email. Please check your inbox to make sure.","admin.environment.smtp.smtpUsername.description":"Obtain this credential from administrator setting up your email server.","admin.environment.smtp.smtpUsername.placeholder":"Ex: \\"admin@yourcompany.com\\", \\"AKIADTOVBGERKLCBV\\"","admin.environment.smtp.smtpUsername.title":"SMTP Server Username:","admin.environment.smtp.testing":"Testing...","admin.environment.webServer":"Web Server","admin.experimental.allowCustomThemes.desc":"Enables the **Display > Theme > Custom Theme** section in Account Settings.","admin.experimental.allowCustomThemes.title":"Allow Custom Themes:","admin.experimental.clientSideCertCheck.desc":"When **primary**, after the client side certificate is verified, user’s email is retrieved from the certificate and is used to log in without a password. When **secondary**, after the client side certificate is verified, user’s email is retrieved from the certificate and matched against the one supplied by the user. If they match, the user logs in with regular email/password credentials.","admin.experimental.clientSideCertCheck.title":"Client-Side Certification Login Method:","admin.experimental.clientSideCertEnable.desc":"Enables client-side certification for your Mattermost server. See [documentation](!https://docs.mattermost.com/deployment/certificate-based-authentication.html) to learn more.","admin.experimental.clientSideCertEnable.title":"Enable Client-Side Certification:","admin.experimental.closeUnusedDirectMessages.desc":"When true, direct message conversations with no activity for 7 days will be hidden from the sidebar. When false, conversations remain in the sidebar until they are manually closed.","admin.experimental.closeUnusedDirectMessages.title":"Autoclose Direct Messages in Sidebar:","admin.experimental.defaultTheme.desc":"Set a default theme that applies to all new users on the system.","admin.experimental.defaultTheme.title":"Default Theme:","admin.experimental.emailBatchingBufferSize.desc":"Specify the maximum number of notifications batched into a single email.","admin.experimental.emailBatchingBufferSize.example":"E.g.: \\"256\\"","admin.experimental.emailBatchingBufferSize.title":"Email Batching Buffer Size:","admin.experimental.emailBatchingInterval.desc":"Specify the maximum frequency, in seconds, which the batching job checks for new notifications. Longer batching intervals will increase performance.","admin.experimental.emailBatchingInterval.example":"E.g.: \\"30\\"","admin.experimental.emailBatchingInterval.title":"Email Batching Interval:","admin.experimental.emailSettingsLoginButtonBorderColor.desc":"Specify the color of the email login button border for white labeling purposes. Use a hex code with a #-sign before the code. This setting only applies to the mobile apps.","admin.experimental.emailSettingsLoginButtonBorderColor.title":"Email Login Button Border Color:","admin.experimental.emailSettingsLoginButtonColor.desc":"Specify the color of the email login button for white labeling purposes. Use a hex code with a #-sign before the code. This setting only applies to the mobile apps.","admin.experimental.emailSettingsLoginButtonColor.title":"Email Login Button Color:","admin.experimental.emailSettingsLoginButtonTextColor.desc":"Specify the color of the email login button text for white labeling purposes. Use a hex code with a #-sign before the code. This setting only applies to the mobile apps.","admin.experimental.emailSettingsLoginButtonTextColor.title":"Email Login Button Text Color:","admin.experimental.enableChannelViewedMessages.desc":"This setting determines whether `channel_viewed` WebSocket events are sent, which synchronize unread notifications across clients and devices. Disabling the setting in larger deployments may improve server performance.","admin.experimental.enableChannelViewedMessages.title":"Enable Channel Viewed WebSocket Messages:","admin.experimental.enablePreviewFeatures.desc":"When true, preview features can be enabled from **Account Settings > Advanced > Preview pre-release features**. When false, disables and hides preview features from **Account Settings > Advanced > Preview pre-release features**.","admin.experimental.enablePreviewFeatures.title":"Enable Preview Features:","admin.experimental.enableThemeSelection.desc":"Enables the **Display > Theme** tab in Account Settings so users can select their theme.","admin.experimental.enableThemeSelection.title":"Enable Theme Selection:","admin.experimental.enableTutorial.desc":"When true, users are prompted with a tutorial when they open Mattermost for the first time after account creation. When false, the tutorial is disabled, and users are placed in Town Square when they open Mattermost for the first time after account creation.","admin.experimental.enableTutorial.title":"Enable Tutorial:","admin.experimental.enableUserDeactivation.desc":"When true, users may deactivate their own account from **Account Settings > Advanced**. If a user deactivates their own account, they will get an email notification confirming they were deactivated. When false, users may not deactivate their own account.","admin.experimental.enableUserDeactivation.title":"Enable Account Deactivation:","admin.experimental.enableUserTypingMessages.desc":"This setting determines whether \\"user is typing...\\" messages are displayed below the message box. Disabling the setting in larger deployments may improve server performance.","admin.experimental.enableUserTypingMessages.title":"Enable User Typing Messages:","admin.experimental.enableXToLeaveChannelsFromLHS.desc":"When true, users can leave Public and Private Channels by clicking the “x” beside the channel name. When false, users must use the **Leave Channel** option from the channel menu to leave channels.","admin.experimental.enableXToLeaveChannelsFromLHS.title":"Enable X to Leave Channels from Left-Hand Sidebar:","admin.experimental.experimentalChannelOrganization.desc":"Enables channel sidebar organization options in **Account Settings > Sidebar > Channel grouping and sorting** including options for grouping unread channels, sorting channels by most recent post and combining all channel types into a single list.","admin.experimental.experimentalChannelOrganization.title":"Sidebar Organization:","admin.experimental.experimentalEnableAuthenticationTransfer.desc":"When true, users can change their sign-in method to any that is enabled on the server, either via Account Settings or the APIs. When false, Users cannot change their sign-in method, regardless of which authentication options are enabled.","admin.experimental.experimentalEnableAuthenticationTransfer.title":"Allow Authentication Transfer:","admin.experimental.experimentalEnableAutomaticReplies.desc":"When true, users can enable Automatic Replies in **Account Settings > Notifications**. Users set a custom message that will be automatically sent in response to Direct Messages. When false, disables the Automatic Direct Message Replies feature and hides it from Account Settings.","admin.experimental.experimentalEnableAutomaticReplies.title":"Enable Automatic Replies:","admin.experimental.experimentalEnableDefaultChannelLeaveJoinMessages.desc":"This setting determines whether team leave/join system messages are posted in the default town-square channel.","admin.experimental.experimentalEnableDefaultChannelLeaveJoinMessages.title":"Enable Default Channel Leave/Join System Messages:","admin.experimental.experimentalEnableHardenedMode.desc":"Enables a hardened mode for Mattermost that makes user experience trade-offs in the interest of security. See [documentation](!https://docs.mattermost.com/administration/config-settings.html#enable-hardened-mode-experimental) to learn more.","admin.experimental.experimentalEnableHardenedMode.title":"Enable Hardened Mode:","admin.experimental.experimentalFeatures":"Experimental Features","admin.experimental.experimentalHideTownSquareinLHS.desc":"When true, hides Town Square in the left-hand sidebar if there are no unread messages in the channel. When false, Town Square is always visible in the left-hand sidebar even if all messages have been read.","admin.experimental.experimentalHideTownSquareinLHS.title":"Town Square is Hidden in Left-Hand Sidebar:","admin.experimental.experimentalPrimaryTeam.desc":"The primary team of which users on the server are members. When a primary team is set, the options to join other teams or leave the primary team are disabled.","admin.experimental.experimentalPrimaryTeam.example":"E.g.: \\"teamname\\"","admin.experimental.experimentalPrimaryTeam.title":"Primary Team:","admin.experimental.experimentalTimezone.desc":"Select the timezone used for timestamps in the user interface and email notifications. When true, the Timezone setting is visible in the Account Settings and a time zone is automatically assigned in the next active session. When false, the Timezone setting is hidden in the Account Settings.","admin.experimental.experimentalTimezone.title":"Timezone:","admin.experimental.experimentalTownSquareIsReadOnly.desc":"When true, only System Admins can post in Town Square. Other members are not able to post, reply, upload files, emoji react or pin messages to Town Square, nor are they able to change the channel name, header or purpose. When false, anyone can post in Town Square.","admin.experimental.experimentalTownSquareIsReadOnly.title":"Town Square is Read-Only:","admin.experimental.experimentalUseNewSAMLLibrary.desc":"Enable an updated SAML Library, which does not require the XML Security Library (xmlsec1) to be installed. Warning: Not all providers have been tested. If you experience issues, please contact support: [https://about.mattermost.com/support/](!https://about.mattermost.com/support/). Changing this setting requires a server restart before taking effect.","admin.experimental.experimentalUseNewSAMLLibrary.title":"Use Improved SAML Library (Beta):","admin.experimental.ldapSettingsLoginButtonBorderColor.desc":"Specify the color of the AD/LDAP login button border for white labeling purposes. Use a hex code with a #-sign before the code. This setting only applies to the mobile apps.","admin.experimental.ldapSettingsLoginButtonBorderColor.title":"AD/LDAP Login Button Border Color:","admin.experimental.ldapSettingsLoginButtonColor.desc":"Specify the color of the AD/LDAP login button for white labeling purposes. Use a hex code with a #-sign before the code. This setting only applies to the mobile apps.","admin.experimental.ldapSettingsLoginButtonColor.title":"AD/LDAP Login Button Color:","admin.experimental.ldapSettingsLoginButtonTextColor.desc":"Specify the color of the AD/LDAP login button text for white labeling purposes. Use a hex code with a #-sign before the code. This setting only applies to the mobile apps.","admin.experimental.ldapSettingsLoginButtonTextColor.title":"AD/LDAP Login Button Text Color:","admin.experimental.linkMetadataTimeoutMilliseconds.desc":"The number of milliseconds to wait for metadata from a third-party link. Used with Post Metadata.","admin.experimental.linkMetadataTimeoutMilliseconds.example":"E.g.: \\"5000\\"","admin.experimental.linkMetadataTimeoutMilliseconds.title":"Link Metadata Timeout:","admin.experimental.samlSettingsLoginButtonBorderColor.desc":"Specify the color of the SAML login button border for white labeling purposes. Use a hex code with a #-sign before the code. This setting only applies to the mobile apps.","admin.experimental.samlSettingsLoginButtonBorderColor.title":"SAML login Button Border Color:","admin.experimental.samlSettingsLoginButtonColor.desc":"Specify the color of the SAML login button for white labeling purposes. Use a hex code with a #-sign before the code. This setting only applies to the mobile apps.","admin.experimental.samlSettingsLoginButtonColor.title":"SAML Login Button Color:","admin.experimental.samlSettingsLoginButtonTextColor.desc":"Specify the color of the SAML login button text for white labeling purposes. Use a hex code with a #-sign before the code. This setting only applies to the mobile apps.","admin.experimental.samlSettingsLoginButtonTextColor.title":"SAML login Button Text Color:","admin.experimental.timeBetweenUserTypingUpdatesMilliseconds.desc":"The number of milliseconds to wait between emitting user typing websocket events.","admin.experimental.timeBetweenUserTypingUpdatesMilliseconds.example":"E.g.: \\"5000\\"","admin.experimental.timeBetweenUserTypingUpdatesMilliseconds.title":"User Typing Timeout:","admin.experimental.useChannelInEmailNotifications.desc":"When true, channel and team name appears in email notification subject lines. Useful for servers using only one team. When false, only team name appears in email notification subject line.","admin.experimental.useChannelInEmailNotifications.title":"Use Channel Name in Email Notifications:","admin.experimental.userStatusAwayTimeout.desc":"This setting defines the number of seconds after which the user’s status indicator changes to \\"Away\\", when they are away from Mattermost.","admin.experimental.userStatusAwayTimeout.example":"E.g.: \\"300\\"","admin.experimental.userStatusAwayTimeout.title":"User Status Away Timeout:","admin.false":"false","admin.field_names.allowBannerDismissal":"Allow banner dismissal","admin.field_names.bannerColor":"Banner color","admin.field_names.bannerText":"Banner text","admin.field_names.bannerTextColor":"Banner text color","admin.field_names.enableBanner":"Enable Announcement banner","admin.field_names.enableCommands":"Enable Custom Slash Commands","admin.field_names.enableConfirmNotificationsToChannel":"Show @channel and @all confirmation dialog","admin.field_names.enableIncomingWebhooks":"Enable Incoming Webhooks","admin.field_names.enableOAuthServiceProvider":"Enable OAuth 2.0 Service Provider","admin.field_names.enableOutgoingWebhooks":"Enable Outgoing Webhooks","admin.field_names.enablePostIconOverride":"Enable integrations to override profile picture icons","admin.field_names.enablePostUsernameOverride":"Enable integrations to override usernames","admin.field_names.enableUserAccessTokens":"Enable Personal Access Tokens","admin.field_names.enableUserCreation":"Enable Account Creation","admin.field_names.maxChannelsPerTeam":"Max Channels Per Team","admin.field_names.maxNotificationsPerChannel":"Max Notifications Per Channel","admin.field_names.maxUsersPerTeam":"Max Users Per Team","admin.field_names.postEditTimeLimit":"Edit post time limit","admin.field_names.restrictCreationToDomains":"Restrict account creation to specified email domains","admin.field_names.restrictDirectMessage":"Enable users to open Direct Message channels with","admin.field_names.teammateNameDisplay":"Teammate Name Display","admin.file_upload.chooseFile":"Choose File","admin.file_upload.noFile":"No file uploaded","admin.file_upload.uploadFile":"Upload","admin.file.enableFileAttachments":"Allow File Sharing:","admin.file.enableFileAttachmentsDesc":"When false, disables file sharing on the server. All file and image uploads on messages are forbidden across clients and devices, including mobile.","admin.file.enableMobileDownloadDesc":"When false, disables file downloads on mobile apps. Users can still download files from a mobile web browser.","admin.file.enableMobileDownloadTitle":"Allow File Downloads on Mobile:","admin.file.enableMobileUploadDesc":"When false, disables file uploads on mobile apps. If Allow File Sharing is set to true, users can still upload files from a mobile web browser.","admin.file.enableMobileUploadTitle":"Allow File Uploads on Mobile:","admin.general.localization.availableLocalesDescription":"Set which languages are available for users in Account Settings (leave this field blank to have all supported languages available). If you\'re manually adding new languages, the **Default Client Language** must be added before saving this setting.\\n \\nWould like to help with translations? Join the [Mattermost Translation Server](!http://translate.mattermost.com/) to contribute.","admin.general.localization.availableLocalesNoResults":"No results found","admin.general.localization.availableLocalesNotPresent":"The default client language must be included in the available list","admin.general.localization.availableLocalesTitle":"Available Languages:","admin.general.localization.clientLocaleDescription":"Default language for newly created users and pages where the user hasn\'t logged in.","admin.general.localization.clientLocaleTitle":"Default Client Language:","admin.general.localization.serverLocaleDescription":"Default language for system messages. Changing this will require a server restart before taking effect.","admin.general.localization.serverLocaleTitle":"Default Server Language:","admin.general.log":"Logging","admin.gitlab.authTitle":"Auth Endpoint:","admin.gitlab.clientIdDescription":"Obtain this value via the instructions above for logging into GitLab.","admin.gitlab.clientIdExample":"E.g.: \\"jcuS8PuvcpGhpgHhlcpT1Mx42pnqMxQY\\"","admin.gitlab.clientIdTitle":"Application ID:","admin.gitlab.clientSecretDescription":"Obtain this value via the instructions above for logging into GitLab.","admin.gitlab.clientSecretExample":"E.g.: \\"jcuS8PuvcpGhpgHhlcpT1Mx42pnqMxQY\\"","admin.gitlab.clientSecretTitle":"Application Secret Key:","admin.gitlab.enableDescription":"When true, Mattermost allows team creation and account signup using GitLab OAuth.\\n \\n1. Log in to your GitLab account and go to Profile Settings -> Applications.\\n2. Enter Redirect URIs \\"<your-mattermost-url>/login/gitlab/complete\\" (example: http://localhost:8065/login/gitlab/complete) and \\"<your-mattermost-url>/signup/gitlab/complete\\".\\n3. Then use \\"Application Secret Key\\" and \\"Application ID\\" fields from GitLab to complete the options below.\\n4. Complete the Endpoint URLs below.","admin.gitlab.EnableMarkdownDesc":"1. Log in to your GitLab account and go to Profile Settings -> Applications.\\n2. Enter Redirect URIs \\"<your-mattermost-url>/login/gitlab/complete\\" (example: http://localhost:8065/login/gitlab/complete) and \\"<your-mattermost-url>/signup/gitlab/complete\\".\\n3. Then use \\"Application Secret Key\\" and \\"Application ID\\" fields from GitLab to complete the options below.\\n4. Complete the Endpoint URLs below.","admin.gitlab.enableTitle":"Enable authentication with GitLab: ","admin.gitlab.siteUrl":"GitLab Site URL: ","admin.gitlab.siteUrlDescription":"Enter the URL of your GitLab instance, e.g. https://example.com:3000. If your GitLab instance is not set up with SSL, start the URL with http:// instead of https://.","admin.gitlab.siteUrlExample":"E.g.: https://","admin.gitlab.tokenTitle":"Token Endpoint:","admin.gitlab.userTitle":"User API Endpoint:","admin.google.authTitle":"Auth Endpoint:","admin.google.clientIdDescription":"The Client ID you received when registering your application with Google.","admin.google.clientIdExample":"E.g.: \\"7602141235235-url0fhs1mayfasbmop5qlfns8dh4.apps.googleusercontent.com\\"","admin.google.clientIdTitle":"Client ID:","admin.google.clientSecretDescription":"The Client Secret you received when registering your application with Google.","admin.google.clientSecretExample":"E.g.: \\"H8sz0Az-dDs2p15-7QzD231\\"","admin.google.clientSecretTitle":"Client Secret:","admin.google.EnableMarkdownDesc":"1. [Log in](!https://accounts.google.com/login) to your Google account.\\n2. Go to [https://console.developers.google.com](!https://console.developers.google.com), click **Credentials** in the left hand sidebar and enter \\"Mattermost - your-company-name\\" as the **Project Name**, then click **Create**.\\n3. Click the **OAuth consent screen** header and enter \\"Mattermost\\" as the **Product name shown to users**, then click **Save**.\\n4. Under the **Credentials** header, click **Create credentials**, choose **OAuth client ID** and select **Web Application**.\\n5. Under **Restrictions** and **Authorized redirect URIs** enter **your-mattermost-url/signup/google/complete** (example: http://localhost:8065/signup/google/complete). Click **Create**.\\n6. Paste the **Client ID** and **Client Secret** to the fields below, then click **Save**.\\n7. Go to the [Google People API](!https://console.developers.google.com/apis/library/people.googleapis.com) and click *Enable*.\\n8. Finally, go to [Google+ API](!https://console.developers.google.com/apis/api/plus/overview) and click *Enable*. This setting might take a few minutes to propagate.","admin.google.tokenTitle":"Token Endpoint:","admin.google.userTitle":"User API Endpoint:","admin.group_settings.filters.isConfigured":"Is Configured","admin.group_settings.filters.isLinked":"Is Linked","admin.group_settings.filters.isUnconfigured":"Is Not Configured","admin.group_settings.filters.isUnlinked":"Is Not Linked","admin.group_settings.group_detail.group_configuration":"Group Configuration","admin.group_settings.group_detail.groupProfileDescription":"The name for this group.","admin.group_settings.group_detail.groupProfileTitle":"Group Profile","admin.group_settings.group_detail.groupTeamsAndChannelsDescription":"Set default teams and channels for group members. Teams added will include default channels, town-square, and off-topic. Adding a channel without setting the team will add the implied team to the listing below.","admin.group_settings.group_detail.groupTeamsAndChannelsTitle":"Team and Channel Membership","admin.group_settings.group_detail.groupUsersDescription":"Listing of users in Mattermost associated with this group.","admin.group_settings.group_detail.groupUsersTitle":"Users","admin.group_settings.group_detail.introBanner":"Configure default teams and channels and view users belonging to this group.","admin.group_settings.group_details.add_channel":"Add Channel","admin.group_settings.group_details.add_team":"Add Team","admin.group_settings.group_details.add_team_or_channel":"Add Team or Channel","admin.group_settings.group_details.group_profile.name":"Name:","admin.group_settings.group_details.group_teams_and_channels_row.privateChannel":"Channel (Private)","admin.group_settings.group_details.group_teams_and_channels_row.privateTeam":"Team (Private)","admin.group_settings.group_details.group_teams_and_channels_row.publicChannel":"Channel","admin.group_settings.group_details.group_teams_and_channels_row.publicTeam":"Team","admin.group_settings.group_details.group_teams_and_channels_row.remove":"Remove","admin.group_settings.group_details.group_teams_and_channels_row.remove.confirm_body":"Removing this membership will prevent future users in this group from being added to the {name} {displayType}.","admin.group_settings.group_details.group_teams_and_channels_row.remove.confirm_button":"Yes, Remove","admin.group_settings.group_details.group_teams_and_channels_row.remove.confirm_header":"Remove Membership from the {name} {displayType}?","admin.group_settings.group_details.group_teams_and_channels.no-teams-or-channels-speicified":"No teams or channels specified yet","admin.group_settings.group_details.group_users.email":"Email:","admin.group_settings.group_details.group_users.no-users-found":"No users found","admin.group_settings.group_details.menuAriaLabel":"Add Team or Channel Menu","admin.group_settings.group_profile.group_teams_and_channels.assignedRoles":"Assigned Roles","admin.group_settings.group_profile.group_teams_and_channels.name":"Name","admin.group_settings.group_profile.group_teams_and_channels.type":"Type","admin.group_settings.group_profile.group_users.ldapConnector":"AD/LDAP Connector is configured to sync and manage this group and its users. [Click here to view]({siteURL}/admin_console/authentication/ldap)","admin.group_settings.group_row.configure":"Configure","admin.group_settings.group_row.edit":"Edit","admin.group_settings.group_row.link_failed":"Link failed","admin.group_settings.group_row.linked":"Linked","admin.group_settings.group_row.linking":"Linking","admin.group_settings.group_row.not_linked":"Not Linked","admin.group_settings.group_row.unlink_failed":"Unlink failed","admin.group_settings.group_row.unlinking":"Unlinking","admin.group_settings.groups_list.link_selected":"Link Selected Groups","admin.group_settings.groups_list.mappingHeader":"Mattermost Linking","admin.group_settings.groups_list.nameHeader":"Name","admin.group_settings.groups_list.no_groups_found":"No groups found","admin.group_settings.groups_list.paginatorCount":"{startCount, number} - {endCount, number} of {total, number}","admin.group_settings.groups_list.unlink_selected":"Unlink Selected Groups","admin.group_settings.groupsPageTitle":"Groups (Beta)","admin.group_settings.introBanner":"Groups are a way to organize users and apply actions to all users within that group.\\nFor more information on Groups, please see [documentation](!https://www.mattermost.com/default-ad-ldap-groups).","admin.group_settings.ldapGroupsDescription":"Link and configure groups from your AD/LDAP to Mattermost. Please ensure you have configured a [group filter]({siteURL}/admin_console/authentication/ldap).","admin.group_settings.ldapGroupsTitle":"AD/LDAP Groups","admin.group_teams_and_channels_row.channelAdmin":"Channel Admin","admin.group_teams_and_channels_row.member":"Member","admin.group_teams_and_channels_row.teamAdmin":"Team Admin","admin.guest_access.disableConfirmButton":"Disable Guest Access","admin.guest_access.disableConfirmMessage":"Disabling guest access will revoke all current Guest Account sessions. Guests will no longer be able to login and new guests cannot be invited into Mattermost. Guest users will be marked as inactive in user lists. Enabling this feature will not reinstate previous guest accounts.","admin.guest_access.disableConfirmTitle":"Disable Guest Access?","admin.guest_access.enableDescription":"When true, external guest can be invited to channels within teams. Please see [Permissions Schemes](../user_management/permissions/system_scheme) for which roles can invite guests.","admin.guest_access.enableTitle":"Enable Guest Access: ","admin.guest_access.mfaDescription":"When true, [multi-factor authentication](!https://docs.mattermost.com/deployment/auth.html) for guests is required for login. New guest users will be required to configure MFA on signup. Logged in guest users without MFA configured are redirected to the MFA setup page until configuration is complete.\\n \\nIf your system has guest users with login methods other than AD/LDAP and email, MFA must be enforced with the authentication provider outside of Mattermost.","admin.guest_access.mfaDescriptionMFANotEnabled":"[Multi-factor authentication](./mfa) is currently not enabled.","admin.guest_access.mfaDescriptionMFANotEnforced":"[Multi-factor authentication](./mfa) is currently not enforced.","admin.guest_access.mfaTitle":"Enforce Multi-factor Authentication: ","admin.guest_access.whitelistedDomainsDescription":"(Optional) Guest accounts can be created at the system level from this list of allowed guest domains.","admin.guest_access.whitelistedDomainsExample":"E.g.: \\"company.com, othercorp.org\\"","admin.guest_access.whitelistedDomainsTitle":"Whitelisted Guest Domains:","admin.image.amazonS3BucketDescription":"Name you selected for your S3 bucket in AWS.","admin.image.amazonS3BucketExample":"E.g.: \\"mattermost-media\\"","admin.image.amazonS3BucketTitle":"Amazon S3 Bucket:","admin.image.amazonS3EndpointDescription":"Hostname of your S3 Compatible Storage provider. Defaults to \\"s3.amazonaws.com\\".","admin.image.amazonS3EndpointExample":"E.g.: \\"s3.amazonaws.com\\"","admin.image.amazonS3EndpointTitle":"Amazon S3 Endpoint:","admin.image.amazonS3IdDescription":"(Optional) Only required if you do not want to authenticate to S3 using an [IAM role](!https://about.mattermost.com/default-iam-role). Enter the Access Key ID provided by your Amazon EC2 administrator.","admin.image.amazonS3IdExample":"E.g.: \\"AKIADTOVBGERKLCBV\\"","admin.image.amazonS3IdTitle":"Amazon S3 Access Key ID:","admin.image.amazonS3RegionDescription":"AWS region you selected when creating your S3 bucket. If no region is set, Mattermost attempts to get the appropriate region from AWS, or sets it to \'us-east-1\' if none found.","admin.image.amazonS3RegionExample":"E.g.: \\"us-east-1\\"","admin.image.amazonS3RegionTitle":"Amazon S3 Region:","admin.image.amazonS3SecretDescription":"(Optional) The secret access key associated with your Amazon S3 Access Key ID.","admin.image.amazonS3SecretExample":"E.g.: \\"jcuS8PuvcpGhpgHhlcpT1Mx42pnqMxQY\\"","admin.image.amazonS3SecretTitle":"Amazon S3 Secret Access Key:","admin.image.amazonS3SSEDescription":"When true, encrypt files in Amazon S3 using server-side encryption with Amazon S3-managed keys. See [documentation](!https://about.mattermost.com/default-server-side-encryption) to learn more.","admin.image.amazonS3SSETitle":"Enable Server-Side Encryption for Amazon S3:","admin.image.amazonS3SSLDescription":"When false, allow insecure connections to Amazon S3. Defaults to secure connections only.","admin.image.amazonS3SSLTitle":"Enable Secure Amazon S3 Connections:","admin.image.amazonS3TraceDescription":"(Development Mode) When true, log additional debugging information to the system logs.","admin.image.amazonS3TraceTitle":"Enable Amazon S3 Debugging:","admin.image.enableProxy":"Enable Image Proxy:","admin.image.enableProxyDescription":"When true, enables an image proxy for loading all Markdown images.","admin.image.localDescription":"Directory to which files and images are written. If blank, defaults to ./data/.","admin.image.localExample":"E.g.: \\"./data/\\"","admin.image.localTitle":"Local Storage Directory:","admin.image.maxFileSizeDescription":"Maximum file size for message attachments in megabytes. Caution: Verify server memory can support your setting choice. Large file sizes increase the risk of server crashes and failed uploads due to network interruptions.","admin.image.maxFileSizeExample":"50","admin.image.maxFileSizeTitle":"Maximum File Size:","admin.image.proxyOptions":"Remote Image Proxy Options:","admin.image.proxyOptionsDescription":"Additional options such as the URL signing key. Refer to your image proxy documentation to learn more about what options are supported.","admin.image.proxyType":"Image Proxy Type:","admin.image.proxyTypeDescription":"Configure an image proxy to load all Markdown images through a proxy. The image proxy prevents users from making insecure image requests, provides caching for increased performance, and automates image adjustments such as resizing. See [documentation](!https://about.mattermost.com/default-image-proxy-documentation) to learn more.","admin.image.proxyURL":"Remote Image Proxy URL:","admin.image.proxyURLDescription":"URL of your remote image proxy server.","admin.image.publicLinkDescription":"32-character salt added to signing of public image links. Randomly generated on install. Click \\"Regenerate\\" to create new salt.","admin.image.publicLinkTitle":"Public Link Salt:","admin.image.shareDescription":"Allow users to share public links to files and images.","admin.image.shareTitle":"Enable Public File Links: ","admin.image.storeAmazonS3":"Amazon S3","admin.image.storeDescription":"Storage system where files and image attachments are saved.\\n \\nSelecting \\"Amazon S3\\" enables fields to enter your Amazon credentials and bucket details.\\n \\nSelecting \\"Local File System\\" enables the field to specify a local file directory.","admin.image.storeLocal":"Local File System","admin.image.storeTitle":"File Storage System:","admin.integrations.botAccounts":"Bot Accounts","admin.integrations.botAccounts.title":"Bot Accounts","admin.integrations.cors":"CORS","admin.integrations.gif":"GIF (Beta)","admin.integrations.integrationManagement":"Integration Management","admin.integrations.integrationManagement.title":"Integration Management","admin.jobTable.cancelButton":"Cancel","admin.jobTable.headerExtraInfo":"Details","admin.jobTable.headerFinishAt":"Finish Time","admin.jobTable.headerRunTime":"Run Time","admin.jobTable.headerStatus":"Status","admin.jobTable.jobId":"Job ID: ","admin.jobTable.lastActivityAt":"Last Activity: ","admin.jobTable.runLengthMinutes":" minutes","admin.jobTable.runLengthSeconds":" seconds","admin.jobTable.statusCanceled":"Canceled","admin.jobTable.statusCanceling":"Canceling...","admin.jobTable.statusError":"Error","admin.jobTable.statusInProgress":"In Progress","admin.jobTable.statusPending":"Pending","admin.jobTable.statusSuccess":"Success","admin.ldap.adminFilterEx":"E.g.: \\"(objectClass=admins)\\"","admin.ldap.adminFilterFilterDesc":"(Optional) Enter an AD/LDAP filter to use for designating System Admins. The users selected by the query will have access to your Mattermost server as System Admins. By default, System Admins have complete access to the Mattermost System Console.\\n \\nExisting members that are identified by this attribute will be promoted from member to System Admin upon next login. The next login is based upon Session lengths set in **System Console > Session Lengths**. It is highly recommend to manually demote users to members in **System Console > User Management** to ensure access is restricted immediately.\\n \\nNote: If this filter is removed/changed, System Admins that were promoted via this filter will be demoted to members and will not retain access to the System Console. When this filter is not in use, System Admins can be manually promoted/demoted in **System Console > User Management**.","admin.ldap.adminFilterTitle":"Admin Filter:","admin.ldap.baseDesc":"The Base DN is the Distinguished Name of the location where Mattermost should start its search for user and group objects in the AD/LDAP tree.","admin.ldap.baseEx":"E.g.: \\"ou=Unit Name,dc=corp,dc=example,dc=com\\"","admin.ldap.baseTitle":"BaseDN:","admin.ldap.bindPwdDesc":"Password of the user given in \\"Bind Username\\".","admin.ldap.bindPwdTitle":"Bind Password:","admin.ldap.bindUserDesc":"The username used to perform the AD/LDAP search. This should typically be an account created specifically for use with Mattermost. It should have access limited to read the portion of the AD/LDAP tree specified in the BaseDN field.","admin.ldap.bindUserTitle":"Bind Username:","admin.ldap.emailAttrDesc":"The attribute in the AD/LDAP server used to populate the email address field in Mattermost.","admin.ldap.emailAttrEx":"E.g.: \\"mail\\" or \\"userPrincipalName\\"","admin.ldap.emailAttrTitle":"Email Attribute:","admin.ldap.enableAdminFilterTitle":"Enable Admin Filter","admin.ldap.enableDesc":"When true, Mattermost allows login using AD/LDAP","admin.ldap.enableSyncDesc":"When true, Mattermost periodically synchronizes users from AD/LDAP. When false, user attributes are updated from AD/LDAP during user login only.","admin.ldap.enableSyncTitle":"Enable Synchronization with AD/LDAP:","admin.ldap.enableTitle":"Enable sign-in with AD/LDAP:","admin.ldap.firstnameAttrDesc":"(Optional) The attribute in the AD/LDAP server used to populate the first name of users in Mattermost. When set, users cannot edit their first name, since it is synchronized with the LDAP server. When left blank, users can set their first name in Account Settings.","admin.ldap.firstnameAttrEx":"E.g.: \\"givenName\\"","admin.ldap.firstnameAttrTitle":"First Name Attribute:","admin.ldap.groupDisplayNameAttributeDesc":"The attribute in the AD/LDAP server used to populate the group display names.","admin.ldap.groupDisplayNameAttributeEx":"E.g.: \\"cn\\"","admin.ldap.groupDisplayNameAttributeTitle":"Group Display Name Attribute:","admin.ldap.groupFilterEx":"E.g.: \\"(objectClass=group)\\"","admin.ldap.groupFilterFilterDesc":"(Optional) Enter an AD/LDAP filter to use when searching for group objects. Only the groups selected by the query will be available to Mattermost. From [User Management > Groups]({siteURL}/admin_console/user_management/groups), select which AD/LDAP groups should be linked and configured.","admin.ldap.groupFilterTitle":"Group Filter:","admin.ldap.groupIdAttributeDesc":"The attribute in the AD/LDAP server used as a unique identifier for Groups. This should be a AD/LDAP attribute with a value that does not change such as `entryUUID` for LDAP or `objectGUID` for Active Directory.","admin.ldap.groupIdAttributeEx":"E.g.: \\"objectGUID\\" or \\"entryUUID\\"","admin.ldap.groupIdAttributeTitle":"Group ID Attribute:","admin.ldap.guestFilterEx":"E.g.: \\"(objectClass=guests)\\"","admin.ldap.guestFilterFilterDesc":"(Optional) Requires Guest Access to be enabled before being applied. Enter an AD/LDAP filter to use when searching for guest objects. Only the users selected by the query will be able to access Mattermost as Guests. Guests are prevented from accessing teams or channels upon logging in until they are assigned a team and at least one channel.\\n \\nNote: If this filter is removed/changed, active guests will not be promoted to a member and will retain their Guest role. Guests can be promoted in **System Console > User Management**.\\n \\n \\nExisting members that are identified by this attribute as a guest will be demoted from a member to a guest when they are asked to login next. The next login is based upon Session lengths set in **System Console > Session Lengths**. It is highly recommend to manually demote users to guests in **System Console > User Management ** to ensure access is restricted immediately.","admin.ldap.guestFilterTitle":"Guest Filter:","admin.ldap.idAttrDesc":"The attribute in the AD/LDAP server used as a unique identifier in Mattermost. It should be an AD/LDAP attribute with a value that does not change such as `entryUUID` for LDAP or `objectGUID` for Active Directory. If a user\'s ID Attribute changes, it will create a new Mattermost account unassociated with their old one.\\n \\nIf you need to change this field after users have already logged in, use the [mattermost ldap idmigrate](!https://about.mattermost.com/default-mattermost-ldap-idmigrate) CLI tool.","admin.ldap.idAttrEx":"E.g.: \\"objectGUID\\" or \\"entryUUID\\"","admin.ldap.idAttrTitle":"ID Attribute: ","admin.ldap.jobExtraInfo.addedGroupMembers":"Added {groupMemberAddCount, number} group members.","admin.ldap.jobExtraInfo.deactivatedUsers":"Deactivated {deleteCount, number} users.","admin.ldap.jobExtraInfo.deletedGroupMembers":"Deleted {groupMemberDeleteCount, number} group members.","admin.ldap.jobExtraInfo.deletedGroups":"Deleted {groupDeleteCount, number} groups.","admin.ldap.jobExtraInfo.updatedUsers":"Updated {updateCount, number} users.","admin.ldap.lastnameAttrDesc":"(Optional) The attribute in the AD/LDAP server used to populate the last name of users in Mattermost. When set, users cannot edit their last name, since it is synchronized with the LDAP server. When left blank, users can set their last name in Account Settings.","admin.ldap.lastnameAttrEx":"E.g.: \\"sn\\"","admin.ldap.lastnameAttrTitle":"Last Name Attribute:","admin.ldap.ldap_test_button":"AD/LDAP Test","admin.ldap.loginAttrDesc":"The attribute in the AD/LDAP server used to log in to Mattermost. Normally this attribute is the same as the \\"Username Attribute\\" field above.\\n \\nIf your team typically uses domain/username to log in to other services with AD/LDAP, you may enter domain/username in this field to maintain consistency between sites.","admin.ldap.loginAttrTitle":"Login ID Attribute: ","admin.ldap.loginIdAttrEx":"E.g.: \\"sAMAccountName\\"","admin.ldap.loginNameDesc":"The placeholder text that appears in the login field on the login page. Defaults to \\"AD/LDAP Username\\".","admin.ldap.loginNameEx":"E.g.: \\"AD/LDAP Username\\"","admin.ldap.loginNameTitle":"Login Field Name:","admin.ldap.maxPageSizeEx":"E.g.: \\"2000\\"","admin.ldap.maxPageSizeHelpText":"The maximum number of users the Mattermost server will request from the AD/LDAP server at one time. 0 is unlimited.","admin.ldap.maxPageSizeTitle":"Maximum Page Size:","admin.ldap.nicknameAttrDesc":"(Optional) The attribute in the AD/LDAP server used to populate the nickname of users in Mattermost. When set, users cannot edit their nickname, since it is synchronized with the LDAP server. When left blank, users can set their nickname in Account Settings.","admin.ldap.nicknameAttrEx":"E.g.: \\"nickname\\"","admin.ldap.nicknameAttrTitle":"Nickname Attribute:","admin.ldap.portDesc":"The port Mattermost will use to connect to the AD/LDAP server. Default is 389.","admin.ldap.portEx":"E.g.: \\"389\\"","admin.ldap.portTitle":"AD/LDAP Port:","admin.ldap.positionAttrDesc":"(Optional) The attribute in the AD/LDAP server used to populate the position field in Mattermost. When set, users cannot edit their position, since it is synchronized with the LDAP server. When left blank, users can set their position in Account Settings.","admin.ldap.positionAttrEx":"E.g.: \\"title\\"","admin.ldap.positionAttrTitle":"Position Attribute:","admin.ldap.queryDesc":"The timeout value for queries to the AD/LDAP server. Increase if you are getting timeout errors caused by a slow AD/LDAP server.","admin.ldap.queryEx":"E.g.: \\"60\\"","admin.ldap.queryTitle":"Query Timeout (seconds):","admin.ldap.serverDesc":"The domain or IP address of AD/LDAP server.","admin.ldap.serverEx":"E.g.: \\"10.0.0.23\\"","admin.ldap.serverTitle":"AD/LDAP Server:","admin.ldap.skipCertificateVerification":"Skip Certificate Verification:","admin.ldap.skipCertificateVerificationDesc":"Skips the certificate verification step for TLS or STARTTLS connections. Skipping certificate verification is not recommended for production environments where TLS is required.","admin.ldap.sync_button":"AD/LDAP Synchronize Now","admin.ldap.syncIntervalHelpText":"AD/LDAP Synchronization updates Mattermost user information to reflect updates on the AD/LDAP server. For example, when a user\'s name changes on the AD/LDAP server, the change updates in Mattermost when synchronization is performed. Accounts removed from or disabled in the AD/LDAP server have their Mattermost accounts set to \\"Inactive\\" and have their account sessions revoked. Mattermost performs synchronization on the interval entered. For example, if 60 is entered, Mattermost synchronizes every 60 minutes.","admin.ldap.syncIntervalTitle":"Synchronization Interval (minutes):","admin.ldap.syncNowHelpText":"Initiates an AD/LDAP synchronization immediately. See the table below for status of each synchronization. Please review \\"System Console > Logs\\" and [documentation](!https://mattermost.com/default-ldap-docs) to troubleshoot errors.","admin.ldap.testFailure":"AD/LDAP Test Failure: {error}","admin.ldap.testHelpText":"Tests if the Mattermost server can connect to the AD/LDAP server specified. Please review \\"System Console > Logs\\" and [documentation](!https://mattermost.com/default-ldap-docs) to troubleshoot errors.","admin.ldap.testSuccess":"AD/LDAP Test Successful","admin.ldap.userFilterDisc":"(Optional) Enter an AD/LDAP filter to use when searching for user objects. Only the users selected by the query will be able to access Mattermost. For Active Directory, the query to filter out disabled users is (&(objectCategory=Person)(!(UserAccountControl:1.2.840.113556.1.4.803:=2))).","admin.ldap.userFilterEx":"E.g.: \\"(objectClass=user)\\"","admin.ldap.userFilterTitle":"User Filter:","admin.ldap.usernameAttrDesc":"The attribute in the AD/LDAP server used to populate the username field in Mattermost. This may be the same as the Login ID Attribute.","admin.ldap.usernameAttrEx":"E.g.: \\"sAMAccountName\\"","admin.ldap.usernameAttrTitle":"Username Attribute:","admin.license.choose":"Choose File","admin.license.edition":"Edition: ","admin.license.key":"License Key: ","admin.license.keyRemove":"Remove Enterprise License and Downgrade Server","admin.license.noFile":"No file uploaded","admin.license.removing":"Removing License...","admin.license.title":"Edition and License","admin.license.type":"License: ","admin.license.upload":"Upload","admin.license.uploadDesc":"Upload a license key for Mattermost Enterprise Edition to upgrade this server. [Visit us online](!http://mattermost.com) to learn more about the benefits of Enterprise Edition or to purchase a key.","admin.license.uploading":"Uploading License...","admin.lockTeammateNameDisplay":"Lock Teammate Name Display for all users: ","admin.lockTeammateNameDisplayHelpText":"When true, disables users\' ability to change settings under Main Menu > Account Settings > Display > Teammate Name Display.","admin.log.consoleDescription":"Typically set to false in production. Developers may set this field to true to output log messages to console based on the console level option. If true, server writes messages to the standard output stream (stdout). Changing this setting requires a server restart before taking effect.","admin.log.consoleJsonTitle":"Output console logs as JSON:","admin.log.consoleTitle":"Output logs to console: ","admin.log.enableDiagnostics":"Enable Diagnostics and Error Reporting:","admin.log.enableDiagnosticsDescription":"Enable this feature to improve the quality and performance of Mattermost by sending error reporting and diagnostic information to Mattermost, Inc. Read our [privacy policy](!https://about.mattermost.com/default-privacy-policy/) to learn more.","admin.log.enableWebhookDebugging":"Enable Webhook Debugging:","admin.log.enableWebhookDebuggingDescription":"When true, sends webhook debug messages to the server logs. To also output the request body of incoming webhooks, set {boldedLogLevel} to \'DEBUG\'.","admin.log.fileDescription":"Typically set to true in production. When true, logged events are written to the mattermost.log file in the directory specified in the File Log Directory field. The logs are rotated at 10,000 lines and archived to a file in the same directory, and given a name with a datestamp and serial number. For example, mattermost.2017-03-31.001. Changing this setting requires a server restart before taking effect.","admin.log.fileJsonTitle":"Output file logs as JSON:","admin.log.fileLevelDescription":"This setting determines the level of detail at which log events are written to the log file. ERROR: Outputs only error messages. INFO: Outputs error messages and information around startup and initialization. DEBUG: Prints high detail for developers working on debugging issues.","admin.log.fileLevelTitle":"File Log Level:","admin.log.fileTitle":"Output logs to file: ","admin.log.jsonDescription":"When true, logged events are written in a machine readable JSON format. Otherwise they are printed as plain text. Changing this setting requires a server restart before taking effect.","admin.log.levelDescription":"This setting determines the level of detail at which log events are written to the console. ERROR: Outputs only error messages. INFO: Outputs error messages and information around startup and initialization. DEBUG: Prints high detail for developers working on debugging issues.","admin.log.levelTitle":"Console Log Level:","admin.log.locationDescription":"The location of the log files. If blank, they are stored in the ./logs directory. The path that you set must exist and Mattermost must have write permissions in it. Changing this setting requires a server restart before taking effect.","admin.log.locationPlaceholder":"Enter your file location","admin.log.locationTitle":"File Log Directory:","admin.log.logLevel":"Log Level","admin.logs.bannerDesc":"To look up users by User ID or Token ID, go to Reporting > Users and paste the ID into the search filter.","admin.logs.next":"Next","admin.logs.prev":"Previous","admin.logs.reload":"Reload","admin.logs.title":"Server Logs","admin.manage_roles.additionalRoles":"Select additional permissions for the account. [Read more about roles and permissions](!https://about.mattermost.com/default-permissions).","admin.manage_roles.allowUserAccessTokens":"Allow this account to generate [personal access tokens](!https://about.mattermost.com/default-user-access-tokens).","admin.manage_roles.allowUserAccessTokensDesc":"Removing this permission doesn\'t delete existing tokens. To delete them, go to the user\'s Manage Tokens menu.","admin.manage_roles.cancel":"Cancel","admin.manage_roles.manageRolesTitle":"Manage Roles","admin.manage_roles.postAllPublicRole":"Access to post to all Mattermost public channels.","admin.manage_roles.postAllPublicRoleTitle":"post:channels","admin.manage_roles.postAllRole":"Access to post to all Mattermost channels including direct messages.","admin.manage_roles.postAllRoleTitle":"post:all","admin.manage_roles.save":"Save","admin.manage_roles.saveError":"Unable to save roles.","admin.manage_roles.systemAdmin":"System Admin","admin.manage_roles.systemMember":"Member","admin.manage_tokens.manageTokensTitle":"Manage Personal Access Tokens","admin.manage_tokens.userAccessTokensDescription":"Personal access tokens function similarly to session tokens and can be used by integrations to [interact with this Mattermost server](!https://about.mattermost.com/default-api-authentication). Tokens are disabled if the user is deactivated. Learn more about [personal access tokens](!https://about.mattermost.com/default-user-access-tokens).","admin.manage_tokens.userAccessTokensIdLabel":"Token ID: ","admin.manage_tokens.userAccessTokensNameLabel":"Token Description: ","admin.manage_tokens.userAccessTokensNone":"No personal access tokens.","admin.metrics.enableDescription":"When true, Mattermost will enable performance monitoring collection and profiling. Please see [documentation](!http://docs.mattermost.com/deployment/metrics.html) to learn more about configuring performance monitoring for Mattermost.","admin.metrics.enableTitle":"Enable Performance Monitoring:","admin.metrics.listenAddressDesc":"The address the server will listen on to expose performance metrics.","admin.metrics.listenAddressEx":"E.g.: \\":8067\\"","admin.metrics.listenAddressTitle":"Listen Address:","admin.mfa.bannerDesc":"[Multi-factor authentication](!https://docs.mattermost.com/deployment/auth.html) is available for accounts with AD/LDAP or email login. If other login methods are used, MFA should be configured with the authentication provider.","admin.nav.administratorsGuide":"Administrator\'s Guide","admin.nav.commercialSupport":"Commercial Support","admin.nav.menuAriaLabel":"Admin Console Menu","admin.nav.switch":"Team Selection","admin.nav.troubleshootingForum":"Troubleshooting Forum","admin.oauth.gitlab":"GitLab","admin.oauth.google":"Google Apps","admin.oauth.off":"Do not allow sign-in via an OAuth 2.0 provider","admin.oauth.office365":"Office 365","admin.oauth.providerDescription":"When true, Mattermost can act as an OAuth 2.0 service provider allowing Mattermost to authorize API requests from external applications. See [documentation](!https://docs.mattermost.com/developer/oauth-2-0-applications.html) to learn more.","admin.oauth.providerTitle":"Enable OAuth 2.0 Service Provider: ","admin.oauth.select":"Select OAuth 2.0 service provider:","admin.office365.authTitle":"Auth Endpoint:","admin.office365.clientIdDescription":"The Application/Client ID you received when registering your application with Microsoft.","admin.office365.clientIdExample":"E.g.: \\"adf3sfa2-ag3f-sn4n-ids0-sh1hdax192qq\\"","admin.office365.clientIdTitle":"Application ID:","admin.office365.clientSecretDescription":"The Application Secret Password you generated when registering your application with Microsoft.","admin.office365.clientSecretExample":"E.g.: \\"shAieM47sNBfgl20f8ci294\\"","admin.office365.clientSecretTitle":"Application Secret Password:","admin.office365.EnableMarkdownDesc":"1. [Log in](!https://login.microsoftonline.com/) to your Microsoft or Office 365 account. Make sure it`s the account on the same [tenant](!https://msdn.microsoft.com/en-us/library/azure/jj573650.aspx#Anchor_0) that you would like users to log in with.\\n2. Go to [https://apps.dev.microsoft.com](!https://apps.dev.microsoft.com), click **Go to app list** > **Add an app** and use \\"Mattermost - your-company-name\\" as the **Application Name**.\\n3. Under **Application Secrets**, click **Generate New Password** and paste it to the **Application Secret Password** field below.\\n4. Under **Platforms**, click **Add Platform**, choose **Web** and enter **your-mattermost-url/signup/office365/complete** (example: http://localhost:8065/signup/office365/complete) under **Redirect URIs**. Also uncheck **Allow Implicit Flow**.\\n5. Finally, click **Save** and then paste the **Application ID** below.","admin.office365.tokenTitle":"Token Endpoint:","admin.office365.userTitle":"User API Endpoint:","admin.password.lowercase":"At least one lowercase letter","admin.password.minimumLength":"Minimum Password Length:","admin.password.minimumLengthDescription":"Minimum number of characters required for a valid password. Must be a whole number greater than or equal to {min} and less than or equal to {max}.","admin.password.minimumLengthExample":"E.g.: \\"5\\"","admin.password.number":"At least one number","admin.password.preview":"Error message preview","admin.password.symbol":"At least one symbol (e.g. \\"~!@#$%^&*()\\")","admin.password.uppercase":"At least one uppercase letter","admin.permissions.documentationLinkText":"documentation","admin.permissions.group.delete_posts.description":"Delete own and others\' posts.","admin.permissions.group.delete_posts.name":"Delete Posts","admin.permissions.group.edit_posts.description":"Edit own and others\' posts.","admin.permissions.group.edit_posts.name":"Edit Posts","admin.permissions.group.integrations.description":"Manage OAuth 2.0, slash commands, webhooks and emoji.","admin.permissions.group.integrations.name":"Integrations & Customizations","admin.permissions.group.posts.description":"Write, edit and delete posts.","admin.permissions.group.posts.name":"Manage Posts","admin.permissions.group.private_channel.description":"Create and archive channels, manage settings and members.","admin.permissions.group.private_channel.name":"Manage Private Channels","admin.permissions.group.public_channel.description":"Join, create and archive channels, manage settings and members.","admin.permissions.group.public_channel.name":"Manage Public Channels","admin.permissions.group.reactions.description":"Add and delete reactions on posts.","admin.permissions.group.reactions.name":"Post Reactions","admin.permissions.group.send_invites.description":"Add team members, send email invites and share team invite link.","admin.permissions.group.send_invites.name":"Add Team Members","admin.permissions.group.teams_team_scope.description":"Manage team members.","admin.permissions.group.teams_team_scope.name":"Teams","admin.permissions.group.teams.description":"Create teams and manage members.","admin.permissions.group.teams.name":"Teams","admin.permissions.inherited_from":"Inherited from <a>{name}</a>.","admin.permissions.introBanner":"Permission Schemes set the default permissions for Team Admins, Channel Admins and everyone else. Learn more about permission schemes in our [documentation](!https://about.mattermost.com/default-advanced-permissions).","admin.permissions.loadingMoreSchemes":"Loading...","admin.permissions.loadMoreSchemes":"Load more schemes","admin.permissions.permission.assign_system_admin_role.description":"Assign system admin role","admin.permissions.permission.assign_system_admin_role.name":"Assign system admin role","admin.permissions.permission.create_direct_channel.description":"Create direct channel","admin.permissions.permission.create_direct_channel.name":"Create direct channel","admin.permissions.permission.create_emojis.description":"Allow users to create custom emoji.","admin.permissions.permission.create_emojis.name":"Create Custom Emoji","admin.permissions.permission.create_group_channel.description":"Create group channel","admin.permissions.permission.create_group_channel.name":"Create group channel","admin.permissions.permission.create_private_channel.description":"Create new private channels.","admin.permissions.permission.create_private_channel.name":"Create Channels","admin.permissions.permission.create_public_channel.description":"Create new public channels.","admin.permissions.permission.create_public_channel.name":"Create Channels","admin.permissions.permission.create_team.description":"Create new teams.","admin.permissions.permission.create_team.name":"Create Teams","admin.permissions.permission.create_user_access_token.description":"Create user access token","admin.permissions.permission.create_user_access_token.name":"Create user access token","admin.permissions.permission.delete_emojis.description":"Allow users to delete custom emoji that they created.","admin.permissions.permission.delete_emojis.name":"Delete Own Custom Emoji","admin.permissions.permission.delete_others_emojis.description":"Allow users to delete custom emoji that were created by other users.","admin.permissions.permission.delete_others_emojis.name":"Delete Others\' Custom Emoji","admin.permissions.permission.delete_others_posts.description":"Posts made by other users can be deleted.","admin.permissions.permission.delete_others_posts.name":"Delete Others\' Posts","admin.permissions.permission.delete_post.description":"Author\'s own posts can be deleted.","admin.permissions.permission.delete_post.name":"Delete Own Posts","admin.permissions.permission.delete_private_channel.description":"Archive private channels.","admin.permissions.permission.delete_private_channel.name":"Archive Channels","admin.permissions.permission.delete_public_channel.description":"Archive public channels.","admin.permissions.permission.delete_public_channel.name":"Archive Channels","admin.permissions.permission.edit_other_users.description":"Edit other users","admin.permissions.permission.edit_other_users.name":"Edit other users","admin.permissions.permission.edit_others_posts.description":"Allow users to edit others\' posts.","admin.permissions.permission.edit_others_posts.name":"Edit Others\' Posts","admin.permissions.permission.edit_post.description":"{editTimeLimitButton} after posting, allow users to edit their own posts.","admin.permissions.permission.edit_post.name":"Edit Own Posts","admin.permissions.permission.import_team.description":"Import team","admin.permissions.permission.import_team.name":"Import team","admin.permissions.permission.invite_guest.description":"Invite guests to channels and send guest email invites.","admin.permissions.permission.invite_guest.name":"Invite guests","admin.permissions.permission.list_team_channels.description":"List team channels","admin.permissions.permission.list_team_channels.name":"List team channels","admin.permissions.permission.list_users_without_team.description":"List users without team","admin.permissions.permission.list_users_without_team.name":"List users without team","admin.permissions.permission.manage_channel_roles.description":"Manage channel roles","admin.permissions.permission.manage_channel_roles.name":"Manage channel roles","admin.permissions.permission.manage_incoming_webhooks.description":"Create, edit, and delete incoming webhooks.","admin.permissions.permission.manage_incoming_webhooks.name":"Manage Incoming Webhooks","admin.permissions.permission.manage_jobs.description":"Manage jobs","admin.permissions.permission.manage_jobs.name":"Manage jobs","admin.permissions.permission.manage_oauth.description":"Create, edit and delete OAuth 2.0 application tokens.","admin.permissions.permission.manage_oauth.name":"Manage OAuth Applications","admin.permissions.permission.manage_outgoing_webhooks.description":"Create, edit, and delete outgoing webhooks.","admin.permissions.permission.manage_outgoing_webhooks.name":"Manage Outgoing Webhooks","admin.permissions.permission.manage_private_channel_members.description":"Add and remove private channel members.","admin.permissions.permission.manage_private_channel_members.name":"Manage Channel Members","admin.permissions.permission.manage_private_channel_properties.description":"Update private channel names, headers and purposes.","admin.permissions.permission.manage_private_channel_properties.name":"Manage Channel Settings","admin.permissions.permission.manage_public_channel_members.description":"Add and remove public channel members.","admin.permissions.permission.manage_public_channel_members.name":"Manage Channel Members","admin.permissions.permission.manage_public_channel_properties.description":"Update public channel names, headers and purposes.","admin.permissions.permission.manage_public_channel_properties.name":"Manage Channel Settings","admin.permissions.permission.manage_roles.description":"Manage roles","admin.permissions.permission.manage_roles.name":"Manage roles","admin.permissions.permission.manage_slash_commands.description":"Create, edit and delete custom slash commands.","admin.permissions.permission.manage_slash_commands.name":"Manage Slash Commands","admin.permissions.permission.manage_system.description":"Manage system","admin.permissions.permission.manage_system.name":"Manage system","admin.permissions.permission.manage_team_roles.description":"Manage team roles","admin.permissions.permission.manage_team_roles.name":"Manage team roles","admin.permissions.permission.manage_team.description":"Manage team","admin.permissions.permission.manage_team.name":"Manage team","admin.permissions.permission.permanent_delete_user.description":"Permanent delete user","admin.permissions.permission.permanent_delete_user.name":"Permanent delete user","admin.permissions.permission.read_channel.description":"Read channel","admin.permissions.permission.read_channel.name":"Read channel","admin.permissions.permission.read_user_access_token.description":"Read user access token","admin.permissions.permission.read_user_access_token.name":"Read user access token","admin.permissions.permission.remove_user_from_team.description":"Remove user from team","admin.permissions.permission.remove_user_from_team.name":"Remove user from team","admin.permissions.permission.revoke_user_access_token.description":"Revoke user access token","admin.permissions.permission.revoke_user_access_token.name":"Revoke user access token","admin.permissions.permission.upload_file.description":"Upload file","admin.permissions.permission.upload_file.name":"Upload file","admin.permissions.permission.view_team.description":"View team","admin.permissions.permission.view_team.name":"View team","admin.permissions.permissionSchemes":"Permission Schemes","admin.permissions.permissionSchemes.cancel":"Cancel","admin.permissions.permissionsSchemeSummary.delete":"Delete","admin.permissions.permissionsSchemeSummary.deleteConfirmButton":"Yes, Delete","admin.permissions.permissionsSchemeSummary.deleteConfirmQuestion":"The permissions in the teams using this scheme will reset to the defaults in the System Scheme. Are you sure you want to delete the {schemeName} scheme?","admin.permissions.permissionsSchemeSummary.deleteSchemeTitle":"Delete {scheme} scheme?","admin.permissions.permissionsSchemeSummary.deleting":"Deleting...","admin.permissions.permissionsSchemeSummary.edit":"Edit","admin.permissions.permissionsSchemeSummary.moreTeams":"+{number} more","admin.permissions.permissionsTree.description":"Description","admin.permissions.permissionsTree.permission":"Permission","admin.permissions.roles.all_users.name":"All Members","admin.permissions.roles.channel_admin.name":"Channel Admin","admin.permissions.roles.channel_user.name":"Channel User","admin.permissions.roles.system_admin.name":"System Admin","admin.permissions.roles.system_user.name":"System User","admin.permissions.roles.team_admin.name":"Team Admin","admin.permissions.roles.team_user.name":"Team User","admin.permissions.systemScheme":"System Scheme","admin.permissions.systemScheme.allMembersDescription":"Permissions granted to all members, including administrators and newly created users.","admin.permissions.systemScheme.allMembersTitle":"All Members","admin.permissions.systemScheme.channelAdminsDescription":"Permissions granted to channel creators and any users promoted to Channel Administrator.","admin.permissions.systemScheme.channelAdminsTitle":"Channel Administrators","admin.permissions.systemScheme.GuestsDescription":"Permissions granted to guest users.","admin.permissions.systemScheme.GuestsTitle":"Guests","admin.permissions.systemScheme.introBanner":"Configure the default permissions for Team Admins, Channel Admins and other members. This scheme is inherited by all teams unless a [Team Override Scheme](!https://about.mattermost.com/default-team-override-scheme) is applied in specific teams.","admin.permissions.systemScheme.resetDefaultsButton":"Reset to Defaults","admin.permissions.systemScheme.resetDefaultsButtonModalBody":"This will reset all selections on this page to their default settings. Are you sure you want to reset?","admin.permissions.systemScheme.resetDefaultsButtonModalTitle":"Reset to Default?","admin.permissions.systemScheme.resetDefaultsConfirmationButton":"Yes, Reset","admin.permissions.systemScheme.systemAdminsDescription":"Full permissions granted to System Administrators.","admin.permissions.systemScheme.systemAdminsTitle":"System Administrators","admin.permissions.systemScheme.teamAdminsDescription":"Permissions granted to team creators and any users promoted to Team Administrator.","admin.permissions.systemScheme.teamAdminsTitle":"Team Administrators","admin.permissions.systemSchemeBannerButton":"Edit Scheme","admin.permissions.systemSchemeBannerText":"Set the default permissions inherited by all teams unless a [Team Override Scheme](!https://about.mattermost.com/default-team-override-scheme) is applied.","admin.permissions.systemSchemeBannerTitle":"System Scheme","admin.permissions.teamOverrideSchemesBannerText":"Use when specific teams need permission exceptions to the [System Scheme](!https://about.mattermost.com/default-system-scheme).","admin.permissions.teamOverrideSchemesInProgress":"Migration job in progress: Team Override Schemes are not available until the job server completes the permissions migration. Learn more in the {documentationLink}.","admin.permissions.teamOverrideSchemesNewButton":"New Team Override Scheme","admin.permissions.teamOverrideSchemesNoJobsEnabled":"Migration job on hold: Team Override Schemes are not available until the job server can execute the permissions migration. The job will be automatically started when the job server is enabled. Learn more in the {documentationLink}.","admin.permissions.teamOverrideSchemesNoSchemes":"No team override schemes created.","admin.permissions.teamOverrideSchemesTitle":"Team Override Schemes","admin.permissions.teamScheme":"Team Scheme","admin.permissions.teamScheme.addTeams":"Add Teams","admin.permissions.teamScheme.introBanner":"[Team Override Schemes](!https://about.mattermost.com/default-team-override-scheme) set the permissions for Team Admins, Channel Admins and other members in specific teams. Use a Team Override Scheme when specific teams need permission exceptions to the [System Scheme](!https://about.mattermost.com/default-system-scheme).","admin.permissions.teamScheme.noTeams":"No team selected. Please add teams to this list.","admin.permissions.teamScheme.removeTeam":"Remove","admin.permissions.teamScheme.schemeDescriptionLabel":"Scheme Description:","admin.permissions.teamScheme.schemeDescriptionPlaceholder":"Scheme Description","admin.permissions.teamScheme.schemeDetailsDescription":"Set the name and description for this scheme.","admin.permissions.teamScheme.schemeDetailsTitle":"Scheme Details","admin.permissions.teamScheme.schemeNameLabel":"Scheme Name:","admin.permissions.teamScheme.schemeNamePlaceholder":"Scheme Name","admin.permissions.teamScheme.selectTeamsDescription":"Select teams where permission exceptions are required.","admin.permissions.teamScheme.selectTeamsTitle":"Select teams to override permissions","admin.plugin.backToPlugins":"Go back to the Plugins","admin.plugin.choose":"Choose File","admin.plugin.cluster_instance":"Cluster Instance","admin.plugin.customSetting.pluginDisabledWarning":"In order to view this setting, enable the plugin and click Save.","admin.plugin.disable":"Disable","admin.plugin.disabling":"Disabling...","admin.plugin.enable":"Enable","admin.plugin.enable_plugin":"Enable Plugin: ","admin.plugin.enable_plugin.help":"When true, this plugin is enabled.","admin.plugin.enabling":"Enabling...","admin.plugin.error.activate":"Unable to upload the plugin. It may conflict with another plugin on your server.","admin.plugin.error.extract":"Encountered an error when extracting the plugin. Review your plugin file content and try again.","admin.plugin.installedDesc":"Installed plugins on your Mattermost server.","admin.plugin.installedTitle":"Installed Plugins: ","admin.plugin.management.title":"Plugin Management","admin.plugin.multiple_versions_warning":"There are multiple versions of this plugin installed across your cluster. Re-install this plugin to ensure it works consistently.","admin.plugin.no_plugins":"No installed plugins.","admin.plugin.remove":"Remove","admin.plugin.remove_modal.desc":"Are you sure you would like to remove the plugin?","admin.plugin.remove_modal.overwrite":"Remove","admin.plugin.remove_modal.title":"Remove plugin?","admin.plugin.removing":"Removing...","admin.plugin.settingsButton":"Settings","admin.plugin.state":"State","admin.plugin.state.failed_to_start":"Failed to start","admin.plugin.state.failed_to_start.description":"This plugin failed to start. Check your system logs for errors.","admin.plugin.state.failed_to_stay_running":"Crashing","admin.plugin.state.failed_to_stay_running.description":"This plugin crashed multiple times and is no longer running. Check your system logs for errors.","admin.plugin.state.not_running":"Not running","admin.plugin.state.not_running.description":"This plugin is not enabled.","admin.plugin.state.running":"Running","admin.plugin.state.running.description":"This plugin is running.","admin.plugin.state.starting":"Starting","admin.plugin.state.starting.description":"This plugin is starting.","admin.plugin.state.stopping":"Stopping","admin.plugin.state.stopping.description":"This plugin is stopping.","admin.plugin.state.unknown":"Unknown","admin.plugin.upload":"Upload","admin.plugin.upload.overwrite_modal.desc":"A plugin with this ID already exists. Would you like to overwrite it?","admin.plugin.upload.overwrite_modal.overwrite":"Overwrite","admin.plugin.upload.overwrite_modal.title":"Overwrite existing plugin?","admin.plugin.uploadAndPluginDisabledDesc":"To enable plugins, set **Enable Plugins** to true. See [documentation](!https://about.mattermost.com/default-plugin-uploads) to learn more.","admin.plugin.uploadDesc":"Upload a plugin for your Mattermost server. See [documentation](!https://about.mattermost.com/default-plugin-uploads) to learn more.","admin.plugin.uploadDisabledDesc":"Enable plugin uploads in config.json. See [documentation](!https://about.mattermost.com/default-plugin-uploads) to learn more.","admin.plugin.uploading":"Uploading...","admin.plugin.uploadTitle":"Upload Plugin: ","admin.plugin.version_title":"Version","admin.plugins.pluginManagement":"Plugin Management","admin.plugins.settings.automaticPrepackagedPlugins":"Enable Automatic Prepackaged Plugins:","admin.plugins.settings.automaticPrepackagedPluginsDesc":"When true, the server will detect previously enabled plugins on the server and will automatically install them.","admin.plugins.settings.enable":"Enable Plugins: ","admin.plugins.settings.enableDesc":"When true, enables plugins on your Mattermost server. Use plugins to integrate with third-party systems, extend functionality, or customize the user interface of your Mattermost server. See [documentation](!https://about.mattermost.com/default-plugins) to learn more.","admin.plugins.settings.enableMarketplace":"Enable Marketplace:","admin.plugins.settings.enableMarketplaceDesc":"When true, enables System Administrators to install plugins from the [marketplace](!https://mattermost.com/pl/default-mattermost-marketplace.html).","admin.plugins.settings.enableRemoteMarketplace":"Enable Remote Marketplace:","admin.plugins.settings.enableRemoteMarketplaceDesc":"When true, marketplace fetches latest plugins from the configured Marketplace URL.","admin.plugins.settings.marketplaceUrl":"Marketplace URL:","admin.plugins.settings.marketplaceUrlDesc":"URL of the marketplace server.","admin.plugins.settings.marketplaceUrlDesc.empty":" Marketplace URL is a required field.","admin.plugins.settings.requirePluginSignature":"Require Plugin Signature:","admin.plugins.settings.requirePluginSignatureDesc":"When true, uploading plugins is disabled and may only be installed through the Marketplace. Plugins are always verified during Mattermost server startup and initialization. See [documentation](!https://mattermost.com/pl/default-plugin-signing) to learn more.","admin.privacy.showEmailDescription":"When false, hides the email address of members from everyone except System Administrators.","admin.privacy.showEmailTitle":"Show Email Address: ","admin.privacy.showFullNameDescription":"When false, hides the full name of members from everyone except System Administrators. Username is shown in place of full name.","admin.privacy.showFullNameTitle":"Show Full Name: ","admin.purge.button":"Purge All Caches","admin.purge.purgeDescription":"This will purge all the in-memory caches for things like sessions, accounts, channels, etc. Deployments using High Availability will attempt to purge all the servers in the cluster. Purging the caches may adversely impact performance.","admin.purge.purgeFail":"Purging unsuccessful: {error}","admin.rate.enableLimiterDescription":"When true, APIs are throttled at rates specified below.","admin.rate.enableLimiterTitle":"Enable Rate Limiting: ","admin.rate.httpHeaderDescription":"When filled in, vary rate limiting by HTTP header field specified (e.g. when configuring NGINX set to \\"X-Real-IP\\", when configuring AmazonELB set to \\"X-Forwarded-For\\").","admin.rate.httpHeaderExample":"E.g.: \\"X-Real-IP\\", \\"X-Forwarded-For\\"","admin.rate.httpHeaderTitle":"Vary rate limit by HTTP header:","admin.rate.maxBurst":"Maximum Burst Size:","admin.rate.maxBurstDescription":"Maximum number of requests allowed beyond the per second query limit.","admin.rate.maxBurstExample":"E.g.: \\"100\\"","admin.rate.memoryDescription":"Maximum number of users sessions connected to the system as determined by \\"Vary rate limit by remote address\\" and \\"Vary rate limit by HTTP header\\" settings below.","admin.rate.memoryExample":"E.g.: \\"10000\\"","admin.rate.memoryTitle":"Memory Store Size:","admin.rate.noteDescription":"Changing properties in this section will require a server restart before taking effect.","admin.rate.queriesDescription":"Throttles API at this number of requests per second.","admin.rate.queriesExample":"E.g.: \\"10\\"","admin.rate.queriesTitle":"Maximum Queries per Second:","admin.rate.remoteDescription":"When true, rate limit API access by IP address.","admin.rate.remoteTitle":"Vary rate limit by remote address: ","admin.rate.title":"Rate Limiting","admin.rate.varyByUser":"Vary rate limit by user: ","admin.rate.varyByUserDescription":"When true, rate limit API access by user authentication token.","admin.recycle.button":"Recycle Database Connections","admin.recycle.recycleDescription":"Deployments using multiple databases can switch from one master database to another without restarting the Mattermost server by updating \\"config.json\\" to the new desired configuration and using the {reloadConfiguration} feature to load the new settings while the server is running. The administrator should then use {featureName} feature to recycle the database connections based on the new settings.","admin.recycle.recycleDescription.featureName":"Recycle Database Connections","admin.recycle.recycleDescription.reloadConfiguration":"Environment > Web Server > Reload Configuration from Disk","admin.recycle.reloadFail":"Recycling unsuccessful: {error}","admin.regenerate":"Regenerate","admin.reload.button":"Reload Configuration From Disk","admin.reload.reloadDescription":"Deployments using multiple databases can switch from one master database to another without restarting the Mattermost server by updating \\"config.json\\" to the new desired configuration and using the {featureName} feature to load the new settings while the server is running. The administrator should then use the {recycleDatabaseConnections} feature to recycle the database connections based on the new settings.","admin.reload.reloadDescription.featureName":"Reload Configuration from Disk","admin.reload.reloadDescription.recycleDatabaseConnections":"Environment > Database > Recycle Database Connections","admin.reload.reloadFail":"Reloading unsuccessful: {error}","admin.requestButton.loading":" Loading...","admin.requestButton.requestFailure":"Test Failure: {error}","admin.requestButton.requestSuccess":"Test Successful","admin.reset_email.cancel":"Cancel","admin.reset_email.newEmail":"New Email","admin.reset_email.reset":"Reset","admin.reset_email.titleReset":"Update Email","admin.reset_password.cancel":"Cancel","admin.reset_password.curentPassword":"Current Password","admin.reset_password.missing_current":"Please enter your current password.","admin.reset_password.newPassword":"New Password","admin.reset_password.reset":"Reset","admin.reset_password.titleReset":"Reset Password","admin.reset_password.titleSwitch":"Switch Account to Email/Password","admin.revoke_token_button.delete":"Delete","admin.s3.connectionS3Test":"Test Connection","admin.s3.s3Fail":"Connection unsuccessful: {error}","admin.s3.s3Success":"Connection was successful","admin.s3.testing":"Testing...","admin.saml.adminAttrDesc":"(Optional) The attribute in the SAML Assertion for designating System Admins. The users selected by the query will have access to your Mattermost server as System Admins. By default, System Admins have complete access to the Mattermost System Console.\\n \\nExisting members that are identified by this attribute will be promoted from member to System Admin upon next login. The next login is based upon Session lengths set in **System Console > Session Lengths.** It is highly recommend to manually demote users to members in **System Console > User Management** to ensure access is restricted immediately.\\n \\nNote: If this filter is removed/changed, System Admins that were promoted via this filter will be demoted to members and will not retain access to the System Console. When this filter is not in use, System Admins can be manually promoted/demoted in **System Console > User Management**.","admin.saml.adminAttrEx":"E.g.: \\"usertype=Admin\\" or \\"isAdmin=true\\"","admin.saml.adminAttrTitle":"Admin Attribute:","admin.saml.assertionConsumerServiceURLEx":"E.g.: \\"https://<your-mattermost-url>/login/sso/saml\\"","admin.saml.assertionConsumerServiceURLPopulatedDesc":"This field is also known as the Assertion Consumer Service URL.","admin.saml.assertionConsumerServiceURLTitle":"Service Provider Login URL:","admin.saml.canonicalAlgorithmDescription.c14":"Specify the Canonicalization algorithm (Canonical XML 1.1). Please see more information provided at http://www.w3.org/2006/12/xml-c14n11","admin.saml.canonicalAlgorithmDescription.exc":"Specify the Canonicalization algorithm (Exclusive XML Canonicalization 1.0). Please see more information provided at http://www.w3.org/2001/10/xml-exc-c14n#","admin.saml.canonicalAlgorithmDisplay.n10":"Exclusive XML Canonicalization 1.0 (omit comments)","admin.saml.canonicalAlgorithmDisplay.n11":"Canonical XML 1.1 (omit comments)","admin.saml.canonicalAlgorithmTitle":"Canonicalization Algorithm","admin.saml.emailAttrDesc":"The attribute in the SAML Assertion that will be used to populate the email addresses of users in Mattermost.","admin.saml.emailAttrEx":"E.g.: \\"Email\\" or \\"PrimaryEmail\\"","admin.saml.emailAttrTitle":"Email Attribute:","admin.saml.enableAdminAttrTitle":"Enable Admin Attribute:","admin.saml.enableDescription":"When true, Mattermost allows login using SAML 2.0. Please see [documentation](!http://docs.mattermost.com/deployment/sso-saml.html) to learn more about configuring SAML for Mattermost.","admin.saml.enableSyncWithLdapDescription":"When true, Mattermost periodically synchronizes SAML user attributes, including user deactivation and removal, from AD/LDAP. Enable and configure synchronization settings at **Authentication > AD/LDAP**. When false, user attributes are updated from SAML during user login. See [documentation](!https://about.mattermost.com/default-saml-ldap-sync) to learn more.","admin.saml.enableSyncWithLdapIncludeAuthDescription":"When true, Mattermost will override the SAML ID attribute with the AD/LDAP ID attribute if configured or override the SAML Email attribute with the AD/LDAP Email attribute if SAML ID attribute is not present. This will allow you automatically migrate users from Email binding to ID binding to prevent creation of new users when an email address changes for a user. Moving from true to false, will remove the override from happening.\\n \\n**Note:** SAML IDs must match the LDAP IDs to prevent disabling of user accounts. Please review [documentation](!https://docs.mattermost.com/deployment/sso-saml-ldapsync.html) for more information.","admin.saml.enableSyncWithLdapIncludeAuthTitle":"Override SAML bind data with AD/LDAP information:","admin.saml.enableSyncWithLdapTitle":"Enable Synchronizing SAML Accounts With AD/LDAP:","admin.saml.enableTitle":"Enable Login With SAML 2.0:","admin.saml.encryptDescription":"When false, Mattermost will not decrypt SAML Assertions encrypted with your Service Provider Public Certificate. Disabling encryption is not recommended for production environments.","admin.saml.encryptTitle":"Enable Encryption:","admin.saml.firstnameAttrDesc":"(Optional) The attribute in the SAML Assertion that will be used to populate the first name of users in Mattermost.","admin.saml.firstnameAttrEx":"E.g.: \\"FirstName\\"","admin.saml.firstnameAttrTitle":"First Name Attribute:","admin.saml.getSamlMetadataFromIDPFail":"SAML Metadata URL did not connect and pull data successfully","admin.saml.getSamlMetadataFromIDPFetching":"Fetching...","admin.saml.getSamlMetadataFromIDPSuccess":"SAML Metadata retrieved successfully. Two fields and one certificate have been updated","admin.saml.getSamlMetadataFromIDPUrl":"Get SAML Metadata From IdP","admin.saml.guestAttrDesc":"(Optional) Requires Guest Access to be enabled before being applied. The attribute in the SAML Assertion that will be used to apply a guest role to users in Mattermost. Guests are prevented from accessing teams or channels upon logging in until they are assigned a team and at least one channel.\\n \\nNote: If this attribute is removed/changed from your guest user in SAML and the user is still active, they will not be promoted to a member and will retain their Guest role. Guests can be promoted in **System Console > User Management**.\\n \\n \\nExisting members that are identified by this attribute as a guest will be demoted from a member to a guest when they are asked to login next. The next login is based upon Session lengths set in **System Console > Session Lengths**. It is highly recommend to manually demote users to guests in **System Console > User Management ** to ensure access is restricted immediately.","admin.saml.guestAttrEx":"E.g.: \\"usertype=Guest\\" or \\"isGuest=true\\"","admin.saml.guestAttrTitle":"Guest Attribute:","admin.saml.idAttrDesc":"(Optional) The attribute in the SAML Assertion that will be used to bind users from SAML to users in Mattermost.","admin.saml.idAttrEx":"E.g.: \\"Id\\"","admin.saml.idAttrTitle":"Id Attribute:","admin.saml.idpCertificateFileDesc":"The public authentication certificate issued by your Identity Provider.","admin.saml.idpCertificateFileRemoveDesc":"Remove the public authentication certificate issued by your Identity Provider.","admin.saml.idpCertificateFileTitle":"Identity Provider Public Certificate:","admin.saml.idpDescriptorUrlDesc":"The issuer URL for the Identity Provider you use for SAML requests.","admin.saml.idpDescriptorUrlEx":"E.g.: \\"https://idp.example.org/SAML2/issuer\\"","admin.saml.idpDescriptorUrlTitle":"Identity Provider Issuer URL:","admin.saml.idpMetadataUrlDesc":"The URL where Mattermost sends a request to obtain metadata","admin.saml.idpMetadataUrlEx":"E.g.: \\"https://idp.example.org/SAML2/saml/metadata\\"","admin.saml.idpMetadataUrlTitle":"Identity Provider Metadata URL:","admin.saml.idpUrlDesc":"The URL where Mattermost sends a SAML request to start login sequence.","admin.saml.idpUrlEx":"E.g.: \\"https://idp.example.org/SAML2/SSO/Login\\"","admin.saml.idpUrlTitle":"SAML SSO URL:","admin.saml.lastnameAttrDesc":"(Optional) The attribute in the SAML Assertion that will be used to populate the last name of users in Mattermost.","admin.saml.lastnameAttrEx":"E.g.: \\"LastName\\"","admin.saml.lastnameAttrTitle":"Last Name Attribute:","admin.saml.localeAttrDesc":"(Optional) The attribute in the SAML Assertion that will be used to populate the language of users in Mattermost.","admin.saml.localeAttrEx":"E.g.: \\"Locale\\" or \\"PrimaryLanguage\\"","admin.saml.localeAttrTitle":"Preferred Language Attribute:","admin.saml.loginButtonTextDesc":"(Optional) The text that appears in the login button on the login page. Defaults to \\"SAML\\".","admin.saml.loginButtonTextEx":"E.g.: \\"OKTA\\"","admin.saml.loginButtonTextTitle":"Login Button Text:","admin.saml.nicknameAttrDesc":"(Optional) The attribute in the SAML Assertion that will be used to populate the nickname of users in Mattermost.","admin.saml.nicknameAttrEx":"E.g.: \\"Nickname\\"","admin.saml.nicknameAttrTitle":"Nickname Attribute:","admin.saml.positionAttrDesc":"(Optional) The attribute in the SAML Assertion that will be used to populate the position of users in Mattermost.","admin.saml.positionAttrEx":"E.g.: \\"Role\\"","admin.saml.positionAttrTitle":"Position Attribute:","admin.saml.privateKeyFileFileDesc":"The private key used to decrypt SAML Assertions from the Identity Provider.","admin.saml.privateKeyFileFileRemoveDesc":"Remove the private key used to decrypt SAML Assertions from the Identity Provider.","admin.saml.privateKeyFileTitle":"Service Provider Private Key:","admin.saml.publicCertificateFileDesc":"The certificate used to generate the signature on a SAML request to the Identity Provider for a service provider initiated SAML login, when Mattermost is the Service Provider.","admin.saml.publicCertificateFileRemoveDesc":"Remove the certificate used to generate the signature on a SAML request to the Identity Provider for a service provider initiated SAML login, when Mattermost is the Service Provider.","admin.saml.publicCertificateFileTitle":"Service Provider Public Certificate:","admin.saml.remove.idp_certificate":"Remove Identity Provider Certificate","admin.saml.remove.privKey":"Remove Service Provider Private Key","admin.saml.remove.sp_certificate":"Remove Service Provider Certificate","admin.saml.removing.certificate":"Removing Certificate...","admin.saml.removing.privKey":"Removing Private Key...","admin.saml.signatureAlgorithmDescription.sha1":"Specify the Signature algorithm used to sign the request (RSAwithSHA1). Please see more information provided at http://www.w3.org/2000/09/xmldsig#rsa-sha1","admin.saml.signatureAlgorithmDescription.sha256":"Specify the Signature algorithm used to sign the request (RSAwithSHA256). Please see more information provided at http://www.w3.org/2001/04/xmldsig-more#rsa-sha256 [section 6.4.2 RSA (PKCS#1 v1.5)]","admin.saml.signatureAlgorithmDescription.sha512":"Specify the Signature algorithm used to sign the request (RSAwithSHA512). Please see more information provided at http://www.w3.org/2001/04/xmldsig-more#rsa-sha512","admin.saml.signatureAlgorithmDisplay.sha1":"RSAwithSHA1","admin.saml.signatureAlgorithmDisplay.sha256":"RSAwithSHA256","admin.saml.signatureAlgorithmDisplay.sha512":"RSAwithSHA512","admin.saml.signatureAlgorithmTitle":"Signature Algorithm","admin.saml.signRequestDescription":"When true, Mattermost will sign the SAML request using your private key. When false, Mattermost will not sign the SAML request.","admin.saml.signRequestTitle":"Sign Request:","admin.saml.uploading.certificate":"Uploading Certificate...","admin.saml.uploading.privateKey":"Uploading Private Key...","admin.saml.usernameAttrDesc":"The attribute in the SAML Assertion that will be used to populate the username field in Mattermost.","admin.saml.usernameAttrEx":"E.g.: \\"Username\\"","admin.saml.usernameAttrTitle":"Username Attribute:","admin.saml.verifyDescription":"When false, Mattermost will not verify that the signature sent from a SAML Response matches the Service Provider Login URL. Disabling verification is not recommended for production environments.","admin.saml.verifyTitle":"Verify Signature:","admin.saving":"Saving Config...","admin.security.password":"Password","admin.security.requireEmailVerification.disabled":"Email verification cannot be changed while sending emails is disabled.","admin.service.attemptDescription":"Number of login attempts allowed before a user is locked out and required to reset their password via email.","admin.service.attemptExample":"E.g.: \\"10\\"","admin.service.attemptTitle":"Maximum Login Attempts:","admin.service.cmdsDesc":"When true, custom slash commands will be allowed. See [documentation](!http://docs.mattermost.com/developer/slash-commands.html) to learn more.","admin.service.cmdsTitle":"Enable Custom Slash Commands: ","admin.service.complianceExportDesc":"When true, Mattermost will export all messages that were posted in the last 24 hours. The export task is scheduled to run once per day. See [the documentation](!https://about.mattermost.com/default-compliance-export-documentation) to learn more.","admin.service.complianceExportTitle":"Enable Compliance Export:","admin.service.corsAllowCredentialsDescription":"When true, requests that pass validation will include the Access-Control-Allow-Credentials header.","admin.service.corsAllowCredentialsLabel":"CORS Allow Credentials:","admin.service.corsDebugDescription":"When true, prints messages to the logs to help when developing an integration that uses CORS. These messages will include the structured key value pair \\"source\\":\\"cors\\".","admin.service.CorsDebugLabel":"CORS Debug:","admin.service.corsDescription":"Enable HTTP Cross origin request from a specific domain. Use \\"*\\" if you want to allow CORS from any domain or leave it blank to disable it. Should not be set to \\"*\\" in production.","admin.service.corsEx":"http://example.com","admin.service.corsExposedHeadersDescription":"Whitelist of headers that will be accessible to the requester.","admin.service.corsExposedHeadersTitle":"CORS Exposed Headers:","admin.service.corsHeadersEx":"X-My-Header","admin.service.corsTitle":"Enable cross-origin requests from:","admin.service.developerDesc":"When true, JavaScript errors are shown in a purple bar at the top of the user interface. Not recommended for use in production. ","admin.service.developerTitle":"Enable Developer Mode: ","admin.service.disableBotOwnerDeactivatedTitle":"Disable bot accounts when owner is deactivated:","admin.service.disableBotWhenOwnerIsDeactivated":"When a user is deactivated, disables all bot accounts managed by the user. To re-enable bot accounts, go to [Integrations > Bot Accounts]({siteURL}/_redirect/integrations/bots).","admin.service.enableBotAccountCreation":"When true, System Admins can create bot accounts for integrations in [Integrations > Bot Accounts]({siteURL}/_redirect/integrations/bots). Bot accounts are similar to user accounts except they cannot be used to log in. See [documentation](https://mattermost.com/pl/default-bot-accounts) to learn more.","admin.service.enableBotTitle":"Enable Bot Account Creation: ","admin.service.enforceMfaDesc":"When true, [multi-factor authentication](!https://docs.mattermost.com/deployment/auth.html) is required for login. New users will be required to configure MFA on signup. Logged in users without MFA configured are redirected to the MFA setup page until configuration is complete.\\n \\nIf your system has users with login methods other than AD/LDAP and email, MFA must be enforced with the authentication provider outside of Mattermost.","admin.service.enforceMfaTitle":"Enforce Multi-factor Authentication:","admin.service.forward80To443":"Forward port 80 to 443:","admin.service.forward80To443Description":"Forwards all insecure traffic from port 80 to secure port 443. Not recommended when using a proxy server.","admin.service.forward80To443Description.disabled":"Forwards all insecure traffic from port 80 to secure port 443. Not recommended when using a proxy server.\\n \\nThis setting cannot be enabled until your server is [listening](#ListenAddress) on port 443.","admin.service.googleDescription":"Set this key to enable the display of titles for embedded YouTube video previews. Without the key, YouTube previews will still be created based on hyperlinks appearing in messages or comments but they will not show the video title. View a [Google Developers Tutorial](!https://www.youtube.com/watch?v=Im69kzhpR3I) for instructions on how to obtain a key and add YouTube Data API v3 as a service to your key.","admin.service.googleExample":"E.g.: \\"7rAh6iwQCkV4cA1Gsg3fgGOXJAQ43QV\\"","admin.service.googleTitle":"Google API Key:","admin.service.iconDescription":"When true, webhooks, slash commands and other integrations, such as [Zapier](!https://docs.mattermost.com/integrations/zapier.html), will be allowed to change the profile picture they post with. Note: Combined with allowing integrations to override usernames, users may be able to perform phishing attacks by attempting to impersonate other users.","admin.service.iconTitle":"Enable integrations to override profile picture icons:","admin.service.insecureTlsDesc":"When true, any outgoing HTTPS requests will accept unverified, self-signed certificates. For example, outgoing webhooks to a server with a self-signed TLS certificate, using any domain, will be allowed. Note that this makes these connections susceptible to man-in-the-middle attacks.","admin.service.insecureTlsTitle":"Enable Insecure Outgoing Connections: ","admin.service.integrationAdmin":"Restrict managing integrations to Admins:","admin.service.integrationAdminDesc":"When true, webhooks and slash commands can only be created, edited and viewed by Team and System Admins, and OAuth 2.0 applications by System Admins. Integrations are available to all users after they have been created by the Admin.","admin.service.internalConnectionsDesc":"A whitelist of local network addresses that can be requested by the Mattermost server on behalf of a client. Care should be used when configuring this setting to prevent unintended access to your local network. See [documentation](!https://mattermost.com/pl/default-allow-untrusted-internal-connections) to learn more.","admin.service.internalConnectionsEx":"webhooks.internal.example.com 127.0.0.1 10.0.16.0/28","admin.service.internalConnectionsTitle":"Allow untrusted internal connections to: ","admin.service.letsEncryptCertificateCacheFile":"Let\'s Encrypt Certificate Cache File:","admin.service.letsEncryptCertificateCacheFileDescription":"Certificates retrieved and other data about the Let\'s Encrypt service will be stored in this file.","admin.service.listenAddress":"Listen Address:","admin.service.listenDescription":"The address and port to which to bind and listen. Specifying \\":8065\\" will bind to all network interfaces. Specifying \\"127.0.0.1:8065\\" will only bind to the network interface having that IP address. If you choose a port of a lower level (called \\"system ports\\" or \\"well-known ports\\", in the range of 0-1023), you must have permissions to bind to that port. On Linux you can use: \\"sudo setcap cap_net_bind_service=+ep ./bin/mattermost\\" to allow Mattermost to bind to well-known ports.","admin.service.listenExample":"E.g.: \\":8065\\"","admin.service.mfaDesc":"When true, users with AD/LDAP or email login can add multi-factor authentication to their account using Google Authenticator.","admin.service.mfaTitle":"Enable Multi-factor Authentication:","admin.service.minimumHashtagLengthDescription":"Minimum number of characters in a hashtag. This must be greater than or equal to 2. MySQL databases must be configured to support searching strings shorter than three characters, [see documentation](!https://dev.mysql.com/doc/refman/8.0/en/fulltext-fine-tuning.html).","admin.service.minimumHashtagLengthExample":"E.g.: \\"3\\"","admin.service.minimumHashtagLengthTitle":"Minimum Hashtag Length:","admin.service.mobileSessionDays":"Session Length Mobile (days):","admin.service.mobileSessionDaysDesc":"The number of days from the last time a user entered their credentials to the expiry of the user\'s session. After changing this setting, the new session length will take effect after the next time the user enters their credentials.","admin.service.outWebhooksDesc":"When true, outgoing webhooks will be allowed. See [documentation](!http://docs.mattermost.com/developer/webhooks-outgoing.html) to learn more.","admin.service.outWebhooksTitle":"Enable Outgoing Webhooks: ","admin.service.overrideDescription":"When true, webhooks, slash commands and other integrations, such as [Zapier](!https://docs.mattermost.com/integrations/zapier.html), will be allowed to change the username they are posting as. Note: Combined with allowing integrations to override profile picture icons, users may be able to perform phishing attacks by attempting to impersonate other users.","admin.service.overrideTitle":"Enable integrations to override usernames:","admin.service.readTimeout":"Read Timeout:","admin.service.readTimeoutDescription":"Maximum time allowed from when the connection is accepted to when the request body is fully read.","admin.service.sessionCache":"Session Cache (minutes):","admin.service.sessionCacheDesc":"The number of minutes to cache a session in memory.","admin.service.sessionDaysEx":"E.g.: \\"30\\"","admin.service.sessionIdleTimeout":"Session Idle Timeout (minutes):","admin.service.sessionIdleTimeoutDesc":"The number of minutes from the last time a user was active on the system to the expiry of the user\'s session. Once expired, the user will need to log in to continue. Minimum is 5 minutes, and 0 is unlimited.\\n \\nApplies to the desktop app and browsers. For mobile apps, use an EMM provider to lock the app when not in use. In High Availability mode, enable IP hash load balancing for reliable timeout measurement.","admin.service.sessionIdleTimeoutEx":"E.g.: \\"60\\"","admin.service.siteURL":"Site URL:","admin.service.siteURLDescription":"The URL that users will use to access Mattermost. Standard ports, such as 80 and 443, can be omitted, but non-standard ports are required. For example: http://example.com:8065. This setting is required.\\n \\nMattermost may be hosted at a subpath. For example: http://example.com:8065/company/mattermost. A restart is required before the server will work correctly.","admin.service.siteURLExample":"E.g.: \\"http://example.com:8065\\"","admin.service.ssoSessionDays":"Session Length SSO (days):","admin.service.ssoSessionDaysDesc":"The number of days from the last time a user entered their credentials to the expiry of the user\'s session. If the authentication method is SAML or GitLab, the user may automatically be logged back in to Mattermost if they are already logged in to SAML or GitLab. After changing this setting, the setting will take effect after the next time the user enters their credentials.","admin.service.testingDescription":"When true, /test slash command is enabled to load test accounts, data and text formatting. Changing this requires a server restart before taking effect.","admin.service.testingTitle":"Enable Testing Commands: ","admin.service.testSiteURL":"Test Live URL","admin.service.testSiteURLFail":"Test unsuccessful: {error}","admin.service.testSiteURLSuccess":"Test successful. This is a valid URL.","admin.service.testSiteURLTesting":"Testing...","admin.service.tlsCertFile":"TLS Certificate File:","admin.service.tlsCertFileDescription":"The certificate file to use.","admin.service.tlsKeyFile":"TLS Key File:","admin.service.tlsKeyFileDescription":"The private key file to use.","admin.service.useLetsEncrypt":"Use Let\'s Encrypt:","admin.service.useLetsEncryptDescription":"Enable the automatic retrieval of certificates from Let\'s Encrypt. The certificate will be retrieved when a client attempts to connect from a new domain. This will work with multiple domains.","admin.service.useLetsEncryptDescription.disabled":"Enable the automatic retrieval of certificates from Let\'s Encrypt. The certificate will be retrieved when a client attempts to connect from a new domain. This will work with multiple domains.\\n \\nThis setting cannot be enabled unless the [Forward port 80 to 443](#Forward80To443) setting is set to true.","admin.service.userAccessTokensDescription":"When true, users can create [user access tokens](!https://about.mattermost.com/default-user-access-tokens) for integrations in **Account Settings > Security**. They can be used to authenticate against the API and give full access to the account.\\n\\n To manage who can create personal access tokens or to search users by token ID, go to the **User Management > Users** page.","admin.service.userAccessTokensTitle":"Enable Personal Access Tokens: ","admin.service.webhooksDescription":"When true, incoming webhooks will be allowed. To help combat phishing attacks, all posts from webhooks will be labelled by a BOT tag. See [documentation](!http://docs.mattermost.com/developer/webhooks-incoming.html) to learn more.","admin.service.webhooksTitle":"Enable Incoming Webhooks: ","admin.service.webSessionDays":"Session Length AD/LDAP and Email (days):","admin.service.webSessionDaysDesc":"The number of days from the last time a user entered their credentials to the expiry of the user\'s session. After changing this setting, the new session length will take effect after the next time the user enters their credentials.","admin.service.writeTimeout":"Write Timeout:","admin.service.writeTimeoutDescription":"If using HTTP (insecure), this is the maximum time allowed from the end of reading the request headers until the response is written. If using HTTPS, it is the total time from when the connection is accepted until the response is written.","admin.set_by_env":"This setting has been set through an environment variable. It cannot be changed through the System Console.","admin.sidebar.about":"About","admin.sidebar.announcement":"Announcement Banner","admin.sidebar.authentication":"Authentication","admin.sidebar.channels":"Channels","admin.sidebar.compliance":"Compliance","admin.sidebar.complianceExport":"Compliance Export (Beta)","admin.sidebar.complianceMonitoring":"Compliance Monitoring","admin.sidebar.cors":"CORS","admin.sidebar.customization":"Customization","admin.sidebar.customTermsOfService":"Custom Terms of Service (Beta)","admin.sidebar.database":"Database","admin.sidebar.dataRetentionPolicy":"Data Retention Policy","admin.sidebar.developer":"Developer","admin.sidebar.elasticsearch":"Elasticsearch","admin.sidebar.email":"Email","admin.sidebar.emoji":"Emoji","admin.sidebar.environment":"Environment","admin.sidebar.experimental":"Experimental","admin.sidebar.experimentalFeatures":"Features","admin.sidebar.fileSharingDownloads":"File Sharing and Downloads","admin.sidebar.fileStorage":"File Storage","admin.sidebar.filter":"Find settings","admin.sidebar.filter-clear":"Clear search","admin.sidebar.gif":"GIF (Beta)","admin.sidebar.gitlab":"GitLab","admin.sidebar.groups":"Groups (Beta)","admin.sidebar.guest_access":"Guest Access (Beta)","admin.sidebar.highAvailability":"High Availability","admin.sidebar.imageProxy":"Image Proxy","admin.sidebar.integrations":"Integrations","admin.sidebar.ldap":"AD/LDAP","admin.sidebar.license":"Edition and License","admin.sidebar.localization":"Localization","admin.sidebar.logging":"Logging","admin.sidebar.logs":"Server Logs","admin.sidebar.metrics":"Performance Monitoring","admin.sidebar.mfa":"MFA","admin.sidebar.notifications":"Notifications","admin.sidebar.oauth":"OAuth 2.0","admin.sidebar.password":"Password","admin.sidebar.permissions":"Permissions","admin.sidebar.plugins":"Plugins (Beta)","admin.sidebar.posts":"Posts","admin.sidebar.publicLinks":"Public Links","admin.sidebar.pushNotificationServer":"Push Notification Server","admin.sidebar.rateLimiting":"Rate Limiting","admin.sidebar.reporting":"Reporting","admin.sidebar.saml":"SAML 2.0","admin.sidebar.sessionLengths":"Session Lengths","admin.sidebar.signup":"Signup","admin.sidebar.site":"Site Configuration","admin.sidebar.siteStatistics":"Site Statistics","admin.sidebar.smtp":"SMTP","admin.sidebar.teams":"Teams","admin.sidebar.teamStatistics":"Team Statistics","admin.sidebar.userManagement":"User Management","admin.sidebar.users":"Users","admin.sidebar.usersAndTeams":"Users and Teams","admin.sidebar.webServer":"Web Server","admin.sidebarHeader.systemConsole":"System Console","admin.site.announcementBanner":"Announcement Banner","admin.site.customization":"Customization","admin.site.emoji":"Emoji","admin.site.fileSharingDownloads":"File Sharing and Downloads","admin.site.localization":"Localization","admin.site.posts":"Posts","admin.site.public_links":"Public Links","admin.site.usersAndTeams":"Users and Teams","admin.sql.connMaxLifetimeDescription":"Maximum lifetime (in milliseconds) for a connection to the database.","admin.sql.connMaxLifetimeExample":"E.g.: \\"3600000\\"","admin.sql.connMaxLifetimeTitle":"Maximum Connection Lifetime:","admin.sql.dataSource":"Data Source:","admin.sql.dataSourceDescription":"Set the database source in the config.json file.","admin.sql.driverName":"Driver Name:","admin.sql.driverNameDescription":"Set the database driver in the config.json file.","admin.sql.maxConnectionsDescription":"Maximum number of idle connections held open to the database.","admin.sql.maxConnectionsExample":"E.g.: \\"10\\"","admin.sql.maxConnectionsTitle":"Maximum Idle Connections:","admin.sql.maxOpenDescription":"Maximum number of open connections held open to the database.","admin.sql.maxOpenExample":"E.g.: \\"10\\"","admin.sql.maxOpenTitle":"Maximum Open Connections:","admin.sql.noteDescription":"Changing properties in this section will require a server restart before taking effect.","admin.sql.queryTimeoutDescription":"The number of seconds to wait for a response from the database after opening a connection and sending the query. Errors that you see in the UI or in the logs as a result of a query timeout can vary depending on the type of query.","admin.sql.queryTimeoutExample":"E.g.: \\"30\\"","admin.sql.queryTimeoutTitle":"Query Timeout:","admin.sql.traceDescription":"(Development Mode) When true, executing SQL statements are written to the log.","admin.sql.traceTitle":"SQL Statement Logging: ","admin.support.aboutDesc":"The URL for the About link on the Mattermost login and sign-up pages. If this field is empty, the About link is hidden from users.","admin.support.aboutTitle":"About Link:","admin.support.emailHelp":"Email address displayed on email notifications and during tutorial for end users to ask support questions.","admin.support.emailTitle":"Support Email:","admin.support.enableTermsOfServiceHelp":"When true, new users must accept the terms of service before accessing any Mattermost teams on desktop, web or mobile. Existing users must accept them after login or a page refresh.\\n \\nTo update terms of service link displayed in account creation and login pages, go to [Site Configuration > Customization](../site_config/customization).","admin.support.enableTermsOfServiceTitle":"Enable Custom Terms of Service:","admin.support.helpDesc":"The URL for the Help link on the Mattermost login page, sign-up pages, and Main Menu. If this field is empty, the Help link is hidden from users.","admin.support.helpTitle":"Help Link:","admin.support.privacyDesc":"The URL for the Privacy link on the login and sign-up pages. If this field is empty, the Privacy link is hidden from users.","admin.support.privacyTitle":"Privacy Policy Link:","admin.support.problemDesc":"The URL for the Report a Problem link in the Main Menu. If this field is empty, the link is removed from the Main Menu.","admin.support.problemTitle":"Report a Problem Link:","admin.support.termsDesc":"Link to the terms under which users may use your online service. By default, this includes the \\"Mattermost Conditions of Use (End Users)\\" explaining the terms under which Mattermost software is provided to end users. If you change the default link to add your own terms for using the service you provide, your new terms must include a link to the default terms so end users are aware of the Mattermost Conditions of Use (End User) for Mattermost software.","admin.support.termsOfServiceReAcceptanceHelp":"The number of days before Terms of Service acceptance expires, and the terms must be re-accepted.","admin.support.termsOfServiceReAcceptanceTitle":"Re-Acceptance Period:","admin.support.termsOfServiceTextHelp":"Text that will appear in your custom Terms of Service. Supports Markdown-formatted text.","admin.support.termsOfServiceTextTitle":"Custom Terms of Service Text:","admin.support.termsOfServiceTitle":"Custom Terms of Service (Beta)","admin.support.termsTitle":"Terms of Service Link:","admin.system_users.allUsers":"All Users","admin.system_users.guest":"Guest","admin.system_users.inactive":"Inactive","admin.system_users.noTeams":"No Teams","admin.system_users.revoke_all_sessions_button":"Revoke All Sessions","admin.system_users.revoke_all_sessions_modal_message":"This action revokes all sessions in the system. All users will be logged out from all devices. Are you sure you want to revoke all sessions?","admin.system_users.revoke_all_sessions_modal_title":"Revoke all sessions in the system","admin.system_users.revokeAllSessions":"Revoke All Sessions","admin.system_users.system_admin":"System Admin","admin.system_users.title":"{siteName} Users","admin.systemUserDetail.teamList.header.name":"Name","admin.systemUserDetail.teamList.header.role":"Role","admin.systemUserDetail.teamList.header.type":"Type","admin.systemUserDetail.teamList.teamRole.admin":"Team Admin","admin.systemUserDetail.teamList.teamRole.guest":"Guest","admin.systemUserDetail.teamList.teamRole.member":"Team Member","admin.systemUserDetail.teamList.teamType.anyoneCanJoin":"Anyone Can Join","admin.systemUserDetail.teamList.teamType.groupSync":"Group Sync","admin.systemUserDetail.teamList.teamType.inviteOnly":"Invite Only","admin.systemUserDetail.title":"User Configuration","admin.team_channel_settings.cancel":"Cancel","admin.team_channel_settings.convertAndRemoveConfirmModal.cancel":"No, cancel","admin.team_channel_settings.convertAndRemoveConfirmModal.toPrivateConfirm":"Yes, convert channel to private and remove {amount, number} {amount, plural, one {user} other {users}}","admin.team_channel_settings.convertAndRemoveConfirmModal.toPrivateTitle":"Convert channel to a private and remove {amount, number} {amount, plural, one {user} other {users}}?","admin.team_channel_settings.convertAndRemoveConfirmModal.toPublicConfirm":"Yes, convert channel to public and remove {amount, number} {amount, plural, one {user} other {users}}","admin.team_channel_settings.convertAndRemoveConfirmModal.toPublicTitle":"Convert channel to public and remove {amount, number} {amount, plural, one {user} other {users}}","admin.team_channel_settings.convertConfirmModal.cancel":"No, cancel","admin.team_channel_settings.convertConfirmModal.toPrivateConfirm":"Yes, convert to private channel","admin.team_channel_settings.convertConfirmModal.toPrivateMessage":"When you convert **{displayName}** to a private channel, history and membership are preserved. Publicly shared files remain accessible to anyone with the link. Membership in a private channel is by invitation only. \\n \\nAre you sure you want to convert **{displayName}** to a private channel?","admin.team_channel_settings.convertConfirmModal.toPrivateTitle":"Convert {displayName} to a private channel?","admin.team_channel_settings.convertConfirmModal.toPublicConfirm":"Yes, convert to public channel","admin.team_channel_settings.convertConfirmModal.toPublicMessage":"When you convert **{displayName}** to a public channel, history and membership are preserved. Public channels are discoverable and can by joined by users on the system without invitation. \\n \\nAre you sure you want to convert **{displayName}** to a public channel?","admin.team_channel_settings.convertConfirmModal.toPublicTitle":"Convert {displayName} to a public channel?","admin.team_channel_settings.group_list.membersHeader":"Member Count","admin.team_channel_settings.group_list.nameHeader":"Name","admin.team_channel_settings.group_list.no-groups":"No groups specified yet","admin.team_channel_settings.group_list.no-synced-groups":"At least one group must be specified","admin.team_channel_settings.group_list.rolesHeader":"Roles","admin.team_channel_settings.group_row.channelAdmin":"Channel Admin","admin.team_channel_settings.group_row.member":"Member","admin.team_channel_settings.group_row.memberRole":"Member Role","admin.team_channel_settings.group_row.members":"{memberCount, number} {memberCount, plural, one {member} other {members}}","admin.team_channel_settings.group_row.remove":"Remove","admin.team_channel_settings.group_row.teamAdmin":"Team Admin","admin.team_channel_settings.list.paginatorCount":"{startCount, number} - {endCount, number} of {total, number}","admin.team_channel_settings.need_domains":"Please specify emails domains.","admin.team_channel_settings.need_groups":"You must add at least one group to manage this team by sync group members.","admin.team_channel_settings.removeConfirmModal.messageChannel":"{amount, number} {amount, plural, one {user} other {users}} will be removed on the next AD/LDAP synchronization. They are not in groups linked to this channel. Are you sure you wish to remove these users?","admin.team_channel_settings.removeConfirmModal.messageGroup":"{amount, number} {amount, plural, one {user} other {users}} will be removed on the next AD/LDAP synchronization. They are not in groups linked to this group. Are you sure you wish to remove these users?","admin.team_channel_settings.removeConfirmModal.remove":"Save and remove {amount, plural, one {user} other {users}}","admin.team_channel_settings.removeConfirmModal.title":"Save and remove {amount, number} {amount, plural, one {user} other {users}}?","admin.team_channel_settings.saving":"Saving Config...","admin.team_channel_settings.user_list.groupsHeader":"Groups","admin.team_channel_settings.user_list.nameHeader":"Name","admin.team_channel_settings.user_list.roleHeader":"Role","admin.team_channel_settings.users_will_be_removed":"{amount, number} {amount, plural, one {user} other {users}} will be removed from this team. They are not in groups linked to this team.","admin.team_channel_settings.usersToBeRemovedModal.close":"Close","admin.team_channel_settings.usersToBeRemovedModal.message":"The members listed below are not in any of the groups currently linked to this team. Because this team is set to be managed by group sync they will all be removed once saved.","admin.team_channel_settings.usersToBeRemovedModal.title":"**{total, number} {total, plural, one {User} other {Users}}** To Be Removed","admin.team_channel_settings.view_removed_users":"View These Users","admin.team_settings.description":"Manage team settings.","admin.team_settings.groupsPageTitle":"{siteName} Teams","admin.team_settings.team_detail.group_configuration":"Team Configuration","admin.team_settings.team_detail.groupsDescription":"Group members will be added to the team.","admin.team_settings.team_detail.groupsTitle":"Groups","admin.team_settings.team_detail.manageDescription":"Choose between inviting members manually or syncing members automatically from groups.","admin.team_settings.team_detail.manageTitle":"Team Management","admin.team_settings.team_detail.profileDescription":"Summary of the team, including team name and description.","admin.team_settings.team_detail.profileNoDescription":"No team description added.","admin.team_settings.team_detail.profileTitle":"Team Profile","admin.team_settings.team_detail.syncedGroupsDescription":"Add and remove team members based on their group membership.","admin.team_settings.team_detail.syncedGroupsTitle":"Synced Groups","admin.team_settings.team_detail.teamDescription":"**Team Description**:","admin.team_settings.team_detail.teamName":"**Team Name**:","admin.team_settings.team_details.add_group":"Add Group","admin.team_settings.team_details.anyoneCanJoin":"Anyone can join this team","admin.team_settings.team_details.anyoneCanJoinDescr":"This team can be discovered allowing anyone with an account to join this team.","admin.team_settings.team_details.csvDomains":"Comma Separated Email Domain List","admin.team_settings.team_details.specificDomains":"Only specific email domains can join this team","admin.team_settings.team_details.specificDomainsDescr":"Users can only join the team if their email matches one of the specified domains","admin.team_settings.team_details.syncGroupMembers":"Sync Group Members","admin.team_settings.team_details.syncGroupMembersDescr":"When enabled, adding and removing users from groups will add or remove them from this team. The only way of inviting members to this team is by adding the groups they belong to. [Learn More](!https://www.mattermost.com/pl/default-ldap-group-constrained-team-channel.html)","admin.team_settings.team_list.mappingHeader":"Management","admin.team_settings.team_list.nameHeader":"Name","admin.team_settings.team_list.no_teams_found":"No teams found","admin.team_settings.team_row.configure":"Edit","admin.team_settings.team_row.managementMethod.anyoneCanJoin":"Anyone Can Join","admin.team_settings.team_row.managementMethod.groupSync":"Group Sync","admin.team_settings.team_row.managementMethod.inviteOnly":"Invite Only","admin.team_settings.title":"Teams","admin.team.brandDesc":"Enable custom branding to show an image of your choice, uploaded below, and some help text, written below, on the login page.","admin.team.brandDescriptionHelp":"Description of service shown in login screens and UI. When not specified, \\"All team communication in one place, searchable and accessible anywhere\\" is displayed.","admin.team.brandDescriptionTitle":"Site Description: ","admin.team.brandImageTitle":"Custom Brand Image:","admin.team.brandTextDescription":"Text that will appear below your custom brand image on your login screen. Supports Markdown-formatted text. Maximum 500 characters allowed.","admin.team.brandTextTitle":"Custom Brand Text:","admin.team.brandTitle":"Enable Custom Branding: ","admin.team.chooseImage":"Select Image","admin.team.editOthersPostsDesc":"When true, Team Administrators and System Administrators can edit other user\'s posts. When false, only System Administrators can edit other user\'s posts.","admin.team.editOthersPostsTitle":"Allow Team Administrators to edit others posts:","admin.team.emailInvitationsDescription":"When true users can invite others to the system using email.","admin.team.emailInvitationsTitle":"Enable Email Invitations: ","admin.team.invalidateEmailInvitesDescription":"This will invalidate active email invitations that have not been accepted by the user. By default email invitations expire after 48 hours.","admin.team.invalidateEmailInvitesFail":"Unable to invalidate pending email invites: {error}","admin.team.invalidateEmailInvitesSuccess":"Pending email invitations invalidated successfully","admin.team.invalidateEmailInvitesTitle":"Invalidate pending email invites","admin.team.maxChannelsDescription":"Maximum total number of channels per team, including both active and archived channels.","admin.team.maxChannelsExample":"E.g.: \\"100\\"","admin.team.maxChannelsTitle":"Max Channels Per Team:","admin.team.maxNotificationsPerChannelDescription":"Maximum total number of users in a channel before users typing messages, @all, @here, and @channel no longer send notifications because of performance.","admin.team.maxNotificationsPerChannelExample":"E.g.: \\"1000\\"","admin.team.maxNotificationsPerChannelTitle":"Max Notifications Per Channel:","admin.team.maxUsersDescription":"Maximum total number of users per team, including both active and inactive users.","admin.team.maxUsersExample":"E.g.: \\"25\\"","admin.team.maxUsersTitle":"Max Users Per Team:","admin.team.noBrandImage":"No brand image uploaded","admin.team.openServerDescription":"When true, anyone can signup for a user account on this server without the need to be invited.","admin.team.openServerTitle":"Enable Open Server: ","admin.team.removeBrandImage":"Remove brand image","admin.team.restrict_direct_message_any":"Any user on the Mattermost server","admin.team.restrict_direct_message_team":"Any member of the team","admin.team.restrictDescription":"User accounts can only be created from a specific domain (e.g. \\"mattermost.org\\") or list of comma-separated domains (e.g. \\"corp.mattermost.com, mattermost.org\\").","admin.team.restrictDirectMessage":"Enable users to open Direct Message channels with:","admin.team.restrictDirectMessageDesc":"\'Any user on the Mattermost server\' enables users to open a Direct Message channel with any user on the server, even if they are not on any teams together. \'Any member of the team\' limits the ability in the Direct Messages \'More\' menu to only open Direct Message channels with users who are in the same team.\\n \\nNote: This setting only affects the UI, not permissions on the server.","admin.team.restrictExample":"E.g.: \\"corp.mattermost.com, mattermost.org\\"","admin.team.restrictGuestDescription":"User accounts can only be created from a specific domain (e.g. \\"mattermost.org\\") or list of comma-separated domains (e.g. \\"corp.mattermost.com, mattermost.org\\"). This setting only affects email login for users. For Guest users, please add domains under Signup > Guest Access.","admin.team.restrictTitle":"Restrict account creation to specified email domains:","admin.team.showFullname":"Show first and last name","admin.team.showNickname":"Show nickname if one exists, otherwise show first and last name","admin.team.showUsername":"Show username (default)","admin.team.siteNameDescription":"Name of service shown in login screens and UI. When not specified, it defaults to \\"Mattermost\\".","admin.team.siteNameExample":"E.g.: \\"Mattermost\\"","admin.team.siteNameTitle":"Site Name:","admin.team.teamCreationDescription":"When false, only System Administrators can create teams.","admin.team.teamCreationTitle":"Enable Team Creation: ","admin.team.teammateNameDisplay":"Teammate Name Display:","admin.team.teammateNameDisplayDesc":"Set how to display users\' names in posts and the Direct Messages list.","admin.team.upload":"Upload","admin.team.uploadDesc":"Customize your user experience by adding a custom image to your login screen. Recommended maximum image size is less than 2 MB.","admin.team.uploaded":"Uploaded!","admin.team.uploading":"Uploading...","admin.team.userCreationDescription":"When false, the ability to create accounts is disabled. The create account button displays error when pressed.","admin.team.userCreationTitle":"Enable Account Creation: ","admin.true":"true","admin.user_item.authServiceEmail":"**Sign-in Method:** Email","admin.user_item.authServiceNotEmail":"**Sign-in Method:** {service}","admin.user_item.demoteToGuest":"Demote to Guest","admin.user_item.emailTitle":"**Email:** {email}","admin.user_item.guest":"Guest","admin.user_item.inactive":"Inactive","admin.user_item.makeActive":"Activate","admin.user_item.makeInactive":"Deactivate","admin.user_item.makeMember":"Make Team Member","admin.user_item.makeTeamAdmin":"Make Team Admin","admin.user_item.manageRoles":"Manage Roles","admin.user_item.manageTeams":"Manage Teams","admin.user_item.manageTokens":"Manage Tokens","admin.user_item.member":"Member","admin.user_item.menuAriaLabel":"User Actions Menu","admin.user_item.mfaNo":"**MFA**: No","admin.user_item.mfaYes":"**MFA**: Yes","admin.user_item.promoteToUser":"Promote to User","admin.user_item.resetEmail":"Update Email","admin.user_item.resetMfa":"Remove MFA","admin.user_item.resetPwd":"Reset Password","admin.user_item.revokeSessions":"Revoke Sessions","admin.user_item.switchToEmail":"Switch to Email/Password","admin.user_item.sysAdmin":"System Admin","admin.user_item.teamAdmin":"Team Admin","admin.user_item.teamMember":"Team Member","admin.user_item.user_id":"**User ID:** {userID}","admin.user_item.userAccessTokenPostAll":"(can create post:all personal access tokens)","admin.user_item.userAccessTokenPostAllPublic":"(can create post:channels personal access tokens)","admin.user_item.userAccessTokenYes":"(can create personal access tokens)","admin.userManagement.userDetail.addTeam":"Add Team","admin.userManagement.userDetail.authenticationMethod":"Authentication Method","admin.userManagement.userDetail.email":"Email","admin.userManagement.userDetail.role":"Role","admin.userManagement.userDetail.teamsSubtitle":"Teams to which this user belongs","admin.userManagement.userDetail.teamsTitle":"Team Membership","admin.userManagement.userDetail.userId":"User ID:","admin.userManagement.userDetail.username":"Username","admin.viewArchivedChannelsHelpText":"(Beta) When true, allows users to view, share and search for content of channels that have been archived. Users can only view the content in channels of which they were a member before the channel was archived.","admin.viewArchivedChannelsTitle":"Allow users to view archived channels:","admin.webserverModeDisabled":"Disabled","admin.webserverModeDisabledDescription":"The Mattermost server will not serve static files.","admin.webserverModeGzip":"gzip","admin.webserverModeGzipDescription":"The Mattermost server will serve static files compressed with gzip.","admin.webserverModeHelpText":"gzip compression applies to static content files. It is recommended to enable gzip to improve performance unless your environment has specific restrictions, such as a web proxy that distributes gzip files poorly.","admin.webserverModeTitle":"Webserver Mode:","admin.webserverModeUncompressed":"Uncompressed","admin.webserverModeUncompressedDescription":"The Mattermost server will serve static files uncompressed.","analytics.chart.loading":"Loading...","analytics.chart.meaningful":"Not enough data for a meaningful representation.","analytics.system.activeUsers":"Active Users With Posts","analytics.system.channelTypes":"Channel Types","analytics.system.dailyActiveUsers":"Daily Active Users","analytics.system.info":"Only data for the chosen team is calculated. Excludes posts made in direct message channels, which are not tied to a team.","analytics.system.infoAndSkippedIntensiveQueries":"Only data for the chosen team is calculated. Excludes posts made in direct message channels, which are not tied to a team. \\n \\n To maximize performance, some statistics are disabled. You can [re-enable them in config.json](!https://docs.mattermost.com/administration/statistics.html).","analytics.system.monthlyActiveUsers":"Monthly Active Users","analytics.system.postTypes":"Posts, Files and Hashtags","analytics.system.privateGroups":"Private Channels","analytics.system.publicChannels":"Public Channels","analytics.system.skippedIntensiveQueries":"To maximize performance, some statistics are disabled. You can [re-enable them in config.json](!https://docs.mattermost.com/administration/statistics.html).","analytics.system.textPosts":"Posts with Text-only","analytics.system.title":"System Statistics","analytics.system.totalBotPosts":"Total Posts from Bots","analytics.system.totalChannels":"Total Channels","analytics.system.totalCommands":"Total Commands","analytics.system.totalFilePosts":"Posts with Files","analytics.system.totalHashtagPosts":"Posts with Hashtags","analytics.system.totalIncomingWebhooks":"Incoming Webhooks","analytics.system.totalMasterDbConnections":"Master DB Conns","analytics.system.totalOutgoingWebhooks":"Outgoing Webhooks","analytics.system.totalPosts":"Total Posts","analytics.system.totalReadDbConnections":"Replica DB Conns","analytics.system.totalSessions":"Total Sessions","analytics.system.totalTeams":"Total Teams","analytics.system.totalUsers":"Total Active Users","analytics.system.totalWebsockets":"WebSocket Conns","analytics.team.activeUsers":"Active Users With Posts","analytics.team.newlyCreated":"Newly Created Users","analytics.team.noTeams":"There are no teams on this server for which to view statistics.","analytics.team.privateGroups":"Private Channels","analytics.team.publicChannels":"Public Channels","analytics.team.recentUsers":"Recent Active Users","analytics.team.title":"Team Statistics for {team}","analytics.team.totalPosts":"Total Posts","analytics.team.totalUsers":"Total Active Users","announcement_bar.error.email_verification_required":"Check your email inbox to verify the address.","announcement_bar.error.license_expired":"Enterprise license is expired and some features may be disabled. [Please renew](!{link}).","announcement_bar.error.license_expiring":"Enterprise license expires on {date, date, long}. [Please renew](!{link}).","announcement_bar.error.past_grace":"Enterprise license is expired and some features may be disabled. Please contact your System Administrator for details.","announcement_bar.error.preview_mode":"Preview Mode: Email notifications have not been configured","announcement_bar.error.site_url_gitlab.full":"Please configure your [Site URL](https://docs.mattermost.com/administration/config-settings.html#site-url) in the [System Console]({siteURL}/admin_console/environment/web_server) or in gitlab.rb if you\'re using GitLab Mattermost.","announcement_bar.error.site_url.full":"Please configure your [Site URL](https://docs.mattermost.com/administration/config-settings.html#site-url) in the [System Console]({siteURL}/admin_console/environment/web_server).","announcement_bar.notification.email_verified":"Email verified","api.channel.add_guest.added":"{addedUsername} added to the channel as a guest by {username}.","api.channel.add_member.added":"{addedUsername} added to the channel by {username}.","api.channel.delete_channel.archived":"{username} archived the channel.","api.channel.guest_join_channel.post_and_forget":"{username} joined the channel as a guest.","api.channel.join_channel.post_and_forget":"{username} joined the channel.","api.channel.leave.left":"{username} left the channel.","api.channel.post_convert_channel_to_private.updated_from":"{username} converted the channel from public to private","api.channel.post_update_channel_displayname_message_and_forget.updated_from":"{username} updated the channel display name from: {old} to: {new}","api.channel.post_update_channel_header_message_and_forget.removed":"{username} removed the channel header (was: {old})","api.channel.post_update_channel_header_message_and_forget.updated_from":"{username} updated the channel header from: {old} to: {new}","api.channel.post_update_channel_header_message_and_forget.updated_to":"{username} updated the channel header to: {new}","api.channel.remove_member.removed":"{removedUsername} was removed from the channel","api.team.add_member.added":"{addedUsername} added to the team by {username}","api.team.join_team.post_and_forget":"{username} joined the team.","api.team.leave.left":"{username} left the team.","api.team.remove_user_from_team.removed":"{removedUsername} was removed from the team.","app.channel.post_update_channel_purpose_message.removed":"{username} removed the channel purpose (was: {old})","app.channel.post_update_channel_purpose_message.updated_from":"{username} updated the channel purpose from: {old} to: {new}","app.channel.post_update_channel_purpose_message.updated_to":"{username} updated the channel purpose to: {new}","app.plugin.marketplace_plugins.app_error":"Error connecting to the marketplace server. Please check your settings in the [System Console]({siteURL}/admin_console/plugins/plugin_management).","archivedChannelMessage":"You are viewing an **archived channel**. New messages cannot be posted.","atmos/camo":"atmos/camo","audit_table.accountActive":"Account activated","audit_table.accountInactive":"Account deactivated","audit_table.action":"Action","audit_table.attemptedAllowOAuthAccess":"Attempted to allow a new OAuth service access","audit_table.attemptedLicenseAdd":"Attempted to add new license","audit_table.attemptedLogin":"Attempted to login","audit_table.attemptedOAuthToken":"Attempted to get an OAuth access token","audit_table.attemptedPassword":"Attempted to change password","audit_table.attemptedRegisterApp":"Attempted to register a new OAuth Application with ID {id}","audit_table.attemptedReset":"Attempted to reset password","audit_table.attemptedWebhookCreate":"Attempted to create a webhook","audit_table.attemptedWebhookDelete":"Attempted to delete a webhook","audit_table.authenticated":"Successfully authenticated","audit_table.by":" by {username}","audit_table.byAdmin":" by an admin","audit_table.channelCreated":"Created the {channelName} channel","audit_table.channelDeleted":"Archived the channel with the URL {url}","audit_table.establishedDM":"Established a direct message channel with {username}","audit_table.failedExpiredLicenseAdd":"Failed to add a new license as it has either expired or not yet been started","audit_table.failedInvalidLicenseAdd":"Failed to add an invalid license","audit_table.failedLogin":"FAILED login attempt","audit_table.failedOAuthAccess":"Failed to allow a new OAuth service access - the redirect URI did not match the previously registered callback","audit_table.failedPassword":"Failed to change password - tried to update user password who was logged in through OAuth","audit_table.failedWebhookCreate":"Failed to create a webhook - bad channel permissions","audit_table.failedWebhookDelete":"Failed to delete a webhook - inappropriate conditions","audit_table.headerUpdated":"Updated the {channelName} channel header","audit_table.ip":"IP Address","audit_table.licenseRemoved":"Successfully removed a license","audit_table.loginAttempt":" (Login attempt)","audit_table.loginFailure":" (Login failure)","audit_table.logout":"Logged out of your account","audit_table.member":"member","audit_table.nameUpdated":"Updated the {channelName} channel name","audit_table.oauthTokenFailed":"Failed to get an OAuth access token - {token}","audit_table.revokedAll":"Revoked all current sessions for the team","audit_table.sentEmail":"Sent an email to {email} to reset your password","audit_table.session":"Session ID","audit_table.sessionRevoked":"The session with id {sessionId} was revoked","audit_table.successfullLicenseAdd":"Successfully added new license","audit_table.successfullLogin":"Successfully logged in","audit_table.successfullOAuthAccess":"Successfully gave a new OAuth service access","audit_table.successfullOAuthToken":"Successfully added a new OAuth service","audit_table.successfullPassword":"Successfully changed password","audit_table.successfullReset":"Successfully reset password","audit_table.successfullWebhookCreate":"Successfully created a webhook","audit_table.successfullWebhookDelete":"Successfully deleted a webhook","audit_table.timestamp":"Timestamp","audit_table.updatedRol":"Updated user role(s) to ","audit_table.updateGeneral":"Updated the general settings of your account","audit_table.updateGlobalNotifications":"Updated your global notification settings","audit_table.updatePicture":"Updated your profile picture","audit_table.userAdded":"Added {username} to the {channelName} channel","audit_table.userId":"User ID","audit_table.userRemoved":"Removed {username} to the {channelName} channel","audit_table.verified":"Successfully verified your email address","authorize.access":"Allow **{appName}** access?","authorize.allow":"Allow","authorize.app":"The app **{appName}** would like the ability to access and modify your basic information.","authorize.deny":"Deny","authorize.title":"**{appName}** would like to connect to your **Mattermost** user account","backstage_list.search":"Search","backstage_navbar.backToMattermost":"Back to {siteName}","backstage_sidebar.bots":"Bot Accounts","backstage_sidebar.emoji":"Custom Emoji","backstage_sidebar.integrations":"Integrations","backstage_sidebar.integrations.commands":"Slash Commands","backstage_sidebar.integrations.incoming_webhooks":"Incoming Webhooks","backstage_sidebar.integrations.oauthApps":"OAuth 2.0 Applications","backstage_sidebar.integrations.outgoing_webhooks":"Outgoing Webhooks","bot.add.description":"Description","bot.add.description.help":"(Optional) Let others know what this bot does.","bot.add.display_name.help":"(Optional) You can choose to display your bot\'s full name rather than its username.","bot.add.post_all":"post:all","bot.add.post_all.enabled":"Enabled","bot.add.post_all.help":"Bot will have access to post to all Mattermost channels including direct messages.","bot.add.post_channels":"post:channels","bot.add.post_channels.enabled":"Enabled","bot.add.post_channels.help":"Bot will have access to post to all Mattermost public channels.","bot.add.role":"Role","bot.add.role.help":"Choose what role the bot should have.","bot.add.username.help":"You can use lowercase letters, numbers, periods, dashes, and underscores.","bot.create_failed":"Failed to create bot","bot.create_token.close":"Close","bot.edit_failed":"Failed to edit bot","bot.manage.create_token":"Create New Token","bot.manage.disable":"Disable","bot.manage.enable":"Enable","bot.remove_profile_picture":"Remove Bot Icon","bot.token.default.description":"Default Token","bot.token.error.description":"Please enter a description.","bots.add.displayName":"Display Name","bots.add.icon":"Bot Icon","bots.add.username":"Username","bots.disabled":"Disabled","bots.image.upload":"Upload Image","bots.is_bot":"BOT","bots.manage.add":"Add Bot Account","bots.manage.add.cancel":"Cancel","bots.manage.add.create":"Create Bot Account","bots.manage.add.creating":"Creating...","bots.manage.add.invalid_username":"Usernames have to begin with a lowercase letter and be 3-22 characters long. You can use lowercase letters, numbers, periods, dashes, and underscores.","bots.manage.bot_accounts":"Bot Accounts","bots.manage.created.text":"Your bot account **{botname}** has been created successfully. Please use the following access token to connect to the bot (see [documentation](https://mattermost.com/pl/default-bot-accounts) for further details).","bots.manage.description":"Use bot accounts to integrate with Mattermost through plugins or the API","bots.manage.edit":"Edit","bots.manage.edit.editing":"Updating...","bots.manage.edit.title":"Update","bots.manage.empty":"No bot accounts found","bots.manage.emptySearch":"No bot accounts match **{searchTerm}**","bots.manage.header":"Bot Accounts","bots.manage.help1":"Use {botAccounts} to integrate with Mattermost through plugins or the API. Bot accounts are available to everyone on your server. ","bots.manage.help2":"Enable bot account creation in the [System Console]({siteURL}/admin_console/integrations/bot_accounts).","bots.manage.search":"Search Bot Accounts","bots.managed_by":"Managed by ","bots.token.confirm":"Delete","bots.token.confirm_text":"Are you sure you want to delete the token?","bots.token.delete":"Delete Token","center_panel.archived.closeChannel":"Close Channel","center_panel.permalink.archivedChannel":"You are viewing an **archived channel**. ","center_panel.recent":"Click here to jump to recent messages. ","center_panel.recent.icon":"Jump to recent messages Icon","change_url.close":"Close","change_url.endWithLetter":"URL must end with a letter or number.","change_url.invalidUrl":"Invalid URL","change_url.longer":"URL must be two or more characters.","change_url.noUnderscore":"URL can not contain two underscores in a row.","change_url.startWithLetter":"URL must start with a letter or number.","change_url.urlLabel":"Channel URL","channel_flow.alreadyExist":"A channel with that URL already exists","channel_flow.changeUrlDescription":"Some characters are not allowed in URLs and may be removed.","channel_flow.changeUrlTitle":"Change Channel URL","channel_flow.create":"Create Channel","channel_flow.handleTooShort":"Channel URL must be 2 or more lowercase alphanumeric characters","channel_flow.invalidName":"Invalid Channel Name","channel_flow.set_url_title":"Set Channel URL","channel_header.addChannelHeader":"Add a channel description","channel_header.channelHasGuests":"This channel has guests","channel_header.channelMembers":"Members","channel_header.convert":"Convert to Private Channel","channel_header.delete":"Archive Channel","channel_header.directchannel.you":"{displayname} (you) ","channel_header.flagged":"Flagged Posts","channel_header.groupConstrained":"Members managed by linked groups.","channel_header.groupMessageHasGuests":"This group message has guests","channel_header.leave":"Leave Channel","channel_header.manageMembers":"Manage Members","channel_header.menuAriaLabel":"Channel Menu","channel_header.mute":"Mute Channel","channel_header.pinnedPosts":"Pinned Posts","channel_header.recentMentions":"Recent Mentions","channel_header.rename":"Rename Channel","channel_header.search":"Search","channel_header.setHeader":"Edit Channel Header","channel_header.setPurpose":"Edit Channel Purpose","channel_header.unmute":"Unmute Channel","channel_header.viewMembers":"View Members","channel_info.about":"About","channel_info.header":"Header:","channel_info.id":"ID: ","channel_info.notFound":"No Channel Found","channel_info.purpose":"Purpose:","channel_info.url":"URL:","channel_invite.addNewMembers":"Add New Members to ","channel_loader.posted":"Posted","channel_loader.postedImage":" posted an image","channel_loader.socketError":"Please check connection, Mattermost unreachable. If issue persists, ask administrator to [check WebSocket port](!https://about.mattermost.com/default-websocket-port-help).","channel_loader.someone":"Someone","channel_loader.something":" did something new","channel_loader.unknown_error":"We received an unexpected status code from the server.","channel_loader.uploadedFile":" uploaded a file","channel_loader.uploadedImage":" uploaded an image","channel_members_dropdown.channel_admin":"Channel Admin","channel_members_dropdown.channel_admins":"Channel Admins","channel_members_dropdown.channel_guest":"Channel Guest","channel_members_dropdown.channel_member":"Channel Member","channel_members_dropdown.channel_members":"Channel Members","channel_members_dropdown.make_channel_admin":"Make Channel Admin","channel_members_dropdown.make_channel_admins":"Make Channel Admins","channel_members_dropdown.make_channel_member":"Make Channel Member","channel_members_dropdown.make_channel_members":"Make Channel Members","channel_members_dropdown.menuAriaLabel":"Channel member role change","channel_members_dropdown.remove_from_channel":"Remove from Channel","channel_members_modal.addNew":" Add Members","channel_members_modal.members":" Members","channel_modal.cancel":"Cancel","channel_modal.createNew":"Create Channel","channel_modal.descriptionHelp":"Describe how this channel should be used.","channel_modal.displayNameError":"Channel name must be 2 or more characters","channel_modal.edit":"Edit","channel_modal.header":"Header","channel_modal.headerEx":"E.g.: \\"[Link Title](http://example.com)\\"","channel_modal.headerHelp":"Set text that will appear in the header of the channel beside the channel name. For example, include frequently used links by typing [Link Title](http://example.com).","channel_modal.modalTitle":"New Channel","channel_modal.name":"Name","channel_modal.nameEx":"E.g.: \\"Bugs\\", \\"Marketing\\", \\"客户支持\\"","channel_modal.optional":"(optional)","channel_modal.privateHint":" - Only invited members can join this channel.","channel_modal.privateName":"Private","channel_modal.publicHint":" - Anyone can join this channel.","channel_modal.publicName":"Public","channel_modal.purpose":"Purpose","channel_modal.purposeEx":"E.g.: \\"A channel to file bugs and improvements\\"","channel_modal.type":"Type","channel_notifications.allActivity":"For all activity","channel_notifications.globalDefault":"Global default ({notifyLevel})","channel_notifications.ignoreChannelMentions":"Ignore mentions for @channel, @here and @all","channel_notifications.ignoreChannelMentions.help":"When enabled, @channel, @here and @all will not trigger mentions or mention notifications in this channel.","channel_notifications.ignoreChannelMentions.off.title":"Off","channel_notifications.ignoreChannelMentions.on.title":"On","channel_notifications.levels.all":"All","channel_notifications.levels.default":"Default","channel_notifications.levels.mention":"Mention","channel_notifications.levels.none":"None","channel_notifications.muteChannel.help":"Muting turns off desktop, email and push notifications for this channel. The channel will not be marked as unread unless you\'re mentioned.","channel_notifications.muteChannel.off.title":"Off","channel_notifications.muteChannel.on.title":"On","channel_notifications.muteChannel.on.title.collapse":"Mute is enabled. Desktop, email and push notifications will not be sent for this channel.","channel_notifications.muteChannel.settings":"Mute channel","channel_notifications.never":"Never","channel_notifications.onlyMentions":"Only for mentions","channel_notifications.override":"Selecting an option other than \\"Default\\" will override the global notification settings. Desktop notifications are available on Firefox, Safari, and Chrome.","channel_notifications.overridePush":"Selecting an option other than \\"Global default\\" will override the global notification settings for mobile push notifications in account settings. Push notifications must be enabled by the System Admin.","channel_notifications.preferences":"Notification Preferences for ","channel_notifications.push":"Send mobile push notifications","channel_notifications.sendDesktop":"Send desktop notifications","channel_select.placeholder":"--- Select a channel ---","channel_switch_modal.deactivated":"Deactivated","channel_switch_modal.title":"Switch Channels","channel_toggle_button.private":"Private","channel_toggle_button.public":"Public","channelHeader.addToFavorites":"Add to Favorites","channelHeader.removeFromFavorites":"Remove from Favorites","channelHeader.unmute":"Unmute","claim.email_to_ldap.enterLdapPwd":"Enter the ID and password for your AD/LDAP account","claim.email_to_ldap.enterPwd":"Enter the password for your {site} email account","claim.email_to_ldap.ldapId":"AD/LDAP ID","claim.email_to_ldap.ldapIdError":"Please enter your AD/LDAP ID.","claim.email_to_ldap.ldapPasswordError":"Please enter your AD/LDAP password.","claim.email_to_ldap.ldapPwd":"AD/LDAP Password","claim.email_to_ldap.pwd":"Password","claim.email_to_ldap.pwdError":"Please enter your password.","claim.email_to_ldap.ssoNote":"You must already have a valid AD/LDAP account","claim.email_to_ldap.ssoType":"Upon claiming your account, you will only be able to login with AD/LDAP","claim.email_to_ldap.switchTo":"Switch Account to AD/LDAP","claim.email_to_ldap.title":"Switch Email/Password Account to AD/LDAP","claim.email_to_oauth.enterPwd":"Enter the password for your {site} account","claim.email_to_oauth.pwd":"Password","claim.email_to_oauth.pwdError":"Please enter your password.","claim.email_to_oauth.ssoNote":"You must already have a valid {type} account","claim.email_to_oauth.ssoType":"Upon claiming your account, you will only be able to login with {type} SSO","claim.email_to_oauth.switchTo":"Switch Account to {uiType}","claim.email_to_oauth.title":"Switch Email/Password Account to {uiType}","claim.ldap_to_email.confirm":"Confirm Password","claim.ldap_to_email.email":"After switching your authentication method, you will use {email} to login. Your AD/LDAP credentials will no longer allow access to Mattermost.","claim.ldap_to_email.enterLdapPwd":"{ldapPassword}:","claim.ldap_to_email.enterPwd":"New email login password:","claim.ldap_to_email.ldapPasswordError":"Please enter your AD/LDAP password.","claim.ldap_to_email.ldapPwd":"AD/LDAP Password","claim.ldap_to_email.pwd":"Password","claim.ldap_to_email.pwdError":"Please enter your password.","claim.ldap_to_email.pwdNotMatch":"Passwords do not match.","claim.ldap_to_email.switchTo":"Switch account to email/password","claim.ldap_to_email.title":"Switch AD/LDAP Account to Email/Password","claim.oauth_to_email.confirm":"Confirm Password","claim.oauth_to_email.description":"Upon changing your account type, you will only be able to login with your email and password.","claim.oauth_to_email.enterNewPwd":"Enter a new password for your {site} email account","claim.oauth_to_email.enterPwd":"Please enter a password.","claim.oauth_to_email.newPwd":"New Password","claim.oauth_to_email.pwdNotMatch":"Passwords do not match.","claim.oauth_to_email.switchTo":"Switch {type} to Email and Password","claim.oauth_to_email.title":"Switch {type} Account to Email","combined_system_message.added_to_channel.many_expanded":"{users} and {lastUser} were **added to the channel** by {actor}.","combined_system_message.added_to_channel.one":"{firstUser} **added to the channel** by {actor}.","combined_system_message.added_to_channel.one_you":"You were **added to the channel** by {actor}.","combined_system_message.added_to_channel.two":"{firstUser} and {secondUser} **added to the channel** by {actor}.","combined_system_message.added_to_team.many_expanded":"{users} and {lastUser} were **added to the team** by {actor}.","combined_system_message.added_to_team.one":"{firstUser} **added to the team** by {actor}.","combined_system_message.added_to_team.one_you":"You were **added to the team** by {actor}.","combined_system_message.added_to_team.two":"{firstUser} and {secondUser} **added to the team** by {actor}.","combined_system_message.joined_channel.many_expanded":"{users} and {lastUser} **joined the channel**.","combined_system_message.joined_channel.one":"{firstUser} **joined the channel**.","combined_system_message.joined_channel.one_you":"You **joined the channel**.","combined_system_message.joined_channel.two":"{firstUser} and {secondUser} **joined the channel**.","combined_system_message.joined_team.many_expanded":"{users} and {lastUser} **joined the team**.","combined_system_message.joined_team.one":"{firstUser} **joined the team**.","combined_system_message.joined_team.one_you":"You **joined the team**.","combined_system_message.joined_team.two":"{firstUser} and {secondUser} **joined the team**.","combined_system_message.left_channel.many_expanded":"{users} and {lastUser} **left the channel**.","combined_system_message.left_channel.one":"{firstUser} **left the channel**.","combined_system_message.left_channel.one_you":"You **left the channel**.","combined_system_message.left_channel.two":"{firstUser} and {secondUser} **left the channel**.","combined_system_message.left_team.many_expanded":"{users} and {lastUser} **left the team**.","combined_system_message.left_team.one":"{firstUser} **left the team**.","combined_system_message.left_team.one_you":"You **left the team**.","combined_system_message.left_team.two":"{firstUser} and {secondUser} **left the team**.","combined_system_message.removed_from_channel.many_expanded":"{users} and {lastUser} were **removed from the channel**.","combined_system_message.removed_from_channel.one":"{firstUser} was **removed from the channel**.","combined_system_message.removed_from_channel.one_you":"You were **removed from the channel**.","combined_system_message.removed_from_channel.two":"{firstUser} and {secondUser} were **removed from the channel**.","combined_system_message.removed_from_team.many_expanded":"{users} and {lastUser} were **removed from the team**.","combined_system_message.removed_from_team.one":"{firstUser} was **removed from the team**.","combined_system_message.removed_from_team.one_you":"You were **removed from the team**.","combined_system_message.removed_from_team.two":"{firstUser} and {secondUser} were **removed from the team**.","combined_system_message.you":"You","confirm_modal.cancel":"Cancel","convert_channel.cancel":"No, cancel","convert_channel.confirm":"Yes, convert to private channel","convert_channel.question1":"When you convert **{display_name}** to a private channel, history and membership are preserved. Publicly shared files remain accessible to anyone with the link. Membership in a private channel is by invitation only.","convert_channel.question2":"The change is permanent and cannot be undone.","convert_channel.question3":"Are you sure you want to convert **{display_name}** to a private channel?","convert_channel.title":"Convert {display_name} to a private channel?","copy_url_context_menu.getChannelLink":"Copy Link","create_comment.addComment":"Add a comment...","create_comment.comment":"Add Comment","create_comment.commentTitle":"Comment","create_comment.file":"File uploading","create_comment.files":"Files uploading","create_post.comment":"Comment","create_post.deactivated":"You are viewing an archived channel with a deactivated user.","create_post.error_message":"Your message is too long. Character count: {length}/{limit}","create_post.fileProcessing":"Processing...","create_post.icon":"Send Post Icon","create_post.post":"Post","create_post.read_only":"This channel is read-only. Only members with permission can post here.","create_post.send_message":"Send a message","create_post.shortcutsNotSupported":"Keyboard shortcuts are not supported on your device.","create_post.tutorialTip.title":"Sending Messages","create_post.tutorialTip1":"Type here to write a message and press **Enter** to post it.","create_post.tutorialTip2":"Click the **Attachment** button to upload an image or a file.","create_post.write":"Write to {channelDisplayName}","create_team.agreement":"By proceeding to create your account and use {siteName}, you agree to our [Terms of Service]({TermsOfServiceLink}) and [Privacy Policy]({PrivacyPolicyLink}). If you do not agree, you cannot use {siteName}.","create_team.display_name.charLength":"Name must be {min} or more characters up to a maximum of {max}. You can add a longer team description later.","create_team.display_name.nameHelp":"Name your team in any language. Your team name shows in menus and headings.","create_team.display_name.next":"Next","create_team.display_name.required":"This field is required","create_team.display_name.teamName":"Team Name","create_team.team_url.back":"Back to previous step","create_team.team_url.charLength":"Name must be {min} or more characters up to a maximum of {max}","create_team.team_url.creatingTeam":"Creating team...","create_team.team_url.finish":"Finish","create_team.team_url.hint1":"Short and memorable is best","create_team.team_url.hint2":"Use lowercase letters, numbers and dashes","create_team.team_url.hint3":"Must start with a letter and can\'t end in a dash","create_team.team_url.regex":"Use only lower case letters, numbers and dashes. Must start with a letter and can\'t end in a dash.","create_team.team_url.required":"This field is required","create_team.team_url.taken":"This URL [starts with a reserved word](!https://docs.mattermost.com/help/getting-started/creating-teams.html#team-url) or is unavailable. Please try another.","create_team.team_url.teamUrl":"Team URL","create_team.team_url.unavailable":"This URL is taken or unavailable. Please try another.","create_team.team_url.webAddress":"Choose the web address of your new team:","custom_emoji.header":"Custom Emoji","date_separator.today":"Today","date_separator.yesterday":"Yesterday","deactivate_member_modal.deactivate":"Deactivate","deactivate_member_modal.desc":"This action deactivates {username}. They will be logged out and not have access to any teams or channels on this system.\\n","deactivate_member_modal.desc.confirm":" Are you sure you want to deactivate {username}?","deactivate_member_modal.desc.for_users_with_bot_accounts":"This action deactivates {username}.\\n \\n * They will be logged out and not have access to any teams or channels on this system.\\n * Bot accounts they manage will be disabled along with their integrations. To enable them again, go to [Integrations > Bot Accounts]({siteURL}/_redirect/integrations/bots). [Learn more about bot accounts](!https://mattermost.com/pl/default-bot-accounts).\\n \\n \\n","deactivate_member_modal.sso_warning":"You must also deactivate this user in the SSO provider or they will be reactivated on next login or sync.","deactivate_member_modal.title":"Deactivate {username}","default_channel.purpose":"Post messages here that you want everyone to see. Everyone automatically becomes a permanent member of this channel when they join the team.","delete_channel.cancel":"Cancel","delete_channel.confirm":"Confirm ARCHIVE Channel","delete_channel.del":"Archive","delete_channel.question":"This will archive the channel from the team and make its contents inaccessible for all users. \\n \\nAre you sure you wish to archive the **{display_name}** channel?","delete_channel.viewArchived.question":"This will archive the channel from the team. Channel contents will still be accessible by channel members.\\n \\nAre you sure you wish to archive the **{display_name}** channel?","delete_post.cancel":"Cancel","delete_post.comment":"Comment","delete_post.confirm":"Confirm {term} Delete","delete_post.del":"Delete","delete_post.post":"Post","delete_post.question":"Are you sure you want to delete this {term}?","delete_post.warning":"This post has {count, number} {count, plural, one {comment} other {comments}} on it.","demote_to_user_modal.demote":"Demote","demote_to_user_modal.desc":"This action demotes the user {username} to a guest. It will restrict the user\'s ability to join public channels and interact with users outside of the channels they are currently members of. Are you sure you want to demote user {username} to guest?","demote_to_user_modal.title":"Demote user {username} to guest","device_icons.android":"Android Icon","device_icons.apple":"Apple Icon","device_icons.linux":"Linux Icon","device_icons.windows":"Windows Icon","discard_changes_modal.leave":"Yes, Discard","discard_changes_modal.message":"You have unsaved changes, are you sure you want to discard them?","discard_changes_modal.title":"Discard Changes?","edit_channel_header_modal.cancel":"Cancel","edit_channel_header_modal.description":"Edit the text appearing next to the channel name in the channel header.","edit_channel_header_modal.error":"This channel header is too long, please enter a shorter one","edit_channel_header_modal.save":"Save","edit_channel_header_modal.title":"Edit Header for {channel}","edit_channel_header_modal.title_dm":"Edit Header","edit_channel_header.editHeader":"Edit the Channel Header...","edit_channel_header.previewHeader":"Edit Header","edit_channel_private_purpose_modal.body":"This text appears in the \\"View Info\\" modal of the private channel.","edit_channel_purpose_modal.body":"Describe how this channel should be used. This text appears in the channel list in the \\"More...\\" menu and helps others decide whether to join.","edit_channel_purpose_modal.cancel":"Cancel","edit_channel_purpose_modal.error":"This channel purpose is too long, please enter a shorter one","edit_channel_purpose_modal.save":"Save","edit_channel_purpose_modal.title1":"Edit Purpose","edit_channel_purpose_modal.title2":"Edit Purpose for ","edit_command.update":"Update","edit_command.updating":"Updating...","edit_post.cancel":"Cancel","edit_post.edit":"Edit {title}","edit_post.editPost":"Edit the post...","edit_post.save":"Save","edit_post.time_limit_button.for_n_seconds":"For {n} seconds","edit_post.time_limit_button.no_limit":"Anytime","edit_post.time_limit_modal.description":"Setting a time limit applies to all users who have the \\"Edit Post\\" permissions in any permission scheme.","edit_post.time_limit_modal.invalid_time_limit":"Invalid time limit","edit_post.time_limit_modal.option_label_anytime":"Anytime","edit_post.time_limit_modal.option_label_time_limit.postinput":"seconds after posting","edit_post.time_limit_modal.option_label_time_limit.preinput":"Can edit for","edit_post.time_limit_modal.save_button":"Save Edit Time","edit_post.time_limit_modal.subscript":"Set the length of time users have to edit their messages after posting.","edit_post.time_limit_modal.title":"Configure Global Edit Post Time Limit","email_verify.almost":"{siteName}: You are almost done","email_verify.failed":" Failed to send verification email.","email_verify.notVerifiedBody":"Please verify your email address. Check your inbox for an email.","email_verify.resend":"Resend Email","email_verify.sent":" Verification email sent.","emoji_list.actions":"Actions","emoji_list.add":"Add Custom Emoji","emoji_list.creator":"Creator","emoji_list.delete":"Delete","emoji_list.delete.confirm.button":"Delete","emoji_list.delete.confirm.msg":"This action permanently deletes the custom emoji. Are you sure you want to delete it?","emoji_list.delete.confirm.title":"Delete Custom Emoji","emoji_list.empty":"No Custom Emoji Found","emoji_list.header":"Custom Emoji","emoji_list.help":"Custom emoji are available to everyone on your server. Type \':\' followed by two characters in a message box to bring up the emoji selection menu.","emoji_list.help2":"Tip: If you add #, ##, or ### as the first character on a new line containing emoji, you can use larger sized emoji. To try it out, send a message such as: \'# :smile:\'.","emoji_list.image":"Image","emoji_list.name":"Name","emoji_list.search":"Search Custom Emoji","emoji_picker_item.emoji_aria_label":"{emojiName} emoji","emoji_picker.activity":"Activity","emoji_picker.close":"Close","emoji_picker.custom":"Custom","emoji_picker.emojiPicker":"Emoji Picker","emoji_picker.flags":"Flags","emoji_picker.foods":"Foods","emoji_picker.header":"Emoji Picker","emoji_picker.nature":"Nature","emoji_picker.objects":"Objects","emoji_picker.people":"People","emoji_picker.places":"Places","emoji_picker.recent":"Recently Used","emoji_picker.search":"Search Emoji","emoji_picker.search_emoji":"Search for an emoji","emoji_picker.searchResults":"Search Results","emoji_picker.symbols":"Symbols","error.channel_not_found.message":"The channel you\'re requesting is private or does not exist. Please contact an Administrator to be added to the channel.","error.channel_not_found.message_guest":"Your guest account has no channels assigned. Please contact an administrator.","error.channel_not_found.title":"Channel Not Found","error.channelNotFound.guest_link":"Back","error.channelNotFound.link":"Back to {defaultChannelName}","error.generic.link":"Back to {siteName}","error.generic.link_login":"Back to Login Page","error.generic.message":"An error has occurred.","error.generic.title":"Error","error.local_storage.help1":"Enable cookies","error.local_storage.help2":"Turn off private browsing","error.local_storage.help3":"Use a supported browser (IE 11, Chrome 61+, Firefox 60+, Safari 12+, Edge 42+)","error.local_storage.message":"Mattermost was unable to load because a setting in your browser prevents the use of its local storage features. To allow Mattermost to load, try the following actions:","error.local_storage.title":"Cannot Load Mattermost","error.not_found.message":"The page you were trying to reach does not exist","error.not_found.title":"Page not found","error.oauth_access_denied":"You must authorize Mattermost to log in with {service}.","error.oauth_access_denied.title":"Authorization Error","error.oauth_missing_code":"The service provider {service} did not provide an authorization code in the redirect URL.","error.oauth_missing_code.forum":"If you reviewed the above and are still having trouble with configuration, you may post in our {link} where we\'ll be happy to help with issues during setup.","error.oauth_missing_code.forum.link":"Troubleshooting forum","error.oauth_missing_code.gitlab":"For {link} please make sure you followed the setup instructions.","error.oauth_missing_code.gitlab.link":"GitLab","error.oauth_missing_code.google":"For {link} make sure your administrator enabled the Google+ API.","error.oauth_missing_code.google.link":"Google Apps","error.oauth_missing_code.office365":"For {link} make sure the administrator of your Microsoft organization has enabled the Mattermost app.","error.oauth_missing_code.office365.link":"Office 365","error.oauth_missing_code.title":"Mattermost needs your help","error.plugin_not_found.desc":"The plugin you are looking for does not exist.","error.plugin_not_found.title":"Plugin not found","error.team_not_found.message":"The team you\'re requesting is private or does not exist. Please contact your Administrator for an invitation.","error.team_not_found.title":"Team Not Found","file_attachment.thumbnail":"file thumbnail","file_info_preview.size":"Size ","file_info_preview.type":"File type ","file_upload.disabled":"File attachments are disabled.","file_upload.drag_folder":"Folders cannot be uploaded. Please drag all files separately.","file_upload.fileAbove":"File above {max}MB cannot be uploaded: {filename}","file_upload.filesAbove":"Files above {max}MB cannot be uploaded: {filenames}","file_upload.generic_error":"There was a problem uploading your files.","file_upload.limited":"Uploads limited to {count, number} files maximum. Please use additional posts for more files.","file_upload.menuAriaLabel":"Upload type selector","file_upload.pasted":"Image Pasted at ","file_upload.upload_files":"Upload files","file_upload.zeroBytesFile":"You are uploading an empty file: {filename}","file_upload.zeroBytesFiles":"You are uploading empty files: {filenames}","filtered_channels_list.search":"Search channels","filtered_user_list.countTotal":"{count, number} {count, plural, one {member} other {members}} of {total, number} total","filtered_user_list.countTotalPage":"{startCount, number} - {endCount, number} {count, plural, one {member} other {members}} of {total, number} total","filtered_user_list.next":"Next","filtered_user_list.prev":"Previous","filtered_user_list.search":"Search users","filtered_user_list.team":"Team:","filtered_user_list.userStatus":"User Status:","flag_post.flag":"Flag for follow up","flag_post.unflag":"Unflag","full_screen_modal.back":"Back","full_screen_modal.close":"Close","general_button.close":"Close","general_button.esc":"Esc","general_tab.allowedDomains":"Allow only users with a specific email domain to join this team","general_tab.allowedDomains.ariaLabel":"Allowed Domains","general_tab.allowedDomainsEdit":"Click \'Edit\' to add an email domain whitelist.","general_tab.AllowedDomainsExample":"corp.mattermost.com, mattermost.org","general_tab.AllowedDomainsInfo":"Users can only join the team if their email matches a specific domain (e.g. \\"mattermost.org\\") or list of comma-separated domains (e.g. \\"corp.mattermost.com, mattermost.org\\").","general_tab.chooseDescription":"Please choose a new description for your team","general_tab.codeDesc":"Click \'Edit\' to regenerate Invite Code.","general_tab.codeLongDesc":"The Invite Code is used as part of the URL in the team invitation link created by {getTeamInviteLink} in the main menu. Regenerating creates a new team invitation link and invalidates the previous link.","general_tab.codeTitle":"Invite Code","general_tab.emptyDescription":"Click \'Edit\' to add a team description.","general_tab.getTeamInviteLink":"Get Team Invite Link","general_tab.no":"No","general_tab.openInviteDesc":"When allowed, a link to this team will be included on the landing page allowing anyone with an account to join this team.","general_tab.openInviteTitle":"Allow any user with an account on this server to join this team","general_tab.regenerate":"Regenerate","general_tab.required":"This field is required","general_tab.teamDescription":"Team Description","general_tab.teamDescriptionInfo":"Team description provides additional information to help users select the right team. Maximum of 50 characters.","general_tab.teamIcon":"Team Icon","general_tab.teamIconEditHint":"Click \'Edit\' to upload an image.","general_tab.teamIconEditHintMobile":"Click to upload an image","general_tab.teamIconError":"An error occurred while selecting the image.","general_tab.teamIconInvalidFileType":"Only BMP, JPG or PNG images may be used for team icons","general_tab.teamIconLastUpdated":"Image last updated {date}","general_tab.teamIconTooLarge":"Unable to upload team icon. File is too large.","general_tab.teamName":"Team Name","general_tab.teamNameInfo":"Set the name of the team as it appears on your sign-in screen and at the top of the left-hand sidebar.","general_tab.teamNameRestrictions":"Team Name must be {min} or more characters up to a maximum of {max}. You can add a longer team description.","general_tab.title":"General Settings","general_tab.yes":"Yes","generic_icons.add":"Add Icon","generic_icons.add-mail":"Add Mail Icon","generic_icons.alert":"Alert Icon","generic_icons.archive":"Archive Icon","generic_icons.arrow.down":"Down Arrow Icon","generic_icons.attach":"Attachment Icon","generic_icons.back":"Back Icon","generic_icons.bot":"Bot Icon","generic_icons.breadcrumb":"Breadcrumb Icon","generic_icons.channel.arrow-right":"Arrow right","generic_icons.channel.draft":"Channel Draft Icon","generic_icons.channel.private":"Private Channel Icon","generic_icons.channel.public":"Public Channel Icon","generic_icons.close":"Close Icon","generic_icons.collapse":"Collapse Icon","generic_icons.download":"Download Icon","generic_icons.dropdown":"Dropdown Icon","generic_icons.edit":"Edit Icon","generic_icons.elipsisHorizontalIcon":"Ellipsis Horizontal Icon","generic_icons.expand":"Expand Icon","generic_icons.fail":"Faliure Icon","generic_icons.flag":"Flag Icon","generic_icons.flagged":"Flagged Icon","generic_icons.info":"Info Icon","generic_icons.invite":"Invite Icon","generic_icons.invite_members":"Invite Members Icon","generic_icons.link":"Link Icon","generic_icons.loading":"Loading Icon","generic_icons.logout":"Logout Icon","generic_icons.mail":"Mail Icon","generic_icons.mattermost":"Mattermost Logo","generic_icons.member":"Member Icon","generic_icons.mention":"Mention Icon","generic_icons.menu":"Menu Icon","generic_icons.message":"Message Icon","generic_icons.muted":"Muted Icon","generic_icons.next":"Next Icon","generic_icons.pin":"Pin Icon","generic_icons.plugin":"Plugin Icon","generic_icons.plugins":"Plugins","generic_icons.previous":"Previous Icon","generic_icons.reload":"Reload Icon","generic_icons.remove":"Remove Icon","generic_icons.reply":"Reply Icon","generic_icons.search":"Search Icon","generic_icons.select":"Select Icon","generic_icons.settings":"Settings Icon","generic_icons.success":"Success Icon","generic_icons.upload":"Upload Icon","generic_icons.warning":"Warning Icon","get_app.continueToBrowser":"View in Browser","get_app.dontHaveTheDesktopApp":"Don\'t have the Desktop App?","get_app.dontHaveTheMobileApp":"Don\'t have the Mobile App?","get_app.downloadTheAppNow":"Download the app now.","get_app.ifNothingPrompts":"You can view it in the{siteName} desktop app or continue in the web browser.","get_app.ifNothingPromptsMobile":"You can view it in the{siteName} mobile app or continue in the web browser.","get_app.launching":"Where would you like to view this?","get_app.openingLink":"Opening link in Mattermost...","get_app.openingLinkWhiteLabel":"Opening link in the Desktop App...","get_app.openLinkInBrowser":"Or, [open this link in your browser.](!{link})","get_app.redirectedInMoments":"You will be redirected in a few moments.","get_app.rememberMyPreference":"Remember my preference","get_app.systemDialogMessage":"View in Desktop App","get_app.systemDialogMessageMobile":"View in App","get_link.clipboard":" Link copied","get_link.close":"Close","get_link.copy":"Copy Link","get_post_link_modal.help":"The link below allows authorized users to see your post.","get_post_link_modal.title":"Copy Permalink","get_public_link_modal.help":"The link below allows anyone to see this file without being registered on this server.","get_public_link_modal.title":"Copy Public Link","gif_picker.gfycat":"Search Gfycat","group_list_modal.addGroupButton":"Add Groups","group_list_modal.removeGroupButton":"Remove Group","groups":"{team} Groups","help.attaching.downloading.description":"Download an attached file by clicking the download icon next to the file thumbnail or by opening the file previewer and clicking **Download**.","help.attaching.downloading.title":"Downloading Files","help.attaching.dragdrop.description":"Upload a file or selection of files by dragging the files from your computer into the right-hand sidebar or center pane. Dragging and dropping attaches the files to the message input box, then you can optionally type a message and press **ENTER** to post.","help.attaching.dragdrop.title":"Drag and Drop","help.attaching.icon.description":"Alternatively, upload files by clicking the grey paperclip icon inside the message input box. This opens up your system file viewer where you can navigate to the desired files and then click **Open** to upload the files to the message input box. Optionally type a message and then press **ENTER** to post.","help.attaching.icon.title":"Attachment Icon","help.attaching.limitations.description":"Mattermost supports a maximum of five attached files per post, each with a maximum file size of 50Mb.","help.attaching.limitations.title":"File Size Limitations","help.attaching.methods.description":"Attach a file by drag and drop or by clicking the attachment icon in the message input box.","help.attaching.methods.title":"Attachment Methods","help.attaching.notSupported":"Document preview (Word, Excel, PPT) is not yet supported.","help.attaching.pasting.description":"On Chrome and Edge browsers, it is also possible to upload files by pasting them from the clipboard. This is not yet supported on other browsers.","help.attaching.pasting.title":"Pasting Images","help.attaching.previewer.description":"Mattermost has a built in file previewer that is used to view media, download files and share public links. Click the thumbnail of an attached file to open it in the file previewer.","help.attaching.previewer.title":"File Previewer","help.attaching.publicLinks.description":"Public links allow you to share file attachments with people outside your Mattermost team. Open the file previewer by clicking on the thumbnail of an attachment, then click **Get Public Link**. This opens a dialog box with a link to copy. When the link is shared and opened by another user, the file will automatically download.","help.attaching.publicLinks.title":"Sharing Public Links","help.attaching.publicLinks2":"If **Get Public Link** is not visible in the file previewer and you prefer the feature enabled, you can request that your System Admin enable the feature from the System Console under **Security** > **Public Links**.","help.attaching.supported.description":"If you are trying to preview a media type that is not supported, the file previewer will open a standard media attachment icon. Supported media formats depend heavily on your browser and operating system, but the following formats are supported by Mattermost on most browsers:","help.attaching.supported.title":"Supported Media Types","help.attaching.supportedListItem1":"Images: BMP, GIF, JPG, JPEG, PNG","help.attaching.supportedListItem2":"Video: MP4","help.attaching.supportedListItem3":"Audio: MP3, M4A","help.attaching.supportedListItem4":"Documents: PDF","help.attaching.title":"Attaching Files","help.commands.builtin.description":"The following slash commands are available on all Mattermost installations:","help.commands.builtin.title":"Built-in Commands","help.commands.builtin2":"Begin by typing `/` and a list of slash command options appears above the text input box. The autocomplete suggestions help by providing a format example in black text and a short description of the slash command in grey text.","help.commands.custom.description":"Custom slash commands integrate with external applications. For example, a team might configure a custom slash command to check internal health records with `/patient joe smith` or check the weekly weather forecast in a city with `/weather toronto week`. Check with your System Admin or open the autocomplete list by typing `/` to determine if your team configured any custom slash commands.","help.commands.custom.title":"Custom Commands","help.commands.custom2":"Custom slash commands are disabled by default and can be enabled by the System Admin in the **System Console** > **Integrations** > **Webhooks and Commands**. Learn about configuring custom slash commands on the [developer slash command documentation page](!http://docs.mattermost.com/developer/slash-commands.html).","help.commands.intro1":"Slash commands perform operations in Mattermost by typing into the text input box. Enter a `/` followed by a command and some arguments to perform actions.","help.commands.intro2":"Built-in slash commands come with all Mattermost installations and custom slash commands are configurable to interact with external applications. Learn about configuring custom slash commands on the [developer slash command documentation page](!http://docs.mattermost.com/developer/slash-commands.html).","help.commands.title":"Executing Commands","help.composing.deleting.description":"Delete a message by clicking the **[...]** icon next to any message text that you\'ve composed, then click **Delete**. System and Team Admins can delete any message on their system or team.","help.composing.deleting.title":"Deleting a message","help.composing.editing.description":"Edit a message by clicking the **[...]** icon next to any message text that you\'ve composed, then click **Edit**. After making modifications to the message text, press **ENTER** to save the modifications. Message edits do not trigger new @mention notifications, desktop notifications or notification sounds.","help.composing.editing.title":"Editing a Message","help.composing.linking.description":"The **Permalink** feature creates a link to any message. Sharing this link with other users in the channel lets them view the linked message in the Message Archives. Users who are not a member of the channel where the message was posted cannot view the permalink. Get the permalink to any message by clicking the **[...]** icon next to the message text > **Permalink** > **Copy Link**.","help.composing.linking.title":"Linking to a message","help.composing.posting.description":"Write a message by typing into the text input box, then press ENTER to send it. Use SHIFT+ENTER to create a new line without sending a message. To send messages by pressing CTRL+ENTER go to **Main Menu > Account Settings > Send messages on CTRL+ENTER**.","help.composing.posting.title":"Posting a Message","help.composing.posts.description":"Posts can be considered parent messages. They are the messages that often start a thread of replies. Posts are composed and sent from the text input box at the bottom of the center pane.","help.composing.posts.title":"Posts","help.composing.replies.description1":"Reply to a message by clicking the reply icon next to any message text. This action opens the right-hand sidebar where you can see the message thread, then compose and send your reply. Replies are indented slightly in the center pane to indicate that they are child messages of a parent post.","help.composing.replies.description2":"When composing a reply in the right-hand side, click the expand/collapse icon with two arrows at the top of the sidebar to make things easier to read.","help.composing.replies.title":"Replies","help.composing.title":"Sending Messages","help.composing.types.description":"Reply to posts to keep conversations organized in threads.","help.composing.types.title":"Message Types","help.formatting.checklist":"Make a task list by including square brackets:","help.formatting.checklistExample":"- [ ] Item one\\n- [ ] Item two\\n- [x] Completed item","help.formatting.code.description":"Create a code block by indenting each line by four spaces, or by placing ``` on the line above and below your code.","help.formatting.code.title":"Code Block","help.formatting.codeBlock":"Code block","help.formatting.emojis.description":"Open the emoji autocomplete by typing `:`. A full list of emojis can be found [here](!http://www.emoji-cheat-sheet.com/). It is also possible to create your own [Custom Emoji](!http://docs.mattermost.com/help/settings/custom-emoji.html) if the emoji you want to use doesn\'t exist.","help.formatting.emojis.title":"Emojis","help.formatting.example":"Example:","help.formatting.githubTheme":"**GitHub Theme**","help.formatting.headings.description":"Make a heading by typing # and a space before your title. For smaller headings, use more #\'s.","help.formatting.headings.title":"Headings","help.formatting.headings2":"Alternatively, you can underline the text using `===` or `---` to create headings.","help.formatting.headings2Example":"Large Heading\\n-------------","help.formatting.headingsExample":"## Large Heading\\n### Smaller Heading\\n#### Even Smaller Heading","help.formatting.images.description":"Create in-line images using an `!` followed by the alt text in square brackets and the link in normal brackets. Add hover text by placing it in quotes after the link.","help.formatting.images.title":"In-line Images","help.formatting.imagesExample":"\\n\\nand\\n\\n[](https://travis-ci.org/mattermost/mattermost-server) [](https://github.com/mattermost/mattermost-server)","help.formatting.inline.description":"Create in-line monospaced font by surrounding it with backticks.","help.formatting.inline.title":"In-line Code","help.formatting.intro":"Markdown makes it easy to format messages. Type a message as you normally would, and use these rules to render it with special formatting.","help.formatting.lines.description":"Create a line by using three `*`, `_`, or `-`.","help.formatting.lines.title":"Lines","help.formatting.linkEx":"[Check out Mattermost!](https://about.mattermost.com/)","help.formatting.links.description":"Create labeled links by putting the desired text in square brackets and the associated link in normal brackets.","help.formatting.links.title":"Links","help.formatting.listExample":"* list item one\\n* list item two\\n * item two sub-point","help.formatting.lists.description":"Create a list by using `*` or `-` as bullets. Indent a bullet point by adding two spaces in front of it.","help.formatting.lists.title":"Lists","help.formatting.monokaiTheme":"**Monokai Theme**","help.formatting.ordered":"Make it an ordered list by using numbers instead:","help.formatting.orderedExample":"1. Item one\\n2. Item two","help.formatting.quotes.description":"Create block quotes using `>`.","help.formatting.quotes.title":"Block quotes","help.formatting.quotesExample":"`> block quotes` renders as:","help.formatting.quotesRender":"> block quotes","help.formatting.renders":"Renders as:","help.formatting.solirizedDarkTheme":"**Solarized Dark Theme**","help.formatting.solirizedLightTheme":"**Solarized Light Theme**","help.formatting.style.description":"You can use either `_` or `*` around a word to make it italic. Use two to make it bold.","help.formatting.style.listItem1":"`_italics_` renders as _italics_","help.formatting.style.listItem2":"`**bold**` renders as **bold**","help.formatting.style.listItem3":"`**_bold-italic_**` renders as **_bold-italics_**","help.formatting.style.listItem4":"`~~strikethrough~~` renders as ~~strikethrough~~","help.formatting.style.title":"Text Style","help.formatting.supportedSyntax":"Supported languages are: `as`, `applescript`, `osascript`, `scpt`, `bash`, `sh`, `zsh`, `clj`, `boot`, `cl2`, `cljc`, `cljs`, `cljs.hl`, `cljscm`, `cljx`, `hic`, `coffee`, `_coffee`, `cake`, `cjsx`, `cson`, `iced`, `cpp`, `c`, `cc`, `h`, `c++`, `h++`, `hpp`, `cs`, `csharp`, `css`, `d`, `di`, `dart`, `delphi`, `dpr`, `dfm`, `pas`, `pascal`, `freepascal`, `lazarus`, `lpr`, `lfm`, `diff`, `django`, `jinja`, `dockerfile`, `docker`, `erl`, `fortran`, `fsharp`, `fs`, `gcode`, `nc`, `go`, `groovy`, `handlebars`, `hbs`, `html.hbs`, `html.handlebars`, `hs`, `hx`, `java`, `jsp`, `js`, `jsx`, `json`, `jl`, `kt`, `ktm`, `kts`, `less`, `lisp`, `lua`, `mk`, `mak`, `md`, `mkdown`, `mkd`, `matlab`, `m`, `mm`, `objc`, `obj-c`, `ml`, `perl`, `pl`, `php`, `php3`, `php4`, `php5`, `php6`, `ps`, `ps1`, `pp`, `py`, `gyp`, `r`, `ruby`, `rb`, `gemspec`, `podspec`, `thor`, `irb`, `rs`, `scala`, `scm`, `sld`, `scss`, `st`, `styl`, `sql`, `swift`, `tex`, `vbnet`, `vb`, `bas`, `vbs`, `v`, `veo`, `xml`, `html`, `xhtml`, `rss`, `atom`, `xsl`, `plist`, `yaml`","help.formatting.syntax.description":"To add syntax highlighting, type the language to be highlighted after the ``` at the beginning of the code block. Mattermost also offers four different code themes (GitHub, Solarized Dark, Solarized Light, Monokai) that can be changed in **Account Settings** > **Display** > **Theme** > **Custom Theme** > **Center Channel Styles**","help.formatting.syntax.title":"Syntax Highlighting","help.formatting.syntaxEx":"```goAA\\npackage main\\nimport \\"fmt\\"\\nfunc main() {\\n fmt.Println(\\"Hello, 世界\\")\\n}\\n```","help.formatting.tableExample":"| Left-Aligned | Center Aligned | Right Aligned |\\n| :------------ |:---------------:| -----:|\\n| Left column 1 | this text | $100 |\\n| Left column 2 | is | $10 |\\n| Left column 3 | centered | $1 |","help.formatting.tables.description":"Create a table by placing a dashed line under the header row and separating the columns with a pipe `|`. (The columns don\'t need to line up exactly for it to work). Choose how to align table columns by including colons `:` within the header row.","help.formatting.tables.title":"Tables","help.formatting.title":"Formatting Text","help.learnMore":"Learn more about:","help.link.attaching":"Attaching Files","help.link.commands":"Executing Commands","help.link.composing":"Composing Messages and Replies","help.link.formatting":"Formatting Messages Using Markdown","help.link.mentioning":"Mentioning Teammates","help.link.messaging":"Basic Messaging","help.mentioning.channel.description":"You can mention an entire channel by typing `@channel`. All members of the channel will receive a mention notification that behaves the same way as if the members had been mentioned personally.","help.mentioning.channel.title":"@Channel","help.mentioning.channelExample":"@channel great work on interviews this week. I think we found some excellent potential candidates!","help.mentioning.mentions.description":"Use @mentions to get the attention of specific team members.","help.mentioning.mentions.title":"@Mentions","help.mentioning.recent.description":"Click `@` next to the search box to query for your most recent @mentions and words that trigger mentions. Click **Jump** next to a search result in the right-hand sidebar to jump the center pane to the channel and location of the message with the mention.","help.mentioning.recent.title":"Recent Mentions","help.mentioning.title":"Mentioning Teammates","help.mentioning.triggers.description":"In addition to being notified by @username and @channel, you can customize words that trigger mention notifications in **Account Settings** > **Notifications** > **Words that trigger mentions**. By default, you will receive mention notifications on your first name, and you can add more words by typing them into the input box separated by commas. This is useful if you want to be notified of all posts on certain topics, for example, \\"interviewing\\" or \\"marketing\\".","help.mentioning.triggers.title":"Words That Trigger Mentions","help.mentioning.username.description1":"You can mention a teammate by using the `@` symbol plus their username to send them a mention notification.","help.mentioning.username.description2":"Type `@` to bring up a list of team members who can be mentioned. To filter the list, type the first few letters of any username, first name, last name, or nickname. The **Up** and **Down** arrow keys can then be used to scroll through entries in the list, and pressing **ENTER** will select which user to mention. Once selected, the username will automatically replace the full name or nickname. The following example sends a special mention notification to **alice** that alerts her of the channel and message where she has been mentioned. If **alice** is away from Mattermost and has [email notifications](!http://docs.mattermost.com/help/getting-started/configuring-notifications.html#email-notifications) turned on, then she will receive an email alert of her mention along with the message text.","help.mentioning.username.title":"@Username","help.mentioning.usernameCont":"If the user you mentioned does not belong to the channel, a System Message will be posted to let you know. This is a temporary message only seen by the person who triggered it. To add the mentioned user to the channel, go to the dropdown menu beside the channel name and select **Add Members**.","help.mentioning.usernameExample":"@alice how did your interview go with the new candidate?","help.messaging.attach":"**Attach files** by dragging and dropping into Mattermost or clicking the attachment icon in the text input box.","help.messaging.emoji":"**Quickly add emoji** by typing \\":\\", which will open an emoji autocomplete. If the existing emoji don\'t cover what you want to express, you can also create your own [Custom Emoji](!http://docs.mattermost.com/help/settings/custom-emoji.html).","help.messaging.format":"**Format your messages** using Markdown that supports text styling, headings, links, emoticons, code blocks, block quotes, tables, lists and in-line images.","help.messaging.notify":"**Notify teammates** when they are needed by typing `@username`.","help.messaging.reply":"**Reply to messages** by clicking the reply arrow next to the message text.","help.messaging.title":"Messaging Basics","help.messaging.write":"**Write messages** using the text input box at the bottom of Mattermost. Press ENTER to send a message. Use SHIFT+ENTER to create a new line without sending a message.","installed_command.header":"Slash Commands","installed_commands.add":"Add Slash Command","installed_commands.delete.confirm":"This action permanently deletes the slash command and breaks any integrations using it. Are you sure you want to delete it?","installed_commands.empty":"No commands found","installed_commands.emptySearch":"No commands match **{searchTerm}**","installed_commands.header":"Slash Commands","installed_commands.help":"Use slash commands to connect external tools to Mattermost. {buildYourOwn} or visit the {appDirectory} to find self-hosted, third-party apps and integrations.","installed_commands.help.appDirectory":"App Directory","installed_commands.help.buildYourOwn":"Build Your Own","installed_commands.search":"Search Slash Commands","installed_commands.unnamed_command":"Unnamed Slash Command","installed_incoming_webhooks.add":"Add Incoming Webhook","installed_incoming_webhooks.delete.confirm":"This action permanently deletes the incoming webhook and breaks any integrations using it. Are you sure you want to delete it?","installed_incoming_webhooks.empty":"No incoming webhooks found","installed_incoming_webhooks.emptySearch":"No incoming webhooks match **{searchTerm}**","installed_incoming_webhooks.header":"Incoming Webhooks","installed_incoming_webhooks.help":"Use incoming webhooks to connect external tools to Mattermost. {buildYourOwn} or visit the {appDirectory} to find self-hosted, third-party apps and integrations.","installed_incoming_webhooks.help.appDirectory":"App Directory","installed_incoming_webhooks.help.buildYourOwn":"Build Your Own","installed_incoming_webhooks.search":"Search Incoming Webhooks","installed_incoming_webhooks.unknown_channel":"A Private Webhook","installed_integrations.callback_urls":"Callback URLs: {urls}","installed_integrations.client_id":"Client ID: **{clientId}**","installed_integrations.client_secret":"Client Secret: **{clientSecret}**","installed_integrations.content_type":"Content-Type: {contentType}","installed_integrations.creation":"Created by {creator} on {createAt, date, full}","installed_integrations.delete":"Delete","installed_integrations.edit":"Edit","installed_integrations.hideSecret":"Hide Secret","installed_integrations.regenSecret":"Regenerate Secret","installed_integrations.regenToken":"Regenerate Token","installed_integrations.showSecret":"Show Secret","installed_integrations.token":"Token: {token}","installed_integrations.triggerWhen":"Trigger When: {triggerWhen}","installed_integrations.triggerWords":"Trigger Words: {triggerWords}","installed_integrations.unnamed_oauth_app":"Unnamed OAuth 2.0 Application","installed_integrations.url":"URL: {url}","installed_oauth_apps.add":"Add OAuth 2.0 Application","installed_oauth_apps.callbackUrls":"Callback URLs (One Per Line)","installed_oauth_apps.cancel":"Cancel","installed_oauth_apps.delete.confirm":"This action permanently deletes the OAuth 2.0 application and breaks any integrations using it. Are you sure you want to delete it?","installed_oauth_apps.description":"Description","installed_oauth_apps.empty":"No OAuth 2.0 Applications found","installed_oauth_apps.emptySearch":"No OAuth 2.0 Applications match **{searchTerm}**","installed_oauth_apps.header":"OAuth 2.0 Applications","installed_oauth_apps.help":"Create {oauthApplications} to securely integrate bots and third-party apps with Mattermost. Visit the {appDirectory} to find available self-hosted apps.","installed_oauth_apps.help.appDirectory":"App Directory","installed_oauth_apps.help.oauthApplications":"OAuth 2.0 applications","installed_oauth_apps.homepage":"Homepage","installed_oauth_apps.iconUrl":"Icon URL","installed_oauth_apps.is_trusted":"Is Trusted: **{isTrusted}**","installed_oauth_apps.name":"Display Name","installed_oauth_apps.save":"Save","installed_oauth_apps.saving":"Saving...","installed_oauth_apps.search":"Search OAuth 2.0 Applications","installed_oauth_apps.trusted":"Is Trusted","installed_oauth_apps.trusted.no":"No","installed_oauth_apps.trusted.yes":"Yes","installed_outgoing_webhooks.add":"Add Outgoing Webhook","installed_outgoing_webhooks.delete.confirm":"This action permanently deletes the outgoing webhook and breaks any integrations using it. Are you sure you want to delete it?","installed_outgoing_webhooks.empty":"No outgoing webhooks found","installed_outgoing_webhooks.emptySearch":"No outgoing webhooks match **{searchTerm}**","installed_outgoing_webhooks.header":"Outgoing Webhooks","installed_outgoing_webhooks.help":"Use outgoing webhooks to connect external tools to Mattermost. {buildYourOwn} or visit the {appDirectory} to find self-hosted, third-party apps and integrations.","installed_outgoing_webhooks.help.appDirectory":"App Directory","installed_outgoing_webhooks.help.buildYourOwn":"Build your own","installed_outgoing_webhooks.search":"Search Outgoing Webhooks","installed_outgoing_webhooks.unknown_channel":"A Private Webhook","integrations.add":"Add","integrations.command.description":"Slash commands send events to external integrations","integrations.command.title":"Slash Commands","integrations.delete.confirm.button":"Delete","integrations.delete.confirm.title":"Delete Integration","integrations.done":"Done","integrations.edit":"Edit","integrations.header":"Integrations","integrations.help":"Visit the {appDirectory} to find self-hosted, third-party apps and integrations for Mattermost.","integrations.help.appDirectory":"App Directory","integrations.incomingWebhook.description":"Incoming webhooks allow external integrations to send messages","integrations.incomingWebhook.title":"Incoming Webhooks","integrations.oauthApps.description":"OAuth 2.0 allows external applications to make authorized requests to the Mattermost API","integrations.oauthApps.title":"OAuth 2.0 Applications","integrations.outgoingWebhook.description":"Outgoing webhooks allow external integrations to receive and respond to messages","integrations.outgoingWebhook.title":"Outgoing Webhooks","integrations.successful":"Setup Successful","interactive_dialog.cancel":"Cancel","interactive_dialog.element.optional":"(optional)","interactive_dialog.submit":"Submit","interactive_dialog.submitting":"Submitting...","intro_messages.addGroups":"Add groups to this private channel","intro_messages.addGroupsToTeam":"Add other groups to this team","intro_messages.anyMember":" Any member can join and read this channel.","intro_messages.beginning":"Beginning of {name}","intro_messages.creator":"This is the start of the {name} channel, created by {creator} on {date}.","intro_messages.creatorPrivate":"This is the start of the {name} private channel, created by {creator} on {date}.","intro_messages.default":"**Welcome to {display_name}!**\\n \\nPost messages here that you want everyone to see. Everyone automatically becomes a permanent member of this channel when they join the team.","intro_messages.DM":"This is the start of your direct message history with {teammate}.\\nDirect messages and files shared here are not shown to people outside this area.","intro_messages.GM":"This is the start of your group message history with {names}.\\nMessages and files shared here are not shown to people outside this area.","intro_messages.group_message":"This is the start of your group message history with these teammates. Messages and files shared here are not shown to people outside this area.","intro_messages.invite":"Invite others to this channel","intro_messages.inviteOthers":"Invite others to this team","intro_messages.invitePrivate":"Invite others to this private channel","intro_messages.noCreator":"This is the start of the {name} channel, created on {date}.","intro_messages.noCreatorPrivate":"This is the start of the {name} private channel, created on {date}.","intro_messages.offTopic":"This is the start of {display_name}, a channel for non-work-related conversations.","intro_messages.onlyInvited":" Only invited members can see this private channel.","intro_messages.purpose":" This channel\'s purpose is: {purpose}","intro_messages.purposePrivate":" This private channel\'s purpose is: {purpose}","intro_messages.readonly.default":"**Welcome to {display_name}!**\\n \\nMessages can only be posted by system admins. Everyone automatically becomes a permanent member of this channel when they join the team.","intro_messages.setHeader":"Set a Header","intro_messages.teammate":"This is the start of your direct message history with this teammate. Direct messages and files shared here are not shown to people outside this area.","invitation_modal.confirm.done":"Done","invitation_modal.confirm.guests_title":"**Guests** Invited to **{teamName}**","invitation_modal.confirm.members_subtitle":"**{sentCount, number} {sentCount, plural, one {person} other {people}}** {sentCount, plural, one {has} other {have}} been invited, and **{notSentCount, number} {notSentCount, plural, one {invitation} other {invitations}}** {notSentCount, plural, one {was} other {were}} not sent","invitation_modal.confirm.members_subtitle_without_not_sent":"**{sentCount, number} {sentCount, plural, one {person} other {people}}** {sentCount, plural, one {has} other {have}} been invited","invitation_modal.confirm.members_subtitle_without_sent":"**{notSentCount, number} {notSentCount, plural, one {invitation} other {invitations}}** {notSentCount, plural, one {was} other {were}} not sent","invitation_modal.confirm.members_subtitle_without_sent_and_not_sent":"No invitation sent","invitation_modal.confirm.members_title":"**Members** Invited to **{teamName}**","invitation_modal.confirm.not-sent-header":"Invitations Not Sent","invitation_modal.confirm.sent-header":"Successful Invites","invitation_modal.guests.add_channels.placeholder":"Search and add channels","invitation_modal.guests.add_channels.title":"Search and Add Channels","invitation_modal.guests.add_people.description":"Add existing guests or send email invites to new guests.","invitation_modal.guests.add_people.description-email-disabled":"Add existing guests.","invitation_modal.guests.add_people.title":"Invite People","invitation_modal.guests.add-channels.description":"Specify the channels the guests have access to.","invitation_modal.guests.custom-message.description":"Create a custom message to make your invite more personal.","invitation_modal.guests.custom-message.link":"Set a custom message","invitation_modal.guests.custom-message.title":"Custom message","invitation_modal.guests.invite_button":"Invite Guests","invitation_modal.guests.search-and-add.placeholder":"Add guests or email addresses","invitation_modal.guests.search-and-add.placeholder-email-disabled":"Add guests","invitation_modal.guests.title":"Invite **Guests** to {teamName}","invitation_modal.guests.users_emails_input.no_user_found_matching":"No one found matching **{text}**, type email to invite","invitation_modal.guests.users_emails_input.no_user_found_matching-email-disabled":"No one found matching **{text}**","invitation_modal.guests.users_emails_input.valid_email":"Invite **{email}** as a guest","invitation_modal.invite_guests.description":"Invite guests to one or more channels. Guests only have access to messages, files, and people in the channels they are members of.","invitation_modal.invite_guests.title":"Invite **Guests**","invitation_modal.invite_members.description":"Invite new team members with a link or by email. Team members have access to messages and files in open teams and public channels.","invitation_modal.invite_members.title":"Invite **Members**","invitation_modal.members.invite_button":"Invite Members","invitation_modal.members.or":"OR","invitation_modal.members.search_and_add.title":"Add or Invite People","invitation_modal.members.search-and-add.description":"Add existing members or send email invites to new members.","invitation_modal.members.search-and-add.description-email-disabled":"Add existing members to this team.","invitation_modal.members.search-and-add.placeholder":"Add members or email addresses","invitation_modal.members.search-and-add.placeholder-email-disabled":"Add members","invitation_modal.members.share_link.copy_button":"Copy Link","invitation_modal.members.share_link.description":"Share this link to invite people to this team.","invitation_modal.members.share_link.input":"team invite link","invitation_modal.members.share_link.link_copied":"Link Copied","invitation_modal.members.share_link.title":"Share This Link","invitation_modal.members.title":"Invite **Members** to {teamName}","invitation_modal.members.users_emails_input.no_user_found_matching":"No one found matching **{text}**, type email to invite","invitation_modal.members.users_emails_input.no_user_found_matching-email-disabled":"No one found matching **{text}**","invitation_modal.members.users_emails_input.valid_email":"Invite **{email}** as a team member","invitation_modal.title":"Invite people to **{teamName}**","invitation-modal.confirm.details-header":"Details","invitation-modal.confirm.not-valid-channel":"Does not match a valid channel name.","invitation-modal.confirm.not-valid-user-or-email":"Does not match a valid user or email.","invitation-modal.confirm.people-header":"People","invitation-modal.discard-changes.button":"Yes, Discard","invitation-modal.discard-changes.message":"You have unsent invitations, are you sure you want to discard them?","invitation-modal.discard-changes.title":"Discard Changes","invite.guests.added-to-channel":"An invitation email has been sent.","invite.guests.already-all-channels-member":"This person is already a member of all the channels.","invite.guests.already-some-channels-member":"This person is already a member of some of the channels.","invite.guests.new-member":"This guest has been added to the team and {count, plural, one {channel} other {channels}}.","invite.guests.unable-to-add-the-user-to-the-channels":"Unable to add the guest to the channels.","invite.members.added-to-team":"This member has been added to the team.","invite.members.already-member":"This person is already a team member.","invite.members.invite-sent":"An invitation email has been sent.","invite.members.unable-to-add-the-user-to-the-team":"Unable to add the user to the team.","invite.members.user-is-guest":"Contact your admin to make this guest a full member.","invite.members.user-is-not-guest":"This person is already a member.","join_team_group_constrained_denied":"You need to be a member of a linked group to join this team.","join_team_group_constrained_denied_admin":"You need to be a member of a linked group to join this team. You can add a group to this team [here]({siteURL}/admin_console/user_management/groups).","katex.error":"Couldn\'t compile your Latex code. Please review the syntax and try again.","last_users_message.added_to_channel.type":"were **added to the channel** by {actor}.","last_users_message.added_to_team.type":"were **added to the team** by {actor}.","last_users_message.first":"{firstUser} and ","last_users_message.joined_channel.type":"**joined the channel**.","last_users_message.joined_team.type":"**joined the team**.","last_users_message.left_channel.type":"**left the channel**.","last_users_message.left_team.type":"**left the team**.","last_users_message.others":"{numOthers} others ","last_users_message.removed_from_channel.type":"were **removed from the channel**.","last_users_message.removed_from_team.type":"were **removed from the team**.","leave_private_channel_modal.leave":"Yes, leave channel","leave_private_channel_modal.message":"Are you sure you wish to leave the private channel {channel}? You must be re-invited in order to re-join this channel in the future.","leave_private_channel_modal.title":"Leave Private Channel {channel}","leave_team_modal.desc":"You will be removed from all public and private channels. If the team is private you will not be able to rejoin the team. Are you sure?","leave_team_modal.no":"No","leave_team_modal.title":"Leave the team?","leave_team_modal.yes":"Yes","list_modal.paginatorCount":"{startCount, number} - {endCount, number} of {total, number} total","loading_screen.loading":"Loading","local":"local","login_mfa.enterToken":"To complete the sign in process, please enter a token from your smartphone\'s authenticator","login_mfa.submit":"Submit","login_mfa.submitting":"Submitting...","login_mfa.token":"MFA Token","login.changed":" Sign-in method changed successfully","login.create":"Create one now.","login.createTeam":"Create a team","login.email":"Email","login.forgot":"I forgot my password.","login.get_terms_error":"Unable to load terms of service. If this issue persists, contact your System Administrator.","login.gitlab":"GitLab","login.google":"Google Apps","login.invalidPassword":"Your password is incorrect.","login.ldapCreate":" Enter your AD/LDAP username and password to create an account.","login.ldapUsername":"AD/LDAP Username","login.ldapUsernameLower":"AD/LDAP username","login.noAccount":"Don\'t have an account? ","login.noEmail":"Please enter your email","login.noEmailLdapUsername":"Please enter your email or {ldapUsername}","login.noEmailUsername":"Please enter your email or username","login.noEmailUsernameLdapUsername":"Please enter your email, username or {ldapUsername}","login.noLdapUsername":"Please enter your {ldapUsername}","login.noMethods":"No sign-in methods are enabled. Please contact your System Administrator.","login.noPassword":"Please enter your password","login.noUsername":"Please enter your username","login.noUsernameLdapUsername":"Please enter your username or {ldapUsername}","login.office365":"Office 365","login.or":"or","login.password":"Password","login.passwordChanged":" Password updated successfully","login.placeholderOr":" or ","login.session_expired":"Your session has expired. Please log in again.","login.session_expired.notification":"Session Expired: Please sign in to continue receiving notifications.","login.session_expired.title":"* {siteName} - Session Expired","login.signIn":"Sign in","login.signInLoading":"Signing in...","login.signInWith":"Sign in with:","login.terms_rejected":"You must agree to the terms of service before accessing {siteName}. Please contact your System Administrator for more details.","login.username":"Username","login.userNotFound":"We couldn\'t find an account matching your login credentials.","login.verified":" Email Verified","manage_channel_groups_modal.search_placeholder":"Search groups","manage_team_groups_modal.search_placeholder":"Search groups","marketplace_modal.install_plugins":"Install Plugins","marketplace_modal.installing":"Installing...","marketplace_modal.list.configure":"Configure","marketplace_modal.list.Install":"Install","marketplace_modal.list.try_again":"Try Again","marketplace_modal.list.update":"Update","marketplace_modal.list.update_available":"Update available:","marketplace_modal.list.update_confirmation.confirm_button":"Update","marketplace_modal.list.update_confirmation.message.current":"You currently have {installedVersion} installed.","marketplace_modal.list.update_confirmation.message.current_with_release_notes":"You currently have {installedVersion} installed. View the <a href=\\"{releaseNotesUrl}\\" target=\'_blank\' rel=\'noopener noreferrer\'>release notes</a> to learn about the changes included in this update.","marketplace_modal.list.update_confirmation.message.intro":"Are you sure you want to update the {name} plugin to {version}?","marketplace_modal.list.update_confirmation.message.warning_major_version":"This update may contain breaking changes.","marketplace_modal.list.update_confirmation.message.warning_major_version_with_release_notes":"This update may contain breaking changes. Consult the <a href=\\"{releaseNotesUrl}\\" target=\'_blank\' rel=\'noopener noreferrer\'>release notes</a> before upgrading.","marketplace_modal.list.update_confirmation.title":"Confirm Plugin Update","marketplace_modal.no_plugins":"There are no plugins available at this time.","marketplace_modal.no_plugins_installed":"You do not have any plugins installed.","marketplace_modal.search":"Search Plugins","marketplace_modal.tabs.all_plugins":"All Plugins","marketplace_modal.tabs.installed_plugins":"Installed","marketplace_modal.title":"Plugin Marketplace","members_popover.button.message":"message","members_popover.manageMembers":"Manage Members","members_popover.title":"Channel Members","members_popover.viewMembers":"View Members","message_submit_error.invalidCommand":"Command with a trigger of \'\'{command}\'\' not found. ","message_submit_error.sendAsMessageLink":"Click here to send as a message.","mfa.confirm.complete":"**Set up complete!**","mfa.confirm.okay":"Okay","mfa.confirm.secure":"Your account is now secure. Next time you sign in, you will be asked to enter a code from the Google Authenticator app on your phone.","mfa.setup.badCode":"Invalid code. If this issue persists, contact your System Administrator.","mfa.setup.code":"MFA Code","mfa.setup.codeError":"Please enter the code from Google Authenticator.","mfa.setup.required":"**Multi-factor authentication is required on {siteName}.**","mfa.setup.save":"Save","mfa.setup.secret":"Secret: {secret}","mfa.setup.step1":"**Step 1: **On your phone, download Google Authenticator from [iTunes](!https://itunes.apple.com/us/app/google-authenticator/id388497605?mt=8\') or [Google Play](!https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2&hl=en)","mfa.setup.step2":"**Step 2: **Use Google Authenticator to scan this QR code, or manually type in the secret key","mfa.setup.step3":"**Step 3: **Enter the code generated by Google Authenticator","mfa.setupTitle":"Multi-factor Authentication Setup","mobile.set_status.away.icon":"Away Icon","mobile.set_status.dnd.icon":"Do Not Disturb Icon","mobile.set_status.offline.icon":"Offline Icon","mobile.set_status.online.icon":"Online Icon","modal.manual_status.ask":"Do not ask me again","modal.manual_status.auto_responder.message_":"Would you like to switch your status to \\"{status}\\" and disable Automatic Replies?","modal.manual_status.auto_responder.message_away":"Would you like to switch your status to \\"Away\\" and disable Automatic Replies?","modal.manual_status.auto_responder.message_dnd":"Would you like to switch your status to \\"Do Not Disturb\\" and disable Automatic Replies?","modal.manual_status.auto_responder.message_offline":"Would you like to switch your status to \\"Offline\\" and disable Automatic Replies?","modal.manual_status.auto_responder.message_online":"Would you like to switch your status to \\"Online\\" and disable Automatic Replies?","modal.manual_status.button_":"Yes, set my status to \\"{status}\\"","modal.manual_status.button_away":"Yes, set my status to \\"Away\\"","modal.manual_status.button_dnd":"Yes, set my status to \\"Do Not Disturb\\"","modal.manual_status.button_offline":"Yes, set my status to \\"Offline\\"","modal.manual_status.button_online":"Yes, set my status to \\"Online\\"","modal.manual_status.cancel_":"No, keep it as \\"{status}\\"","modal.manual_status.cancel_away":"No, keep it as \\"Away\\"","modal.manual_status.cancel_dnd":"No, keep it as \\"Do Not Disturb\\"","modal.manual_status.cancel_offline":"No, keep it as \\"Offline\\"","modal.manual_status.cancel_ooo":"No, keep it as \\"Out of Office\\"","modal.manual_status.message_":"Would you like to switch your status to \\"{status}\\"?","modal.manual_status.message_away":"Would you like to switch your status to \\"Away\\"?","modal.manual_status.message_dnd":"Would you like to switch your status to \\"Do Not Disturb\\"?","modal.manual_status.message_offline":"Would you like to switch your status to \\"Offline\\"?","modal.manual_status.message_online":"Would you like to switch your status to \\"Online\\"?","modal.manual_status.title_":"Your status is set to \\"{status}\\"","modal.manual_status.title_away":"Your status is set to \\"Away\\"","modal.manual_status.title_dnd":"Your status is set to \\"Do Not Disturb\\"","modal.manual_status.title_offline":"Your status is set to \\"Offline\\"","modal.manual_status.title_ooo":"Your status is set to \\"Out of Office\\"","more_channels.create":"Create Channel","more_channels.createClick":"Click \'Create New Channel\' to make a new one","more_channels.joining":"Joining...","more_channels.next":"Next","more_channels.noMore":"No more channels to join","more_channels.prev":"Previous","more_channels.show_archived_channels":"Show: Archived Channels","more_channels.show_public_channels":"Show: Public Channels","more_channels.title":"More Channels","more_direct_channels.directchannel.deactivated":"{displayname} - Deactivated","more_direct_channels.directchannel.you":"{displayname} (you)","more_direct_channels.new_convo_note":"This will start a new conversation. If you\'re adding a lot of people, consider creating a private channel instead.","more_direct_channels.new_convo_note.full":"You\'ve reached the maximum number of people for this conversation. Consider creating a private channel instead.","more_direct_channels.title":"Direct Messages","more_public_direct_channels.channels":"Channels","more_public_direct_channels.direct_messages":"Direct Messages","more_public_direct_channels.title":"Channels and Direct Messages","msg_typing.areTyping":"{users} and {last} are typing...","msg_typing.isTyping":"{user} is typing...","multiselect.add":"Add","multiselect.addChannelsPlaceholder":"Search and add channels","multiselect.addGroupsPlaceholder":"Search and add groups","multiselect.adding":"Adding...","multiselect.addTeamsPlaceholder":"Search and add teams","multiselect.go":"Go","multiselect.list.notFound":"No items found","multiselect.loading":"Loading...","multiselect.numGroupsRemaining":"Use ↑↓ to browse, ↵ to select. You can add {num, number} more {num, plural, one {group} other {groups}}. ","multiselect.numMembers":"{memberOptions, number} of {totalCount, number} members","multiselect.numPeopleRemaining":"Use ↑↓ to browse, ↵ to select. You can add {num, number} more {num, plural, one {person} other {people}}. ","multiselect.numRemaining":"You can add {num, number} more","multiselect.placeholder":"Search and add members","multiselect.selectChannels":"Use ↑↓ to browse, ↵ to select.","multiselect.selectTeams":"Use ↑↓ to browse, ↵ to select.","navbar_dropdown.about":"About {appTitle}","navbar_dropdown.accountSettings":"Account Settings","navbar_dropdown.addGroupsToTeam":"Add Groups to Team","navbar_dropdown.console":"System Console","navbar_dropdown.create":"Create a Team","navbar_dropdown.emoji":"Custom Emoji","navbar_dropdown.help":"Help","navbar_dropdown.integrations":"Integrations","navbar_dropdown.invitePeople":"Invite People","navbar_dropdown.invitePeopleExtraText":"Add or invite people to the team","navbar_dropdown.join":"Join Another Team","navbar_dropdown.keyboardShortcuts":"Keyboard Shortcuts","navbar_dropdown.leave":"Leave Team","navbar_dropdown.leave.icon":"Leave Team Icon","navbar_dropdown.logout":"Log Out","navbar_dropdown.manageGroups":"Manage Groups","navbar_dropdown.manageMembers":"Manage Members","navbar_dropdown.marketplace":"Plugin Marketplace","navbar_dropdown.menuAriaLabel":"main menu","navbar_dropdown.nativeApps":"Download Apps","navbar_dropdown.report":"Report a Problem","navbar_dropdown.switchTo":"Switch to ","navbar_dropdown.teamSettings":"Team Settings","navbar_dropdown.viewMembers":"View Members","navbar.addGroups":"Add Groups","navbar.addMembers":"Add Members","navbar.click":"Click here","navbar.clickToAddHeader":"{clickHere} to add one.","navbar.noHeader":"No channel header yet.","navbar.preferences":"Notification Preferences","navbar.toggle2":"Toggle sidebar","navbar.viewInfo":"View Info","navbar.viewPinnedPosts":"View Pinned Posts","notification.dm":"Direct Message","notify_all.confirm":"Confirm","notify_all.question":"By using @all or @channel you are about to send notifications to {totalMembers} people. Are you sure you want to do this?","notify_all.question_timezone":"By using @all or @channel you are about to send notifications to **{totalMembers} people** in **{timezones, number} {timezones, plural, one {timezone} other {timezones}}**. Are you sure you want to do this?","notify_all.title.confirm":"Confirm sending notifications to entire channel","numMembers":"{num, number} {num, plural, one {member} other {members}}","password_form.change":"Change my password","password_form.enter":"Enter a new password for your {siteName} account.","password_form.error":"Please enter at least {chars} characters.","password_form.pwd":"Password","password_form.title":"Password Reset","password_send.checkInbox":"Please check your inbox.","password_send.description":"To reset your password, enter the email address you used to sign up","password_send.email":"Email","password_send.error":"Please enter a valid email address.","password_send.link":"If the account exists, a password reset email will be sent to:","password_send.reset":"Reset my password","password_send.title":"Password Reset","passwordRequirements":"Password Requirements:","pdf_preview.max_pages":"Download to read more pages","pending_post_actions.cancel":"Cancel","pending_post_actions.retry":"Retry","permalink.error.access":"Permalink belongs to a deleted message or to a channel to which you do not have access.","permalink.error.title":"Message Not Found","post_body.check_for_out_of_channel_groups_mentions.message":"did not get notified by this mention because they are not in the channel. They cannot be added to the channel because they are not a member of the linked groups. To add them to this channel, they must be added to the linked groups.","post_body.check_for_out_of_channel_mentions.link.and":" and ","post_body.check_for_out_of_channel_mentions.link.private":"add them to this private channel","post_body.check_for_out_of_channel_mentions.link.public":"add them to the channel","post_body.check_for_out_of_channel_mentions.message_last":"? They will have access to all message history.","post_body.check_for_out_of_channel_mentions.message.multiple":"did not get notified by this mention because they are not in the channel. Would you like to ","post_body.check_for_out_of_channel_mentions.message.one":"did not get notified by this mention because they are not in the channel. Would you like to ","post_body.commentedOn":"Commented on {name}\'s message: ","post_body.deleted":"(message deleted)","post_body.plusMore":" plus {count, number} other {count, plural, one {file} other {files}}","post_delete.notPosted":"Comment could not be posted","post_delete.okay":"Okay","post_delete.someone":"Someone deleted the message on which you tried to post a comment.","post_info.auto_responder":"AUTOMATIC REPLY","post_info.bot":"BOT","post_info.comment_icon.tooltip.reply":"Reply","post_info.del":"Delete","post_info.dot_menu.tooltip.more_actions":"More Actions","post_info.edit":"Edit","post_info.guest":"GUEST","post_info.info.view_additional_info":"View additional info","post_info.menuAriaLabel":"Post extra options","post_info.message.show_less":"Show Less","post_info.message.show_more":"Show More","post_info.message.visible":"(Only visible to you)","post_info.message.visible.compact":" (Only visible to you)","post_info.permalink":"Permalink","post_info.pin":"Pin to Channel","post_info.pinned":"Pinned","post_info.reply":"Reply","post_info.submenu.icon":"submenu icon","post_info.submenu.mobile":"mobile submenu","post_info.system":"System","post_info.tooltip.add_reactions":"Add Reaction","post_info.unpin":"Unpin from Channel","post_info.unread":"Mark as Unread","post_message_view.edited":"(edited)","post.ariaLabel.attachment":", 1 attachment","post.ariaLabel.attachmentMultiple":", {attachmentCount} attachments","post.ariaLabel.message":"{authorName} at {time} {date} wrote, {message}","post.ariaLabel.messageIsFlagged":", message is flagged","post.ariaLabel.messageIsFlaggedAndPinned":", message is flagged and pinned","post.ariaLabel.messageIsPinned":", message is pinned","post.ariaLabel.reaction":", 1 reaction","post.ariaLabel.reactionMultiple":", {reactionCount} reactions","post.ariaLabel.replyMessage":"{authorName} at {time} {date} wrote a reply, {message}","postlist.toast.newMessages":"{count, number} new {count, plural, one {message} other {messages}","postlist.toast.newMessagesSince":"{count, number} new {count, plural, one {message} other {messages}} since {date} at {time}","postlist.toast.scrollToBottom":"Jump to recents","postlist.toast.scrollToLatest":"Jump to new messages","posts_view.loadMore":"Load More messages","posts_view.newMsg":"New Messages","promote_to_user_modal.desc":"This action promotes the guest {username} to a member. It will allow the user to join public channels and interact with users outside of the channels they are currently members of. Are you sure you want to promote guest {username} to user?","promote_to_user_modal.promote":"Promote","promote_to_user_modal.title":"Promote guest {username} to user","quick_switch_modal.channels":"Channels","quick_switch_modal.channelsShortcut.mac":"- ⌘K","quick_switch_modal.channelsShortcut.windows":"- CTRL+K","quick_switch_modal.help":"Start typing then use TAB to toggle channels/teams, ↑↓ to browse, ↵ to select, and ESC to dismiss.","quick_switch_modal.help_mobile":"Type to find a channel.","quick_switch_modal.help_no_team":"Type to find a channel. Use ↑↓ to browse, ↵ to select, ESC to dismiss.","quick_switch_modal.teams":"Teams","quick_switch_modal.teamsShortcut.mac":"- ⌘⌥K","quick_switch_modal.teamsShortcut.windows":"- CTRL+ALT+K","reaction_list.addReactionTooltip":"Add reaction","reaction.add.ariaLabel":"add reaction","reaction.clickToAdd":"(click to add)","reaction.clickToRemove":"(click to remove)","reaction.container.ariaLabel":"reactions","reaction.othersReacted":"{otherUsers, number} {otherUsers, plural, one {user} other {users}}","reaction.reacted":"{users} {reactionVerb} with {emoji}","reaction.reactionVerb.user":"reacted","reaction.reactionVerb.users":"reacted","reaction.reactionVerb.you":"reacted","reaction.reactionVerb.youAndUsers":"reacted","reaction.reactWidth.ariaLabel":"react with","reaction.removeReact.ariaLabel":"remove reaction","reaction.usersAndOthersReacted":"{users} and {otherUsers, number} other {otherUsers, plural, one {user} other {users}}","reaction.usersReacted":"{users} and {lastUser}","reaction.you":"You","remove_group_confirm_button":"Yes, Remove Group and {memberCount, plural, one {Member} other {Members}}","remove_group_confirm_message":"{memberCount, number} {memberCount, plural, one {member} other {members}} associated to this group will be removed from the team on the next scheduled AD/LDAP synchronization. Are you sure you wish to remove this group and {memberCount} {memberCount, plural, one {member} other {members}}?","remove_group_confirm_title":"Remove Group and {memberCount, number} {memberCount, plural, one {Member} other {Members}}","removed_channel.channelName":"the channel","removed_channel.from":"Removed from ","removed_channel.okay":"Okay","removed_channel.remover":"{remover} removed you from {channel}","removed_channel.someone":"Someone","rename_channel.cancel":"Cancel","rename_channel.defaultError":" - Cannot be changed for the default channel","rename_channel.displayName":"Display Name","rename_channel.displayNameHolder":"Enter display name","rename_channel.handleHolder":"lowercase alphanumeric characters","rename_channel.lowercase":"Must be lowercase alphanumeric characters","rename_channel.maxLength":"This field must be less than {maxLength, number} characters","rename_channel.minLength":"Channel name must be {minLength, number} or more characters","rename_channel.required":"This field is required","rename_channel.save":"Save","rename_channel.title":"Rename Channel","rename_channel.url":"URL","revoke_user_sessions_modal.desc":"This action revokes all sessions for {username}. They will be logged out from all devices. Are you sure you want to revoke all sessions for {username}?","revoke_user_sessions_modal.revoke":"Revoke","revoke_user_sessions_modal.title":"Revoke Sessions for {username}","rhs_card.jump":"Jump","rhs_card.message_by":"Message by {avatar} {user}","rhs_comment.comment":"Comment","rhs_header.backToFlaggedTooltip":"Back to Flagged Posts","rhs_header.backToPinnedTooltip":"Back to Pinned Posts","rhs_header.backToResultsTooltip":"Back to Search Results","rhs_header.closeSidebarTooltip":"Close Sidebar","rhs_header.closeTooltip.icon":"Close Sidebar Icon","rhs_header.details":"Message Details","rhs_header.expandSidebarTooltip":"Expand Sidebar","rhs_header.expandSidebarTooltip.icon":"Expand Sidebar Icon","rhs_header.expandTooltip.icon":"Shrink Sidebar Icon","rhs_header.shrinkSidebarTooltip":"Shrink Sidebar","rhs_root.direct":"Direct Message","rhs_root.mobile.add_reaction":"Add Reaction","rhs_root.mobile.flag":"Flag","rhs_root.mobile.unflag":"Unflag","rhs_thread.rootPostDeletedMessage.body":"Part of this thread has been deleted due to a data retention policy. You can no longer reply to this thread.","save_button.save":"Save","save_button.saving":"Saving","search_bar.clear":"Clear search query","search_bar.search":"Search","search_bar.usage.tips":"* Use **\\"quotation marks\\"** to search for phrases\\n* Use **from:** to find posts from specific users\\n* Use **in:** to find posts in specific channels\\n* Use **on:** to find posts on a specific date\\n* Use **before:** to find posts before a specific date\\n* Use **after:** to find posts after a specific date\\n* Use **dash** \\"-\\" to exclude search terms and modifiers","search_bar.usage.title":"Search Options","search_header.loading":"Searching...","search_header.results":"Search Results","search_header.title2":"Recent Mentions","search_header.title3":"Flagged Posts","search_header.title4":"Pinned posts in {channelDisplayName}","search_header.title5":"Extra information","search_item.channelArchived":"Archived","search_item.direct":"Direct Message (with {username})","search_item.jump":"Jump","search_results.noResults":"No results found. Try again?","search_results.noResults.partialPhraseSuggestion":"If you\'re searching a partial phrase (ex. searching \\"rea\\", looking for \\"reach\\" or \\"reaction\\"), append a * to your search term.","search_results.noResults.stopWordsSuggestion":"Two letter searches and common words like \\"this\\", \\"a\\" and \\"is\\" won\'t appear in search results due to excessive results returned.","search_results.usage.dataRetention":"Only messages posted in the last {days} days are returned. Contact your System Administrator for more detail.","search_results.usageFlag1":"You haven\'t flagged any messages yet.","search_results.usageFlag2":"You can add a flag to messages and comments by clicking the {flagIcon} icon next to the timestamp.","search_results.usageFlag4":"Flags are a way to mark messages for follow up. Your flags are personal, and cannot be seen by other users.","search_results.usagePin1":"There are no pinned messages yet.","search_results.usagePin2":"All members of this channel can pin important or useful messages.","search_results.usagePin3":"Pinned messages are visible to all channel members.","search_results.usagePin4":"To pin a message: Go to the message that you want to pin and click [...] > \\"Pin to channel\\".","select_team.icon":"Select Team Icon","select_team.join.icon":"Join Team Icon","select_team.private.icon":"Private Team","setting_item_max.cancel":"Cancel","setting_item_min.edit":"Edit","setting_picture.cancel":"Cancel","setting_picture.help.profile":"Upload a picture in BMP, JPG or PNG format. Maximum file size: {max}","setting_picture.help.team":"Upload a team icon in BMP, JPG or PNG format.\\nSquare images with a solid background color are recommended.","setting_picture.remove":"Remove this icon","setting_picture.remove_profile_picture":"Remove profile picture","setting_picture.save":"Save","setting_picture.select":"Select","setting_picture.uploading":"Uploading...","setting_upload.import":"Import","setting_upload.noFile":"No file selected.","setting_upload.select":"Select file","shortcuts.browser.channel_next":"Forward in history:\\tAlt|Right","shortcuts.browser.channel_next.mac":"Forward in history:\\t⌘|]","shortcuts.browser.channel_prev":"Back in history:\\tAlt|Left","shortcuts.browser.channel_prev.mac":"Back in history:\\t⌘|[","shortcuts.browser.font_decrease":"Zoom out:\\tCtrl|-","shortcuts.browser.font_decrease.mac":"Zoom out:\\t⌘|-","shortcuts.browser.font_increase":"Zoom in:\\tCtrl|+","shortcuts.browser.font_increase.mac":"Zoom in:\\t⌘|+","shortcuts.browser.header":"Built-in Browser Commands","shortcuts.browser.highlight_next":"Highlight text to the next line:\\tShift|Down","shortcuts.browser.highlight_prev":"Highlight text to the previous line:\\tShift|Up","shortcuts.browser.input.header":"Works inside an input field","shortcuts.browser.newline":"Create a new line:\\tShift|Enter","shortcuts.files.header":"Files","shortcuts.files.upload":"Upload files:\\tCtrl|U","shortcuts.files.upload.mac":"Upload files:\\t⌘|U","shortcuts.header":"Keyboard Shortcuts\\tCtrl|/","shortcuts.header.mac":"Keyboard Shortcuts\\t⌘|/","shortcuts.info":"Begin a message with / for a list of all the commands at your disposal.","shortcuts.msgs.comp.channel":"Channel:\\t~|[a-z]|Tab","shortcuts.msgs.comp.emoji":"Emoji:\\t:|[a-z]|Tab","shortcuts.msgs.comp.header":"Autocomplete","shortcuts.msgs.comp.username":"Username:\\t@|[a-z]|Tab","shortcuts.msgs.edit":"Edit last message in channel:\\tUp","shortcuts.msgs.header":"Messages","shortcuts.msgs.input.header":"Works inside an empty input field","shortcuts.msgs.reply":"Reply to last message in channel:\\tShift|Up","shortcuts.msgs.reprint_next":"Reprint next message:\\tCtrl|Down","shortcuts.msgs.reprint_next.mac":"Reprint next message:\\t⌘|Down","shortcuts.msgs.reprint_prev":"Reprint previous message:\\tCtrl|Up","shortcuts.msgs.reprint_prev.mac":"Reprint previous message:\\t⌘|Up","shortcuts.nav.direct_messages_menu":"Direct messages menu:\\tCtrl|Shift|K","shortcuts.nav.direct_messages_menu.mac":"Direct messages menu:\\t⌘|Shift|K","shortcuts.nav.focus_center":"Set focus to input field:\\tCtrl|Shift|L","shortcuts.nav.focus_center.mac":"Set focus to input field:\\t⌘|Shift|L","shortcuts.nav.header":"Navigation","shortcuts.nav.next":"Next channel:\\tAlt|Down","shortcuts.nav.next.mac":"Next channel:\\t⌥|Down","shortcuts.nav.prev":"Previous channel:\\tAlt|Up","shortcuts.nav.prev.mac":"Previous channel:\\t⌥|Up","shortcuts.nav.recent_mentions":"Recent mentions:\\tCtrl|Shift|M","shortcuts.nav.recent_mentions.mac":"Recent mentions:\\t⌘|Shift|M","shortcuts.nav.settings":"Account settings:\\tCtrl|Shift|A","shortcuts.nav.settings.mac":"Account settings:\\t⌘|Shift|A","shortcuts.nav.switcher":"Quick channel switcher:\\tCtrl|K","shortcuts.nav.switcher.mac":"Quick channel switcher:\\t⌘|K","shortcuts.nav.unread_next":"Next unread channel:\\tAlt|Shift|Down","shortcuts.nav.unread_next.mac":"Next unread channel:\\t⌥|Shift|Down","shortcuts.nav.unread_prev":"Previous unread channel:\\tAlt|Shift|Up","shortcuts.nav.unread_prev.mac":"Previous unread channel:\\t⌥|Shift|Up","sidebar_header.tutorial.body1":"The **Main Menu** is where you can **Invite New Members**, access your **Account Settings** and set your **Theme Color**.","sidebar_header.tutorial.body2":"Team administrators can also access their **Team Settings** from this menu.","sidebar_header.tutorial.body3":"System administrators will find a **System Console** option to administrate the entire system.","sidebar_header.tutorial.title":"Main Menu","sidebar_right_menu.console":"System Console","sidebar_right_menu.flagged":"Flagged Posts","sidebar_right_menu.recentMentions":"Recent Mentions","sidebar.browseChannelDirectChannel":"Browse Channels and Direct Messages","sidebar.createChannel":"Create new public channel","sidebar.createDirectMessage":"Create new direct message","sidebar.createGroup":"Create new private channel","sidebar.createPublicPrivateChannel":"Create new public or private channel","sidebar.directchannel.you":"{displayname} (you)","sidebar.leave":"Leave channel","sidebar.mainMenu":"Main Menu","sidebar.moreDmAria":"more direct messages","sidebar.moreElips":"More...","sidebar.morePublicAria":"more public channels","sidebar.morePublicDmAria":"more public channels and direct messages","sidebar.removeList":"Remove from list","sidebar.team_select":"{siteName} - Join a team","sidebar.tutorialScreen1.body":"**Channels** organize conversations across different topics. They\'re open to everyone on your team. To send private communications use **Direct Messages** for a single person or **Private Channels** for multiple people.","sidebar.tutorialScreen1.title":"Channels","sidebar.tutorialScreen2.body1":"Here are two public channels to start:","sidebar.tutorialScreen2.body2":"**{townsquare}** is a place for team-wide communication. Everyone in your team is a member of this channel.","sidebar.tutorialScreen2.body3":"**{offtopic}** is a place for fun and humor outside of work-related channels. You and your team can decide what other channels to create.","sidebar.tutorialScreen2.title":"\\"{townsquare}\\" and \\"{offtopic}\\" channels","sidebar.tutorialScreen3.body1":"Click **\\"More...\\"** to create a new channel or join an existing one.","sidebar.tutorialScreen3.body2":"You can also create a new channel by clicking the **\\"+\\" symbol** next to the public or private channel header.","sidebar.tutorialScreen3.title":"Creating and Joining Channels","sidebar.types.alpha":"CHANNELS","sidebar.types.direct":"DIRECT MESSAGES","sidebar.types.favorite":"FAVORITE CHANNELS","sidebar.types.private":"PRIVATE CHANNELS","sidebar.types.public":"PUBLIC CHANNELS","sidebar.types.recent":"RECENT ACTIVITY","sidebar.types.unreads":"UNREADS","sidebar.unreads":"More Unreads","signup_team_system_console":"Go to System Console","signup_team.guest_without_channels":"Your guest account has no channels assigned. Please contact an administrator.","signup_team.join_open":"Teams you can join: ","signup_team.no_open_teams":"No teams are available to join. Please ask your administrator for an invite.","signup_team.no_open_teams_canCreate":"No teams are available to join. Please create a new team or ask your administrator for an invite.","signup_user_completed.choosePwd":"Choose your password","signup_user_completed.chooseUser":"Choose your username","signup_user_completed.create":"Create Account","signup_user_completed.emailHelp":"Valid email required for sign-up","signup_user_completed.emailIs":"Your email address is **{email}**. You\'ll use this address to sign in to {siteName}.","signup_user_completed.expired":"You\'ve already completed the signup process for this invitation or this invitation has expired.","signup_user_completed.failed_update_user_state":"Please clear your cache and try to log in.","signup_user_completed.haveAccount":"Already have an account?","signup_user_completed.invalid_invite":"The invite link was invalid. Please speak with your Administrator to receive an invitation.","signup_user_completed.lets":"Let\'s create your account","signup_user_completed.no_open_server":"This server does not allow open signups. Please speak with your Administrator to receive an invitation.","signup_user_completed.none":"No user creation method has been enabled. Please contact an administrator for access.","signup_user_completed.required":"This field is required","signup_user_completed.reserved":"This username is reserved, please choose a new one.","signup_user_completed.signIn":"Click here to sign in.","signup_user_completed.userHelp":"You can use lowercase letters, numbers, periods, dashes, and underscores.","signup_user_completed.usernameLength":"Usernames have to begin with a lowercase letter and be {min}-{max} characters long. You can use lowercase letters, numbers, periods, dashes, and underscores.","signup_user_completed.validEmail":"Please enter a valid email address","signup_user_completed.whatis":"What\'s your email address?","signup.email":"Email and Password","signup.email.icon":"Email Icon","signup.gitlab":"GitLab Single Sign-On","signup.google":"Google Account","signup.ldap":"AD/LDAP Credentials","signup.ldap.icon":"AD/LDAP Icon","signup.office365":"Office 365","signup.saml.icon":"SAML Icon","signup.title":"Create an account with:","status_dropdown.menuAriaLabel":"set status","status_dropdown.set_away":"Away","status_dropdown.set_dnd":"Do Not Disturb","status_dropdown.set_dnd.extra":"Disables desktop, email and push notifications","status_dropdown.set_offline":"Offline","status_dropdown.set_online":"Online","status_dropdown.set_ooo":"Out of Office","status_dropdown.set_ooo.extra":"Automatic Replies are enabled","string.id":"default message","suggestion_list.no_matches":"No items match __{value}__","suggestion.archive":"Archived Channels","suggestion.mention.all":"Notifies everyone in this channel","suggestion.mention.channel":"Notifies everyone in this channel","suggestion.mention.channels":"My Channels","suggestion.mention.here":"Notifies everyone online in this channel","suggestion.mention.members":"Channel Members","suggestion.mention.morechannels":"Other Channels","suggestion.mention.moremembers":"Other Members","suggestion.mention.nonmembers":"Not in Channel","suggestion.mention.special":"Special Mentions","suggestion.mention.unread.channels":"Unread Channels","suggestion.search.direct":"Direct Messages","suggestion.search.private":"Private Channels","suggestion.search.public":"Public Channels","suggestion.user.isCurrent":"(you)","system_notice.adminVisible":"Only visible to System Admins","system_notice.adminVisible.icon":"Only visible to System Admins Icon","system_notice.body.api3":"If you’ve created or installed integrations in the last two years, find out how [recent changes](!https://about.mattermost.com/default-apiv3-deprecation-guide) may have affected them.","system_notice.body.ee_upgrade_advice":"Enterprise Edition is recommended to ensure optimal operation and reliability. [Learn more](!https://mattermost.com/performance).","system_notice.body.ie11_deprecation":"Your browser, IE11, will no longer be supported in an upcoming release. [Find out how to move to another browser in one simple step](!https://forum.mattermost.org/t/mattermost-is-dropping-support-for-internet-explorer-ie11-in-v5-16/7575).","system_notice.body.permissions":"Some policy and permission System Console settings have moved with the release of [advanced permissions](!https://about.mattermost.com/default-advanced-permissions) in Enterprise E10 and E20.","system_notice.dont_show":"Don\'t Show Again","system_notice.remind_me":"Remind me Later","system_notice.title":"**Notice**\\nfrom Mattermost","system_users_list.count":"{count, number} {count, plural, one {user} other {users}}","system_users_list.countPage":"{startCount, number} - {endCount, number} {count, plural, one {user} other {users}} of {total, number} total","system_users_list.countSearch":"{count, number} {count, plural, one {user} other {users}} of {total, number} total","team_channel_settings.group.group_user_row.numberOfGroups":"{amount, number} {amount, plural, one {Group} other {Groups}}","team_import_tab.failure":" Import failure: ","team_import_tab.import":"Import","team_import_tab.importHelpCliDocsLink":"CLI tool for Slack import","team_import_tab.importHelpDocsLink":"documentation","team_import_tab.importHelpExporterLink":"Slack Advanced Exporter","team_import_tab.importHelpExportInstructions":"Slack > Administration > Workspace settings > Import/Export Data > Export > Start Export","team_import_tab.importHelpLine1":"Slack import to Mattermost supports importing of messages in your Slack team\'s public channels.","team_import_tab.importHelpLine2":"To import a team from Slack, go to {exportInstructions}. See {uploadDocsLink} to learn more.","team_import_tab.importHelpLine3":"To import posts with attached files, see {slackAdvancedExporterLink} for details.","team_import_tab.importHelpLine4":"For Slack teams with over 10,000 messages, we recommend using the {cliLink}.","team_import_tab.importing":"Importing...","team_import_tab.importSlack":"Import from Slack (Beta)","team_import_tab.successful":" Import successful: ","team_import_tab.summary":"View Summary","team_member_modal.invitePeople":"Invite People","team_member_modal.members":"{team} Members","team_members_dropdown.confirmDemoteDescription":"If you demote yourself from the System Admin role and there is not another user with System Admin privileges, you\'ll need to re-assign a System Admin by accessing the Mattermost server through a terminal and running the following command.","team_members_dropdown.confirmDemoteRoleTitle":"Confirm demotion from System Admin role","team_members_dropdown.confirmDemotion":"Confirm Demotion","team_members_dropdown.confirmDemotionCmd":"platform roles system_admin {username}","team_members_dropdown.guest":"Guest","team_members_dropdown.inactive":"Inactive","team_members_dropdown.leave_team":"Remove from Team","team_members_dropdown.makeAdmin":"Make Team Admin","team_members_dropdown.makeMember":"Make Team Member","team_members_dropdown.makeTeamAdmins":"Make Team Admins","team_members_dropdown.makeTeamMembers":"Make Team Members","team_members_dropdown.member":"Member","team_members_dropdown.menuAriaLabel":"Team member role change","team_members_dropdown.systemAdmin":"System Admin","team_members_dropdown.teamAdmin":"Team Admin","team_members_dropdown.teamAdmins":"Team Admins","team_members_dropdown.teamMembers":"Team Members","team_settings_modal.generalTab":"General","team_settings_modal.importTab":"Import","team_settings_modal.title":"Team Settings","team_settings.openInviteDescription.ariaLabel":"Invite Code","team_settings.openInviteDescription.groupConstrained":"No, members of this team are added and removed by linked groups. [Learn More](!https://mattermost.com/pl/default-ldap-group-constrained-team-channel.html)","team_settings.openInviteSetting.groupConstrained":"No, members of this team are added and removed by linked groups.","team_sidebar.join":"Other teams you can join.","team.button.ariaLabel":"{teamName} team","team.button.mentions.ariaLabel":"{teamName} team, {mentionCount} mentions","team.button.name_undefined":"Name undefined","team.button.unread.ariaLabel":"{teamName} team unread","terms_of_service.agreeButton":"I Agree","terms_of_service.api_error":"Unable to complete the request. If this issue persists, contact your System Administrator.","terms_of_service.disagreeButton":"I Disagree","test":"Button Text","textbox.bold":"**bold**","textbox.edit":"Edit message","textbox.help":"Help","textbox.inlinecode":"`inline code`","textbox.italic":"_italic_","textbox.preformatted":"```preformatted```","textbox.preview":"Preview","textbox.quote":">quote","textbox.strike":"strike","tutorial_intro.allSet":"You\'re all set","tutorial_intro.end":"Click \\"Next\\" to enter {channel}. This is the first channel teammates see when they sign up. Use it for posting updates everyone needs to know.","tutorial_intro.invite":"Invite Teammates","tutorial_intro.mobileApps":"Install the apps for {link} for easy access and notifications on the go.","tutorial_intro.mobileAppsLinkText":"PC, Mac, iOS and Android","tutorial_intro.next":"Next","tutorial_intro.screenOne.body1":"Your team communication all in one place, instantly searchable and available anywhere.","tutorial_intro.screenOne.body2":"Keep your team connected to help them achieve what matters most.","tutorial_intro.screenOne.title1":"Welcome to:","tutorial_intro.screenOne.title2":"Mattermost","tutorial_intro.screenTwo.body1":"Communication happens in public discussion channels, private channels and direct messages.","tutorial_intro.screenTwo.body2":"Everything is archived and searchable from any web-enabled desktop, laptop or phone.","tutorial_intro.screenTwo.title":"How Mattermost works:","tutorial_intro.skip":"Skip Tutorial","tutorial_intro.support":"Need anything, just email us at ","tutorial_intro.whenReady":" when you\'re ready.","tutorial_tip.next":"Next","tutorial_tip.ok":"Okay","tutorial_tip.out":"Opt out of these tips.","tutorial_tip.seen":"Seen this before? ","update_command.confirm":"Edit Slash Command","update_command.question":"Your changes may break the existing slash command. Are you sure you would like to update it?","update_command.update":"Update","update_incoming_webhook.update":"Update","update_incoming_webhook.updating":"Updating...","update_oauth_app.confirm":"Edit OAuth 2.0 application","update_oauth_app.question":"Your changes may break the existing OAuth 2.0 application. Are you sure you would like to update it?","update_outgoing_webhook.confirm":"Edit Outgoing Webhook","update_outgoing_webhook.question":"Your changes may break the existing outgoing webhook. Are you sure you would like to update it?","update_outgoing_webhook.update":"Update","upload_overlay.info":"Drop a file to upload it.","user_list.notFound":"No users found","user_profile.account.editSettings":"Edit Account Settings","user_profile.account.localTime":"Local Time: ","user_profile.add_user_to_channel":"Add to a Channel","user_profile.add_user_to_channel.icon":"Add User to Channel Icon","user_profile.send.dm":"Send Message","user_profile.send.dm.icon":"Send Message Icon","user.settings.advance.confirmDeactivateAccountTitle":"Confirm Deactivation","user.settings.advance.confirmDeactivateDesc":"Are you sure you want to deactivate your account? This can only be reversed by your System Administrator.","user.settings.advance.deactivate_member_modal.deactivateButton":"Yes, deactivate my account","user.settings.advance.deactivateAccountTitle":"Deactivate Account","user.settings.advance.deactivateDesc":"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.","user.settings.advance.deactivateDescShort":"Click \'Edit\' to deactivate your account","user.settings.advance.enabledFeatures":"{count, number} {count, plural, one {Feature} other {Features}} Enabled","user.settings.advance.formattingDesc":"If enabled, posts will be formatted to create links, show emoji, style the text, and add line breaks. By default, this setting is enabled.","user.settings.advance.formattingTitle":"Enable Post Formatting","user.settings.advance.icon":"Advanced Settings Icon","user.settings.advance.joinLeaveDesc":"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.","user.settings.advance.joinLeaveTitle":"Enable Join/Leave Messages","user.settings.advance.markdown_preview":"Show markdown preview option in message input box","user.settings.advance.off":"Off","user.settings.advance.on":"On","user.settings.advance.onForAllMessages":"On for all messages","user.settings.advance.onForCode":"On only for code blocks starting with ```","user.settings.advance.preReleaseDesc":"Check any pre-released features you\'d like to preview. You may also need to refresh the page before the setting will take effect.","user.settings.advance.preReleaseTitle":"Preview pre-release features","user.settings.advance.sendDesc":"When enabled, CTRL + ENTER will send the message and ENTER inserts a new line.","user.settings.advance.sendDesc.mac":"When enabled, ⌘ + ENTER will send the message and ENTER inserts a new line.","user.settings.advance.sendTitle":"Send messages on CTRL+ENTER","user.settings.advance.sendTitle.mac":"Send messages on ⌘+ENTER","user.settings.advance.title":"Advanced Settings","user.settings.custom_theme.awayIndicator":"Away Indicator","user.settings.custom_theme.buttonBg":"Button BG","user.settings.custom_theme.buttonColor":"Button Text","user.settings.custom_theme.centerChannelBg":"Center Channel BG","user.settings.custom_theme.centerChannelColor":"Center Channel Text","user.settings.custom_theme.centerChannelTitle":"Center Channel Styles","user.settings.custom_theme.codeTheme":"Code Theme","user.settings.custom_theme.copied":"✔ Copied","user.settings.custom_theme.copyPaste":"Copy and paste to share theme colors:","user.settings.custom_theme.copyThemeColors":"Copy Theme Colors","user.settings.custom_theme.dndIndicator":"Do Not Disturb Indicator","user.settings.custom_theme.errorTextColor":"Error Text Color","user.settings.custom_theme.linkButtonTitle":"Link and Button Styles","user.settings.custom_theme.linkColor":"Link Color","user.settings.custom_theme.mentionBg":"Mention Jewel BG","user.settings.custom_theme.mentionColor":"Mention Jewel Text","user.settings.custom_theme.mentionHighlightBg":"Mention Highlight BG","user.settings.custom_theme.mentionHighlightLink":"Mention Highlight Link","user.settings.custom_theme.newMessageSeparator":"New Message Separator","user.settings.custom_theme.onlineIndicator":"Online Indicator","user.settings.custom_theme.sidebarBg":"Sidebar BG","user.settings.custom_theme.sidebarHeaderBg":"Sidebar Header BG","user.settings.custom_theme.sidebarHeaderTextColor":"Sidebar Header Text","user.settings.custom_theme.sidebarText":"Sidebar Text","user.settings.custom_theme.sidebarTextActiveBorder":"Sidebar Text Active Border","user.settings.custom_theme.sidebarTextActiveColor":"Sidebar Text Active Color","user.settings.custom_theme.sidebarTextHoverBg":"Sidebar Text Hover BG","user.settings.custom_theme.sidebarTitle":"Sidebar Styles","user.settings.custom_theme.sidebarUnreadText":"Sidebar Unread Text","user.settings.display.channeldisplaymode":"Select the width of the center channel.","user.settings.display.channelDisplayTitle":"Channel Display","user.settings.display.clockDisplay":"Clock Display","user.settings.display.collapseDesc":"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.","user.settings.display.collapseDisplay":"Default appearance of image previews","user.settings.display.collapseOff":"Collapsed","user.settings.display.collapseOn":"Expanded","user.settings.display.fixedWidthCentered":"Fixed width, centered","user.settings.display.fullScreen":"Full width","user.settings.display.icon":"Display Settings Icon","user.settings.display.language":"Language","user.settings.display.linkPreviewDesc":"When available, the first web link in a message will show a preview of the website content below the message.","user.settings.display.linkPreviewDisplay":"Website Link Previews","user.settings.display.linkPreviewOff":"Off","user.settings.display.linkPreviewOn":"On","user.settings.display.messageDisplayClean":"Standard","user.settings.display.messageDisplayCleanDes":"Easy to scan and read.","user.settings.display.messageDisplayCompact":"Compact","user.settings.display.messageDisplayCompactDes":"Fit as many messages on the screen as we can.","user.settings.display.messageDisplayDescription":"Select how messages in a channel should be displayed.","user.settings.display.messageDisplayTitle":"Message Display","user.settings.display.militaryClock":"24-hour clock (example: 16:00)","user.settings.display.normalClock":"12-hour clock (example: 4:00 PM)","user.settings.display.preferTime":"Select how you prefer time displayed.","user.settings.display.teammateNameDisplay":"This field is handled through your System Administrator. If you want to change it, you need to do so through your System Administrator.","user.settings.display.teammateNameDisplayDescription":"Set how to display other user\'s names in posts and the Direct Messages list.","user.settings.display.teammateNameDisplayFullname":"Show first and last name","user.settings.display.teammateNameDisplayNicknameFullname":"Show nickname if one exists, otherwise show first and last name","user.settings.display.teammateNameDisplayTitle":"Teammate Name Display","user.settings.display.teammateNameDisplayUsername":"Show username","user.settings.display.theme.applyToAllTeams":"Apply new theme to all my teams","user.settings.display.theme.customTheme":"Custom Theme","user.settings.display.theme.describe":"Open to manage your theme","user.settings.display.theme.import":"Import theme colors from Slack","user.settings.display.theme.otherThemes":"See other themes","user.settings.display.theme.themeColors":"Theme Colors","user.settings.display.theme.title":"Theme","user.settings.display.timezone":"Timezone","user.settings.display.title":"Display Settings","user.settings.general.close":"Close","user.settings.general.confirmEmail":"Confirm Email","user.settings.general.currentEmail":"Current Email","user.settings.general.currentPassword":"Current Password","user.settings.general.email":"Email","user.settings.general.emailGitlabCantUpdate":"Login occurs through GitLab. Email cannot be updated. Email address used for notifications is {email}.","user.settings.general.emailGoogleCantUpdate":"Login occurs through Google. Email cannot be updated. Email address used for notifications is {email}.","user.settings.general.emailHelp1":"Email is used for sign-in, notifications, and password reset. Email requires verification if changed.","user.settings.general.emailHelp3":"Email is used for sign-in, notifications, and password reset.","user.settings.general.emailLdapCantUpdate":"Login occurs through AD/LDAP. Email cannot be updated. Email address used for notifications is {email}.","user.settings.general.emailMatch":"The new emails you entered do not match.","user.settings.general.emailOffice365CantUpdate":"Login occurs through Office 365. Email cannot be updated. Email address used for notifications is {email}.","user.settings.general.emailSamlCantUpdate":"Login occurs through SAML. Email cannot be updated. Email address used for notifications is {email}.","user.settings.general.emptyName":"Click \'Edit\' to add your full name","user.settings.general.emptyNickname":"Click \'Edit\' to add a nickname","user.settings.general.emptyPassword":"Please enter your current password.","user.settings.general.emptyPosition":"Click \'Edit\' to add your job title / position","user.settings.general.field_handled_externally":"This field is handled through your login provider. If you want to change it, you need to do so through your login provider.","user.settings.general.firstName":"First Name","user.settings.general.fullName":"Full Name","user.settings.general.icon":"General Settings Icon","user.settings.general.imageTooLarge":"Unable to upload profile image. File is too large.","user.settings.general.imageUpdated":"Image last updated {date}","user.settings.general.incorrectPassword":"Your password is incorrect.","user.settings.general.lastName":"Last Name","user.settings.general.loginGitlab":"Login done through GitLab ({email})","user.settings.general.loginGoogle":"Login done through Google ({email})","user.settings.general.loginLdap":"Login done through AD/LDAP ({email})","user.settings.general.loginOffice365":"Login done through Office 365 ({email})","user.settings.general.loginSaml":"Login done through SAML ({email})","user.settings.general.mobile.emptyName":"Click to add your full name","user.settings.general.mobile.emptyNickname":"Click to add a nickname","user.settings.general.mobile.emptyPosition":"Click to add your job title / position","user.settings.general.mobile.uploadImage":"Click to upload an image","user.settings.general.newEmail":"New Email","user.settings.general.nickname":"Nickname","user.settings.general.nicknameExtra":"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.","user.settings.general.notificationsExtra":"By default, you will receive mention notifications when someone types your first name. Go to {notify} settings to change this default.","user.settings.general.notificationsLink":"Notifications","user.settings.general.position":"Position","user.settings.general.positionExtra":"Use Position for your role or job title. This will be shown in your profile popover.","user.settings.general.profilePicture":"Profile Picture","user.settings.general.sendAgain":"Send again","user.settings.general.sending":"Sending","user.settings.general.title":"General Settings","user.settings.general.uploadImage":"Click \'Edit\' to upload an image.","user.settings.general.username":"Username","user.settings.general.usernameInfo":"Pick something easy for teammates to recognize and recall.","user.settings.general.usernameReserved":"This username is reserved, please choose a new one.","user.settings.general.usernameRestrictions":"Username must begin with a letter, and contain between {min} to {max} lowercase characters made up of numbers, letters, and the symbols \'.\', \'-\', and \'_\'.","user.settings.general.validEmail":"Please enter a valid email address","user.settings.general.validImage":"Only BMP, JPG or PNG images may be used for profile pictures","user.settings.import_theme.cancel":"Cancel","user.settings.import_theme.importBody":"To import a theme, go to a Slack team and look for \\"Preferences -> Sidebar Theme\\". Open the custom theme option, copy the theme color values and paste them here:","user.settings.import_theme.importHeader":"Import Slack Theme","user.settings.import_theme.submit":"Submit","user.settings.import_theme.submitError":"Invalid format, please try copying and pasting in again.","user.settings.languages.change":"Change interface language","user.settings.languages.promote":"Select which language Mattermost displays in the user interface.\\n \\nWould you like to help with translations? Join the [Mattermost Translation Server](!http://translate.mattermost.com/) to contribute.","user.settings.mfa.add":"Add MFA to Account","user.settings.mfa.addHelp":"Adding multi-factor authentication will make your account more secure by requiring a code from your mobile phone each time you sign in.","user.settings.mfa.remove":"Remove MFA from Account","user.settings.mfa.removeHelp":"Removing multi-factor authentication means you will no longer require a phone-based passcode to sign-in to your account.","user.settings.mfa.requiredHelp":"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.","user.settings.mfa.reset":"Reset MFA on Account","user.settings.mfa.title":"Multi-factor Authentication","user.settings.modal.advanced":"Advanced","user.settings.modal.confirmBtns":"Yes, Discard","user.settings.modal.confirmMsg":"You have unsaved changes, are you sure you want to discard them?","user.settings.modal.confirmTitle":"Discard Changes?","user.settings.modal.display":"Display","user.settings.modal.general":"General","user.settings.modal.notifications":"Notifications","user.settings.modal.security":"Security","user.settings.modal.sidebar":"Sidebar","user.settings.modal.title":"Account Settings","user.settings.notifications.allActivity":"For all activity","user.settings.notifications.autoResponder":"Automatic Direct Message Replies","user.settings.notifications.autoResponderDefault":"Hello, I am out of office and unable to respond to messages.","user.settings.notifications.autoResponderDisabled":"Disabled","user.settings.notifications.autoResponderEnabled":"Enabled","user.settings.notifications.autoResponderHint":"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.","user.settings.notifications.autoResponderPlaceholder":"Message","user.settings.notifications.channelWide":"Channel-wide mentions \\"@channel\\", \\"@all\\", \\"@here\\"","user.settings.notifications.comments":"Reply notifications","user.settings.notifications.commentsAny":"Trigger notifications on messages in reply threads that I start or participate in","user.settings.notifications.commentsInfo":"In addition to notifications for when you\'re mentioned, select if you would like to receive notifications on reply threads.","user.settings.notifications.commentsNever":"Do not trigger notifications on messages in reply threads unless I\'m mentioned","user.settings.notifications.commentsRoot":"Trigger notifications on messages in threads that I start","user.settings.notifications.desktop":"Send desktop notifications","user.settings.notifications.desktop.allNoSound":"For all activity, without sound","user.settings.notifications.desktop.allSound":"For all activity, with sound","user.settings.notifications.desktop.allSoundHidden":"For all activity","user.settings.notifications.desktop.mentionsNoSound":"For mentions and direct messages, without sound","user.settings.notifications.desktop.mentionsSound":"For mentions and direct messages, with sound","user.settings.notifications.desktop.mentionsSoundHidden":"For mentions and direct messages","user.settings.notifications.desktop.sound":"Notification sound","user.settings.notifications.desktop.title":"Desktop notifications","user.settings.notifications.email.disabled":"Email notifications are not enabled","user.settings.notifications.email.disabled_long":"Email notifications have not been enabled by your System Administrator.","user.settings.notifications.email.everyHour":"Every hour","user.settings.notifications.email.everyXMinutes":"Every {count, plural, one {minute} other {{count, number} minutes}}","user.settings.notifications.email.immediately":"Immediately","user.settings.notifications.email.never":"Never","user.settings.notifications.email.send":"Send email notifications","user.settings.notifications.emailBatchingInfo":"Notifications received over the time period selected are combined and sent in a single email.","user.settings.notifications.emailInfo":"Email notifications are sent for mentions and direct messages when you are offline or away for more than 5 minutes.","user.settings.notifications.emailNotifications":"Email notifications","user.settings.notifications.header":"Notifications","user.settings.notifications.icon":"Notification Settings Icon","user.settings.notifications.info":"Desktop notifications are available on Edge, Firefox, Safari, Chrome and Mattermost Desktop Apps.","user.settings.notifications.mentionsInfo":"Mentions trigger when someone sends a message that includes your username (\\"@{username}\\") or any of the options selected above.","user.settings.notifications.never":"Never","user.settings.notifications.noWords":"No words configured","user.settings.notifications.off":"Off","user.settings.notifications.on":"On","user.settings.notifications.onlyMentions":"Only for mentions and direct messages","user.settings.notifications.push":"Mobile push notifications","user.settings.notifications.push_notification.status":"Trigger push notifications when","user.settings.notifications.sensitiveName":"Your case sensitive first name \\"{first_name}\\"","user.settings.notifications.sensitiveUsername":"Your non-case sensitive username \\"{username}\\"","user.settings.notifications.sensitiveWords":"Other non-case sensitive words, separated by commas:","user.settings.notifications.soundConfig":"Please configure notification sounds in your browser settings","user.settings.notifications.sounds_info":"Notification sounds are available on IE11, Safari, Chrome and Mattermost Desktop Apps.","user.settings.notifications.title":"Notification Settings","user.settings.notifications.wordsTrigger":"Words that trigger mentions","user.settings.push_notification.allActivity":"For all activity","user.settings.push_notification.allActivityAway":"For all activity when away or offline","user.settings.push_notification.allActivityOffline":"For all activity when offline","user.settings.push_notification.allActivityOnline":"For all activity when online, away or offline","user.settings.push_notification.away":"Away or offline","user.settings.push_notification.disabled":"Push notifications are not enabled","user.settings.push_notification.disabled_long":"Push notifications have not been enabled by your System Administrator.","user.settings.push_notification.info":"Notification alerts are pushed to your mobile device when there is activity in Mattermost.","user.settings.push_notification.offline":"Offline","user.settings.push_notification.online":"Online, away or offline","user.settings.push_notification.onlyMentions":"For mentions and direct messages","user.settings.push_notification.onlyMentionsAway":"For mentions and direct messages when away or offline","user.settings.push_notification.onlyMentionsOffline":"For mentions and direct messages when offline","user.settings.push_notification.onlyMentionsOnline":"For mentions and direct messages when online, away or offline","user.settings.push_notification.send":"Send mobile push notifications","user.settings.push_notification.status_info":"Notification alerts are only pushed to your mobile device when your online status matches the selection above.","user.settings.security.active":"Active","user.settings.security.close":"Close","user.settings.security.currentPassword":"Current Password","user.settings.security.currentPasswordError":"Please enter your current password.","user.settings.security.deauthorize":"Deauthorize","user.settings.security.emailPwd":"Email and Password","user.settings.security.gitlab":"GitLab","user.settings.security.google":"Google","user.settings.security.icon":"Security Settings Icon","user.settings.security.inactive":"Inactive","user.settings.security.lastUpdated":"Last updated {date} at {time}","user.settings.security.ldap":"AD/LDAP","user.settings.security.loginGitlab":"Login done through GitLab","user.settings.security.loginGoogle":"Login done through Google Apps","user.settings.security.loginLdap":"Login done through AD/LDAP","user.settings.security.loginOffice365":"Login done through Office 365","user.settings.security.loginSaml":"Login done through SAML","user.settings.security.logoutActiveSessions":"View and Log Out of Active Sessions","user.settings.security.logoutActiveSessions.icon":"Active Sessions Icon","user.settings.security.method":"Sign-in Method","user.settings.security.newPassword":"New Password","user.settings.security.noApps":"No OAuth 2.0 Applications are authorized.","user.settings.security.oauthApps":"OAuth 2.0 Applications","user.settings.security.oauthAppsDescription":"Click \'Edit\' to manage your OAuth 2.0 Applications","user.settings.security.oauthAppsHelp":"Applications act on your behalf to access your data based on the permissions you grant them.","user.settings.security.office365":"Office 365","user.settings.security.oneSignin":"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.","user.settings.security.password":"Password","user.settings.security.passwordError":"Your password must contain between {min} and {max} characters.","user.settings.security.passwordErrorLowercase":"Your password must contain between {min} and {max} characters made up of at least one lowercase letter.","user.settings.security.passwordErrorLowercaseNumber":"Your password must contain between {min} and {max} characters made up of at least one lowercase letter and at least one number.","user.settings.security.passwordErrorLowercaseNumberSymbol":"Your password must contain between {min} and {max} characters made up of at least one lowercase letter, at least one number, and at least one symbol (e.g. \\"~!@#$%^&*()\\").","user.settings.security.passwordErrorLowercaseSymbol":"Your password must contain between {min} and {max} characters made up of at least one lowercase letter and at least one symbol (e.g. \\"~!@#$%^&*()\\").","user.settings.security.passwordErrorLowercaseUppercase":"Your password must contain between {min} and {max} characters made up of at least one lowercase letter and at least one uppercase letter.","user.settings.security.passwordErrorLowercaseUppercaseNumber":"Your password must contain between {min} and {max} characters made up of at least one lowercase letter, at least one uppercase letter, and at least one number.","user.settings.security.passwordErrorLowercaseUppercaseNumberSymbol":"Your password must contain between {min} and {max} characters made up of at least one lowercase letter, at least one uppercase letter, at least one number, and at least one symbol (e.g. \\"~!@#$%^&*()\\").","user.settings.security.passwordErrorLowercaseUppercaseSymbol":"Your password must contain between {min} and {max} characters made up of at least one lowercase letter, at least one uppercase letter, and at least one symbol (e.g. \\"~!@#$%^&*()\\").","user.settings.security.passwordErrorNumber":"Your password must contain between {min} and {max} characters made up of at least one number.","user.settings.security.passwordErrorNumberSymbol":"Your password must contain between {min} and {max} characters made up of at least one number and at least one symbol (e.g. \\"~!@#$%^&*()\\").","user.settings.security.passwordErrorSymbol":"Your password must contain between {min} and {max} characters made up of at least one symbol (e.g. \\"~!@#$%^&*()\\").","user.settings.security.passwordErrorUppercase":"Your password must contain between {min} and {max} characters made up of at least one uppercase letter.","user.settings.security.passwordErrorUppercaseNumber":"Your password must contain between {min} and {max} characters made up of at least one uppercase letter and at least one number.","user.settings.security.passwordErrorUppercaseNumberSymbol":"Your password must contain between {min} and {max} characters made up of at least one uppercase letter, at least one number, and at least one symbol (e.g. \\"~!@#$%^&*()\\").","user.settings.security.passwordErrorUppercaseSymbol":"Your password must contain between {min} and {max} characters made up of at least one uppercase letter and at least one symbol (e.g. \\"~!@#$%^&*()\\").","user.settings.security.passwordGitlabCantUpdate":"Login occurs through GitLab. Password cannot be updated.","user.settings.security.passwordGoogleCantUpdate":"Login occurs through Google Apps. Password cannot be updated.","user.settings.security.passwordLdapCantUpdate":"Login occurs through AD/LDAP. Password cannot be updated.","user.settings.security.passwordMatchError":"The new passwords you entered do not match.","user.settings.security.passwordMinLength":"Invalid minimum length, cannot show preview.","user.settings.security.passwordOffice365CantUpdate":"Login occurs through Office 365. Password cannot be updated.","user.settings.security.passwordSamlCantUpdate":"This field is handled through your login provider. If you want to change it, you need to do so through your login provider.","user.settings.security.retypePassword":"Retype New Password","user.settings.security.saml":"SAML","user.settings.security.switchEmail":"Switch to Using Email and Password","user.settings.security.switchGitlab":"Switch to Using GitLab SSO","user.settings.security.switchGoogle":"Switch to Using Google SSO","user.settings.security.switchLdap":"Switch to Using AD/LDAP","user.settings.security.switchOffice365":"Switch to Using Office 365 SSO","user.settings.security.switchSaml":"Switch to Using SAML SSO","user.settings.security.title":"Security Settings","user.settings.security.viewHistory":"View Access History","user.settings.security.viewHistory.icon":"Access History Icon","user.settings.sidebar.after_seven_days":"After 7 days with no new messages","user.settings.sidebar.autoCloseDMDesc":"Direct Message conversations can be reopened with the “+” button in the sidebar or using the Channel Switcher (CTRL+K).","user.settings.sidebar.autoCloseDMTitle":"Automatically Close Direct Messages","user.settings.sidebar.channelSwitcherSectionDesc.mac":"The channel switcher is shown at the bottom of the sidebar and is used to jump between channels quickly. It can also be accessed using CMD + K.","user.settings.sidebar.channelSwitcherSectionDesc.windows":"The channel switcher is shown at the bottom of the sidebar and is used to jump between channels quickly. It can also be accessed using CTRL + K.","user.settings.sidebar.channelSwitcherSectionTitle":"Channel Switcher","user.settings.sidebar.favorites":"Favorites grouped separately","user.settings.sidebar.favoritesDesc":"Channels marked as favorites will be grouped separately.","user.settings.sidebar.favoritesShort":"Favorites grouped separately","user.settings.sidebar.groupAndSortChannelsTitle":"Channel grouping and sorting","user.settings.sidebar.groupByNone":"Combine all channel types","user.settings.sidebar.groupByNoneShort":"No grouping","user.settings.sidebar.groupByType":"Channels grouped by type","user.settings.sidebar.groupByTypeShort":"Group by channel type","user.settings.sidebar.groupChannelsTitle":"Channel grouping","user.settings.sidebar.groupDesc":"Group channels by type, or combine all types into a list.","user.settings.sidebar.icon":"Sidebar Settings Icon","user.settings.sidebar.never":"Never","user.settings.sidebar.off":"Off","user.settings.sidebar.on":"On","user.settings.sidebar.sortAlpha":"Alphabetically","user.settings.sidebar.sortAlphaShort":"sorted alphabetically","user.settings.sidebar.sortChannelsTitle":"Channel sorting","user.settings.sidebar.sortDesc":"Sort channels alphabetically, or by most recent post.","user.settings.sidebar.sortRecent":"Recency","user.settings.sidebar.sortRecentShort":"sorted by recency","user.settings.sidebar.title":"Sidebar Settings","user.settings.sidebar.unreads":"Unreads grouped separately","user.settings.sidebar.unreadsDesc":"Group unread channels separately until read.","user.settings.sidebar.unreadsFavoritesShort":"Unreads and favorites grouped separately","user.settings.sidebar.unreadsShort":"Unreads grouped separately","user.settings.timezones.automatic":"Set automatically","user.settings.timezones.change":"Change timezone","user.settings.timezones.promote":"Select the timezone used for timestamps in the user interface and email notifications.","user.settings.tokens.activate":"Enable","user.settings.tokens.cancel":"Cancel","user.settings.tokens.clickToEdit":"Click \'Edit\' to manage your personal access tokens","user.settings.tokens.confirmCopyButton":"Yes, I have copied the token","user.settings.tokens.confirmCopyMessage":"Make sure you have copied and saved the access token below. You won\'t be able to see it again!","user.settings.tokens.confirmCopyTitle":"Have you copied your token?","user.settings.tokens.confirmCreateButton":"Yes, Create","user.settings.tokens.confirmCreateMessage":"You are generating a personal access token with System Admin permissions. Are you sure want to create this token?","user.settings.tokens.confirmCreateTitle":"Create System Admin Personal Access Token","user.settings.tokens.confirmDeleteButton":"Yes, Delete","user.settings.tokens.confirmDeleteMessage":"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?","user.settings.tokens.confirmDeleteTitle":"Delete Token?","user.settings.tokens.copy":"Please copy the access token below. You won\'t be able to see it again!","user.settings.tokens.create":"Create Token","user.settings.tokens.deactivate":"Disable","user.settings.tokens.deactivatedWarning":"(Disabled)","user.settings.tokens.delete":"Delete","user.settings.tokens.description":"[Personal access tokens](!https://about.mattermost.com/default-user-access-tokens) function similarly to session tokens and can be used by integrations to [authenticate against the REST API](!https://about.mattermost.com/default-api-authentication).","user.settings.tokens.description_mobile":"[Personal access tokens](!https://about.mattermost.com/default-user-access-tokens) function similarly to session tokens and can be used by integrations to [authenticate against the REST API](!https://about.mattermost.com/default-api-authentication). Create new tokens on your desktop.","user.settings.tokens.id":"Token ID: ","user.settings.tokens.name":"Token Description: ","user.settings.tokens.nameHelp":"Enter a description for your token to remember what it does.","user.settings.tokens.nameRequired":"Please enter a description.","user.settings.tokens.save":"Save","user.settings.tokens.title":"Personal Access Tokens","user.settings.tokens.token":"Access Token: ","user.settings.tokens.tokenDesc":"Token Description: ","user.settings.tokens.tokenId":"Token ID: ","user.settings.tokens.tokenLoading":"Loading...","user.settings.tokens.userAccessTokensNone":"No personal access tokens.","version_bar.new":"A new version of Mattermost is available.","version_bar.refresh":"Refresh the app now","view_image_popover.download":"Download","view_image_popover.file":"File {count, number} of {total, number}","view_image_popover.open":"Open","view_image_popover.publicLink":"Get Public Link","view_image.loading":"Loading ","web.footer.about":"About","web.footer.help":"Help","web.footer.privacy":"Privacy","web.footer.terms":"Terms","web.header.back":"Back","web.header.logout":"Logout","web.root.signup_info":"All team communication in one place, searchable and accessible anywhere","widgets.channels_input.empty":"No channels found","widgets.channels_input.loading":"Loading","widgets.users_emails_input.loading":"Loading","widgets.users_emails_input.no_user_found_matching":"No one found matching **{text}**, type email address","widgets.users_emails_input.valid_email":"Add **{email}**","yourcomputer":"Your computer"}')},1496:function(e,t,a){"use strict";(function(e){a.d(t,"a",(function(){return Ee}));a(52),a(170),a(99);var n=a(96),s=a.n(n),i=a(33),r=a.n(i),o=a(7),l=a.n(o),c=a(1497),d=a.n(c),m=a(1105),u=a(593),p=a(139),h=a(15),g=a(17),b=a(50),f=a(311),_=a(1120),E=a(1213),v=a(229),y=a(1490),C=(a(1947),a(0)),w=a(1610),O=a(1957),T=a(1932),S=a(1944),P=a(343),M=a(11),I=a(172),N=a(14),j=a(1749);function A(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function R(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?A(a,!0).forEach((function(t){k(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):A(a).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function k(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function L(e,t){if(null==e)return{};var a,n,s=function(e,t){if(null==e)return{};var a,n,s={},i=Object.keys(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||(s[a]=e[a]);return s}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(s[a]=e[a])}return s}const D=l.a.lazy(()=>Promise.all([a.e(0),a.e(20)]).then(a.bind(null,1940))),x=l.a.lazy(()=>a.e(10).then(a.bind(null,1949))),U=l.a.lazy(()=>Promise.all([a.e(0),a.e(1),a.e(8),a.e(7)]).then(a.bind(null,1933))),q=l.a.lazy(()=>a.e(2).then(a.bind(null,1488))),H=l.a.lazy(()=>a.e(22).then(a.bind(null,1945))),F=l.a.lazy(()=>a.e(28).then(a.bind(null,1956))),B=l.a.lazy(()=>a.e(19).then(a.bind(null,1955))),G=l.a.lazy(()=>a.e(11).then(a.bind(null,1954))),V=l.a.lazy(()=>a.e(24).then(a.bind(null,1953))),W=l.a.lazy(()=>a.e(23).then(a.bind(null,1950))),z=l.a.lazy(()=>a.e(18).then(a.bind(null,1948))),Y=l.a.lazy(()=>a.e(16).then(a.bind(null,1938))),K=l.a.lazy(()=>a.e(27).then(a.bind(null,1937))),Q=l.a.lazy(()=>a.e(15).then(a.bind(null,1958))),J=l.a.lazy(()=>a.e(14).then(a.bind(null,1943))),Z=l.a.lazy(()=>a.e(25).then(a.bind(null,1952))),X=l.a.lazy(()=>a.e(13).then(a.bind(null,1942))),$=l.a.lazy(()=>a.e(12).then(a.bind(null,1941))),ee=Object(P.a)(X),te=Object(P.a)(D),ae=Object(P.a)(V),ne=Object(P.a)(x),se=Object(P.a)(U),ie=Object(P.a)(q),re=Object(P.a)(H),oe=Object(P.a)(F),le=Object(P.a)(B),ce=Object(P.a)(G),de=Object(P.a)(W),me=Object(P.a)(z),ue=Object(P.a)(Y),pe=Object(P.a)(K),he=Object(P.a)(Q),ge=Object(P.a)(J),be=Object(P.a)(Z),fe=Object(P.a)($),_e=e=>{let{component:t}=e,a=L(e,["component"]);return l.a.createElement(m.b,Object.assign({},a,{render:e=>l.a.createElement(ie,e,l.a.createElement(t,e))}))};class Ee extends l.a.Component{constructor(t){super(t),k(this,"onConfigLoaded",()=>{Object(N.Q)()&&Object(N.l)();const t=C.Q.DIAGNOSTICS_SEGMENT_KEY,a=this.props.diagnosticId;null!=t&&""!==t&&!t.startsWith("placeholder")&&this.props.diagnosticsEnabled&&function(){var n=e.window.analytics=e.window.analytics||[];if(!n.initialize)if(n.invoked)window.console&&console.error&&console.error("Segment snippet included twice.");else{n.invoked=!0,n.methods=["trackSubmit","trackClick","trackLink","trackForm","pageview","identify","group","track","ready","alias","page","once","off","on"],n.factory=function(e){return function(...t){var a=Array.prototype.slice.call(t);return a.unshift(e),n.push(a),n}};for(var s=0;s<n.methods.length;s++){var i=n.methods[s];n[i]=n.factory(i)}n.load=function(e){var t=document.createElement("script");t.type="text/javascript",t.async=!0,t.src=("https:"===document.location.protocol?"https://":"http://")+"cdn.segment.com/analytics.js/v1/"+e+"/analytics.min.js";var a=document.getElementsByTagName("script")[0];a.parentNode.insertBefore(t,a)},n.SNIPPET_VERSION="3.0.1",n.load(t),n.identify(a,{},{context:{ip:"0.0.0.0"},page:{path:"",referrer:"",search:"",title:"",url:""},anonymousId:"00000000000000000000000000"}),n.page("ApplicationLoaded",{path:"",referrer:"",search:"",title:"",url:""},{context:{ip:"0.0.0.0"},anonymousId:"00000000000000000000000000"})}}(),"/"===this.props.location.pathname&&this.props.noAccounts&&this.props.history.push("/signup_user_complete"),Object(y.a)().then(()=>{this.setState({configLoaded:!0})}),Object(v.c)()(M.a.dispatch,M.a.getState);const n=Object(h.getConfig)(M.a.getState()).IosAppDownloadLink,s=Object(h.getConfig)(M.a.getState()).AndroidAppDownloadLink,i="/reset_password_complete"===this.props.location.pathname;let r;g.b()?r=s:g.l()&&(r=n),!r||E.a.hasSeenLandingPage()||i||(this.props.history.push("/landing#"+this.props.location.pathname+this.props.location.search),E.a.setLandingPageSeen(!0))}),this.currentCategoryFocus=0,this.currentSidebarFocus=0,Object(u.setUrl)(Object(I.e)()),Object(p.setSystemEmojis)(b.a),s()(window).bind("storage",e=>{if(e.originalEvent.key===C.I.LOGOUT&&e.originalEvent.storageArea===localStorage&&e.originalEvent.newValue){if(E.a.isSignallingLogout(e.originalEvent.newValue))return;console.log("detected logout from a different tab"),_.e("/",!1,!1)}if(e.originalEvent.key===C.I.LOGIN&&e.originalEvent.storageArea===localStorage&&e.originalEvent.newValue){if(E.a.isSignallingLogin(e.originalEvent.newValue))return;console.log("detected login from a different tab"),location.reload()}}),document.addEventListener("drop",e=>{e.preventDefault(),e.stopPropagation()}),document.addEventListener("dragover",e=>{e.preventDefault(),e.stopPropagation()}),d.a.attach(document.body),this.state={configLoaded:!1},g.g()||(this.a11yController=new j.a)}componentDidUpdate(e){"/"===this.props.location.pathname&&(this.props.noAccounts?e.history.push("/signup_user_complete"):this.props.showTermsOfService&&e.history.push("/terms_of_service"))}componentDidMount(){this.props.actions.loadMeAndConfig().then(e=>{"/"===this.props.location.pathname&&e[2]&&e[2].data&&_.f(),this.onConfigLoaded()}),Object(f.e)()}componentWillUnmount(){s()(window).unbind("storage")}render(){return this.state.configLoaded?l.a.createElement(O.a,null,l.a.createElement(m.d,null,l.a.createElement(m.b,{path:"/error",component:te}),l.a.createElement(w.a,{path:"/login",component:ne}),l.a.createElement(w.a,{path:"/reset_password",component:re}),l.a.createElement(w.a,{path:"/reset_password_complete",component:oe}),l.a.createElement(w.a,{path:"/signup_user_complete",component:le}),l.a.createElement(w.a,{path:"/signup_email",component:ce}),l.a.createElement(w.a,{path:"/should_verify_email",component:de}),l.a.createElement(w.a,{path:"/do_verify_email",component:me}),l.a.createElement(w.a,{path:"/claim",component:ue}),l.a.createElement(w.a,{path:"/help",component:pe}),l.a.createElement(_e,{path:"/terms_of_service",component:ae}),l.a.createElement(m.b,{path:"/landing",component:he}),l.a.createElement(_e,{path:"/admin_console",component:se}),l.a.createElement(w.b,{path:"/select_team",component:ge}),l.a.createElement(w.b,{path:"/oauth/authorize",component:be}),l.a.createElement(w.b,{path:"/create_team",component:ee}),l.a.createElement(_e,{path:"/mfa",component:fe}),l.a.createElement(_e,{path:["/_redirect/integrations*","/_redirect/pl/:postid"],component:S.a}),l.a.createElement(_e,{path:"/:team",component:T.a}),l.a.createElement(m.a,{to:R({},this.props.location,{pathname:"/login"})}))):l.a.createElement("div",null)}}k(Ee,"propTypes",{diagnosticsEnabled:r.a.bool,diagnosticId:r.a.string,noAccounts:r.a.bool,showTermsOfService:r.a.bool,actions:r.a.shape({loadMeAndConfig:r.a.func.isRequired}).isRequired})}).call(this,a(24))},1498:function(e,t,a){"use strict";a.d(t,"a",(function(){return s})),a.d(t,"b",(function(){return i}));a(52);var n=a(0);function s(){return async e=>{e({type:n.f.INCREMENT_WS_ERROR_COUNT})}}function i(){return async e=>{e({type:n.f.RESET_WS_ERROR_COUNT})}}},1527:function(e,t,a){},1528:function(e,t,a){},1532:function(e,t,a){},1534:function(e,t,a){},1535:function(e,t,a){},1536:function(e,t,a){},1573:function(e,t){},1587:function(e,t,a){"use strict";(function(e){a.d(t,"a",(function(){return h}));var n=a(33),s=a.n(n),i=a(7),r=a.n(i),o=a(1392),l=a(310),c=a.n(l),d=a(0),m=a(1172);function u(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const p={display:"flex",flexDirection:"column",alignItems:"center",zIndex:10};class h extends r.a.PureComponent{constructor(t){super(t),u(this,"tooltipContainerRef",void 0),u(this,"show",void 0),u(this,"hideTimeout",void 0),u(this,"showTimeout",void 0),u(this,"popper",void 0),u(this,"showTooltip",t=>{if(window.clearTimeout(this.hideTimeout),!this.show){const a=e(t.target).get(0),n=e(this.tooltipContainerRef.current),s=n.get(0);window.clearTimeout(this.showTimeout),this.showTimeout=window.setTimeout(()=>{this.show=!0,n.show(),n.children().on("mouseover",()=>clearTimeout(this.hideTimeout)),n.children().on("mouseleave",e=>{null!==e.relatedTarget&&this.hideTooltip()}),this.popper=new o.a(a,s,{placement:"bottom",modifiers:{preventOverflow:{enabled:!1},hide:{enabled:!1}}})},d.j.OVERLAY_TIME_DELAY)}}),u(this,"hideTooltip",()=>{window.clearTimeout(this.hideTimeout),this.hideTimeout=window.setTimeout(()=>{this.show=!1,clearTimeout(this.showTimeout),e(this.tooltipContainerRef.current).hide()},d.j.OVERLAY_TIME_DELAY_SMALL)}),this.tooltipContainerRef=r.a.createRef(),this.show=!1,this.showTimeout=-1,this.hideTimeout=-1}render(){const{href:e,title:t}=this.props;return r.a.createElement(r.a.Fragment,null,c.a.createPortal(r.a.createElement("div",{style:p,ref:this.tooltipContainerRef},r.a.createElement(m.a,{href:e,pluggableName:"LinkTooltip"})),document.getElementById("root")),r.a.createElement("span",{onMouseOver:this.showTooltip,onMouseLeave:this.hideTooltip},t))}}u(h,"propTypes",{href:s.a.string.isRequired,title:s.a.string.isRequired})}).call(this,a(96))},1596:function(e,t,a){e.exports=a.p+"files/32c2bbd0baa32c30ead015bd2c22222d.png"},1610:function(e,t,a){"use strict";a.d(t,"a",(function(){return c})),a.d(t,"b",(function(){return d}));a(52);var n=a(7),s=a.n(n),i=a(1105);function r(e,t){if(null==e)return{};var a,n,s=function(e,t){if(null==e)return{};var a,n,s={},i=Object.keys(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||(s[a]=e[a]);return s}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(s[a]=e[a])}return s}const o=s.a.lazy(()=>a.e(26).then(a.bind(null,1946))),l=s.a.lazy(()=>a.e(2).then(a.bind(null,1488))),c=e=>{let{component:t}=e,a=r(e,["component"]);return s.a.createElement(i.b,Object.assign({},a,{render:e=>s.a.createElement(s.a.Suspense,{fallback:null},s.a.createElement(o,e,s.a.createElement(t,e)))}))},d=e=>{let{component:t}=e,a=r(e,["component"]);return s.a.createElement(i.b,Object.assign({},a,{render:e=>s.a.createElement(s.a.Suspense,{fallback:null},s.a.createElement(l,e,s.a.createElement(s.a.Suspense,{fallback:null},s.a.createElement(o,e,s.a.createElement(t,e)))))}))}},1617:function(e,t,a){},1618:function(e,t,a){},1619:function(e,t,a){},1620:function(e,t,a){},1621:function(e,t,a){},1624:function(e,t,a){e.exports=a.p+"files/3fee6e80a205e777a5acde9c16a90e55.png"},1625:function(e,t,a){e.exports=a.p+"files/6f4421b97edade53cd63705875f17a2a.png"},1671:function(e,t,a){e.exports=a.p+"files/bd956aafccffed574da236f21af209ef.gif"},1672:function(e,t,a){e.exports=a.p+"files/8b03642d36741ba3030a9004a1d56bb0.gif"},1673:function(e,t,a){},1674:function(e,t,a){},1675:function(e,t,a){},1699:function(e,t,a){},1700:function(e,t,a){},1701:function(e,t,a){},1702:function(e,t,a){},1703:function(e,t,a){},1704:function(e,t,a){},1705:function(e,t,a){},1706:function(e,t,a){},1707:function(e,t,a){},1709:function(e,t,a){e.exports=a.p+"files/8713c219cc92b0b4a2cc51f6eca009ca.png"},1710:function(e,t,a){e.exports=a.p+"files/6235966ceb0e6178c3f38e2be5f99035.png"},1711:function(e,t,a){e.exports=a.p+"files/0cacb9957a05c04c70242a5d2ce0d40c.png"},1712:function(e,t,a){e.exports=a.p+"files/5b30cabcbe85724f286c54208eaa1120.png"},1713:function(e,t,a){e.exports=a.p+"files/7cb508f6703ab3fc4adc463665732dc9.png"},1714:function(e,t,a){e.exports=a.p+"files/a84f8d6c46d2619f5864f2e6cd7e5c95.png"},1745:function(e,t,a){},1746:function(e,t,a){},1748:function(e,t,a){e.exports=a.p+"files/c86ea01a44f1291289b4af3eeb01f261.png"},1749:function(e,t,a){"use strict";a.d(t,"a",(function(){return l}));a(1291),a(113);var n=a(0),s=a(14),i=a(17);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const o={capture:!0};class l{constructor(){r(this,"handleKeyDown",e=>{const t=e.ctrlKey,a=e.altKey,r=e.shiftKey;switch(!0){case Object(s.W)(e,n.Q.KeyCodes.TAB):if(this.lastInputEventIsKeyboard=!0,!Object(s.X)()&&a||Object(s.e)(e))return;this.tabKeyIsPressed=!0;break;case Object(s.W)(e,n.Q.KeyCodes.TILDE):if(this.lastInputEventIsKeyboard=!0,!this.regions||!this.regions.length)return;t&&!a&&(this.tildeKeyIsPressed=!0,e.preventDefault(),r?this.previousRegion():this.nextRegion());break;case Object(s.W)(e,n.Q.KeyCodes.F6):if(this.lastInputEventIsKeyboard=!0,!Object(i.d)()&&!Object(s.e)(e))return;this.f6KeyIsPressed=!0,e.preventDefault(),r?this.previousRegion():this.nextRegion();break;case Object(s.W)(e,n.Q.KeyCodes.UP):if(this.lastInputEventIsKeyboard=!0,!this.navigationInProgress||!this.sections||!this.sections.length)return;this.upArrowKeyIsPressed=!0,e.preventDefault(),this.shouldReverseSections?this.nextSection():this.previousSection();break;case Object(s.W)(e,n.Q.KeyCodes.DOWN):if(this.lastInputEventIsKeyboard=!0,!this.navigationInProgress||!this.sections||!this.sections.length)return;this.downArrowKeyIsPressed=!0,e.preventDefault(),this.shouldReverseSections?this.previousSection():this.nextSection();break;case Object(s.W)(e,n.Q.KeyCodes.ESCAPE):if(!this.navigationInProgress)return;e.preventDefault(),this.cancelNavigation();break;case Object(s.W)(e,n.Q.KeyCodes.ENTER):this.enterKeyIsPressed=!0;break;case Object(s.W)(e,n.Q.KeyCodes.SPACE):"BUTTON"===e.target.nodeName&&(e.preventDefault(),e.stopPropagation(),e.target.click());break;case Object(s.W)(e,n.Q.KeyCodes.L):this.lastInputEventIsKeyboard=!0,this.lKeyIsPressed=!0}}),r(this,"handleKeyUp",()=>{this.resetInterractionStates()}),r(this,"handleMouseClick",e=>{this.enterKeyIsPressed||(this.lastInputEventIsKeyboard=!1),e.target!==this.activeElement&&this.cancelNavigation()}),r(this,"handleMouseDown",()=>{this.mouseIsPressed=!0}),r(this,"handleMouseUp",()=>{this.mouseIsPressed=!1}),r(this,"handleFocus",e=>{this.lastInputEventIsKeyboard&&this.windowIsFocused&&this.nextElement(e.target,e.path||!0),this.windowIsFocused||(this.windowIsFocused=!0)}),r(this,"handleWindowBlur",e=>{e.target===window&&(this.windowIsFocused=!1)}),r(this,"handleActiveRegionUpdate",()=>{this.navigationInProgress&&(this.updateActiveRegion(),this.focusedElement===this.activeRegion&&this.udpateCurrentFocus(!0))}),r(this,"handleActiveSectionUpdate",()=>{this.navigationInProgress&&(this.updateActiveSection(),this.focusedElement===this.activeSection&&this.udpateCurrentFocus(!0))}),r(this,"handleActiveElementUpdate",()=>{this.navigationInProgress&&(this.updateActiveElement(),this.focusedElement===this.activeElement&&this.udpateCurrentFocus(!0))}),this.regionHTMLCollection=this.getAllRegions(),this.sectionHTMLCollection=null,this.modalHTMLCollection=this.getAllModals(),this.popupHTMLCollection=this.getAllPopups(),this.activeRegion=null,this.activeSection=null,this.activeElement=null,this.mouseIsPressed=!1,this.lastInputEventIsKeyboard=!1,this.enterKeyIsPressed=!1,this.f6KeyIsPressed=!1,this.upArrowKeyIsPressed=!1,this.downArrowKeyIsPressed=!1,this.tabKeyIsPressed=!1,this.tildeKeyIsPressed=!1,this.lKeyIsPressed=!1,this.windowIsFocused=!0,this.resetNavigation=!1,document.addEventListener(n.m.KEY_DOWN,this.handleKeyDown,o),document.addEventListener(n.m.KEY_UP,this.handleKeyUp,o),document.addEventListener(n.m.CLICK,this.handleMouseClick,o),document.addEventListener(n.m.MOUSE_DOWN,this.handleMouseDown,o),document.addEventListener(n.m.MOUSE_UP,this.handleMouseUp,o),document.addEventListener(n.m.FOCUS,this.handleFocus,o),window.addEventListener(n.m.BLUR,this.handleWindowBlur,o)}destroy(){this.clearActiveRegion(),this.clearCurrentFocus(),document.removeEventListener(n.m.KEY_DOWN,this.handleKeyDown,o),document.removeEventListener(n.m.KEY_UP,this.handleKeyUp,o),document.removeEventListener(n.m.CLICK,this.handleMouseClick,o),document.removeEventListener(n.m.MOUSE_DOWN,this.handleMouseDown,o),document.removeEventListener(n.m.MOUSE_UP,this.handleMouseUp,o),document.removeEventListener(n.m.FOCUS,this.handleFocus,o),window.removeEventListener(n.m.BLUR,this.handleWindowBlur,o)}get navigationInProgress(){return!!(this.regions&&this.regions.length&&this.isElementValid(this.activeRegion))&&(!!this.lastInputEventIsKeyboard&&(!this.modalIsOpen&&!this.popupIsOpen&&!!this.isElementValid(this.activeElement)))}get regions(){let e=this.sortElementsByAttributeOrder(this.regionHTMLCollection);return e=e.filter(e=>this.elementIsVisible(e))}get sections(){let e=this.sortElementsByAttributeOrder(this.sectionHTMLCollection);return e=e.filter(e=>this.elementIsVisible(e)),this.shouldReverseSections&&e.reverse(),e}get activeRegionIndex(){return this.activeRegion?this.regions.indexOf(this.activeRegion):null}get activeSectionIndex(){return this.activeSection?this.sections.indexOf(this.activeSection):null}get shouldReverseSections(){return!!this.activeRegion&&this.getOrderReverseAttribute(this.activeRegion)}get focusedElement(){let e;return this.activeElement?e=this.activeElement:this.activeSection?e=this.activeSection:this.activeRegion&&(e=this.activeRegion),e}get a11yKeyIsPressed(){return this.f6KeyIsPressed||this.upArrowKeyIsPressed||this.downArrowKeyIsPressed||this.tabKeyIsPressed||this.tildeKeyIsPressed||this.lKeyIsPressed}get modalIsOpen(){return this.modalHTMLCollection.length>0}get popupIsOpen(){return this.popupHTMLCollection.length>0}nextRegion(){const e=this.regions;if(!e||!e.length||this.modalIsOpen||this.popupIsOpen)return;let t;t=!this.activeRegion||this.activeRegionIndex===e.length-1||this.resetNavigation?e[0]:e[this.activeRegionIndex+1],this.setActiveRegion(t),this.setCurrentFocus(),this.resetNavigation=!1}previousRegion(){const e=this.regions;if(!e||!e.length||this.modalIsOpen||this.popupIsOpen)return;let t;t=!this.activeRegion||0!==this.activeRegionIndex&&this.resetNavigation?e[0]:0===this.activeRegionIndex?e[e.length-1]:e[this.activeRegionIndex-1],this.setActiveRegion(t),this.setCurrentFocus(),this.resetNavigation=!1}nextSection(){const e=this.sections,t=this.getLoopNavigationAttribute(this.activeRegion);if(this.modalIsOpen||this.popupIsOpen||!e||!e.length||!t&&this.activeSectionIndex===e.length-1)return;let a;a=this.activeSection&&this.activeSectionIndex<e.length-1?e[this.activeSectionIndex+1]:e[0],this.setActiveSection(a),this.setCurrentFocus(),this.resetNavigation=!0}previousSection(){const e=this.sections,t=this.getLoopNavigationAttribute(this.activeRegion);if(this.modalIsOpen||this.popupIsOpen||!e||!e.length||!t&&0===this.activeSectionIndex)return;let a;a=this.activeSection&&this.activeSectionIndex>0?e[this.activeSectionIndex-1]:this.activeSection&&0===this.activeSectionIndex?e[e.length-1]:e[0],this.setActiveSection(a),this.setCurrentFocus(),this.resetNavigation=!0}nextElement(e,t=!1){let a,s;t&&t.length?(t.indexOf(this.activeRegion)<0&&(a=t.find(e=>!!e.classList&&e.classList.contains(n.b.REGION))),t.indexOf(this.activeSection)<0&&(s=t.find(e=>!!e.classList&&e.classList.contains(n.b.SECTION)))):t&&"function"==typeof e.closest&&(a=e.closest(".".concat(n.b.REGION)),s=e.closest(".".concat(n.b.SECTION))),a&&this.activeRegion!==a&&this.setActiveRegion(a,!1),s&&this.activeSection!==s&&this.setActiveSection(s),this.setActiveElement(e),this.setCurrentFocus(),this.resetNavigation=!0}cancelNavigation(){this.clearActiveRegion(),this.setCurrentFocus(),this.resetInterractionStates()}setActiveRegion(e,t=!0){(this.isElementValid(e,[this.activeRegion])||this.resetNavigation)&&(this.clearActiveRegion(),this.activeRegion=e,this.activeRegion.addEventListener(n.c.UPDATE,this.handleActiveRegionUpdate),this.activeRegion.dispatchEvent(new Event(n.c.ACTIVATE)),this.updateActiveRegion(),this.sectionHTMLCollection=this.getAllSectionsForRegion(this.activeRegion),t&&this.getFocusChildAttribute(this.activeRegion)&&this.sections&&this.sections.length&&this.setActiveSection(this.sections[0]))}setActiveSection(e){this.isElementValid(e,[this.activeSection])&&(this.clearActiveSection(),this.activeSection=e,this.activeSection.addEventListener(n.c.UPDATE,this.handleActiveSectionUpdate),this.activeSection.dispatchEvent(new Event(n.c.ACTIVATE)),this.updateActiveSection())}setActiveElement(e){this.isElementValid(e,[this.activeElement])&&(this.clearActiveElement(),this.activeElement=e,this.activeElement.addEventListener(n.c.UPDATE,this.handleActiveElementUpdate),this.activeElement!==this.activeRegion&&this.activeElement!==this.activeSection&&this.activeElement.dispatchEvent(new Event(n.c.ACTIVATE)),this.updateActiveElement())}setCurrentFocus(){this.clearCurrentFocus(),this.focusedElement&&(document.activeElement!==this.focusedElement&&this.focusedElement.focus(),this.udpateCurrentFocus())}updateActiveRegion(){this.activeRegion&&(this.activeRegion.classList.add(n.b.ACTIVE),this.activeRegion.getAttribute("tabindex")||this.activeRegion.setAttribute("tabindex",-1))}updateActiveSection(){this.activeSection&&(this.activeSection.classList.add(n.b.ACTIVE),this.activeSection.getAttribute("tabindex")||this.activeSection.setAttribute("tabindex",-1))}updateActiveElement(){this.activeElement&&this.activeElement.classList.add(n.b.ACTIVE)}udpateCurrentFocus(e=!1){(this.focusedElement&&this.a11yKeyIsPressed||e)&&this.focusedElement.classList.add(n.b.FOCUSED)}clearActiveRegion(){this.activeRegion&&(this.activeRegion.classList.remove(n.b.ACTIVE),this.activeRegion.dispatchEvent(new Event(n.c.DEACTIVATE)),this.activeRegion.removeEventListener(n.c.UPDATE,this.handleActiveRegionUpdate),this.activeRegion=null),this.clearActiveSection()}clearActiveSection(){this.activeSection&&(this.activeSection.classList.remove(n.b.ACTIVE),this.activeSection.dispatchEvent(new Event(n.c.DEACTIVATE)),this.activeSection.removeEventListener(n.c.UPDATE,this.handleActiveSectionUpdate),this.activeSection=null),this.clearActiveElement()}clearActiveElement(){this.activeElement&&(this.activeElement!==this.activeRegion&&this.activeElement!==this.activeSection&&(this.activeElement.classList.remove(n.b.ACTIVE),this.activeElement.dispatchEvent(new Event(n.c.DEACTIVATE))),this.activeElement.removeEventListener(n.c.UPDATE,this.handleActiveElementUpdate),this.activeElement=null)}clearCurrentFocus(e=!1){Array.from(document.getElementsByClassName(n.b.FOCUSED)).forEach(e=>{e.classList.remove(n.b.FOCUSED)}),e&&document.activeElement.blur()}resetInterractionStates(){this.mouseIsPressed=!1,this.f6KeyIsPressed=!1,this.upArrowKeyIsPressed=!1,this.downArrowKeyIsPressed=!1,this.tabKeyIsPressed=!1,this.tildeKeyIsPressed=!1,this.enterKeyIsPressed=!1,this.lKeyIsPressed=!1,this.lastInputEventIsKeyboard=!1}getAllRegions(){return document.getElementsByClassName(n.b.REGION)}getAllSectionsForRegion(e){return e?e.getElementsByClassName(n.b.SECTION):null}sortElementsByAttributeOrder(e){return e&&e.length?Array.from(e).sort((e,t)=>{const a=parseInt(e.getAttribute(n.a.SORT_ORDER),10),s=parseInt(t.getAttribute(n.a.SORT_ORDER),10);return isNaN(a)&&isNaN(s)?0:isNaN(s)?-1:isNaN(a)?1:a-s}):[]}elementIsVisible(e){return e&&e.offsetParent}getAllModals(){return document.getElementsByClassName(n.b.MODAL)}getAllPopups(){return document.getElementsByClassName(n.b.POPUP)}getLoopNavigationAttribute(e){const t=e.getAttribute(n.a.LOOP_NAVIGATION);return!t||"false"!==t.toLowerCase()}getOrderReverseAttribute(e){const t=e.getAttribute(n.a.ORDER_REVERSE);return!(!t||"true"!==t.toLowerCase())}getFocusChildAttribute(e){const t=e.getAttribute(n.a.FOCUS_CHILD);return!(!t||"true"!==t.toLowerCase())}isElementValid(e,t=[]){return!(!e||!e.classList||t.includes(e))}}},1932:function(e,t,a){"use strict";a(138);var n=a(309),s=a(6),i=a(1105),r=a(20),o=a(36),l=a(173),c=a(19),d=a(15),m=a(10),u=a(16),p=a(13),h=a(401),g=a(118),b=a(1190),f=a(1147),_=a(1399),E=(a(52),a(33)),v=a.n(E),y=a(7),C=a.n(y),w=a(1611),O=a.n(w),T=a(1210),S=a(1120),P=a(0),M=a(17),I=a(14),N=a(343),j=a(1181),A=a(1172),R=a(1347),k=a(31),L=a(12),D=a(61),x=a(1125),U=a(313),q=a(41);function H(e){return async(t,a)=>{const n=await k.editPost(e)(t,a);return n.error&&"api.post.update_post.permissions_time_limit.app_error"===n.error.server_error_id&&t(Object(q.logError)({type:P.i.ANNOUNCEMENT,message:n.error.message},!0)),n}}function F(e,t,a,n,s,i){return async n=>{n({type:P.f.SELECT_ATTACHMENT_MENU_ACTION,postId:e,data:{[t]:{text:s,value:i}}}),n(k.doPostActionWithCookie(e,t,a,i))}}var B=a(317),G=(a(72),a(1352)),V=a(1106),W=a(314),z=a(312),Y=a(1118),K=a(95);function Q(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class J extends C.a.PureComponent{constructor(e){super(e),Q(this,"handleDelete",async()=>{const{actions:e,channelName:t,focusedPostId:a,post:n,teamName:s}=this.props,i=await e.deleteAndRemovePost(n);n.id===a&&t&&K.a.push("/"+s+"/channels/"+t),i.data&&this.onHide()}),Q(this,"handleEntered",()=>{this.deletePostBtn&&this.deletePostBtn.focus()}),Q(this,"onHide",()=>{var e;(this.setState({show:!1}),M.n())||(e=this.props.isRHS?document.getElementById("reply_textbox"):document.getElementById("post_textbox"))&&e.focus()}),this.state={show:!0}}render(){var e="";this.props.commentCount>0&&""===this.props.post.root_id&&(e=C.a.createElement(V.a,{id:"delete_post.warning",defaultMessage:"This post has {count, number} {count, plural, one {comment} other {comments}} on it.",values:{count:this.props.commentCount}}));const t=this.props.post.root_id?C.a.createElement(V.a,{id:"delete_post.comment",defaultMessage:"Comment"}):C.a.createElement(V.a,{id:"delete_post.post",defaultMessage:"Post"});return C.a.createElement(G.a,{dialogClassName:"a11y__modal",show:this.state.show,onEntered:this.handleEntered,onHide:this.onHide,onExited:this.props.onHide,enforceFocus:!1,id:"deletePostModal",role:"dialog","aria-labelledby":"deletePostModalLabel"},C.a.createElement(G.a.Header,{closeButton:!0},C.a.createElement(G.a.Title,{componentClass:"h1",id:"deletePostModalLabel"},C.a.createElement(V.a,{id:"delete_post.confirm",defaultMessage:"Confirm {term} Delete",values:{term:t}}))),C.a.createElement(G.a.Body,null,C.a.createElement(V.a,{id:"delete_post.question",defaultMessage:"Are you sure you want to delete this {term}?",values:{term:t}}),C.a.createElement("br",null),C.a.createElement("br",null),e),C.a.createElement(G.a.Footer,null,C.a.createElement("button",{type:"button",className:"btn btn-link",onClick:this.onHide},C.a.createElement(V.a,{id:"delete_post.cancel",defaultMessage:"Cancel"})),C.a.createElement("button",{ref:e=>{this.deletePostBtn=e},type:"button",autoFocus:!0,className:"btn btn-danger",onClick:this.handleDelete,id:"deletePostModalButton"},C.a.createElement(V.a,{id:"delete_post.del",defaultMessage:"Delete"}))))}}Q(J,"propTypes",{channelName:v.a.string,focusedPostId:v.a.string,teamName:v.a.string,post:v.a.object.isRequired,commentCount:v.a.number.isRequired,isRHS:v.a.bool.isRequired,onHide:v.a.func.isRequired,actions:v.a.shape({deleteAndRemovePost:v.a.func.isRequired})});var Z=Object(n.connect)((function(e,t){const a=Object(p.getChannel)(e,t.post.channel_id);let n="";a&&(n=a.name);const{focusedPostId:s}=e.views.channel;return{channelName:n,focusedPostId:s,teamName:Object(u.getCurrentTeam)(e).name}}),(function(e){return{actions:Object(s.bindActionCreators)({deleteAndRemovePost:U.c},e)}}))(J),X=a(1303),$=a(1391),ee=a(1398),te=a(1397),ae=a(1613),ne=a.n(ae),se=a(1175),ie=a(1),re={ItemTapAction:{OPEN_EMBED_PAGE:1,SHARE:2},Tab:{TRENDING:0,REACTIONS:1},appName:{mattermost:"mattermost"}};a(170),a(98);class oe extends C.a.PureComponent{render(){return C.a.createElement("span",this.props,C.a.createElement("svg",{width:"100%",height:"100%",viewBox:"-10 -10 40 40",version:"1.1"},C.a.createElement("g",{id:"ic_search",transform:"matrix(0.959095,-9.6091e-18,-1.00189e-17,0.959095,-0.0633002,-0.777826)"},C.a.createElement("path",{d:"M2.648,15.872C3.433,16.658 4.376,17.287 5.454,17.758C6.553,18.229 7.698,18.454 8.888,18.454C10.728,18.454 12.389,17.938 13.893,16.905L18.18,21.192C18.494,21.506 18.854,21.664 19.302,21.664C19.751,21.664 20.111,21.506 20.447,21.192C20.761,20.855 20.919,20.496 20.919,20.047C20.919,19.621 20.761,19.239 20.447,18.925L16.16,14.638C17.193,13.134 17.709,11.473 17.709,9.633C17.709,8.443 17.484,7.298 17.013,6.198C16.542,5.121 15.913,4.178 15.128,3.393C14.342,2.607 13.399,1.979 12.322,1.507C11.222,1.036 10.077,0.811 8.888,0.811C7.698,0.811 6.553,1.036 5.454,1.507C4.376,1.979 3.433,2.607 2.648,3.393C1.862,4.178 1.234,5.121 0.762,6.198C0.291,7.298 0.066,8.443 0.066,9.633C0.066,10.822 0.291,11.967 0.762,13.067C1.234,14.144 1.862,15.087 2.648,15.872ZM8.888,4.021C10.436,4.021 11.761,4.56 12.861,5.66C13.96,6.76 14.499,8.084 14.499,9.633C14.499,11.181 13.96,12.506 12.861,13.606C11.761,14.705 10.436,15.244 8.888,15.244C7.339,15.244 6.015,14.705 4.915,13.606C3.815,12.506 3.276,11.181 3.276,9.633C3.276,8.084 3.815,6.76 4.915,5.66C6.015,4.56 7.339,4.021 8.888,4.021Z",style:{fill:"inherit"}}))))}}class le extends C.a.PureComponent{render(){return C.a.createElement("span",this.props,C.a.createElement("svg",{width:"100%",height:"100%",viewBox:"-10 -10 40 40",enableBackground:"new 0 0 20 20",version:"1.1"},C.a.createElement("g",{transform:"matrix(0.952381,0,0,1,0,0)"},C.a.createElement("path",{fill:"inherit",d:"M10.5 11.7L2.2 19.8C2 19.9 1.9 20 1.7 20 1.6 20 1.4 19.9 1.3 19.8L0.2 18.8C0.1 18.7 0 18.5 0 18.3 0 18.2 0.1 18 0.2 17.9L8.3 10 0.2 2.1C0.1 2 0 1.8 0 1.7 0 1.5 0.1 1.3 0.2 1.2L1.3 0.2C1.4 0.1 1.6 0 1.7 0 1.9 0 2 0.1 2.2 0.2L10.5 8.3 18.8 0.2C19 0.1 19.1 0 19.3 0 19.4 0 19.6 0.1 19.7 0.2L20.8 1.2C20.9 1.3 21 1.5 21 1.7 21 1.8 20.9 2 20.8 2.1L12.7 10 20.8 17.9C20.9 18 21 18.2 21 18.3 21 18.5 20.9 18.7 20.8 18.8L19.7 19.8C19.6 19.9 19.4 20 19.3 20 19.1 20 19 19.9 18.8 19.8L10.5 11.7Z"}))))}}var ce=a(1127),de=a(27);a(1617);function me(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function ue(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const pe={saveSearchBarText:se.saveSearchBarText,saveSearchScrollPosition:se.saveSearchScrollPosition,searchTextUpdate:se.searchTextUpdate},he=Object(ie.makeStyleFromTheme)(e=>({background:{backgroundColor:e.centerChannelBg},icon:{fill:Object(ie.changeOpacity)(e.centerChannelColor,.4)},inputBackground:{backgroundColor:e.centerChannelBg},input:{borderColor:Object(ie.changeOpacity)(e.centerChannelColor,.12)}}));class ge extends y.Component{constructor(e){super(e),ue(this,"parseSearchText",e=>e.trim().split(/ +/).join("-")),ue(this,"removeExtraSpaces",e=>e.trim().split(/ +/).join(" ")),ue(this,"updateSearchInputValue",e=>{this.searchInput.value=e,this.props.saveSearchBarText(e)}),ue(this,"handleSubmit",e=>{e.preventDefault(),this.triggerSearch(this.searchInput.value),this.searchInput.blur()}),ue(this,"triggerSearch",e=>{const{onSearch:t}=this.props;this.props.searchTextUpdate(this.parseSearchText(e)),t(),this.props.saveSearchScrollPosition(0)}),ue(this,"handleChange",e=>{clearTimeout(this.searchTimeout);const t=e.target.value,{onCategories:a,action:n}=this.props;this.props.saveSearchBarText(t),""===t?a():"reactions"===n&&this.isFilteredTags(t)||(this.searchTimeout=setTimeout(()=>{this.triggerSearch(t)},500))}),ue(this,"focusInput",()=>{this.setState({inputFocused:!0})}),ue(this,"blurInput",()=>{this.setState({inputFocused:!1})}),ue(this,"isFilteredTags",e=>{var t=this.removeExtraSpaces(e);const{tagsList:a}=this.props,n=t.toLowerCase(),s=a&&a.length?a.filter(e=>t&&-1===e.tagName.indexOf(n)?"":e):[];return Boolean(s.length)}),ue(this,"clearSearchHandle",()=>{const{action:e,onTrending:t,onCategories:a}=this.props;this.updateSearchInputValue(""),"reactions"===e?a():t()}),this.state={inputFocused:!1},this.searchTimeout=null,this.props.saveSearchBarText(""),this.props.searchTextUpdate("")}componentDidUpdate(e){const{searchBarText:t}=this.props;t!==e.searchBarText&&("trending"===t?this.updateSearchInputValue(""):this.updateSearchInputValue(t))}shouldComponentUpdate(e,t){return!e.searchBarText&&this.props.searchBarText||e.searchBarText&&!this.props.searchBarText||t.inputFocused!==this.state.inputFocused}render(){const e=he(this.props.theme),{searchBarText:t}=this.props,a=t?C.a.createElement(le,{className:"ic-clear-search",style:e.icon,onClick:this.clearSearchHandle}):null;return C.a.createElement("form",{className:"gfycat-search",method:"get",target:"_top",noValidate:"",onSubmit:this.handleSubmit},C.a.createElement("div",{className:"search-bar",style:e.background},C.a.createElement("div",{className:"search-input-bg",style:e.inputBackground}),C.a.createElement(ce.a,{className:"search-input",name:"searchText",autoFocus:!0,placeholder:{id:Object(de.b)("gif_picker.gfycat"),defaultMessage:"Search Gfycat"},onChange:this.handleChange,autoComplete:"off",autoCapitalize:"off",onFocus:this.focusInput,onBlur:this.blurInput,ref:e=>(this.searchInput=e,e),style:e.input}),C.a.createElement(oe,{className:"ic ic-search",style:e.icon}),a),C.a.createElement("button",{type:"submit",className:"submit-button"}))}}ue(ge,"propTypes",{searchBarText:v.a.string,tagsList:v.a.array,theme:v.a.object.isRequired,onTrending:v.a.func,onSearch:v.a.func,onCategories:v.a.func,action:v.a.string,saveSearchScrollPosition:v.a.func,saveSearchBarText:v.a.func,searchTextUpdate:v.a.func});var be=Object(n.connect)((function(e){return function(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?me(a,!0).forEach((function(t){ue(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):me(a).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}({},e.entities.gifs.categories,{},e.entities.gifs.search,{theme:Object(c.getTheme)(e),appProps:e.entities.gifs.app})}),pe)(ge);class fe extends C.a.PureComponent{render(){return C.a.createElement("span",this.props,C.a.createElement("svg",{className:"ic-svg ic-trending-svg",width:"11px",height:"15px",viewBox:"0 0 11 15",version:"1.1"},C.a.createElement("g",{id:"Finalized-Design",stroke:"none",fill:"inherit"},C.a.createElement("g",{id:"GfyCat---Gycat-Tab",transform:"translate(-1212.000000, -619.000000)",fill:"inherit"},C.a.createElement("g",{id:"modal---emojis",transform:"translate(1147.000000, 542.000000)"},C.a.createElement("g",{id:"tabs---gfycat",transform:"translate(1.000000, 68.000000)"},C.a.createElement("g",{id:"tab---trending---selected"},C.a.createElement("path",{d:"M69.90625,10.4062776 C69.90625,10.9531513 70.0976562,11.4909106 70.4804688,12.019555 C70.6992188,12.32945 71.1276043,12.7760638 71.765625,13.3593956 C72.3489582,13.9062693 72.7773438,14.3346538 73.0507812,14.6445488 C73.5065106,15.1731932 73.8528644,15.7109525 74.0898438,16.2578262 C74.3632812,16.9505327 74.5,17.6979271 74.5,18.5000083 C74.5,19.4479229 74.2630207,20.3229208 73.7890625,21.1250021 C73.3151043,21.9270834 72.6770832,22.565103 71.875,23.03906 C71.0729168,23.5130171 70.1979168,23.7499958 69.25,23.7499958 C68.3020832,23.7499958 67.4270832,23.5130171 66.625,23.03906 C65.8229168,22.565103 65.1848957,21.9270834 64.7109375,21.1250021 C64.2369793,20.3229208 64,19.4479229 64,18.5000083 C64,17.6432397 64.2005207,16.8320436 64.6015625,16.0664204 C65.0026043,15.3007972 65.5494793,14.6718925 66.2421875,14.1797061 C66.4609375,14.0338733 66.6888019,14.0247585 66.9257812,14.1523625 C67.1627606,14.2799665 67.28125,14.4713723 67.28125,14.7265798 L67.28125,17.6250104 C67.28125,17.9349054 67.3860676,18.1946704 67.5957031,18.4043054 C67.8053387,18.6139405 68.0651043,18.7187578 68.375,18.7187578 C68.6848957,18.7187578 68.9446613,18.6139405 69.1542969,18.4043054 C69.3639324,18.1946704 69.46875,17.9349054 69.46875,17.6250104 C69.46875,17.4427191 69.4049481,17.2330844 69.2773438,16.9961057 C69.2044269,16.8320436 69.0677082,16.576836 68.8671875,16.2304825 C68.4661457,15.5742341 68.1835938,15.0547041 68.0195312,14.6718925 C67.7643231,13.9791859 67.6640625,13.2955938 67.71875,12.6211161 C67.8098957,11.7825763 68.1380207,10.9258077 68.703125,10.0508097 C68.8125,9.86851837 68.9628906,9.76825847 69.1542969,9.75002921 C69.3457031,9.73179994 69.5188801,9.78648731 69.6738281,9.91409132 C69.8287762,10.0416953 69.90625,10.2057574 69.90625,10.4062776 Z M69.2499875,22.437499 C69.9609233,22.437499 70.6171717,22.259765 71.2187328,21.9042971 C71.8202939,21.5488292 72.2988083,21.0703147 72.6542762,20.4687537 C73.0097441,19.8671926 73.1874781,19.2109441 73.1874781,18.5000083 C73.1874781,17.880218 73.0781034,17.3060006 72.8593539,16.7773562 C72.6588337,16.3398572 72.376282,15.9023583 72.0116996,15.4648593 C71.7929502,15.1914225 71.4329248,14.8131683 70.9316241,14.3300964 C70.4303233,13.8470245 70.070298,13.4687703 69.8515485,13.1953335 C69.4869662,12.7760638 69.2135294,12.3567937 69.031238,11.937524 C68.8671759,12.5573143 68.8945196,13.1953335 69.1132691,13.8515819 C69.2408731,14.2343935 69.5143099,14.7812672 69.9335796,15.492203 C70.2252457,15.9661601 70.4166515,16.321628 70.507797,16.5586067 C70.6900884,16.9414183 70.7812338,17.2968862 70.7812338,17.6250104 C70.7812338,18.2812589 70.5442551,18.8463618 70.070298,19.3203189 C69.596341,19.794276 69.031238,20.0312547 68.3749896,20.0312547 C67.7187411,20.0312547 67.1536382,19.794276 66.6796811,19.3203189 C66.205724,18.8463618 65.9687453,18.2812589 65.9687453,17.6250104 L65.9687453,16.0937641 C65.7682251,16.403659 65.60872,16.7819136 65.4902308,17.228527 C65.3717417,17.6751404 65.3124969,18.0989675 65.3124969,18.5000083 C65.3124969,19.2109441 65.4902308,19.8671926 65.8456987,20.4687537 C66.2011666,21.0703147 66.6796811,21.5488292 67.2812422,21.9042971 C67.8828032,22.259765 68.5390517,22.437499 69.2499875,22.437499 Z",id:"icon---trending"}))))))))}}class _e extends C.a.PureComponent{render(){return C.a.createElement("span",this.props,C.a.createElement("svg",{className:"ic-svg ic-reactions-svg",width:"14px",height:"14px",viewBox:"0 0 14 14",version:"1.1"},C.a.createElement("g",{id:"Finalized-Design",stroke:"none",fill:"inherit"},C.a.createElement("g",{id:"GfyCat---Gycat-Tab",transform:"translate(-1348.000000, -620.000000)",fill:"inherit"},C.a.createElement("g",{id:"modal---emojis",transform:"translate(1147.000000, 542.000000)"},C.a.createElement("g",{id:"tabs---gfycat",transform:"translate(1.000000, 68.000000)"},C.a.createElement("g",{id:"tab---category---deselected",transform:"translate(138.000000, 0.000000)"},C.a.createElement("path",{d:"M62,16 L62,10 L68,10 L68,16 L62,16 Z M64,12 L64,14 L66,14 L66,12 L64,12 Z M70,24 L70,18 L76,18 L76,24 L70,24 Z M72,20 L72,22 L74,22 L74,20 L72,20 Z M70,10 L76,10 L76,16 L70,16 L70,10 Z M74,14 L74,12 L72,12 L72,14 L74,14 Z M62,24 L62,18 L68,18 L68,24 L62,24 Z M64,20 L64,22 L66,22 L66,20 L64,20 Z",id:"icon---categories"}))))))))}}a(1618);const Ee={saveSearchBarText:se.saveSearchBarText,searchTextUpdate:se.searchTextUpdate},ve=Object(ie.makeStyleFromTheme)(e=>({background:{backgroundColor:e.centerChannelBg},header:{borderBottomColor:Object(ie.changeOpacity)(e.centerChannelColor,.2)},icon:{fill:Object(ie.changeOpacity)(e.centerChannelColor,.3)},iconActive:{fill:e.centerChannelColor},iconHover:{fill:Object(ie.changeOpacity)(e.centerChannelColor,.8)}}));class ye extends y.PureComponent{constructor(e){super(e),this.state={hovering:""}}render(){const e=ve(this.props.theme);return C.a.createElement("header",{className:"header-container",style:e.background},C.a.createElement(be,this.props),C.a.createElement("nav",{className:"nav-bar",style:e.header},this.renderTabs(this.props,e)))}renderTabs(e,t){const{appProps:a,onTrending:n,onCategories:s}=e,{header:i}=a;return i.tabs.map((e,a)=>{let i;return e===re.Tab.TRENDING?i=this.renderTab("trending",n,fe,a,t):e===re.Tab.REACTIONS&&(i=this.renderTab("reactions",s,_e,a,t)),i})}renderTab(e,t,a,n,s){var i=this.props;const{action:r}=i;return C.a.createElement("a",{onClick:function(){i.searchTextUpdate(""),i.saveSearchBarText(""),t()},onMouseOver:()=>{this.setState({hovering:e})},onMouseOut:()=>{this.setState({hovering:""})},style:{cursor:"pointer"},key:n},C.a.createElement("div",{style:{paddingTop:"2px"}},C.a.createElement(a,{style:(()=>this.state.hovering===e?s.iconHover:r===e?s.iconActive:s.icon)()})))}}var Ce,we,Oe;Ce=ye,we="propTypes",Oe={action:v.a.string,appProps:v.a.object,saveSearchBarText:v.a.func,searchTextUpdate:v.a.func,theme:v.a.object.isRequired},we in Ce?Object.defineProperty(Ce,we,{value:Oe,enumerable:!0,configurable:!0,writable:!0}):Ce[we]=Oe;var Te=Object(n.connect)((function(e){return{theme:Object(c.getTheme)(e)}}),Ee)(ye);const Se={saveAppProps:se.saveAppProps};class Pe extends y.PureComponent{constructor(e){super(e);const{appProps:t}=this.props;this.props.saveAppProps(t)}render(){const{appProps:e,action:t,onCategories:a,onSearch:n,onTrending:s,children:i}=this.props,r="main-container "+(e.appClassName||"");return C.a.createElement("div",{className:r},C.a.createElement(Te,{appProps:e,action:t,onCategories:a,onSearch:n,onTrending:s}),C.a.createElement("div",{className:"component-container"},i))}}!function(e,t,a){t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a}(Pe,"propTypes",{appProps:v.a.object,action:v.a.string,onCategories:v.a.func,onSearch:v.a.func,onTrending:v.a.func,children:v.a.object,saveAppProps:v.a.func,authenticateSdk:v.a.func});var Me=Object(n.connect)(null,Se)(Pe),Ie=(a(60),a(34),a(311));function Ne(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function je(e,t){if(null==e)return{};var a,n,s=function(e,t){if(null==e)return{};var a,n,s={},i=Object.keys(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||(s[a]=e[a]);return s}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(s[a]=e[a])}return s}function Ae(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class Re extends y.PureComponent{constructor(...e){super(...e),Ae(this,"scrollListener",()=>{const e=this.scrollComponent,t=window;let a;if(this.props.useWindow){var n="pageYOffset"in t?t.pageYOffset:(document.documentElement||document.body.parentNode||document.body).scrollTop;a=this.props.isReverse?n:this.calculateTopPosition(e)+(e.offsetHeight-n-window.innerHeight)}else a=this.props.isReverse?e.parentNode.scrollTop:e.scrollHeight-e.parentNode.scrollTop-e.parentNode.clientHeight;a<Number(this.props.threshold)&&(this.detachScrollListener(),"function"==typeof this.props.loadMore&&this.props.loadMore(this.pageLoaded+=1))})}componentDidMount(){this.pageLoaded=this.props.pageStart,this.attachScrollListener(),this.setScrollPosition()}componentDidUpdate(){this.attachScrollListener()}render(){const e=this.props,{children:t,element:a,hasMore:n,initialLoad:s,loader:i,loadMore:r,pageStart:o,threshold:l,useWindow:c,isReverse:d,scrollPosition:m,containerHeight:u}=e,p=je(e,["children","element","hasMore","initialLoad","loader","loadMore","pageStart","threshold","useWindow","isReverse","scrollPosition","containerHeight"]);p.ref=e=>{this.scrollComponent=e};const h=u?function(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?Ne(a,!0).forEach((function(t){Ae(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):Ne(a).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}({},p,{style:{height:u}}):p;return C.a.createElement(a,h,t,n&&(i||this.defaultLoader))}calculateTopPosition(e){return e?e.offsetTop+this.calculateTopPosition(e.offsetParent):0}setScrollPosition(){const{scrollPosition:e}=this.props;null!==e&&window.scrollTo(0,e)}attachScrollListener(){if(!this.props.hasMore)return;let e=window;!1===this.props.useWindow&&(e=this.scrollComponent.parentNode),e.addEventListener("scroll",this.scrollListener),e.addEventListener("resize",this.scrollListener),this.props.initialLoad&&this.scrollListener()}detachScrollListener(){var e=window;!1===this.props.useWindow&&(e=this.scrollComponent.parentNode),e.removeEventListener("scroll",this.scrollListener),e.removeEventListener("resize",this.scrollListener)}componentWillUnmount(){this.detachScrollListener()}setDefaultLoader(e){this.defaultLoader=e}}Ae(Re,"propTypes",{children:v.a.array,element:v.a.string,hasMore:v.a.bool,initialLoad:v.a.bool,loader:v.a.object,loadMore:v.a.func.isRequired,pageStart:v.a.number,threshold:v.a.number,useWindow:v.a.bool,isReverse:v.a.bool,containerHeight:v.a.number,scrollPosition:v.a.number}),Ae(Re,"defaultProps",{element:"div",hasMore:!1,initialLoad:!0,pageStart:0,threshold:250,useWindow:!0,isReverse:!1,containerHeight:null,scrollPosition:null});a(1619);function ke(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function Le(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?ke(a,!0).forEach((function(t){De(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):ke(a).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function De(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const xe={saveSearchBarText:se.saveSearchBarText,saveSearchScrollPosition:se.saveSearchScrollPosition,searchTextUpdate:se.searchTextUpdate,requestCategoriesList:se.requestCategoriesList,requestCategoriesListIfNeeded:se.requestCategoriesListIfNeeded},Ue=Object(ie.makeStyleFromTheme)(e=>({background:{backgroundColor:Object(ie.changeOpacity)(e.centerChannelColor,.05)}}));class qe extends y.PureComponent{constructor(...e){super(...e),De(this,"sendImpressions",()=>{const{tagsList:e}=this.props,t=e.map(e=>({gfyId:e.gfyId}));t.length&&Object(Ie.d)("gfycat","views",{context:"category_list",count:t.length})}),De(this,"filterTagsList",()=>{const{searchBarText:e,tagsList:t}=this.props,a=e.toLowerCase().trim().split(/ +/).join(" ");return t&&t.length?t.filter(t=>e&&-1===t.tagName.indexOf(a)?"":t):[]}),De(this,"loadMore",()=>{this.props.requestCategoriesList()})}componentDidMount(){window.scrollTo(0,0),this.props.requestCategoriesListIfNeeded(),this.sendImpressions()}componentWillUnmount(){this.props.saveSearchScrollPosition(0)}render(){const e=Ue(this.props.theme),{hasMore:t,tagsList:a,gifs:n,onSearch:s,onTrending:i,hasImageProxy:r}=this.props,o=a&&a.length?this.filterTagsList(a).map((e,t)=>{const{tagName:a,gfyId:o}=e;if(!n[o])return null;const l=n[o],{max1mbGif:c,avgColor:d}=l,m=z.f(c,"true"===r),u=a.replace(/\s/g,"-"),p={backgroundImage:"url(".concat(m)},h={backgroundColor:d},g=this.props;return C.a.createElement("a",{onClick:function(){g.searchTextUpdate(a),g.saveSearchBarText(a),"trending"===u?i():s()},key:t},C.a.createElement("div",{className:"category-container"},C.a.createElement("div",{className:"category",style:Le({},p,{},h)},C.a.createElement("div",{className:"category-name"},a))))}):[];return o&&o.length?C.a.createElement("div",{className:"categories-container",style:e.background},C.a.createElement(Re,{hasMore:t,loadMore:this.loadMore,threshold:1},o)):C.a.createElement("div",{className:"categories-container",style:e.background})}}De(qe,"propTypes",{appProps:v.a.object,gifs:v.a.object,hasMore:v.a.bool,onSearch:v.a.func,onTrending:v.a.func,requestCategoriesList:v.a.func,requestCategoriesListIfNeeded:v.a.func,saveSearchBarText:v.a.func,saveSearchScrollPosition:v.a.func,searchTextUpdate:v.a.func,searchBarText:v.a.string,tagsList:v.a.array,hasImageProxy:v.a.string,theme:v.a.object.isRequired});var He=Object(n.connect)((function(e){return Le({},e.entities.gifs.categories,{},e.entities.gifs.cache,{theme:Object(c.getTheme)(e),appProps:e.entities.gifs.app,searchText:e.entities.gifs.search.searchText,searchBarText:e.entities.gifs.search.searchBarText,hasImageProxy:e.entities.general.config.HasImageProxy})}),xe)(qe);a(1620);function Fe(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function Be(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?Fe(a,!0).forEach((function(t){Ge(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):Fe(a).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function Ge(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class Ve extends y.PureComponent{render(){const{gfyItem:e,top:t,left:a,itemWidth:n,itemClickHandler:s}=this.props,{width:i,height:r,max1mbGif:o,avgColor:l}=e,{hasImageProxy:c}=this.props,d=z.f(o,"true"===c),m={backgroundImage:"url(".concat(d,")")},u={backgroundColor:l},p={paddingBottom:n/i*r+"px"};return C.a.createElement("div",{className:"search-item-wrapper",style:{top:t,left:a,width:n?"".concat(n,"px"):""}},C.a.createElement("div",{className:"search-item",style:Be({},m,{},u,{},p),onClick:()=>s(e)}))}}Ge(Ve,"propTypes",{gfyItem:v.a.object,top:v.a.string,left:v.a.string,itemWidth:v.a.number,itemClickHandler:v.a.func,hasImageProxy:v.a.string});var We=Object(n.connect)((function(e){return{hasImageProxy:e.entities.general.config.HasImageProxy}}))(Ve);a(1621);function ze(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function Ye(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?ze(a,!0).forEach((function(t){Ke(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):ze(a).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function Ke(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const Qe=8,Je=2,Ze=2,Xe=8;const $e={saveSearchScrollPosition:se.saveSearchScrollPosition},et=Object(ie.makeStyleFromTheme)(e=>({background:{backgroundColor:Object(ie.changeOpacity)(e.centerChannelColor,.05)}}));class tt extends y.PureComponent{constructor(e){super(e),Ke(this,"setNumberOfColumns",()=>{window.matchMedia("(orientation: portrait)").matches?this.numberOfColumns=Je:this.numberOfColumns=Ze}),Ke(this,"itemClickHandler",e=>{const{keyword:t,handleItemClick:a}=this.props;this.props.saveSearchScrollPosition(this.scrollPosition),Object(Ie.d)("gfycat","shares",{gfyid:e.gfyId,keyword:t}),a(e)}),Ke(this,"minHeightColumnIndex",()=>this.columnsHeights.indexOf(Math.min(...this.columnsHeights))),Ke(this,"maxHeightColumnIndex",()=>this.columnsHeights.indexOf(Math.max(...this.columnsHeights))),Ke(this,"maxColumnHeight",()=>Math.max(...this.columnsHeights)),Ke(this,"resizeHandler",()=>{this.state.containerWidth!==this.container.offsetWidth-Xe&&(this.setNumberOfColumns(),this.setState(Ye({},this.state,{containerWidth:this.container.offsetWidth-Xe})),this.columnsHeights=Array(this.numberOfColumns).fill(0))}),Ke(this,"scrollHandler",()=>{this.scrollPosition=window.scrollY}),this.state={containerWidth:null},this.scrollPosition=this.props.scrollPosition,this.setNumberOfColumns(),this.columnsHeights=Array(this.numberOfColumns).fill(0),this.padding=Qe}componentDidMount(){this.container=document.getElementById("search-grid-container"),this.setState(Ye({},this.state,{containerWidth:this.container.offsetWidth-Xe})),window.addEventListener("resize",this.resizeHandler),window.addEventListener("scroll",this.scrollHandler)}componentDidUpdate(e){e.keyword!==this.props.keyword&&window.scrollTo(0,0)}componentWillUnmount(){const{keyword:e}=this.props;"trending"!==e&&this.props.saveSearchScrollPosition(this.scrollPosition),window.removeEventListener("resize",this.resizeHandler),window.removeEventListener("scroll",this.scrollHandler)}render(){const e=et(this.props.theme),{containerClassName:t,gifs:a,keyword:n,resultsByTerm:s,scrollPosition:i,loadMore:r,onCategories:o}=this.props,{containerWidth:l}=this.state,{moreRemaining:c,items:d=[],isEmpty:m}=s[n]?s[n]:{},u=parseInt(l/this.numberOfColumns,10),p=Array(this.numberOfColumns).fill(0).map((e,t)=>this.padding+(t*u-t*(this.padding/2)));this.columnsHeights=Array(this.numberOfColumns).fill(this.padding);const h=l&&d.length?d.map((e,t)=>{const n=a[e],{gfyId:s}=n,i=this.minHeightColumnIndex(),r=this.columnsHeights[i]+"px",o=p[i]+"px",l=140/n.width*n.height+this.padding;return this.columnsHeights[i]+=l,C.a.createElement(We,{gfyItem:n,top:r,left:o,itemWidth:140,itemClickHandler:this.itemClickHandler,key:"".concat(t,"-").concat(s)})}):null;this.containerHeight=this.maxColumnHeight();const g=h?C.a.createElement(Re,{className:"search-grid-infinite-scroll",pageStart:0,loadMore:r,initialLoad:!1,hasMore:c,threshold:1,containerHeight:this.containerHeight,scrollPosition:i,useWindow:!1},h):null,b=m?C.a.createElement("div",{className:"empty-search"},C.a.createElement("div",{className:"empty-search-image"}),C.a.createElement("p",null,"0 Gifs found for ",C.a.createElement("strong",null,n)),C.a.createElement("a",{onClick:o},C.a.createElement("div",{className:"empty-search-button"},"Go to Reactions"))):null;return C.a.createElement("div",{id:"search-grid-container",className:"search-grid-container ".concat(t),style:e.background},g,b)}}Ke(tt,"propTypes",{appProps:v.a.object,gifs:v.a.object,resultsByTerm:v.a.object,containerClassName:v.a.string,keyword:v.a.string,handleItemClick:v.a.func,onCategories:v.a.func,loadMore:v.a.func,numberOfColumns:v.a.number,scrollPosition:v.a.number,saveSearchScrollPosition:v.a.func,theme:v.a.object.isRequired});var at=Object(n.connect)((function(e){return Ye({},e.entities.gifs.cache,{},e.entities.gifs.search,{theme:Object(c.getTheme)(e),appProps:e.entities.gifs.app})}),$e)(tt);function nt(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function st(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}var it=Object(n.connect)((function(e){return function(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?nt(a,!0).forEach((function(t){st(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):nt(a).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}({},e.entities.gifs.cache,{},e.entities.gifs.search,{appProps:e.entities.gifs.app})}),(function(){return{saveSearchScrollPosition:se.saveSearchScrollPosition}}))(at);function rt(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function ot(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const lt={searchGfycat:se.searchGfycat,searchIfNeededInitial:se.searchIfNeededInitial};class ct extends y.PureComponent{constructor(...e){super(...e),ot(this,"loadMore",()=>{const{searchText:e}=this.props;this.props.searchGfycat({searchText:e})})}componentDidMount(){const{searchText:e}=this.props;this.props.searchIfNeededInitial(e.split("-").join(" "))}componentDidUpdate(e){const{searchText:t}=this.props;e.searchText!==t&&this.props.searchIfNeededInitial(t.split("-").join(" "))}render(){const{handleItemClick:e,searchText:t,onCategories:a}=this.props;return C.a.createElement(it,{keyword:t,handleItemClick:e,onCategories:a,loadMore:this.loadMore})}}ot(ct,"propTypes",{handleItemClick:v.a.func,onCategories:v.a.func,searchText:v.a.string,searchIfNeededInitial:v.a.func,searchGfycat:v.a.func});var dt=Object(n.connect)((function(e){return function(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?rt(a,!0).forEach((function(t){ot(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):rt(a).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}({},e.entities.gifs.search)}),lt)(ct);function mt(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const ut={searchCategory:se.searchCategory,searchIfNeededInitial:se.searchIfNeededInitial,saveSearchScrollPosition:se.saveSearchScrollPosition};class pt extends y.PureComponent{constructor(...e){super(...e),mt(this,"loadMore",()=>{this.props.searchCategory({tagName:"trending"})})}componentDidMount(){this.props.searchIfNeededInitial("trending")}componentWillUnmount(){this.props.saveSearchScrollPosition(0)}render(){const{handleItemClick:e,onCategories:t}=this.props;return C.a.createElement(it,{keyword:"trending",handleItemClick:e,onCategories:t,loadMore:this.loadMore})}}mt(pt,"propTypes",{handleItemClick:v.a.func,onCategories:v.a.func,searchCategory:v.a.func,searchIfNeededInitial:v.a.func,saveSearchScrollPosition:v.a.func});var ht=Object(n.connect)(null,ut)(pt);function gt(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const bt={appName:re.appName.mattermost,basePath:"/mattermost",itemTapType:re.ItemTapAction.SHARE,appClassName:"gfycat",shareEvent:"shareMattermost",appId:"mattermostwebviews",enableHistory:!0,header:{tabs:[re.Tab.TRENDING,re.Tab.REACTIONS],displayText:!1}};class ft extends C.a.Component{constructor(e){super(e),gt(this,"handleTrending",()=>{this.setState({action:"trending"})}),gt(this,"handleCategories",()=>{this.setState({action:"reactions"})}),gt(this,"handleSearch",()=>{this.setState({action:"search"})}),gt(this,"handleItemClick",e=>{this.props.onGifClick(e.max5mbGif)}),this.shouldComponentUpdate=ne.a.shouldComponentUpdate.bind(this),this.state={action:"trending"}}render(){const{action:e}=this.state;let t;switch(e){case"reactions":t=C.a.createElement(He,{appProps:bt,onTrending:this.handleTrending,onSearch:this.handleSearch});break;case"search":t=C.a.createElement(dt,{appProps:bt,onCategories:this.handleCategories,handleItemClick:this.handleItemClick});break;case"trending":t=C.a.createElement(ht,{appProps:bt,onCategories:this.handleCategories,handleItemClick:this.handleItemClick})}return C.a.createElement("div",null,C.a.createElement(Me,{appProps:bt,action:e,onTrending:this.handleTrending,onCategories:this.handleCategories,onSearch:this.handleSearch},t))}}gt(ft,"propTypes",{onGifClick:v.a.func.isRequired});class _t extends C.a.PureComponent{render(){return C.a.createElement("span",this.props,C.a.createElement("svg",{width:"16px",height:"16px",viewBox:"0 0 15 15",role:"img","aria-label":"Emoji icon"},C.a.createElement("g",{stroke:"none",strokeWidth:"1",fill:"inherit",fillRule:"evenodd"},C.a.createElement("g",{transform:"translate(-1071.000000, -954.000000)",fill:"inherit"},C.a.createElement("g",{transform:"translate(25.000000, 937.000000)"},C.a.createElement("g",{transform:"translate(1046.000000, 17.000000)"},C.a.createElement("path",{d:"M7.5,0.0852272727 C3.405,0.0852272727 0.0852272727,3.405 0.0852272727,7.5 C0.0852272727,11.595 3.405,14.9147727 7.5,14.9147727 C11.595,14.9147727 14.9147727,11.595 14.9147727,7.5 C14.9147727,3.405 11.595,0.0852272727 7.5,0.0852272727 Z M7.5,14.0663436 C3.87926951,14.0663436 0.933656417,11.1207305 0.933656417,7.5 C0.933656417,3.87926951 3.87926951,0.933656417 7.5,0.933656417 C11.1207305,0.933656417 14.0663436,3.87926951 14.0663436,7.5 C14.0663436,11.1207305 11.1207305,14.0663436 7.5,14.0663436 Z"}),C.a.createElement("path",{d:"M11.7732955,8.95397727 C12.0119318,8.90488636 12.2159659,9.11778409 12.1684091,9.35676136 C11.8063636,11.1790909 9.85346591,12.5710227 7.49846591,12.5710227 C5.15096591,12.5710227 3.20284091,11.1877841 2.83193182,9.37397727 C2.78181818,9.129375 2.99267045,8.911875 3.23744318,8.96198864 C4.85369318,9.29232955 10.1786932,9.28142045 11.7732955,8.95397727 Z"}),C.a.createElement("ellipse",{cx:"4.94318182",cy:"5.50431818",rx:"1",ry:"1.06534091"}),C.a.createElement("ellipse",{cx:"10.0568182",cy:"5.50431818",rx:"1",ry:"1.06534091"})))))))}}class Et extends C.a.PureComponent{render(){return C.a.createElement("span",this.props,C.a.createElement("svg",{width:"22px",height:"14px",viewBox:"0 0 22 14"},C.a.createElement("g",{stroke:"none",strokeWidth:"1",fill:"inherit",fillRule:"evenodd"},C.a.createElement("g",{transform:"translate(-1344.000000, -552.000000)",fill:"inherit"},C.a.createElement("g",{transform:"translate(1147.000000, 542.000000)"},C.a.createElement("g",{transform:"translate(1.000000, 1.000000)"},C.a.createElement("g",{transform:"translate(138.000000, 0.000000)"},C.a.createElement("path",{d:"M63.6748519,23 L62.2292481,23 C61.8176589,23 61.4619872,22.8510143 61.1631497,22.5539741 C60.8633954,22.2569338 60.71306,21.8993681 60.71306,21.4831393 C60.71306,21.0678417 60.8597287,20.710276 61.1539829,20.4132358 C61.4473204,20.1161955 61.800242,19.9672098 62.2118312,19.9672098 L63.6565183,19.9672098 C64.0681075,19.9672098 64.4182791,19.8219488 64.7061166,19.5304955 C64.993954,19.2390422 65.1378727,18.8917193 65.1378727,18.4866644 L65.1378727,15.4371134 C65.1378727,15.0208846 64.993954,14.6670436 64.7061166,14.3755903 C64.4182791,14.084137 64.0745243,13.938876 63.6748519,13.938876 C63.2632628,13.938876 62.9103411,14.0869305 62.6170036,14.3849019 C62.3227494,14.6819421 62.1760807,15.0329897 62.1760807,15.4371134 C62.1760807,15.7294978 62.3016658,16.0563352 62.5519193,16.4185567 L62.575753,16.4530096 C62.8269232,16.8143 62.9515917,17.1420685 62.9515917,17.4344529 C62.9515917,17.8506817 62.8049229,18.2073163 62.5115854,18.5043565 C62.2173313,18.8023279 61.8653263,18.9503824 61.4537371,18.9503824 C60.7836443,18.9503824 60.2198863,18.5164616 59.7615465,17.6486199 C59.373791,16.9232458 59.1794549,16.1857665 59.1794549,15.4371134 C59.1794549,14.188427 59.6176278,13.1213169 60.4930568,12.234852 C61.3684859,11.3493183 62.4226675,10.9060858 63.6565183,10.9060858 C64.8912858,10.9060858 65.9482175,11.3493183 66.8300633,12.234852 C67.7109925,13.1213169 68.1519154,14.188427 68.1519154,15.4371134 L68.1519154,18.4866644 C68.1519154,19.7353508 67.7137425,20.7996674 66.8383134,21.6796142 C65.9628844,22.559561 64.9087028,23 63.6748519,23 Z M80,15.9269039 C80,16.3068174 79.8689148,16.6317925 79.6076611,16.9027602 C79.3454907,17.173728 79.0319863,17.3096774 78.6653144,17.3096774 L76.8438719,17.3096774 L76.8438719,18.6589292 C76.8438719,19.0388427 76.7127867,19.3638178 76.4506164,19.6347855 C76.1893627,19.9057532 75.8749415,20.0417027 75.5082697,20.0417027 C75.1315143,20.0417027 74.8125098,19.9057532 74.5503394,19.6347855 C74.2890857,19.3638178 74.1580005,19.0388427 74.1580005,18.6589292 L74.1580005,13.1464583 C74.1580005,12.00858 74.5485061,11.0355171 75.3276838,10.2272697 C76.1077782,9.41995344 77.0473748,9.01582973 78.1473904,9.01582973 L78.6653144,9.01582973 C79.0319863,9.01582973 79.3454907,9.15177918 79.6076611,9.42274692 C79.8689148,9.69371467 80,10.0186897 80,10.3986033 C80,10.7775856 79.8689148,11.1034919 79.6076611,11.3744596 C79.3454907,11.6454273 79.0319863,11.7804456 78.6653144,11.7804456 L78.162974,11.7804456 C77.7963021,11.7804456 77.481881,11.9163951 77.2206273,12.1873628 C76.9584569,12.4583306 76.8282884,12.7777187 76.8282884,13.1464583 L76.8282884,14.5450615 L78.6653144,14.5450615 C79.0319863,14.5450615 79.3454907,14.681011 79.6076611,14.9519787 C79.8689148,15.2229465 80,15.5479215 80,15.9269039 Z M72.6344789,18.6589292 C72.6344789,19.0388427 72.5043104,19.3638178 72.24214,19.6347855 C71.9808863,19.9057532 71.6664652,20.0417027 71.2997933,20.0417027 C70.9340382,20.0417027 70.616867,19.9057532 70.3501132,19.6347855 C70.0833594,19.3638178 69.9495242,19.0388427 69.9495242,18.6589292 L69.9495242,14.170735 C69.9495242,13.7917526 70.0806094,13.4667775 70.3418631,13.1958098 C70.6040335,12.9239109 70.9175379,12.7888926 71.2842098,12.7888926 C71.6508817,12.7888926 71.9671361,12.9239109 72.2348066,13.1958098 C72.5015604,13.4667775 72.6344789,13.7917526 72.6344789,14.170735 L72.6344789,18.6589292 Z M58.3370263,12.5356169 C58.1023563,11.7441304 58.0042716,10.9163286 58.0042716,10.9163286 C57.9721878,10.6937812 58.1243566,10.547589 58.3425264,10.5904223 C58.3425264,10.5904223 58.5350291,10.6267376 58.8017829,10.6807449 C59.0767868,10.7375457 59.4324585,10.8139009 59.7404628,10.8921184 C60.3473048,11.0448287 60.95323,11.2720319 60.95323,11.2720319 C60.95323,11.2720319 60.2904706,11.6621882 59.7239626,12.3018956 C59.1565379,12.9406718 58.8650338,13.8420353 58.8650338,13.8420353 C58.8650338,13.8420353 58.5716963,13.3280346 58.3370263,12.5356169 Z M69.088762,12.5356169 C69.323432,11.7441304 69.4224334,10.9163286 69.4224334,10.9163286 C69.4536005,10.6937812 69.3014317,10.547589 69.0832619,10.5904223 C69.0832619,10.5904223 68.2921674,10.7384769 67.6853254,10.8921184 C67.0794002,11.0448287 66.4725583,11.2720319 66.4725583,11.2720319 C66.4725583,11.2720319 67.1353177,11.6621882 67.7027424,12.3018956 C68.2692504,12.9406718 68.5616712,13.8420353 68.5616712,13.8420353 C68.5616712,13.8420353 68.8550087,13.3280346 69.088762,12.5356169 Z M72.6344789,10.3818424 C72.6344789,10.7617559 72.5043104,11.086731 72.24214,11.3576987 C71.9808863,11.6286664 71.6664652,11.7646159 71.2997933,11.7646159 C70.9340382,11.7646159 70.616867,11.6286664 70.3501132,11.3576987 C70.0833594,11.086731 69.9495242,10.7617559 69.9495242,10.3818424 C69.9495242,10.00286 70.0806094,9.67788494 70.3418631,9.40691719 C70.6040335,9.13594945 70.9175379,9 71.2842098,9 C71.6508817,9 71.9671361,9.13594945 72.2348066,9.40691719 C72.5015604,9.67788494 72.6344789,10.00286 72.6344789,10.3818424 Z"}))))))))}}class vt extends C.a.PureComponent{render(){return C.a.createElement("div",{className:"emoji-picker__header modal-header"},C.a.createElement("button",{type:"button",className:"close emoji-picker__header-close-button",onClick:this.props.handleEmojiPickerClose},C.a.createElement("span",{"aria-hidden":"true"},"×"),C.a.createElement("span",{className:"sr-only"},C.a.createElement(V.a,{id:"emoji_picker.close",defaultMessage:"Close"}))),C.a.createElement("h4",{className:"modal-title emoji-picker__header-title"},C.a.createElement(V.a,{id:"emoji_picker.header",defaultMessage:"Emoji Picker"})))}}!function(e,t,a){t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a}(vt,"propTypes",{handleEmojiPickerClose:v.a.func.isRequired});var yt=a(139),Ct=a(229),wt=a(69),Ot=(a(1291),a(113),a(1401)),Tt=a.n(Ot),St=a(50);a(99);const Pt=(e,t,a,n)=>a&&n&&"custom"===a.category&&"custom"!==n.category?1:n&&a&&"custom"===n.category&&"custom"!==a.category?-1:e.localeCompare(t),Mt=e=>"thumbsup"===e||"+1"===e?1:0,It=e=>"thumbsdown"===e||"-1"===e?-1:0,Nt={thumbsdown:Mt,"-1":Mt,thumbsup:It,"+1":It},jt=(e,t)=>e&&(e.name||e.aliases)?t?e.name||e.aliases.find(e=>e.startsWith(t))||e.aliases[0]:e.name||e.aliases[0]:"";function At(e,t,a){const n=jt(e,a),s=jt(t,a),i=n.startsWith(a);return i===s.startsWith(a)?Nt[n]&&Nt[n](s,t)||Pt(n,s,e,t):i?-1:1}var Rt=a(1312),kt=a.n(Rt);function Lt(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class Dt extends C.a.Component{constructor(...e){super(...e),Lt(this,"handleClick",e=>{e.preventDefault(),this.props.onCategoryClick(this.props.category)})}shouldComponentUpdate(e){return e.selected!==this.props.selected||e.enable!==this.props.enable}render(){let e="emoji-picker__category";return this.props.selected&&(e+=" emoji-picker__category--selected"),this.props.enable||(e+=" disable"),C.a.createElement("a",{className:e,href:"#",onClick:this.handleClick,"aria-label":this.props.category},this.props.icon)}}Lt(Dt,"propTypes",{category:v.a.string.isRequired,icon:v.a.node.isRequired,onCategoryClick:v.a.func.isRequired,selected:v.a.bool.isRequired,enable:v.a.bool.isRequired});var xt=a(1219),Ut=a.n(xt),qt=a(315);function Ht(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const Ft=10,Bt=150;class Gt extends C.a.Component{constructor(...e){super(...e),Ht(this,"emojiItemRef",e=>{this.emojiItem=e}),Ht(this,"emojiName",()=>{const{formatMessage:e}=this.props.intl;return e({id:"emoji_picker_item.emoji_aria_label",defaultMessage:"{emojiName} emoji"},{emojiName:this.props.emoji.aliases[0].replace(/_/g," ")})}),Ht(this,"handleMouseOver",()=>{this.props.isSelected||this.props.onItemOver(this.props.categoryIndex,this.props.emojiIndex)}),Ht(this,"handleMouseOverThrottle",Ut()(this.handleMouseOver,Bt,{leading:!0,trailing:!0})),Ht(this,"handleClick",()=>{this.props.onItemClick(this.props.emoji)})}shouldComponentUpdate(e){return e.isSelected!==this.props.isSelected}componentDidUpdate(e){if(!e.isSelected&&this.props.isSelected){const e=this.emojiItem.offsetTop,t=e+this.emojiItem.offsetHeight,{containerRef:a,containerTop:n,containerBottom:s}=this.props;e<n?a.scrollTop=e-Ft:t>s&&(a.scrollTop=t-a.offsetHeight+Ft)}}render(){const{emoji:e}=this.props;let t="emoji-picker__item";this.props.isSelected&&(t+=" selected");let a,n="emojisprite";return n+=" emoji-category-"+e.category+"-"+e.batch,n+=" emoji-"+e.filename,a=e.category&&e.batch?C.a.createElement("img",{alt:"emoji image","data-testid":e.aliases,onMouseOver:this.handleMouseOverThrottle,src:kt.a,className:n,onClick:this.handleClick,id:"emoji-"+e.filename,"aria-label":this.emojiName(),role:"button"}):C.a.createElement("img",{alt:"custom emoji image",onMouseOver:this.handleMouseOver,src:Object(qt.getEmojiImageUrl)(e),className:"emoji-category--custom",onClick:this.handleClick}),C.a.createElement("div",{className:t,ref:this.emojiItemRef},C.a.createElement("div",{"data-testid":"emojiItem"},a))}}Ht(Gt,"propTypes",{emoji:v.a.object.isRequired,onItemOver:v.a.func.isRequired,onItemClick:v.a.func.isRequired,category:v.a.string.isRequired,isSelected:v.a.bool,categoryIndex:v.a.number.isRequired,emojiIndex:v.a.number.isRequired,containerRef:v.a.any,containerTop:v.a.number.isRequired,containerBottom:v.a.number.isRequired,intl:Y.a.isRequired});var Vt=Object(W.c)(Gt);function Wt(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class zt extends C.a.PureComponent{constructor(...e){super(...e),Wt(this,"divRef",e=>{this.div=e})}componentDidMount(){this.updateOffsetFrame=window.requestAnimationFrame(()=>{this.props.updateCategoryOffset(this.props.categoryName,this.div.offsetTop)})}componentWillUnmount(){this.updateOffsetFrame&&window.cancelAnimationFrame(this.updateOffsetFrame)}render(){return C.a.createElement("div",{ref:this.divRef},C.a.createElement("div",{className:"emoji-picker-items__container"},C.a.createElement("div",{className:"emoji-picker__category-header",id:"emojipickercat-".concat(this.props.categoryName)},C.a.createElement(V.a,{id:"emoji_picker."+this.props.categoryName}))),C.a.createElement("div",{className:"emoji-picker-items__container"},this.props.children))}}Wt(zt,"propTypes",{categoryName:v.a.string.isRequired,children:v.a.any,updateCategoryOffset:v.a.func.isRequired});class Yt extends C.a.Component{render(){const e=this.props.emoji;if(e){let t,a,n;return e.aliases&&e.category&&e.batch?(t=e.aliases[0],a=e.aliases,n=C.a.createElement("span",{className:"sprite-preview"},C.a.createElement("img",{id:"emojiPickerSpritePreview",alt:"emoji category image",src:kt.a,className:"emojisprite-preview emoji-category-"+e.category+"-"+e.batch+" emoji-"+e.filename}))):(t=e.name,a=[e.name],n=C.a.createElement("img",{id:"emojiPickerSpritePreview",alt:"emoji preview image",className:"emoji-picker__preview-image",src:Object(qt.getEmojiImageUrl)(e)})),C.a.createElement("div",{className:"emoji-picker__preview"},C.a.createElement("div",{className:"emoji-picker__preview-image-box"},n),C.a.createElement("div",{className:"emoji-picker__preview-image-label-box"},C.a.createElement("span",{className:"emoji-picker__preview-name"},t),C.a.createElement("span",{id:"emojiPickerAliasesPreview",className:"emoji-picker__preview-aliases"},":"+a[0]+":")))}return C.a.createElement("div",{className:"emoji-picker__preview emoji-picker__preview-placeholder"},C.a.createElement(V.a,{id:"emoji_picker.emojiPicker",defaultMessage:"Emoji Picker"}))}}function Kt(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function Qt(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?Kt(a,!0).forEach((function(t){Jt(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):Kt(a).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function Jt(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}!function(e,t,a){t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a}(Yt,"propTypes",{emoji:v.a.object});const Zt="searchResults";Object(de.b)("emoji_picker.searchResults");const Xt=27,$t=290,ea=75,ta=9,aa=135,na=1476,sa=100,ia={recent:{name:"recent",className:"fa fa-clock-o",id:Object(de.b)("emoji_picker.recent"),message:"Recently Used",offset:0}},ra={people:{name:"people",className:"fa fa-smile-o",id:Object(de.b)("emoji_picker.people"),message:"People",offset:0}},oa=Qt({},ra,{nature:{name:"nature",className:"fa fa-leaf",id:Object(de.b)("emoji_picker.nature"),message:"Nature",offset:0},foods:{name:"foods",className:"fa fa-cutlery",id:Object(de.b)("emoji_picker.foods"),message:"Foods",offset:0},activity:{name:"activity",className:"fa fa-futbol-o",id:Object(de.b)("emoji_picker.activity"),message:"Activity",offset:0},places:{name:"places",className:"fa fa-plane",id:Object(de.b)("emoji_picker.places"),message:"Places",offset:0},objects:{name:"objects",className:"fa fa-lightbulb-o",id:Object(de.b)("emoji_picker.objects"),message:"Objects",offset:0},symbols:{name:"symbols",className:"fa fa-heart-o",id:Object(de.b)("emoji_picker.symbols"),message:"Symbols",offset:0},flags:{name:"flags",className:"fa fa-flag-o",id:Object(de.b)("emoji_picker.flags"),message:"Flags",offset:0},custom:{name:"custom",className:"fa fa-at",id:Object(de.b)("emoji_picker.custom"),message:"Custom",offset:0}});function la(e){return e.filename||e.id}const ca=200,da=500;class ma extends C.a.PureComponent{static getEmojis(e,t){const{categories:a,allEmojis:n}=t,s=e.emojiMap,i=s.customEmojis;for(const t of Object.keys(a)){let r=[];if("recent"===t&&e.recentEmojis.length){r=[...e.recentEmojis].reverse().filter(e=>s.has(e)).map(e=>s.get(e))}else{r=(St.b.get(t)||[]).map(e=>St.d[e]),"custom"===t&&(r=r.concat([...i.values()]))}a[t].emojiIds=r.map(e=>la(e));for(let e=0;e<r.length;e++){const t=r[e],a=la(t);n[a]=Qt({},t,{visible:!1,offset:null}),t.filename||(n[a]=Qt({},n[a],{aliases:[t.name],category:"custom",filename:a}))}}return{categories:a,allEmojis:n}}static getDerivedStateFromProps(e,t){let a={emojiMap:e.emojiMap};if(JSON.stringify(Object.keys(t.categories))!==t.categoryKeys||e.emojiMap!==t.emojiMap){const{categories:n,allEmojis:s}=ma.getEmojis(e,t);a=Qt({},a,{categories:n,allEmojis:s,categoryKeys:JSON.stringify(Object.keys(n))})}return a}constructor(e){super(e),Jt(this,"renderAllCategories",()=>{const e=this.props.recentEmojis.length?Qt({},ia,{},oa):oa;this.setState(t=>({categories:Qt({},e,{},t.categories),renderAllCategories:!0}))}),Jt(this,"loadMoreCustomEmojis",async()=>{if(!this.props.customEmojisEnabled||this.loadingMoreEmojis)return;this.loadingMoreEmojis=!0;const{data:e}=await this.props.actions.getCustomEmojis(this.props.customEmojiPage,ca);if(e){if(e.length<ca)return this.missingPages=!1,void(this.loadingMoreEmojis=!1);await this.props.actions.incrementEmojiPickerPage(),this.loadingMoreEmojis=!1}else this.loadingMoreEmojis=!1}),Jt(this,"lastVisibleEmojiRef",e=>{this.lastVisibleEmoji=e}),Jt(this,"emojiPickerContainerRef",e=>{this.emojiPickerContainer=e}),Jt(this,"emojiSearchInput",e=>{this.searchInput=e}),Jt(this,"handleCategoryClick",e=>{this.setState({cursor:[Object.keys(this.state.categories).indexOf(e),0]}),this.updateEmojisToShow(this.state.categories[e].offset),this.emojiPickerContainer.scrollTop=this.state.categories[e].offset,this.searchInput.focus()}),Jt(this,"handleFilterChange",e=>{e.preventDefault();const t=function(e){return e.toLowerCase().replace(/^:|:$/g,"")}(e.target.value);this.props.customEmojisEnabled&&t&&""!==t.trim()&&this.props.actions.searchCustomEmojis(t),this.setState(()=>({filter:t,cursor:[0,0]}))}),Jt(this,"handleItemOver",(e,t)=>{this.setState({cursor:[e,t]})}),Jt(this,"handleItemClick",e=>{this.props.onEmojiClick(e)}),Jt(this,"handleCategoryKeyDown",e=>{switch(e.key){case"ArrowRight":e.preventDefault(),this.selectNextEmoji(),this.searchInput.focus();break;case"ArrowLeft":e.preventDefault(),this.selectPrevEmoji(),this.searchInput.focus();break;case"ArrowUp":e.preventDefault(),this.selectPrevEmoji(ta),this.searchInput.focus();break;case"ArrowDown":e.preventDefault(),this.selectNextEmoji(ta),this.searchInput.focus()}}),Jt(this,"handleKeyDown",e=>{switch(e.key){case"ArrowRight":e.preventDefault(),this.selectNextEmoji();break;case"ArrowLeft":e.preventDefault(),this.selectPrevEmoji();break;case"ArrowUp":e.preventDefault(),this.selectPrevEmoji(ta);break;case"ArrowDown":e.preventDefault(),this.selectNextEmoji(ta);break;case"Enter":e.preventDefault(),this.getCurrentEmojiByCursor(this.state.cursor)&&this.props.onEmojiClick(this.getCurrentEmojiByCursor(this.state.cursor))}}),Jt(this,"handleScroll",()=>{this.emojiPickerContainer&&this.updateEmojisToShow(this.emojiPickerContainer.scrollTop)}),Jt(this,"emojiCurrentResultsItems",(e,t,a)=>{const{cursor:n,emojisToShow:s}=this.state;let i=a;return t.map((t,a)=>{let r;return++i===s&&(r=this.lastVisibleEmojiRef),i>=s?C.a.createElement("div",{key:i,className:"emoji-picker__item",ref:r},C.a.createElement("img",{alt:"emoji image",src:kt.a,className:"emojisprite"})):C.a.createElement(Vt,{key:t.filename+":"+a,emoji:t,onItemOver:this.handleItemOver,onItemClick:this.handleItemClick,onItemUnmount:t,category:t.category,isSelected:n[0]===e&&n[1]===a,categoryIndex:e,emojiIndex:a,containerRef:this.emojiPickerContainer,containerTop:this.state.divTopOffset,containerBottom:this.state.divTopOffset+this.divHeight})})}),Jt(this,"updateCategoryOffset",(e,t)=>{e!==Zt&&this.setState(a=>({categories:Qt({},a.categories,{[e]:Qt({},a.categories[e],{offset:t})})}))}),this.handleScrollThrottle=Tt()(this.handleScroll,sa,{leading:!1,trailing:!0}),this.divHeight=0,this.missingPages=!0,this.loadingMoreEmojis=!1;const t=e.recentEmojis.length?Qt({},ia,{},ra):ra;this.state={allEmojis:{},categories:t,filter:"",cursor:[-1,-1],divTopOffset:0,emojisToShow:na,renderAllCategories:!1}}componentDidMount(){0===this.props.customEmojiPage&&this.loadMoreCustomEmojis(),window.requestAnimationFrame(()=>{this.searchInput&&this.searchInput.focus(),this.renderAllCategoriesFrame=window.requestAnimationFrame(()=>{this.renderAllCategories()})}),this.emojiPickerContainer&&(this.divHeight=this.emojiPickerContainer.offsetHeight);const e=document.getElementById("root");e&&e.classList.add("emoji-picker--active")}updateEmojisToShow(e){if(e!==this.state.divTopOffset&&(this.setState({divTopOffset:e}),this.lastVisibleEmoji)){const t=this.lastVisibleEmoji.offsetTop-(e+$t+ea);if(t<=0){const e=aa+Math.ceil(t/Xt*ta*-1);this.setState(t=>({emojisToShow:t.emojisToShow+e}))}}}componentWillUnmount(){this.renderAllCategoriesFrame&&window.cancelAnimationFrame(this.renderAllCategoriesFrame);const e=document.getElementById("root");e&&e.classList.remove("emoji-picker--active")}componentDidUpdate(e){if(this.props.visible&&!e.visible&&this.searchInput.focus(),!this.missingPages||!this.emojiPickerContainer)return;this.emojiPickerContainer.scrollHeight-this.state.divTopOffset-this.emojiPickerContainer.clientHeight<=da&&this.loadMoreCustomEmojis()}selectNextEmoji(e=1){const{cursor:t}=this.state;let a=[t[0],t[1]+e];this.getCurrentEmojiByCursor(a)?this.setState({cursor:a}):(a=[t[0]+1,0],this.getCurrentEmojiByCursor(a)&&this.setState({cursor:a}))}selectPrevEmoji(e=1){const{cursor:t}=this.state;let a=[t[0],t[1]-e];if(this.getCurrentEmojiByCursor(a))this.setState({cursor:a});else if(0!==t[0]){const e=this.getCategoryByIndex(t[0]-1),n=this.state.categories[e.name].emojiIds.length-1;a=[t[0]-1,n],this.getCurrentEmojiByCursor(a)&&this.setState({cursor:a})}}getCategoryByIndex(e){return this.state.filter&&0!==e?null:this.getCategoriesByKey(Object.keys(this.state.categories)[e])}getCurrentEmojiByCursor(e){const t=this.getCategoryByIndex(e[0]);return t?this.getEmojisByCategory(t)[e[1]]:null}getCategoriesByKey(e){return this.state.filter?{id:Zt,name:Zt}:this.state.categories[e]}sortEmojis(e){const{recentEmojis:t}=this.props,a=[],n=[];Object.values(e).forEach(e=>{let s=n;for(let n=0;n<e.aliases.length;n++)t.includes(e.aliases[n].toLowerCase())&&(s=a);s.push(e)});const s=(e,t)=>At(e,t,this.state.filter);return a.sort(s),n.sort(s),[...a,...n]}getEmojisByCategory(e){if(this.state.filter){const e=Object.values(this.state.allEmojis).filter(e=>{for(let t=0;t<e.aliases.length;t++)if(e.aliases[t].toLowerCase().includes(this.state.filter))return!0;return!1});return this.sortEmojis(e)}return this.state.categories[e.name].emojiIds.map(e=>this.state.allEmojis[e])}getCurrentEmojiName(){const e=this.getCurrentEmojiByCursor(this.state.cursor);return e?e.aliases[0].replace(/_/g," "):""}getCurrentEmojiCategoryName(){const e=Object.keys(this.state.categories);let t=e[0];for(let a=e.length-1;a>=0;a--){const n=this.state.categories[e[a]];if(n.offset&&this.state.divTopOffset>n.offset-20){t=e[a];break}}return t}emojiCategories(){const e=this.props.recentEmojis.length?Qt({},ia,{},oa):oa,t=Object.keys(e),a=this.state.filter?t[0]:this.getCurrentEmojiCategoryName(),n=t.map(t=>{const n=e[t];return C.a.createElement(Dt,{key:"header-"+n.name,category:n.name,icon:C.a.createElement(V.a,{id:n.id,defaultMessage:n.message},e=>C.a.createElement("i",{className:n.className,title:e})),onCategoryClick:this.handleCategoryClick,selected:a===n.name,enable:!this.state.filter})});return C.a.createElement("div",{id:"emojiPickerCategories",className:"emoji-picker__categories",onKeyDown:this.handleCategoryKeyDown},n)}emojiSearch(){return C.a.createElement("div",{className:"emoji-picker__search-container"},C.a.createElement("span",{className:"fa fa-search emoji-picker__search-icon"}),C.a.createElement(V.a,{id:"emoji_picker.search_emoji",defaultMessage:"Search for an emoji"},e=>C.a.createElement(ce.a,{id:"emojiPickerSearch","aria-label":e,ref:this.emojiSearchInput,className:"emoji-picker__search","data-testid":"emojiInputSearch",type:"text",onChange:this.handleFilterChange,onKeyDown:this.handleKeyDown,placeholder:{id:Object(de.b)("emoji_picker.search"),defaultMessage:"Search Emoji"}})))}emojiCurrentResults(){const{filter:e}=this.state,t=e?[Zt]:Object.keys(this.state.categories);let a=0,n=[];for(let e=0;e<t.length;e++){const s=this.getCategoriesByKey(t[e]),i=this.getEmojisByCategory(s),r=this.emojiCurrentResultsItems(e,i,a);a+=r.length,n=[...n,C.a.createElement(zt,{key:s.id,categoryName:s.name,updateCategoryOffset:this.updateCategoryOffset,role:"application"},r)]}return C.a.createElement("div",{ref:this.emojiPickerContainerRef,onScroll:this.handleScrollThrottle,className:"emoji-picker__items",style:{overflowY:this.state.renderAllCategories?"auto":"hidden"}},C.a.createElement("div",{className:"emoji-picker__container"},n))}render(){return C.a.createElement("div",{className:"emoji-picker__inner",role:"application"},C.a.createElement("div",{"aria-live":"assertive",className:"sr-only"},C.a.createElement(V.a,{id:"emoji_picker_item.emoji_aria_label",defaultMessage:"{emojiName} emoji",values:{emojiName:this.getCurrentEmojiName()}})),this.emojiSearch(),this.emojiCategories(),this.emojiCurrentResults(),C.a.createElement(Yt,{emoji:this.getCurrentEmojiByCursor(this.state.cursor)}))}}Jt(ma,"propTypes",{listHeight:v.a.number,onEmojiClose:v.a.func.isRequired,onEmojiClick:v.a.func.isRequired,customEmojisEnabled:v.a.bool,emojiMap:v.a.object.isRequired,recentEmojis:v.a.array.isRequired,customEmojiPage:v.a.number.isRequired,visible:v.a.bool,actions:v.a.shape({getCustomEmojis:v.a.func.isRequired,searchCustomEmojis:v.a.func.isRequired,incrementEmojiPickerPage:v.a.func.isRequired}).isRequired}),Jt(ma,"defaultProps",{listHeight:245,customEmojiPage:0,customEmojisEnabled:!1});var ua=Object(n.connect)((function(e){return{customEmojisEnabled:"true"===e.entities.general.config.EnableCustomEmoji,customEmojiPage:e.views.emoji.emojiPickerCustomPage,emojiMap:Object(wt.a)(e),recentEmojis:Object(wt.b)(e)}}),(function(e){return{actions:Object(s.bindActionCreators)({getCustomEmojis:yt.getCustomEmojis,searchCustomEmojis:yt.searchCustomEmojis,incrementEmojiPickerPage:Ct.b},e)}}))(ma);function pa(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function ha(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class ga extends y.PureComponent{constructor(e){super(e),ha(this,"handleEnterEmojiTab",()=>{this.setState({emojiTabVisible:!0})}),ha(this,"handleExitEmojiTab",()=>{this.setState({emojiTabVisible:!1})}),ha(this,"handleEmojiPickerClose",()=>{this.props.onEmojiClose()}),this.state={emojiTabVisible:!0}}render(){let e;!this.props.style||0===this.props.style.left&&0===this.props.style.top||(e="top"===this.props.placement||"bottom"===this.props.placement?{top:this.props.style.top,bottom:this.props.style.bottom,right:this.props.rightOffset}:function(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?pa(a,!0).forEach((function(t){ha(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):pa(a).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}({},this.props.style)).top&&(e.top+=this.props.topOffset);let t="emoji-picker";return"bottom"===this.props.placement&&(t+=" bottom"),this.props.enableGifPicker&&void 0!==this.props.onGifClick?C.a.createElement(ee.a,{defaultActiveKey:1,id:"emoji-picker-tabs",style:e,className:t,justified:!0},C.a.createElement(vt,{handleEmojiPickerClose:this.handleEmojiPickerClose}),C.a.createElement(te.a,{eventKey:1,onEnter:this.handleEnterEmojiTab,onExit:this.handleExitEmojiTab,title:C.a.createElement(_t,null)},C.a.createElement(ua,{style:this.props.style,onEmojiClose:this.props.onEmojiClose,onEmojiClick:this.props.onEmojiClick,customEmojis:this.props.customEmojis,visible:this.state.emojiTabVisible})),C.a.createElement(te.a,{eventKey:2,title:C.a.createElement(Et,null),mountOnEnter:!0,unmountOnExit:!0},C.a.createElement(ft,{onGifClick:this.props.onGifClick}))):C.a.createElement("div",{id:"emojiPicker",style:e,className:"a11y__popup ".concat(t," emoji-picker--single")},C.a.createElement(vt,{handleEmojiPickerClose:this.handleEmojiPickerClose}),C.a.createElement(ua,{style:this.props.style,onEmojiClose:this.props.onEmojiClose,onEmojiClick:this.props.onEmojiClick,customEmojis:this.props.customEmojis}))}}function ba(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}ha(ga,"propTypes",{style:v.a.object,rightOffset:v.a.number,topOffset:v.a.number,placement:v.a.oneOf(["top","bottom","left"]),customEmojis:v.a.object,onEmojiClose:v.a.func.isRequired,onEmojiClick:v.a.func.isRequired,onGifClick:v.a.func,enableGifPicker:v.a.bool}),ha(ga,"defaultProps",{rightOffset:0,topOffset:0});class fa extends C.a.PureComponent{constructor(e){super(e),this.state={}}static emojiPickerPosition(e){const t=e.target();let a=P.j.DEFAULT_EMOJI_PICKER_RIGHT_OFFSET;return t&&(a=window.innerWidth-t.getBoundingClientRect().left-P.j.DEFAULT_EMOJI_PICKER_LEFT_OFFSET)<P.j.DEFAULT_EMOJI_PICKER_RIGHT_OFFSET&&(a=P.j.DEFAULT_EMOJI_PICKER_RIGHT_OFFSET),a}static getPlacement(e){const t=e.target();if(t){const a=t.getBoundingClientRect();return Object($.a)(a,window.innerHeight,e.spaceRequiredAbove,e.spaceRequiredBelow)}return"top"}static getDerivedStateFromProps(e){return{placement:fa.getPlacement(e),rightOffset:fa.emojiPickerPosition(e)}}render(){return C.a.createElement(X.a,{show:this.props.show,placement:this.state.placement,rootClose:!0,container:this.props.container,onHide:this.props.onHide,target:this.props.target,animation:!1},C.a.createElement(ga,{enableGifPicker:this.props.enableGifPicker,onEmojiClose:this.props.onHide,onEmojiClick:this.props.onEmojiClick,onGifClick:this.props.onGifClick,rightOffset:this.state.rightOffset,topOffset:this.props.topOffset}))}}ba(fa,"CENTER_SPACE_REQUIRED_ABOVE",476),ba(fa,"CENTER_SPACE_REQUIRED_BELOW",497),ba(fa,"RHS_SPACE_REQUIRED_ABOVE",420),ba(fa,"RHS_SPACE_REQUIRED_BELOW",420),ba(fa,"propTypes",{show:v.a.bool.isRequired,container:v.a.func,target:v.a.func.isRequired,onEmojiClick:v.a.func.isRequired,onGifClick:v.a.func,onHide:v.a.func.isRequired,topOffset:v.a.number,spaceRequiredAbove:v.a.number,spaceRequiredBelow:v.a.number,enableGifPicker:v.a.bool}),ba(fa,"defaultProps",{spaceRequiredAbove:fa.CENTER_SPACE_REQUIRED_ABOVE,spaceRequiredBelow:fa.CENTER_SPACE_REQUIRED_BELOW,enableGifPicker:!1});var _a=a(1148),Ea=a(1403),va=a(1159),ya=a(178);function Ca(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const wa={[L.Posts.POST_TYPES.ADD_TO_CHANNEL]:{id:Object(de.b)("last_users_message.added_to_channel.type"),defaultMessage:"were **added to the channel** by {actor}."},[L.Posts.POST_TYPES.JOIN_CHANNEL]:{id:Object(de.b)("last_users_message.joined_channel.type"),defaultMessage:"**joined the channel**."},[L.Posts.POST_TYPES.LEAVE_CHANNEL]:{id:Object(de.b)("last_users_message.left_channel.type"),defaultMessage:"**left the channel**."},[L.Posts.POST_TYPES.REMOVE_FROM_CHANNEL]:{id:Object(de.b)("last_users_message.removed_from_channel.type"),defaultMessage:"were **removed from the channel**."},[L.Posts.POST_TYPES.ADD_TO_TEAM]:{id:Object(de.b)("last_users_message.added_to_team.type"),defaultMessage:"were **added to the team** by {actor}."},[L.Posts.POST_TYPES.JOIN_TEAM]:{id:Object(de.b)("last_users_message.joined_team.type"),defaultMessage:"**joined the team**."},[L.Posts.POST_TYPES.LEAVE_TEAM]:{id:Object(de.b)("last_users_message.left_team.type"),defaultMessage:"**left the team**."},[L.Posts.POST_TYPES.REMOVE_FROM_TEAM]:{id:Object(de.b)("last_users_message.removed_from_team.type"),defaultMessage:"were **removed from the team**."}};class Oa extends C.a.PureComponent{constructor(e){super(e),Ca(this,"handleOnClick",e=>{e.preventDefault(),this.setState({expand:!0})}),Ca(this,"renderMessage",e=>C.a.createElement(va.a,{message:e,options:this.props.formatOptions})),this.state={expand:!1}}render(){const{formatMessage:e}=this.props.intl,{expand:t}=this.state,{actor:a,expandedLocale:n,postType:s,usernames:i}=this.props,r=i[0],o=i.length-1,l=i[o];if(t){const t=e(n,{users:i.slice(0,o).join(", "),lastUser:l,actor:a});return this.renderMessage(t)}const c=e({id:"last_users_message.first",defaultMessage:"{firstUser} and "},{firstUser:r}),d=e({id:"last_users_message.others",defaultMessage:"{numOthers} others "},{numOthers:o}),m=e({id:wa[s].id,defaultMessage:wa[s].defaultMessage},{actor:a});return C.a.createElement("span",null,this.renderMessage(c),C.a.createElement("a",{onClick:this.handleOnClick},d),this.renderMessage(m))}}Ca(Oa,"propTypes",{actor:v.a.string,expandedLocale:v.a.object.isRequired,formatOptions:v.a.object.isRequired,intl:Y.a.isRequired,postType:v.a.string.isRequired,usernames:v.a.array.isRequired});var Ta=Object(W.c)(Oa);function Sa(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const{JOIN_CHANNEL:Pa,ADD_TO_CHANNEL:Ma,REMOVE_FROM_CHANNEL:Ia,LEAVE_CHANNEL:Na,JOIN_TEAM:ja,ADD_TO_TEAM:Aa,REMOVE_FROM_TEAM:Ra,LEAVE_TEAM:ka}=L.Posts.POST_TYPES,La={[Pa]:{one:{id:Object(de.b)("combined_system_message.joined_channel.one"),defaultMessage:"{firstUser} **joined the channel**."},one_you:{id:Object(de.b)("combined_system_message.joined_channel.one_you"),defaultMessage:"You **joined the channel**."},two:{id:Object(de.b)("combined_system_message.joined_channel.two"),defaultMessage:"{firstUser} and {secondUser} **joined the channel**."},many_expanded:{id:Object(de.b)("combined_system_message.joined_channel.many_expanded"),defaultMessage:"{users} and {lastUser} **joined the channel**."}},[Ma]:{one:{id:Object(de.b)("combined_system_message.added_to_channel.one"),defaultMessage:"{firstUser} **added to the channel** by {actor}."},one_you:{id:Object(de.b)("combined_system_message.added_to_channel.one_you"),defaultMessage:"You were **added to the channel** by {actor}."},two:{id:Object(de.b)("combined_system_message.added_to_channel.two"),defaultMessage:"{firstUser} and {secondUser} **added to the channel** by {actor}."},many_expanded:{id:Object(de.b)("combined_system_message.added_to_channel.many_expanded"),defaultMessage:"{users} and {lastUser} were **added to the channel** by {actor}."}},[Ia]:{one:{id:Object(de.b)("combined_system_message.removed_from_channel.one"),defaultMessage:"{firstUser} was **removed from the channel**."},one_you:{id:Object(de.b)("combined_system_message.removed_from_channel.one_you"),defaultMessage:"You were **removed from the channel**."},two:{id:Object(de.b)("combined_system_message.removed_from_channel.two"),defaultMessage:"{firstUser} and {secondUser} were **removed from the channel**."},many_expanded:{id:Object(de.b)("combined_system_message.removed_from_channel.many_expanded"),defaultMessage:"{users} and {lastUser} were **removed from the channel**."}},[Na]:{one:{id:Object(de.b)("combined_system_message.left_channel.one"),defaultMessage:"{firstUser} **left the channel**."},one_you:{id:Object(de.b)("combined_system_message.left_channel.one_you"),defaultMessage:"You **left the channel**."},two:{id:Object(de.b)("combined_system_message.left_channel.two"),defaultMessage:"{firstUser} and {secondUser} **left the channel**."},many_expanded:{id:Object(de.b)("combined_system_message.left_channel.many_expanded"),defaultMessage:"{users} and {lastUser} **left the channel**."}},[ja]:{one:{id:Object(de.b)("combined_system_message.joined_team.one"),defaultMessage:"{firstUser} **joined the team**."},one_you:{id:Object(de.b)("combined_system_message.joined_team.one_you"),defaultMessage:"You **joined the team**."},two:{id:Object(de.b)("combined_system_message.joined_team.two"),defaultMessage:"{firstUser} and {secondUser} **joined the team**."},many_expanded:{id:Object(de.b)("combined_system_message.joined_team.many_expanded"),defaultMessage:"{users} and {lastUser} **joined the team**."}},[Aa]:{one:{id:Object(de.b)("combined_system_message.added_to_team.one"),defaultMessage:"{firstUser} **added to the team** by {actor}."},one_you:{id:Object(de.b)("combined_system_message.added_to_team.one_you"),defaultMessage:"You were **added to the team** by {actor}."},two:{id:Object(de.b)("combined_system_message.added_to_team.two"),defaultMessage:"{firstUser} and {secondUser} **added to the team** by {actor}."},many_expanded:{id:Object(de.b)("combined_system_message.added_to_team.many_expanded"),defaultMessage:"{users} and {lastUser} were **added to the team** by {actor}."}},[Ra]:{one:{id:Object(de.b)("combined_system_message.removed_from_team.one"),defaultMessage:"{firstUser} was **removed from the team**."},one_you:{id:Object(de.b)("combined_system_message.removed_from_team.one_you"),defaultMessage:"You were **removed from the team**."},two:{id:Object(de.b)("combined_system_message.removed_from_team.two"),defaultMessage:"{firstUser} and {secondUser} were **removed from the team**."},many_expanded:{id:Object(de.b)("combined_system_message.removed_from_team.many_expanded"),defaultMessage:"{users} and {lastUser} were **removed from the team**."}},[ka]:{one:{id:Object(de.b)("combined_system_message.left_team.one"),defaultMessage:"{firstUser} **left the team**."},one_you:{id:Object(de.b)("combined_system_message.left_team.one_you"),defaultMessage:"You **left the team**."},two:{id:Object(de.b)("combined_system_message.left_team.two"),defaultMessage:"{firstUser} and {secondUser} **left the team**."},many_expanded:{id:Object(de.b)("combined_system_message.left_team.many_expanded"),defaultMessage:"{users} and {lastUser} **left the team**."}}};class Da extends C.a.PureComponent{constructor(...e){super(...e),Sa(this,"loadUserProfiles",(e,t)=>{e.length>0&&this.props.actions.getMissingProfilesByIds(e),t.length>0&&this.props.actions.getMissingProfilesByUsernames(t)}),Sa(this,"getAllUsernames",()=>{const{allUserIds:e,allUsernames:t,currentUserId:a,currentUsername:n,userProfiles:s}=this.props,{formatMessage:i}=this.props.intl,r=s.reduce((e,t)=>(e[t.id]=t.username,e[t.username]=t.username,e),{}),o=i({id:Object(de.b)("combined_system_message.you"),defaultMessage:"You"});return e.includes(a)?r[a]=o:t.includes(n)&&(r[n]=o),r}),Sa(this,"getUsernamesByIds",(e=[])=>{const{currentUserId:t,currentUsername:a}=this.props,n=this.getAllUsernames(),{formatMessage:s}=this.props.intl,i=s({id:Object(de.b)("channel_loader.someone"),defaultMessage:"Someone"}),r=e.filter(e=>e!==t&&e!==a).map(e=>n[e]?"@".concat(n[e]):i).filter(e=>e&&""!==e);return e.includes(t)?r.unshift(n[t]):e.includes(a)&&r.unshift(n[a]),r})}componentDidMount(){this.loadUserProfiles(this.props.allUserIds,this.props.allUsernames)}componentDidUpdate(e){const{allUserIds:t,allUsernames:a}=this.props;t===e.allUserIds&&a===e.allUsernames||this.loadUserProfiles(t,a)}renderFormattedMessage(e,t,a){const{formatMessage:n}=this.props.intl,{currentUserId:s,currentUsername:i}=this.props,r=this.getUsernamesByIds(t);let o=a?this.getUsernamesByIds([a])[0]:"";!o||a!==s&&a!==i||(o=o.toLowerCase());const l=r[0],c=r[1],d=r.length-1,m={atMentions:!0,mentionKeys:[{key:l},{key:c},{key:o}],mentionHighlight:!1,singleline:!0};if(d>1)return C.a.createElement(Ta,{actor:o,expandedLocale:La[e].many_expanded,formatOptions:m,postType:e,usernames:r});let u;0===d?(u=La[e].one,t[0]!==this.props.currentUserId&&t[0]!==this.props.currentUsername||!La[e].one_you||(u=La[e].one_you)):1===d&&(u=La[e].two);const p=n(u,{firstUser:l,secondUser:c,actor:o});return C.a.createElement(va.a,{message:p,options:m})}renderMessage(e,t,a){return C.a.createElement(C.a.Fragment,{key:e+a},this.renderFormattedMessage(e,t,a),C.a.createElement("br",null))}render(){const{currentUserId:e,messageData:t}=this.props,a=[],n=[];for(const s of t){const{postType:t,actorId:i}=s;let r=s.userIds;if(!this.props.showJoinLeave&&i!==e){if(!(-1!==r.indexOf(e)))continue;r=[e]}t!==Ia?a.push(this.renderMessage(t,r,i)):n.push(...r)}if(n.length>0){const t=n.filter((e,t,a)=>a.indexOf(e)===t);a.push(this.renderMessage(Ia,t,e))}return C.a.createElement(C.a.Fragment,null,a)}}Sa(Da,"propTypes",{allUserIds:v.a.array.isRequired,allUsernames:v.a.array.isRequired,currentUserId:v.a.string.isRequired,currentUsername:v.a.string.isRequired,intl:Y.a.isRequired,messageData:v.a.array.isRequired,showJoinLeave:v.a.bool.isRequired,userProfiles:v.a.array.isRequired,actions:v.a.shape({getMissingProfilesByIds:v.a.func.isRequired,getMissingProfilesByUsernames:v.a.func.isRequired}).isRequired}),Sa(Da,"defaultProps",{allUserIds:[],allUsernames:[]});var xa=Object(W.c)(Da);var Ua=Object(n.connect)((function(){const e=Object(m.makeGetProfilesByIdsAndUsernames)();return(t,a)=>{const n=Object(m.getCurrentUser)(t),{allUserIds:s,allUsernames:i}=a;return{currentUserId:n.id,currentUsername:n.username,showJoinLeave:Object(c.getBool)(t,L.Preferences.CATEGORY_ADVANCED_SETTINGS,L.Preferences.ADVANCED_FILTER_JOIN_LEAVE,!0),userProfiles:e(t,{allUserIds:s,allUsernames:i})}}}),(function(e){return{actions:Object(s.bindActionCreators)({getMissingProfilesByIds:r.getMissingProfilesByIds,getMissingProfilesByUsernames:r.getMissingProfilesByUsernames},e)}}))(xa),qa=a(29),Ha=a(1487);function Fa(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class Ba extends C.a.PureComponent{constructor(...e){super(...e),Fa(this,"handleAddChannelMember",()=>{const{currentUser:e,post:t,userIds:a,usernames:n}=this.props;if(t&&t.channel_id){let s=t.create_at;a.forEach((a,i)=>{s++,this.props.actions.addChannelMember(t.channel_id,a),Object(S.g)(e,n[i],a,t.channel_id,t.root_id,s)}),this.props.actions.removePost(t)}})}generateAtMentions(e=[]){if(1===e.length)return C.a.createElement(Ha.a,{mentionName:e[0]});if(e.length>1){function t(e){return C.a.createElement(V.a,{key:e,id:"post_body.check_for_out_of_channel_mentions.link.and",defaultMessage:" and "})}function a(e){return C.a.createElement("span",{key:e},", ")}return C.a.createElement("span",null,e.map(e=>C.a.createElement(Ha.a,{key:e,mentionName:e})).reduce((e,n,s,i)=>0===s?[n]:s===i.length-1?[...e,t(s),n]:[...e,a(s),n],[]))}return""}render(){const{channelType:e,postId:t,usernames:a,noGroupsUsernames:n}=this.props;if(!t||!e)return null;let s,i,r,o;e===P.j.PRIVATE_CHANNEL?(s=Object(de.b)("post_body.check_for_out_of_channel_mentions.link.private"),i="add them to this private channel"):e===P.j.OPEN_CHANNEL&&(s=Object(de.b)("post_body.check_for_out_of_channel_mentions.link.public"),i="add them to the channel");const l=this.generateAtMentions(a);let c,d;1===a.length?(r=Object(de.b)("post_body.check_for_out_of_channel_mentions.message.one"),o="did not get notified by this mention because they are not in the channel. Would you like to "):a.length>1&&(r=Object(de.b)("post_body.check_for_out_of_channel_mentions.message.multiple"),o="did not get notified by this mention because they are not in the channel. Would you like to ");const m=this.generateAtMentions(n);n.length&&(c=Object(de.b)("post_body.check_for_out_of_channel_groups_mentions.message"),d="did not get notified by this mention because they are not in the channel. They cannot be added to the channel because they are not a member of the linked groups. To add them to this channel, they must be added to the linked groups.");var u=null,p=null;return a.length&&(u=C.a.createElement("p",null,l," ",C.a.createElement(V.a,{id:r,defaultMessage:o}),C.a.createElement("a",{id:"add_channel_member_link",onClick:this.handleAddChannelMember},C.a.createElement(V.a,{id:s,defaultMessage:i})),C.a.createElement(V.a,{id:"post_body.check_for_out_of_channel_mentions.message_last",defaultMessage:"? They will have access to all message history."}))),n.length&&(p=C.a.createElement("p",null,m," ",C.a.createElement(V.a,{id:c,defaultMessage:d}))),C.a.createElement(C.a.Fragment,null,u,p)}}Fa(Ba,"propTypes",{currentUser:v.a.object.isRequired,channelType:v.a.string.isRequired,postId:v.a.string.isRequired,post:v.a.object.isRequired,userIds:v.a.array.isRequired,usernames:v.a.array.isRequired,noGroupsUsernames:v.a.array.isRequired,actions:v.a.shape({addChannelMember:v.a.func.isRequired,removePost:v.a.func.isRequired}).isRequired});var Ga=Object(n.connect)((function(e,t){const a=Object(qa.getPost)(e,t.postId)||{};let n="";if(a&&a.channel_id){const t=Object(p.getChannel)(e,a.channel_id);t&&t.type&&(n=t.type)}return{channelType:n,currentUser:Object(m.getCurrentUser)(e),post:a}}),(function(e){return{actions:Object(s.bindActionCreators)({addChannelMember:o.addChannelMember,removePost:k.removePost},e)}}))(Ba);function Va(e){return Wa("@"===e[0]?e:"@".concat(e),{markdown:!1})}function Wa(e,t,a){return C.a.createElement(va.a,{message:e,options:t,postId:a&&a.id,postType:a&&a.type})}function za(e){const t=Va(e.props.username),a=Va(e.props.addedUsername);return C.a.createElement(V.a,{id:"api.channel.add_member.added",defaultMessage:"{addedUsername} added to the channel by {username}.",values:{username:t,addedUsername:a}})}const Ya={[L.Posts.POST_TYPES.JOIN_CHANNEL]:function(e){const t=Va(e.props.username);return C.a.createElement(V.a,{id:"api.channel.join_channel.post_and_forget",defaultMessage:"{username} joined the channel.",values:{username:t}})},[L.Posts.POST_TYPES.GUEST_JOIN_CHANNEL]:function(e){const t=Va(e.props.username);return C.a.createElement(V.a,{id:"api.channel.guest_join_channel.post_and_forget",defaultMessage:"{username} joined the channel as a guest.",values:{username:t}})},[L.Posts.POST_TYPES.LEAVE_CHANNEL]:function(e){const t=Va(e.props.username);return C.a.createElement(V.a,{id:"api.channel.leave.left",defaultMessage:"{username} has left the channel.",values:{username:t}})},[L.Posts.POST_TYPES.ADD_TO_CHANNEL]:za,[L.Posts.POST_TYPES.ADD_GUEST_TO_CHANNEL]:function(e){const t=Va(e.props.username),a=Va(e.props.addedUsername);return C.a.createElement(V.a,{id:"api.channel.add_guest.added",defaultMessage:"{addedUsername} added to the channel as a guest by {username}.",values:{username:t,addedUsername:a}})},[L.Posts.POST_TYPES.REMOVE_FROM_CHANNEL]:function(e){const t=Va(e.props.removedUsername);return C.a.createElement(V.a,{id:"api.channel.remove_member.removed",defaultMessage:"{removedUsername} was removed from the channel",values:{removedUsername:t}})},[L.Posts.POST_TYPES.JOIN_TEAM]:function(e){const t=Va(e.props.username);return C.a.createElement(V.a,{id:"api.team.join_team.post_and_forget",defaultMessage:"{username} joined the team.",values:{username:t}})},[L.Posts.POST_TYPES.LEAVE_TEAM]:function(e){const t=Va(e.props.username);return C.a.createElement(V.a,{id:"api.team.leave.left",defaultMessage:"{username} left the team.",values:{username:t}})},[L.Posts.POST_TYPES.ADD_TO_TEAM]:function(e){const t=Va(e.props.username),a=Va(e.props.addedUsername);return C.a.createElement(V.a,{id:"api.team.add_member.added",defaultMessage:"{addedUsername} added to the team by {username}.",values:{username:t,addedUsername:a}})},[L.Posts.POST_TYPES.REMOVE_FROM_TEAM]:function(e){const t=Va(e.props.username);return C.a.createElement(V.a,{id:"api.team.remove_user_from_team.removed",defaultMessage:"{removedUsername} was removed from the team.",values:{removedUsername:t}})},[L.Posts.POST_TYPES.HEADER_CHANGE]:function(e){if(!e.props.username)return null;const t={singleline:!0,channelNamesMap:e.props&&e.props.channel_mentions},a=Va(e.props.username),n=e.props.old_header?Wa(e.props.old_header,t,e):null,s=e.props.new_header?Wa(e.props.new_header,t,e):null;return e.props.new_header?e.props.old_header?C.a.createElement(V.a,{id:"api.channel.post_update_channel_header_message_and_forget.updated_from",defaultMessage:"{username} updated the channel header from: {old} to: {new}",values:{username:a,old:n,new:s}}):C.a.createElement(V.a,{id:"api.channel.post_update_channel_header_message_and_forget.updated_to",defaultMessage:"{username} updated the channel header to: {new}",values:{username:a,new:s}}):e.props.old_header?C.a.createElement(V.a,{id:"api.channel.post_update_channel_header_message_and_forget.removed",defaultMessage:"{username} removed the channel header (was: {old})",values:{username:a,old:n}}):null},[L.Posts.POST_TYPES.DISPLAYNAME_CHANGE]:function(e){if(!(e.props.username&&e.props.old_displayname&&e.props.new_displayname))return null;const t=Va(e.props.username),a=e.props.old_displayname,n=e.props.new_displayname;return C.a.createElement(V.a,{id:"api.channel.post_update_channel_displayname_message_and_forget.updated_from",defaultMessage:"{username} updated the channel display name from: {old} to: {new}",values:{username:t,old:a,new:n}})},[L.Posts.POST_TYPES.CONVERT_CHANNEL]:function(e){if(!e.props.username)return null;const t=Va(e.props.username);return C.a.createElement(V.a,{id:"api.channel.post_convert_channel_to_private.updated_from",defaultMessage:"{username} converted the channel from public to private",values:{username:t}})},[L.Posts.POST_TYPES.PURPOSE_CHANGE]:function(e){if(!e.props.username)return null;const t=Va(e.props.username),a=e.props.old_purpose,n=e.props.new_purpose;return e.props.new_purpose?e.props.old_purpose?C.a.createElement(V.a,{id:"app.channel.post_update_channel_purpose_message.updated_from",defaultMessage:"{username} updated the channel purpose from: {old} to: {new}",values:{username:t,old:a,new:n}}):C.a.createElement(V.a,{id:"app.channel.post_update_channel_purpose_message.updated_to",defaultMessage:"{username} updated the channel purpose to: {new}",values:{username:t,new:n}}):e.props.old_purpose?C.a.createElement(V.a,{id:"app.channel.post_update_channel_purpose_message.removed",defaultMessage:"{username} removed the channel purpose (was: {old})",values:{username:t,old:a}}):null},[L.Posts.POST_TYPES.CHANNEL_DELETED]:function(e){if(!e.props.username)return null;const t=Va(e.props.username);return C.a.createElement(V.a,{id:"api.channel.delete_channel.archived",defaultMessage:"{username} has archived the channel.",values:{username:t}})},[L.Posts.POST_TYPES.ME]:function(e){return Wa(e.props&&e.props.message?e.props.message:e.message)}};function Ka(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class Qa extends C.a.PureComponent{render(){if(this.props.post){const e=function(e,t){if(e.props&&e.props.add_channel_member){const a=Object(ya.a)(t),n=I.Z(e);if((t.type===L.General.PRIVATE_CHANNEL||t.type===L.General.OPEN_CHANNEL)&&a&&n){const t=e.props.add_channel_member;return C.a.createElement(Ga,{postId:t.post_id,userIds:t.not_in_channel_user_ids,noGroupsUsernames:t.not_in_groups_usernames,usernames:t.not_in_channel_usernames})}return null}if(Ya[e.type])return Ya[e.type](e);if(e.type===L.Posts.POST_TYPES.EPHEMERAL_ADD_TO_CHANNEL)return za(e);if(e.type===L.Posts.POST_TYPES.COMBINED_USER_ACTIVITY){const{allUserIds:t,allUsernames:a,messageData:n}=e.props.user_activity;return C.a.createElement(Ua,{allUserIds:t,allUsernames:a,messageData:n})}return null}(this.props.post,this.props.channel);if(e)return C.a.createElement("div",null,e)}const e=!this.props.post||!this.props.post.message_source||this.props.post.message===this.props.post.message_source,t=this.props.post&&this.props.post.props&&this.props.post.props.channel_mentions;let{message:a}=this.props;const{post:n}=this.props;return this.props.pluginHooks.forEach(e=>{e&&e.hook&&n&&(a=e.hook(n,a))}),C.a.createElement(va.a,{imageProps:this.props.imageProps,isRHS:this.props.isRHS,message:a,proxyImages:e,options:this.props.options,channelNamesMap:t,hasPluginTooltips:this.props.hasPluginTooltips,imagesMetadata:this.props.post&&this.props.post.metadata&&this.props.post.metadata.images,postId:this.props.post&&this.props.post.id})}}Ka(Qa,"propTypes",{imageProps:v.a.object,isRHS:v.a.bool,message:v.a.string.isRequired,post:v.a.object,channel:v.a.object,options:v.a.object,pluginHooks:v.a.arrayOf(v.a.object),hasPluginTooltips:v.a.bool}),Ka(Qa,"defaultProps",{isRHS:!1,pluginHooks:[]});var Ja=Object(n.connect)((function(e,t){return{channel:Object(p.getChannel)(e,t.channelId),pluginHooks:e.plugins.components.MessageWillFormat,hasPluginTooltips:Boolean(e.plugins.components.LinkTooltip)}}))(Qa),Za=a(83),Xa=a.n(Za),$a=a(54),en=a(1143),tn=a(1134),an=a(1161),nn=a(1140),sn=a(1144);class rn extends sn.a{render(){const e=this.props.isSelection,t=this.props.item;let a,n,s;"all"===t.username?(a="all",n=C.a.createElement(V.a,{id:"suggestion.mention.all",defaultMessage:"Notifies everyone in this channel"}),s=C.a.createElement(V.a,{id:"generic_icons.member",defaultMessage:"Member Icon"},e=>C.a.createElement("i",{className:"mention__image fa fa-users fa-2x",title:e}))):"channel"===t.username?(a="channel",n=C.a.createElement(V.a,{id:"suggestion.mention.channel",defaultMessage:"Notifies everyone in this channel"}),s=C.a.createElement(V.a,{id:"generic_icons.member",defaultMessage:"Member Icon"},e=>C.a.createElement("i",{className:"mention__image fa fa-users fa-2x",title:e}))):"here"===t.username?(a="here",n=C.a.createElement(V.a,{id:"suggestion.mention.here",defaultMessage:"Notifies everyone online in this channel"}),s=C.a.createElement(V.a,{id:"generic_icons.member",defaultMessage:"Member Icon"},e=>C.a.createElement("i",{className:"mention__image fa fa-users fa-2x",title:e}))):(a=t.username,(t.first_name||t.last_name)&&t.nickname?n="- ".concat(I.z(t)," (").concat(t.nickname,")"):t.nickname?n="- (".concat(t.nickname,")"):(t.first_name||t.last_name)&&(n="- ".concat(I.z(t))),s=C.a.createElement(nn.a,{size:"xs",username:t&&t.username,url:I.M(t)}));let i=null;t.isCurrentUser&&(i=C.a.createElement("span",{className:"mention__you"},C.a.createElement(V.a,{id:"suggestion.user.isCurrent",defaultMessage:"(you)"})));let r="mentions__name";return e&&(r+=" suggestion--selected"),C.a.createElement("div",Object.assign({className:r,"data-testid":"mentionSuggestion_".concat(a),onClick:this.handleClick,onMouseMove:this.handleMouseMove},sn.a.baseProps),s,C.a.createElement("span",{className:"mention--align"},"@"+a),C.a.createElement(tn.a,{show:Boolean(t.is_bot),className:"badge-autocomplete"}),C.a.createElement("span",{className:"mention__fullname"}," ",n),i,C.a.createElement(an.a,{show:I.V(t),className:"badge-autocomplete"}))}}function on(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function ln(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?on(a,!0).forEach((function(t){cn(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):on(a).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function cn(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class dn extends en.a{constructor(e){super(),this.setProps(e),this.data=null}setProps({currentUserId:e,profilesInChannel:t,profilesNotInChannel:a,autocompleteUsersInChannel:n}){this.currentUserId=e,this.profilesInChannel=t,this.profilesNotInChannel=a,this.autocompleteUsersInChannel=n}specialMentions(){return this.latestPrefix.startsWith("/msg")?[]:["here","channel","all"].filter(e=>e.startsWith(this.latestPrefix)).map(e=>({username:e,type:P.j.MENTION_SPECIAL}))}getProfileSuggestions(e){const t=[];if(!e)return t;if(e.username){const a=Object($a.getSuggestionsSplitByMultiple)(e.username.toLowerCase(),P.j.AUTOCOMPLETE_SPLIT_CHARACTERS);t.push(...a)}return[e.first_name,e.last_name,e.nickname].forEach(e=>{const a=Object($a.getSuggestionsSplitBy)(e.toLowerCase()," ");t.push(...a)}),t.push(e.first_name.toLowerCase()+" "+e.last_name.toLowerCase()),t}filterProfile(e){if(!e)return!1;const t=this.latestPrefix.toLowerCase();return this.getProfileSuggestions(e).some(e=>e.startsWith(t))}localMembers(){return this.profilesInChannel.filter(e=>this.filterProfile(e)).map(e=>this.createFromProfile(e,P.j.MENTION_MEMBERS)).sort((e,t)=>e.username.localeCompare(t.username)).splice(0,25)}remoteMembers(){return this.data?(this.data.users||[]).filter(e=>this.filterProfile(e)).map(e=>this.createFromProfile(e,P.j.MENTION_MEMBERS)):[]}remoteNonMembers(){return this.data?(this.data.out_of_channel||[]).filter(e=>this.filterProfile(e)).map(e=>ln({type:P.j.MENTION_NONMEMBERS},e)):[]}users(){const e=this.specialMentions(),t=this.localMembers(),a={};t.forEach(e=>{a[e.id]=!0});const n=this.remoteMembers().filter(e=>!a[e.id]),s=(e,t)=>{const a=e.username.startsWith(this.latestPrefix),n=t.username.startsWith(this.latestPrefix);return a&&n?e.username.localeCompare(t.username):a?-1:n?1:e.username.localeCompare(t.username)},i=t.concat(n).sort(s),r=this.remoteNonMembers().filter(e=>!a[e.id]).sort(s);return i.concat(e).concat(r)}updateMatches(e,t){const a=t.map(e=>e.username?"@"+e.username:"");e({matchedPretext:"@".concat(this.latestPrefix),terms:a,items:t,component:rn})}handlePretextChanged(e,t){const a=Xa.a.cache("(?:^|\\W)@([\\pL\\d\\-_. ]*)$","i").exec(e.toLowerCase());if(!a)return!1;const n=a[1];this.startNewRequest(n),this.updateMatches(t,this.users());let s=setTimeout(()=>{this.shouldCancelDispatch(n)||(this.updateMatches(t,this.users().concat([{type:P.j.MENTION_MORE_MEMBERS,loading:!0}])),s=null)},500);return this.autocompleteUsersInChannel(n).then(({data:e})=>{s&&clearTimeout(s),this.shouldCancelDispatch(n)||(this.data=e,this.updateMatches(t,this.users()))}),!0}createFromProfile(e,t){return e.id===this.currentUserId?ln({type:t},e,{isCurrentUser:!0}):ln({type:t},e)}}var mn=dn,un=a(100),pn=a(11);class hn extends sn.a{render(){const e=this.props.isSelection,t=this.props.item,a=t.channel.display_name,n=t.channel.purpose;let s="mentions__name no-flex";e&&(s+=" suggestion--selected");const i="(~"+t.channel.name+")";return C.a.createElement("div",Object.assign({className:s,onClick:this.handleClick,onMouseMove:this.handleMouseMove},sn.a.baseProps),C.a.createElement("div",{className:"mention__align"},C.a.createElement("span",null,a),C.a.createElement("span",{className:"mention__channelname"}," ",i)),C.a.createElement("div",{className:"mention__purpose"},n))}}class gn extends en.a{constructor(e){super(),this.lastPrefixTrimmed="",this.lastPrefixWithNoResults="",this.lastCompletedWord="",this.autocompleteChannels=e}handlePretextChanged(e,t){this.resetRequest();const a=/\B(~([^~\r\n]*))$/i.exec(e.toLowerCase());if(!a)return!1;if(a.index>0&&"~"===e[a.index-1])return!1;const n=a[2];if(this.lastPrefixTrimmed&&n.trim()===this.lastPrefixTrimmed)return!0;if(this.lastPrefixTrimmed=n.trim(),this.lastPrefixWithNoResults&&n.startsWith(this.lastPrefixWithNoResults))return!1;if(this.lastCompletedWord&&a[0].startsWith(this.lastCompletedWord))return!1;this.lastCompletedWord="",this.startNewRequest(n);const s=n.toLowerCase().split(/\s+/),i={};var r=[];Object(p.getMyChannels)(pn.a.getState()).forEach(e=>{if("O"!==e.type||e.delete_at>0)return;const t=e.name.toLowerCase().split(/\s+/).concat(e.display_name.toLowerCase().split(/\s+/));for(var a=!0,n=0;a&&n<s.length;n++)if(s[n]){for(var o=!1,l=0;l<t.length;l++)if(t[l].startsWith(s[n])){o=!0;break}if(!o){a=!1;break}}a&&(i[e.id]=!0,r.push({type:P.j.MENTION_CHANNELS,channel:e}))});const o=(r=r.sort((e,t)=>Object(un.sortChannelsByTypeAndDisplayName)("en",e.channel,t.channel))).map(e=>"~"+e.channel.name);t({terms:o.concat([" "]),items:r.concat([{type:P.j.MENTION_MORE_CHANNELS,loading:!0}]),component:hn,matchedPretext:a[1]});const l=(e,s)=>{if(n!==this.latestPrefix||this.shouldCancelDispatch(n))return;const o=Object(p.getMyChannelMemberships)(pn.a.getState());0!==e.length||s||(this.lastPrefixWithNoResults=n);const l=[];e.forEach(e=>{if(!(e.delete_at>0)||o[e.id]){if(o[e.id]&&!i[e.id])return i[e.id]=!0,void r.push({type:P.j.MENTION_CHANNELS,channel:e});if(!o[e.id]||!i[e.id]){if(!o[e.id]&&i[e.id]){delete i[e.id];const t=r.map(e=>e.channel.id).indexOf(e.id);t>=0&&r.splice(t,1)}l.push({type:P.j.MENTION_MORE_CHANNELS,channel:e})}}});const c=(r=r.sort((e,t)=>Object(un.sortChannelsByTypeAndDisplayName)("en",e.channel,t.channel))).concat(l),d=c.map(e=>"~"+e.channel.name);t({matchedPretext:a[1],terms:d,items:c,component:hn})};return this.autocompleteChannels(n,e=>l(e,!1),()=>l([],!0)),!0}handleCompleteWord(e){this.lastCompletedWord=e,this.lastPrefixWithNoResults=""}}a(591);var bn=a(18);class fn extends sn.a{render(){const{item:e,isSelection:t}=this.props;let a="command";return t&&(a+=" suggestion--selected"),C.a.createElement("div",Object.assign({className:a,onClick:this.handleClick,onMouseMove:this.handleMouseMove},sn.a.baseProps),C.a.createElement("div",{className:"command__title"},e.suggestion+" "+e.hint),C.a.createElement("div",{className:"command__desc"},e.description))}}class _n extends en.a{handlePretextChanged(e,t){if(e.startsWith("/")){const a=e.toLowerCase();return bn.Client4.getCommandsList(Object(u.getCurrentTeamId)(pn.a.getState())).then(e=>{let n=[];e.forEach(e=>{if(e.auto_complete&&("shortcuts"!==e.trigger||!M.n())&&0===("/"+e.trigger).indexOf(a)){const t="/"+e.trigger;let a="";e.auto_complete_hint&&0!==e.auto_complete_hint.length&&(a=e.auto_complete_hint),n.push({suggestion:t,hint:a,description:e.auto_complete_desc})}});const s=(n=n.sort((e,t)=>e.suggestion.localeCompare(t.suggestion))).map(e=>e.suggestion);t({matchedPretext:a,terms:s,items:n,component:fn})}).catch(()=>{}),!0}return!1}}var En=a(71);const vn=2,yn=["skintone"];class Cn extends sn.a{render(){const e=this.props.term,t=this.props.item.emoji;let a="emoticon-suggestion";return this.props.isSelection&&(a+=" suggestion--selected"),C.a.createElement("div",Object.assign({className:a,onClick:this.handleClick,onMouseMove:this.handleMouseMove},sn.a.baseProps),C.a.createElement("div",{className:"pull-left"},C.a.createElement("img",{alt:e,className:"emoticon-suggestion__image",src:Object(qt.getEmojiImageUrl)(t),title:e})),C.a.createElement("div",{className:"pull-left"},e))}}class wn extends en.a{handlePretextChanged(e,t){const a=/(^|\s|^\+|^-)(:([^:\s]*))$/g.exec(e);if(!a)return!1;const n=a[1],s=a[2],i=a[3];if(i.length<vn)return!1;if("-"!==n&&"+"!==n)for(const e of Object.keys(En.b))if(En.b[e].test(s))return!1;return"true"===pn.a.getState().entities.general.config.EnableCustomEmoji?pn.a.dispatch(Object(yt.autocompleteCustomEmojis)(i)).then(()=>this.findAndSuggestEmojis(s,i,t)):this.findAndSuggestEmojis(s,i,t),!0}formatEmojis(e){return e.map(e=>":"+e.name+":")}findAndSuggestEmojis(e,t,a){const n=[],s=[],i=Object(wt.a)(pn.a.getState()),r=Object(wt.b)(pn.a.getState());for(const[e,a]of i)if(!yn.includes(a.category))if(a.aliases){for(const i of a.aliases)if(-1!==i.indexOf(t)){(r.includes(i)||r.includes(e)?n:s).push({name:i,emoji:a});break}}else if(-1!==e.indexOf(t)){if(i.hasSystemEmoji(e))continue;(r.includes(e)?n:s).push({name:e,emoji:a})}const o=(e,a)=>At(e,a,t);n.sort(o),s.sort(o),a({matchedPretext:e,terms:[...this.formatEmojis(n),...this.formatEmojis(s)],items:[...n,...s],component:Cn})}}var On=a(1185),Tn=a(1186);function Sn(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class Pn extends C.a.PureComponent{constructor(e){super(e),Sn(this,"handleChange",e=>{this.props.onChange(e)}),Sn(this,"checkMessageLength",e=>{if(this.props.handlePostError)if(e.length>this.props.characterLimit){const t=C.a.createElement(V.a,{id:"create_post.error_message",defaultMessage:"Your message is too long. Character count: {length}/{limit}",values:{length:e.length,limit:this.props.characterLimit}});this.props.handlePostError(t)}else this.props.handlePostError(null)}),Sn(this,"handleKeyDown",e=>{this.props.onKeyDown&&this.props.onKeyDown(e)}),Sn(this,"handleMouseUp",e=>{this.props.onMouseUp&&this.props.onMouseUp(e)}),Sn(this,"handleKeyUp",e=>{this.props.onKeyUp&&this.props.onKeyUp(e)}),Sn(this,"handleBlur",e=>{this.props.onBlur&&this.props.onBlur(e)}),Sn(this,"handleHeightChange",(e,t)=>{this.props.onHeightChange&&this.props.onHeightChange(e,t)}),Sn(this,"getInputBox",()=>{return this.refs.message.getTextbox()}),Sn(this,"focus",()=>{const e=this.refs.message.getTextbox();e.focus(),I.kb(e),this.checkMessageLength(e.value)}),Sn(this,"blur",()=>{this.refs.message.getTextbox().blur()}),Sn(this,"recalculateSize",()=>{this.refs.message.recalculateSize()}),this.suggestionProviders=[new mn({currentUserId:this.props.currentUserId,profilesInChannel:this.props.profilesInChannel,profilesNotInChannel:this.props.profilesNotInChannel,autocompleteUsersInChannel:t=>this.props.actions.autocompleteUsersInChannel(t,e.channelId)}),new gn(e.actions.autocompleteChannels),new wn],e.supportsCommands&&this.suggestionProviders.push(new _n),this.checkMessageLength(e.value),this.wrapper=C.a.createRef()}updateSuggestions(e){if(this.props.channelId!==e.channelId||this.props.currentUserId!==e.currentUserId||this.props.profilesInChannel!==e.profilesInChannel||this.props.profilesNotInChannel!==e.profilesNotInChannel){const e=this.suggestionProviders;for(let t=0;t<e.length;t++)e[t]instanceof mn&&e[t].setProps({currentUserId:this.props.currentUserId,profilesInChannel:this.props.profilesInChannel,profilesNotInChannel:this.props.profilesNotInChannel,autocompleteUsersInChannel:e=>this.props.actions.autocompleteUsersInChannel(e,this.props.channelId)})}e.value!==this.props.value&&this.checkMessageLength(this.props.value)}componentDidUpdate(e){!e.preview&&this.props.preview&&this.refs.preview.focus(),this.updateSuggestions(e)}render(){let e,t=null,a="form-control custom-textarea",n="textarea-wrapper";return this.props.emojiEnabled&&(a+=" custom-textarea--emoji-picker"),this.props.badConnection&&(a+=" bad-connection"),this.wrapper.current&&(e=this.getInputBox().clientHeight),this.props.preview&&(a+=" custom-textarea--preview",n+=" textarea-wrapper--preview",t=C.a.createElement("div",{tabIndex:"0",ref:"preview",className:"form-control custom-textarea textbox-preview-area",onKeyPress:this.props.onKeyPress,onKeyDown:this.handleKeyDown,onBlur:this.handleBlur},C.a.createElement(Ja,{isRHS:this.props.isRHS,message:this.props.value}))),C.a.createElement("div",{ref:this.wrapper,className:n},C.a.createElement(On.a,{id:this.props.id,ref:"message",className:a,spellCheck:"true",placeholder:this.props.createMessage,onChange:this.handleChange,onKeyPress:this.props.onKeyPress,onKeyDown:this.handleKeyDown,onMouseUp:this.handleMouseUp,onKeyUp:this.handleKeyUp,onComposition:this.props.onComposition,onBlur:this.handleBlur,onHeightChange:this.handleHeightChange,style:{visibility:this.props.preview?"hidden":"visible"},inputComponent:Ea.a,listComponent:Tn.a,listStyle:this.props.suggestionListStyle,providers:this.suggestionProviders,channelId:this.props.channelId,value:this.props.value,renderDividers:!0,isRHS:this.props.isRHS,disabled:this.props.disabled,contextId:this.props.channelId,listenForMentionKeyClick:this.props.listenForMentionKeyClick,wrapperHeight:e}),t)}}Sn(Pn,"propTypes",{id:v.a.string.isRequired,channelId:v.a.string,value:v.a.string.isRequired,onChange:v.a.func.isRequired,onKeyPress:v.a.func.isRequired,onComposition:v.a.func,onHeightChange:v.a.func,createMessage:v.a.string.isRequired,onKeyDown:v.a.func,onMouseUp:v.a.func,onKeyUp:v.a.func,onBlur:v.a.func,supportsCommands:v.a.bool.isRequired,handlePostError:v.a.func,suggestionListStyle:v.a.string,emojiEnabled:v.a.bool,isRHS:v.a.bool,characterLimit:v.a.number.isRequired,disabled:v.a.bool,badConnection:v.a.bool,listenForMentionKeyClick:v.a.bool,currentUserId:v.a.string.isRequired,preview:v.a.bool,profilesInChannel:v.a.arrayOf(v.a.object).isRequired,profilesNotInChannel:v.a.arrayOf(v.a.object).isRequired,actions:v.a.shape({autocompleteUsersInChannel:v.a.func.isRequired,autocompleteChannels:v.a.func.isRequired})}),Sn(Pn,"defaultProps",{supportsCommands:!0,isRHS:!1,listenForMentionKeyClick:!1});var Mn=Object(n.connect)(()=>{const e=Object(m.makeGetProfilesInChannel)(),t=Object(m.makeGetProfilesNotInChannel)();return(a,n)=>({currentUserId:Object(m.getCurrentUserId)(a),profilesInChannel:e(a,n.channelId,!0),profilesNotInChannel:t(a,n.channelId,!0)})},e=>({actions:Object(s.bindActionCreators)({autocompleteUsersInChannel:f.a,autocompleteChannels:_a.b},e)}),null,{withRef:!0})(Pn),In=a(1104);function Nn(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const jn=P.Q.PRE_RELEASE_FEATURES;class An extends C.a.PureComponent{constructor(...e){super(...e),Nn(this,"togglePreview",e=>{e.preventDefault(),this.props.updatePreview(!this.props.showPreview)})}render(){const e=this.props.message&&this.props.message.length>0;let t,a="";this.props.message&&this.props.message.length>this.props.characterLimit&&(a="hidden"),t=this.props.previewMessageLink?C.a.createElement("span",null,this.props.previewMessageLink):C.a.createElement(V.a,{id:"textbox.edit",defaultMessage:"Edit message"});let n=null;I.S(jn.MARKDOWN_PREVIEW)&&(n=C.a.createElement("button",{id:"previewLink",onClick:this.togglePreview,className:"style--none textbox-preview-link color--link"},this.props.showPreview?t:C.a.createElement(V.a,{id:"textbox.preview",defaultMessage:"Preview"})));const s=C.a.createElement("div",{id:"helpText",style:{visibility:e?"visible":"hidden",opacity:e?"0.45":"0"},className:"help__format-text"},C.a.createElement("b",null,C.a.createElement(V.a,{id:"textbox.bold",defaultMessage:"**bold**"})),C.a.createElement("i",null,C.a.createElement(V.a,{id:"textbox.italic",defaultMessage:"_italic_"})),C.a.createElement("span",null,"~~",C.a.createElement("strike",null,C.a.createElement(V.a,{id:"textbox.strike",defaultMessage:"strike"})),"~~ "),C.a.createElement("span",null,C.a.createElement(V.a,{id:"textbox.inlinecode",defaultMessage:"`inline code`"})),C.a.createElement("span",null,C.a.createElement(V.a,{id:"textbox.preformatted",defaultMessage:"```preformatted```"})),C.a.createElement("span",null,C.a.createElement(V.a,{id:"textbox.quote",defaultMessage:">quote"})));return C.a.createElement("div",{className:"help__text "+a},s,n,C.a.createElement(In.a,{id:"helpTextLink",target:"_blank",rel:"noopener noreferrer",to:"/help/messaging",className:"textbox-help-link"},C.a.createElement(V.a,{id:"textbox.help",defaultMessage:"Help"})))}}function Rn(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}Nn(An,"propTypes",{showPreview:v.a.bool,characterLimit:v.a.number.isRequired,previewMessageLink:v.a.string,updatePreview:v.a.func,message:v.a.string.isRequired}),Nn(An,"defaultProps",{message:""});const kn=P.j.KeyCodes;class Ln extends C.a.PureComponent{constructor(e){super(e),Rn(this,"updatePreview",e=>{this.setState({preview:e})}),Rn(this,"getContainer",()=>this.refs.editModalBody),Rn(this,"toggleEmojiPicker",()=>{this.setState({showEmojiPicker:!this.state.showEmojiPicker}),!this.state.showEmojiPicker&&this.editbox&&this.editbox.focus()}),Rn(this,"hideEmojiPicker",()=>{this.setState({showEmojiPicker:!1}),this.editbox&&this.editbox.focus()}),Rn(this,"handleEmojiClick",e=>{const t=e&&(e.name||e.aliases&&e.aliases[0]);if(t){if(""===this.state.editText)this.setState({editText:":"+t+": "});else{const{editText:e}=this.state,{firstPiece:a,lastPiece:n}=Object(z.t)(this.state.caretPosition,e),s=""===a?":".concat(t,": ").concat(n):"".concat(a," :").concat(t,": ").concat(n),i=""===a?":".concat(t,": ").length:"".concat(a," :").concat(t,": ").length,r=this.editbox.getInputBox();this.setState({editText:s,caretPosition:i},()=>{I.ob(r,i)})}this.setState({showEmojiPicker:!1}),this.editbox&&this.editbox.focus()}}),Rn(this,"handleGifClick",e=>{if(""===this.state.editText)this.setState({editText:e});else{const t=/\s+$/.test(this.state.editText)?this.state.editText+e:this.state.editText+" "+e;this.setState({editText:t})}this.setState({showEmojiPicker:!1}),this.editbox.focus()}),Rn(this,"getEditPostControls",()=>this.refs.editPostEmoji),Rn(this,"handlePostError",e=>{this.state.postError!==e&&this.setState({postError:e})}),Rn(this,"handleEdit",async()=>{if(this.isSaveDisabled())return;const{actions:e,editingPost:t}=this.props,a={message:this.state.editText,id:t.postId,channel_id:t.post.channel_id};if(this.state.postError)return this.setState({errorClass:"animation--highlight"}),void setTimeout(()=>{this.setState({errorClass:null})},P.j.ANIMATION_TIMEOUT);if(a.message===(t.post.message_source||t.post.message))return void this.handleHide();const n=t.post.file_ids&&t.post.file_ids.length>0;if(0!==a.message.trim().length||n)e.addMessageIntoHistory(a.message),await e.editPost(a)&&window.scrollTo(0,0),this.handleHide();else{this.handleHide(!1);const e={ModalId:P.u.DELETE_POST,dialogType:Z,dialogProps:{post:t.post,commentCount:t.commentCount,isRHS:t.isRHS}};this.props.actions.openModal(e)}}),Rn(this,"handleChange",e=>{const t=e.target.value;this.setState({editText:t})}),Rn(this,"handleEditKeyPress",e=>{const{ctrlSend:t,codeBlockOnCtrlEnter:a}=this.props,{allowSending:n,ignoreKeyPress:s}=Object(z.q)(e,this.state.editText,t,a,Date.now(),this.lastChannelSwitchAt,this.state.caretPosition);if(s)return e.preventDefault(),void e.stopPropagation();n&&(e.preventDefault(),this.editbox.blur(),this.handleEdit())}),Rn(this,"handleMouseUpKeyUp",e=>{const t=I.p(e.target);this.setState({caretPosition:t})}),Rn(this,"handleKeyDown",e=>{this.props.ctrlSend&&I.W(e,kn.ENTER)&&!0===e.ctrlKey?this.handleEdit():I.W(e,kn.ESCAPE)&&!this.state.showEmojiPicker&&this.handleHide()}),Rn(this,"handleHide",(e=!0)=>{this.refocusId=e?this.props.editingPost.refocusId:null,this.props.actions.hideEditPostModal()}),Rn(this,"handleEntered",()=>{this.editbox&&(this.editbox.focus(),this.editbox.recalculateSize())}),Rn(this,"handleExit",()=>{this.setState({preview:!1})}),Rn(this,"handleExited",()=>{const e=this.refocusId;e&&setTimeout(()=>{const t=document.getElementById(e);t&&t.focus()}),this.refocusId=null,this.setState({editText:"",postError:"",errorClass:null,preview:!1,showEmojiPicker:!1,prevShowState:!1})}),Rn(this,"setEditboxRef",e=>{e&&e.getWrappedInstance&&(this.editbox=e.getWrappedInstance()),this.editbox&&this.editbox.focus()}),Rn(this,"isSaveDisabled",()=>{const e=this.props.editingPost.post;return e&&e.file_ids&&e.file_ids.length>0?!this.props.canEditPost:""!==this.state.editText?!this.props.canEditPost:!this.props.canDeletePost}),this.state={preview:!1,editText:"",caretPosition:"".length,postError:"",errorClass:null,showEmojiPicker:!1,prevShowState:e.editingPost.show}}static getDerivedStateFromProps(e,t){return e.editingPost.show&&!t.prevShowState?{editText:e.editingPost.post.message_source||e.editingPost.post.message,prevShowState:e.editingPost.show}:null}render(){const{formatMessage:e}=this.props.intl,t="edit-post-footer"+(this.state.postError?" has-error":"");let a=null;if(this.state.postError){const e="post-error"+(this.state.errorClass?" "+this.state.errorClass:"");a=C.a.createElement("label",{className:e},this.state.postError)}let n=null;const s=e({id:"emoji_picker.emojiPicker",defaultMessage:"Emoji Picker"}).toLowerCase();return"true"!==this.props.config.EnableEmojiPicker||this.state.preview||(n=C.a.createElement("div",null,C.a.createElement(fa,{show:this.state.showEmojiPicker,container:this.getContainer,target:this.getEditPostControls,onHide:this.hideEmojiPicker,onEmojiClick:this.handleEmojiClick,onGifClick:this.handleGifClick,enableGifPicker:"true"===this.props.config.EnableGifPicker,topOffset:-20}),C.a.createElement("button",{"aria-label":s,id:"editPostEmoji",ref:"editPostEmoji",className:"style--none post-action",onClick:this.toggleEmojiPicker},C.a.createElement(_t,{className:"icon icon--emoji"})))),C.a.createElement(G.a,{id:"editPostModal",dialogClassName:"a11y__modal edit-modal",show:this.props.editingPost.show,onKeyDown:this.handleKeyDown,onHide:this.handleHide,onEntered:this.handleEntered,onExit:this.handleExit,onExited:this.handleExited,keyboard:!1,role:"dialog","aria-labelledby":"editPostModalLabel"},C.a.createElement(G.a.Header,{closeButton:!0},C.a.createElement(G.a.Title,{componentClass:"h1",id:"editPostModalLabel"},C.a.createElement(V.a,{id:"edit_post.edit",defaultMessage:"Edit {title}",values:{title:this.props.editingPost.title}}))),C.a.createElement(G.a.Body,{bsClass:"modal-body edit-modal-body".concat(this.state.showEmojiPicker?" edit-modal-body--add-reaction":""),ref:"editModalBody"},C.a.createElement("div",{className:"post-create__container"},C.a.createElement("div",{className:"textarea-wrapper"},C.a.createElement(Mn,{tabIndex:"0",onChange:this.handleChange,onKeyPress:this.handleEditKeyPress,onKeyDown:this.handleKeyDown,onMouseUp:this.handleMouseUpKeyUp,onKeyUp:this.handleMouseUpKeyUp,handlePostError:this.handlePostError,value:this.state.editText,channelId:this.props.editingPost.post&&this.props.editingPost.post.channel_id,emojiEnabled:"true"===this.props.config.EnableEmojiPicker,createMessage:I.gb("edit_post.editPost","Edit the post..."),supportsCommands:!1,suggestionListStyle:"bottom",id:"edit_textbox",ref:this.setEditboxRef,characterLimit:this.props.maxPostSize,preview:this.state.preview}),C.a.createElement("div",{className:"post-body__actions"},n)),C.a.createElement("div",{className:"post-create-footer"},C.a.createElement(An,{characterLimit:this.props.maxPostSize,showPreview:this.state.preview,ref:this.setTextboxLinksRef,updatePreview:this.updatePreview,message:this.state.editText}),C.a.createElement("div",{className:t},a)))),C.a.createElement(G.a.Footer,null,C.a.createElement("button",{type:"button",className:"btn btn-link",onClick:this.handleHide},C.a.createElement(V.a,{id:"edit_post.cancel",defaultMessage:"Cancel"})),C.a.createElement("button",{id:"editButton",type:"button",className:"btn btn-primary",disabled:this.isSaveDisabled(),onClick:this.handleEdit},C.a.createElement(V.a,{id:"edit_post.save",defaultMessage:"Save"}))))}}Rn(Ln,"propTypes",{canEditPost:v.a.bool,canDeletePost:v.a.bool,codeBlockOnCtrlEnter:v.a.bool,ctrlSend:v.a.bool,config:v.a.object.isRequired,intl:Y.a.isRequired,maxPostSize:v.a.number.isRequired,editingPost:v.a.shape({post:v.a.object,postId:v.a.string,refocusId:v.a.string,commentCount:v.a.number,show:v.a.bool.isRequired,title:v.a.string,isRHS:v.a.bool}).isRequired,actions:v.a.shape({addMessageIntoHistory:v.a.func.isRequired,editPost:v.a.func.isRequired,hideEditPostModal:v.a.func.isRequired,openModal:v.a.func.isRequired}).isRequired});var Dn=Object(W.c)(Ln);var xn=Object(n.connect)((function(e){const t=Object(d.getConfig)(e),a=Object(B.a)(e),n=Object(m.getCurrentUserId)(e);let s=!1,i=!1;return a&&a.post&&a.post.user_id===n?(s=Object(D.haveIChannelPermission)(e,{channel:Object(p.getCurrentChannelId)(e),team:Object(u.getCurrentTeamId)(e),permission:L.Permissions.DELETE_POST}),i=Object(D.haveIChannelPermission)(e,{channel:Object(p.getCurrentChannelId)(e),team:Object(u.getCurrentTeamId)(e),permission:L.Permissions.EDIT_POST})):(s=Object(D.haveIChannelPermission)(e,{channel:Object(p.getCurrentChannelId)(e),team:Object(u.getCurrentTeamId)(e),permission:L.Permissions.DELETE_OTHERS_POSTS}),i=Object(D.haveIChannelPermission)(e,{channel:Object(p.getCurrentChannelId)(e),team:Object(u.getCurrentTeamId)(e),permission:L.Permissions.EDIT_OTHERS_POSTS})),{canEditPost:i,canDeletePost:s,codeBlockOnCtrlEnter:Object(c.getBool)(e,L.Preferences.CATEGORY_ADVANCED_SETTINGS,"code_block_ctrl_enter",!0),ctrlSend:Object(c.getBool)(e,L.Preferences.CATEGORY_ADVANCED_SETTINGS,"send_on_ctrl_enter"),config:t,editingPost:a,maxPostSize:parseInt(t.MaxPostSize,10)||P.Q.DEFAULT_CHARACTER_LIMIT}}),(function(e){return{actions:Object(s.bindActionCreators)({addMessageIntoHistory:k.addMessageIntoHistory,editPost:H,hideEditPostModal:U.f,openModal:x.b},e)}}))(Dn),Un=a(172),qn=a(185),Hn=a.n(qn),Fn=a(1290);function Bn(e,t){if(null==e)return{};var a,n,s=function(e,t){if(null==e)return{};var a,n,s={},i=Object.keys(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||(s[a]=e[a]);return s}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(s[a]=e[a])}return s}function Gn(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const Vn=P.Q.ActionTypes;class Wn extends Hn.a{constructor(){super(),Gn(this,"addModalListener",(e,t)=>{this.on(e,t)}),Gn(this,"removeModalListener",(e,t)=>{this.removeListener(e,t)}),Gn(this,"handleEventPayload",e=>{const t=e.action,{type:a,value:n}=t,s=Bn(t,["type","value"]);switch(a){case Vn.TOGGLE_SHORTCUTS_MODAL:case Vn.TOGGLE_IMPORT_THEME_MODAL:case Vn.TOGGLE_DELETE_POST_MODAL:case Vn.TOGGLE_GET_POST_LINK_MODAL:case Vn.TOGGLE_GET_TEAM_INVITE_LINK_MODAL:case Vn.TOGGLE_GET_PUBLIC_LINK_MODAL:case Vn.TOGGLE_QUICK_SWITCH_MODAL:case Vn.TOGGLE_CHANNEL_PURPOSE_UPDATE_MODAL:case Vn.TOGGLE_CHANNEL_NAME_UPDATE_MODAL:case Vn.TOGGLE_LEAVE_PRIVATE_CHANNEL_MODAL:this.emit(a,n,s)}}),this.dispatchToken=Fn.a.register(this.handleEventPayload)}}var zn=new Wn,Yn=a(1220);function Kn(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class Qn extends C.a.PureComponent{constructor(e){super(e),Kn(this,"textAreaRef",C.a.createRef()),Kn(this,"onHide",()=>{this.setState({copiedLink:!1}),this.props.onHide()}),Kn(this,"copyLink",()=>{const e=this.textAreaRef.current;if(e){e.focus(),e.setSelectionRange(0,this.props.link.length);try{this.setState({copiedLink:document.execCommand("copy")})}catch(e){this.setState({copiedLink:!1})}}}),this.state={copiedLink:!1}}render(){let e=null;this.props.helpText&&(e=C.a.createElement("p",null,this.props.helpText,C.a.createElement("br",null),C.a.createElement("br",null)));let t=null;document.queryCommandSupported("copy")&&(t=C.a.createElement("button",{id:"linkModalCopyLink","data-copy-btn":"true",type:"button",className:"btn btn-primary pull-left",onClick:this.copyLink},C.a.createElement(V.a,{id:"get_link.copy",defaultMessage:"Copy Link"})));const a=C.a.createElement("textarea",{id:"linkModalTextArea",className:"form-control no-resize min-height",ref:this.textAreaRef,value:this.props.link,onClick:this.copyLink,readOnly:!0});let n=null;return this.state.copiedLink&&(n=C.a.createElement("p",{className:"alert alert-success alert--confirm"},C.a.createElement(Yn.a,null),C.a.createElement(V.a,{id:"get_link.clipboard",defaultMessage:" Link copied"}))),C.a.createElement(G.a,{dialogClassName:"a11y__modal",show:this.props.show,onHide:this.onHide,role:"dialog","aria-labelledby":"getLinkModalLabel"},C.a.createElement(G.a.Header,{id:"getLinkModalLabel",closeButton:!0},C.a.createElement("h4",{className:"modal-title"},this.props.title)),C.a.createElement(G.a.Body,null,e,a),C.a.createElement(G.a.Footer,null,C.a.createElement("button",{id:"linkModalCloseButton",type:"button",className:"btn btn-link",onClick:this.onHide},C.a.createElement(V.a,{id:"get_link.close",defaultMessage:"Close"})),t,n))}}function Jn(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}Kn(Qn,"propTypes",{show:v.a.bool.isRequired,onHide:v.a.func.isRequired,title:v.a.string.isRequired,helpText:v.a.string,link:v.a.string.isRequired}),Kn(Qn,"defaultProps",{helpText:null});class Zn extends C.a.PureComponent{constructor(e){super(e),Jn(this,"handleToggle",(e,t)=>{const{post:a,post:{id:n}}=t,s=a&&n&&"string"==typeof n&&0!==n.length?n:"";this.setState({show:e,postId:s})}),Jn(this,"hide",()=>{this.setState({show:!1})}),this.state={show:!1}}componentDidMount(){zn.addModalListener(P.Q.ActionTypes.TOGGLE_GET_POST_LINK_MODAL,this.handleToggle)}componentWillUnmount(){zn.removeModalListener(P.Q.ActionTypes.TOGGLE_GET_POST_LINK_MODAL,this.handleToggle)}render(){const{postId:e,show:t}=this.state,{currentTeamUrl:a}=this.props;if(e&&"string"==typeof e&&0!==e.length){const n="".concat(a,"/pl/").concat(e);return C.a.createElement(Qn,{show:t,onHide:this.hide,title:I.gb("get_post_link_modal.title","Copy Permalink"),helpText:I.gb("get_post_link_modal.help","The link below allows authorized users to see your post."),link:n})}return null}}Jn(Zn,"propTypes",{currentTeamUrl:v.a.string.isRequired});var Xn=Object(n.connect)((function(e){const t=Object(u.getCurrentTeam)(e)||{};return{currentTeamUrl:"".concat(Object(Un.e)(),"/").concat(t.name)}}))(Zn),$n=a(1623),es=a(1313);function ts(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class as extends C.a.PureComponent{constructor(e){super(e),ts(this,"handleToggle",(e,t)=>{this.setState({show:e,fileId:t.fileId})}),ts(this,"onHide",()=>{this.setState({show:!1})}),this.state={show:!1,fileId:""}}componentWillUnmount(){zn.removeModalListener(P.Q.ActionTypes.TOGGLE_GET_PUBLIC_LINK_MODAL,this.handleToggle)}componentDidMount(){zn.addModalListener(P.Q.ActionTypes.TOGGLE_GET_PUBLIC_LINK_MODAL,this.handleToggle)}componentDidUpdate(e,t){this.state.show&&!t.show&&this.props.actions.getFilePublicLink(this.state.fileId)}render(){return C.a.createElement(Qn,{show:this.state.show,onHide:this.onHide,title:I.gb("get_public_link_modal.title","Copy Public Link"),helpText:I.gb("get_public_link_modal.help","The link below allows anyone to see this file without being registered on this server."),link:this.props.link})}}ts(as,"propTypes",{link:v.a.string,actions:v.a.shape({getFilePublicLink:v.a.func.isRequired}).isRequired}),ts(as,"defaultProps",{link:""});var ns=Object(n.connect)((function(e){return{link:es.getFilePublicLink(e).link}}),(function(e){return{actions:Object(s.bindActionCreators)({getFilePublicLink:$n.getFilePublicLink},e)}}))(as),ss=a(1121);function is(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class rs extends C.a.Component{constructor(e){super(e),is(this,"handleKeyPress",e=>{"Enter"===e.key&&this.state.show&&this.handleSubmit()}),is(this,"handleSubmit",()=>{const{actions:e}=this.props,{channel:t}=this.state;if(t){const a=t.id;e.leaveChannel(a).then(e=>{e.data&&this.handleHide()})}}),is(this,"handleToggle",e=>{this.setState({channel:e,show:null!==e})}),is(this,"handleHide",()=>{this.setState({show:!1})}),this.state={show:!1}}componentDidMount(){zn.addModalListener(P.Q.ActionTypes.TOGGLE_LEAVE_PRIVATE_CHANNEL_MODAL,this.handleToggle)}componentWillUnmount(){zn.removeModalListener(P.Q.ActionTypes.TOGGLE_LEAVE_PRIVATE_CHANNEL_MODAL,this.handleToggle)}render(){let e,t;this.state.channel&&this.state.channel.display_name&&(e=C.a.createElement(V.a,{id:"leave_private_channel_modal.title",defaultMessage:"Leave Private Channel {channel}",values:{channel:C.a.createElement("b",null,this.state.channel.display_name)}}),t=C.a.createElement(V.a,{id:"leave_private_channel_modal.message",defaultMessage:"Are you sure you wish to leave the private channel {channel}? You must be re-invited in order to re-join this channel in the future.",values:{channel:C.a.createElement("b",null,this.state.channel.display_name)}}));const a=C.a.createElement(V.a,{id:"leave_private_channel_modal.leave",defaultMessage:"Yes, leave channel"});return C.a.createElement(ss.a,{show:this.state.show,title:e,message:t,confirmButtonClass:"btn btn-danger",confirmButtonText:a,onConfirm:this.handleSubmit,onCancel:this.handleHide})}}is(rs,"propTypes",{actions:v.a.shape({leaveChannel:v.a.func.isRequired}).isRequired});var os=Object(n.connect)(null,(function(e){return{actions:Object(s.bindActionCreators)({leaveChannel:f.e},e)}}))(rs),ls=a(73),cs=a(176);function ds(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function ms(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?ds(a,!0).forEach((function(t){us(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):ds(a).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function us(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class ps extends C.a.PureComponent{constructor(e){super(e),us(this,"hideModal",()=>{this.setState({show:!1})}),us(this,"onConfirm",e=>{this.hideModal();const t=ms({},this.state.currentUserStatus);if(t.status=this.state.newStatus,this.props.actions.setStatus(t),e){const e={category:L.Preferences.CATEGORY_AUTO_RESET_MANUAL_STATUS,user_id:t.user_id,name:t.user_id,value:"true"};this.props.actions.savePreferences(e.user_id,[e])}}),us(this,"onCancel",e=>{if(this.hideModal(),e){const e=ms({},this.state.currentUserStatus),t={category:L.Preferences.CATEGORY_AUTO_RESET_MANUAL_STATUS,user_id:e.user_id,name:e.user_id,value:"false"};this.props.actions.savePreferences(t.user_id,[t])}}),us(this,"renderModalMessage",()=>this.props.currentUserStatus===P.O.OUT_OF_OFFICE?C.a.createElement(V.a,{id:"modal.manual_status.auto_responder.message_".concat(this.state.newStatus),defaultMessage:'Would you like to switch your status to "{status}" and disable Automatic Replies?',values:{status:Object(I.qb)(this.state.newStatus)}}):C.a.createElement(V.a,{id:"modal.manual_status.message_".concat(this.state.newStatus),defaultMessage:'Would you like to switch your status to "{status}"?',values:{status:Object(I.qb)(this.state.newStatus)}})),this.state={show:!1,currentUserStatus:{},newStatus:e.newStatus||"online"}}componentDidMount(){this.props.actions.autoResetStatus().then(e=>{const t=e.manual,a=""===this.props.autoResetPref;this.setState({currentUserStatus:e,show:Boolean(e.status===P.O.OUT_OF_OFFICE||t&&a)})})}render(){const e=this.state.currentUserStatus.status||"",t="modal.manual_status.title_"+e,a=C.a.createElement(V.a,{id:t,defaultMessage:'Your status is set to "{status}"',values:{status:Object(I.qb)(e)}}),n=this.renderModalMessage(),s=C.a.createElement(V.a,{id:"modal.manual_status.button_".concat(this.state.newStatus),defaultMessage:'Yes, set my status to "{status}"',values:{status:Object(I.qb)(this.state.newStatus)}}),i="modal.manual_status.cancel_"+e,r=C.a.createElement(V.a,{id:i,defaultMessage:'No, keep it as "{status}"',values:{status:Object(I.qb)(e)}}),o=C.a.createElement(V.a,{id:"modal.manual_status.ask",defaultMessage:"Do not ask me again"}),l=this.props.currentUserStatus!==P.O.OUT_OF_OFFICE;return C.a.createElement(ss.a,{show:this.state.show,title:a,message:n,confirmButtonText:s,onConfirm:this.onConfirm,cancelButtonText:r,onCancel:this.onCancel,onExited:this.props.onHide,showCheckbox:l,checkboxText:o})}}us(ps,"propTypes",{autoResetPref:v.a.string,currentUserStatus:v.a.string,newStatus:v.a.string,onHide:v.a.func,actions:v.a.shape({autoResetStatus:v.a.func.isRequired,setStatus:v.a.func.isRequired,savePreferences:v.a.func.isRequired}).isRequired}),Object(de.b)("modal.manual_status.auto_responder.message_"),Object(de.b)("modal.manual_status.auto_responder.message_away"),Object(de.b)("modal.manual_status.auto_responder.message_dnd"),Object(de.b)("modal.manual_status.auto_responder.message_offline"),Object(de.b)("modal.manual_status.auto_responder.message_online"),Object(de.b)("modal.manual_status.button_"),Object(de.b)("modal.manual_status.button_away"),Object(de.b)("modal.manual_status.button_dnd"),Object(de.b)("modal.manual_status.button_offline"),Object(de.b)("modal.manual_status.button_online"),Object(de.b)("modal.manual_status.cancel_"),Object(de.b)("modal.manual_status.cancel_away"),Object(de.b)("modal.manual_status.cancel_dnd"),Object(de.b)("modal.manual_status.cancel_offline"),Object(de.b)("modal.manual_status.cancel_ooo"),Object(de.b)("modal.manual_status.message_"),Object(de.b)("modal.manual_status.message_away"),Object(de.b)("modal.manual_status.message_dnd"),Object(de.b)("modal.manual_status.message_offline"),Object(de.b)("modal.manual_status.message_online"),Object(de.b)("modal.manual_status.title_"),Object(de.b)("modal.manual_status.title_away"),Object(de.b)("modal.manual_status.title_dnd"),Object(de.b)("modal.manual_status.title_offline"),Object(de.b)("modal.manual_status.title_ooo");var hs=Object(n.connect)((function(e){const{currentUserId:t}=e.entities.users;return{autoResetPref:Object(c.get)(e,L.Preferences.CATEGORY_AUTO_RESET_MANUAL_STATUS,t,""),currentUserStatus:Object(m.getStatusForUserId)(e,t)}}),(function(e){return{actions:Object(s.bindActionCreators)({autoResetStatus:cs.a,setStatus:r.setStatus,savePreferences:ls.savePreferences},e)}}))(ps),gs=a(1388);function bs(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const fs=Object(gs.defineMessages)({mainHeader:{default:{id:Object(de.b)("shortcuts.header"),defaultMessage:"Keyboard Shortcuts\tCtrl|/"},mac:{id:Object(de.b)("shortcuts.header.mac"),defaultMessage:"Keyboard Shortcuts\t⌘|/"}},navHeader:{id:Object(de.b)("shortcuts.nav.header"),defaultMessage:"Navigation"},navPrev:{default:{id:Object(de.b)("shortcuts.nav.prev"),defaultMessage:"Previous channel:\tAlt|Up"},mac:{id:Object(de.b)("shortcuts.nav.prev.mac"),defaultMessage:"Previous channel:\t⌥|Up"}},navNext:{default:{id:Object(de.b)("shortcuts.nav.next"),defaultMessage:"Next channel:\tAlt|Down"},mac:{id:Object(de.b)("shortcuts.nav.next.mac"),defaultMessage:"Next channel:\t⌥|Down"}},navUnreadPrev:{default:{id:Object(de.b)("shortcuts.nav.unread_prev"),defaultMessage:"Previous unread channel:\tAlt|Shift|Up"},mac:{id:Object(de.b)("shortcuts.nav.unread_prev.mac"),defaultMessage:"Previous unread channel:\t⌥|Shift|Up"}},navUnreadNext:{default:{id:Object(de.b)("shortcuts.nav.unread_next"),defaultMessage:"Next unread channel:\tAlt|Shift|Down"},mac:{id:Object(de.b)("shortcuts.nav.unread_next.mac"),defaultMessage:"Next unread channel:\t⌥|Shift|Down"}},navSwitcher:{default:{id:Object(de.b)("shortcuts.nav.switcher"),defaultMessage:"Quick channel switcher:\tCtrl|K"},mac:{id:Object(de.b)("shortcuts.nav.switcher.mac"),defaultMessage:"Quick channel switcher:\t⌘|K"}},navDMMenu:{default:{id:Object(de.b)("shortcuts.nav.direct_messages_menu"),defaultMessage:"Direct messages menu:\tCtrl|Shift|K"},mac:{id:Object(de.b)("shortcuts.nav.direct_messages_menu.mac"),defaultMessage:"Direct messages menu:\t⌘|Shift|K"}},navSettings:{default:{id:Object(de.b)("shortcuts.nav.settings"),defaultMessage:"Account settings:\tCtrl|Shift|A"},mac:{id:Object(de.b)("shortcuts.nav.settings.mac"),defaultMessage:"Account settings:\t⌘|Shift|A"}},navMentions:{default:{id:Object(de.b)("shortcuts.nav.recent_mentions"),defaultMessage:"Recent mentions:\tCtrl|Shift|M"},mac:{id:Object(de.b)("shortcuts.nav.recent_mentions.mac"),defaultMessage:"Recent mentions:\t⌘|Shift|M"}},navFocusCenter:{default:{id:Object(de.b)("shortcuts.nav.focus_center"),defaultMessage:"Set focus to input field:\tCtrl|Shift|L"},mac:{id:Object(de.b)("shortcuts.nav.focus_center.mac"),defaultMessage:"Set focus to input field:\t⌘|Shift|L"}},msgHeader:{id:Object(de.b)("shortcuts.msgs.header"),defaultMessage:"Messages"},msgInputHeader:{id:Object(de.b)("shortcuts.msgs.input.header"),defaultMessage:"Works inside an empty input field"},msgEdit:{id:Object(de.b)("shortcuts.msgs.edit"),defaultMessage:"Edit last message in channel:\tUp"},msgReply:{id:Object(de.b)("shortcuts.msgs.reply"),defaultMessage:"Reply to last message in channel:\tShift|Up"},msgReprintPrev:{default:{id:Object(de.b)("shortcuts.msgs.reprint_prev"),defaultMessage:"Reprint previous message:\tCtrl|Up"},mac:{id:Object(de.b)("shortcuts.msgs.reprint_prev.mac"),defaultMessage:"Reprint previous message:\t⌘|Up"}},msgReprintNext:{default:{id:Object(de.b)("shortcuts.msgs.reprint_next"),defaultMessage:"Reprint next message:\tCtrl|Down"},mac:{id:Object(de.b)("shortcuts.msgs.reprint_next.mac"),defaultMessage:"Reprint next message:\t⌘|Down"}},msgCompHeader:{id:Object(de.b)("shortcuts.msgs.comp.header"),defaultMessage:"Autocomplete"},msgCompUsername:{id:Object(de.b)("shortcuts.msgs.comp.username"),defaultMessage:"Username:\t@|[a-z]|Tab"},msgCompChannel:{id:Object(de.b)("shortcuts.msgs.comp.channel"),defaultMessage:"Channel:\t~|[a-z]|Tab"},msgCompEmoji:{id:Object(de.b)("shortcuts.msgs.comp.emoji"),defaultMessage:"Emoji:\t:|[a-z]|Tab"},filesHeader:{id:Object(de.b)("shortcuts.files.header"),defaultMessage:"Files"},filesUpload:{default:{id:Object(de.b)("shortcuts.files.upload"),defaultMessage:"Upload files:\tCtrl|U"},mac:{id:Object(de.b)("shortcuts.files.upload.mac"),defaultMessage:"Upload files:\t⌘|U"}},browserHeader:{id:Object(de.b)("shortcuts.browser.header"),defaultMessage:"Built-in Browser Commands"},browserChannelPrev:{default:{id:Object(de.b)("shortcuts.browser.channel_prev"),defaultMessage:"Back in history:\tAlt|Left"},mac:{id:Object(de.b)("shortcuts.browser.channel_prev.mac"),defaultMessage:"Back in history:\t⌘|["}},browserChannelNext:{default:{id:Object(de.b)("shortcuts.browser.channel_next"),defaultMessage:"Forward in history:\tAlt|Right"},mac:{id:Object(de.b)("shortcuts.browser.channel_next.mac"),defaultMessage:"Forward in history:\t⌘|]"}},browserFontIncrease:{default:{id:Object(de.b)("shortcuts.browser.font_increase"),defaultMessage:"Zoom in:\tCtrl|+"},mac:{id:Object(de.b)("shortcuts.browser.font_increase.mac"),defaultMessage:"Zoom in:\t⌘|+"}},browserFontDecrease:{default:{id:Object(de.b)("shortcuts.browser.font_decrease"),defaultMessage:"Zoom out:\tCtrl|-"},mac:{id:Object(de.b)("shortcuts.browser.font_decrease.mac"),defaultMessage:"Zoom out:\t⌘|-"}},browserInputHeader:{id:Object(de.b)("shortcuts.browser.input.header"),defaultMessage:"Works inside an input field"},browserHighlightPrev:{id:Object(de.b)("shortcuts.browser.highlight_prev"),defaultMessage:"Highlight text to the previous line:\tShift|Up"},browserHighlightNext:{id:Object(de.b)("shortcuts.browser.highlight_next"),defaultMessage:"Highlight text to the next line:\tShift|Down"},browserNewline:{id:Object(de.b)("shortcuts.browser.newline"),defaultMessage:"Create a new line:\tShift|Enter"},info:{id:Object(de.b)("shortcuts.info"),defaultMessage:"Begin a message with / for a list of all the commands at your disposal."}});class _s extends C.a.PureComponent{constructor(e){super(e),bs(this,"handleToggle",()=>{this.setState({show:!this.state.show})}),bs(this,"handleHide",()=>{this.setState({show:!1})}),this.state={show:!1}}componentDidMount(){zn.addModalListener(P.Q.ActionTypes.TOGGLE_SHORTCUTS_MODAL,this.handleToggle)}componentWillUnmount(){zn.removeModalListener(P.Q.ActionTypes.TOGGLE_SHORTCUTS_MODAL,this.handleToggle)}getShortcuts(){const{isMac:e}=this.props,t={};return Object.keys(fs).forEach(a=>{e&&fs[a].mac?t[a]=fs[a].mac:!e&&fs[a].default?t[a]=fs[a].default:t[a]=fs[a]}),t}render(){const e=this.getShortcuts(),{formatMessage:t}=this.props.intl;return C.a.createElement(G.a,{dialogClassName:"a11y__modal shortcuts-modal",show:this.state.show,onHide:this.handleHide,onExited:this.handleHide,role:"dialog","aria-labelledby":"shortcutsModalLabel"},C.a.createElement("div",{className:"shortcuts-content"},C.a.createElement(G.a.Header,{closeButton:!0},C.a.createElement(G.a.Title,{componentClass:"h1",id:"shortcutsModalLabel"},C.a.createElement("strong",null,Es(t(e.mainHeader))))),C.a.createElement(G.a.Body,null,C.a.createElement("div",{className:"row"},C.a.createElement("div",{className:"col-sm-4"},C.a.createElement("div",{className:"section"},C.a.createElement("div",null,C.a.createElement("h4",{className:"section-title"},C.a.createElement("strong",null,t(e.navHeader))),Es(t(e.navPrev)),Es(t(e.navNext)),Es(t(e.navUnreadPrev)),Es(t(e.navUnreadNext)),Es(t(e.navSwitcher)),Es(t(e.navDMMenu)),Es(t(e.navSettings)),Es(t(e.navMentions)),Es(t(e.navFocusCenter))))),C.a.createElement("div",{className:"col-sm-4"},C.a.createElement("div",{className:"section"},C.a.createElement("div",null,C.a.createElement("h4",{className:"section-title"},C.a.createElement("strong",null,t(e.msgHeader))),C.a.createElement("span",null,C.a.createElement("strong",null,t(e.msgInputHeader))),C.a.createElement("div",{className:"subsection"},Es(t(e.msgEdit)),Es(t(e.msgReply)),Es(t(e.msgReprintPrev)),Es(t(e.msgReprintNext))),C.a.createElement("span",null,C.a.createElement("strong",null,t(e.msgCompHeader))),C.a.createElement("div",{className:"subsection"},Es(t(e.msgCompUsername)),Es(t(e.msgCompChannel)),Es(t(e.msgCompEmoji)))))),C.a.createElement("div",{className:"col-sm-4"},C.a.createElement("div",{className:"section"},C.a.createElement("div",null,C.a.createElement("h4",{className:"section-title"},C.a.createElement("strong",null,t(e.filesHeader))),Es(t(e.filesUpload))),C.a.createElement("div",{className:"section--lower"},C.a.createElement("h4",{className:"section-title"},C.a.createElement("strong",null,t(e.browserHeader))),Es(t(e.browserChannelPrev)),Es(t(e.browserChannelNext)),Es(t(e.browserFontIncrease)),Es(t(e.browserFontDecrease)),C.a.createElement("span",null,C.a.createElement("strong",null,t(e.browserInputHeader))),C.a.createElement("div",{className:"subsection"},Es(t(e.browserHighlightPrev)),Es(t(e.browserHighlightNext)),Es(t(e.browserNewline))))))),C.a.createElement("div",{className:"info__label"},t(e.info)))))}}function Es(e){if(!e)return null;const t=e.split("\t"),a=C.a.createElement("span",null,t[0]);let n=null;return t.length>1&&(n=t[1].split("|").map(e=>C.a.createElement("span",{className:"shortcut-key",key:e},e))),C.a.createElement("div",{className:"shortcut-line"},a,n)}bs(_s,"propTypes",{intl:Y.a.isRequired,isMac:v.a.bool.isRequired});var vs=Object(W.c)(_s),ys=a(174),Cs=a(39),ws=a(1110),Os=a.n(ws),Ts=a(1624),Ss=a.n(Ts),Ps=a(1625),Ms=a.n(Ps);const Is=e=>{let t="file-overlay hidden";return"right"===e.overlayType?t+=" right-file-overlay":"center"===e.overlayType&&(t+=" center-file-overlay"),C.a.createElement("div",{className:t},C.a.createElement("div",{className:"overlay__indent"},C.a.createElement("div",{className:"overlay__circle"},C.a.createElement("img",{className:"overlay__files",src:Ss.a,alt:"Files"}),C.a.createElement("span",null,C.a.createElement(V.a,{id:"generic_icons.upload",defaultMessage:"Upload Icon"},e=>C.a.createElement("i",{className:"fa fa-upload",title:e})),C.a.createElement(V.a,{id:"upload_overlay.info",defaultMessage:"Drop a file to upload it."})),C.a.createElement("img",{className:"overlay__logo",src:Ms.a,width:"100",alt:"Logo"}))))};Is.propTypes={overlayType:v.a.string.isRequired};var Ns=Is,js=a(1351),As=a(96),Rs=a.n(As),ks=a(1202),Ls=a.n(ks);function Ds(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class xs{constructor(e){Ds(this,"action",void 0),Ds(this,"timer",void 0),this.action=e,this.timer=-1,this.fire=this.fire.bind(this)}fire(){this.action(),this.timer=-1}fireAfter(e){this.timer>=0&&window.clearTimeout(this.timer),this.timer=window.setTimeout(this.fire,e)}cancel(){window.clearTimeout(this.timer)}}function Us(e){return e.views.system.websocketConnectionErrorCount}var qs=a(175),Hs=a(21),Fs=a(143),Bs=a(35),Gs=a(5),Vs=a(1271);function Ws(e,t){return async(a,n)=>{const s=n();let i=e,r=i.indexOf(" ");r<0&&(r=i.length);const l=i.substring(0,r).toLowerCase();switch(i=l+" "+i.substring(r,i.length).trim(),l){case"/search":return a(U.j(i.substring(r+1,i.length))),{data:!0};case"/shortcuts":if(M.n()){return{error:{message:Object(I.gb)("create_post.shortcutsNotSupported","Keyboard shortcuts are not supported on your device")}}}return S.n(),{data:!0};case"/leave":{if(t.channel_id&&(t.root_id||t.parent_id))return S.h("/leave is not supported in reply threads. Use it in the center channel instead.",t.channel_id,t.parent_id),{data:!0};const e=Object(p.getCurrentChannel)(s);if(e.type===P.j.PRIVATE_CHANNEL)return S.l(e),{data:!0};if(e.type===P.j.DM_CHANNEL||e.type===P.j.GM_CHANNEL){let t,n;e.type===P.j.DM_CHANNEL?(t=Object(I.I)(e),n=P.j.Preferences.CATEGORY_DIRECT_CHANNEL_SHOW):(t=e.id,n=P.j.Preferences.CATEGORY_GROUP_CHANNEL_SHOW);const i=Object(m.getCurrentUserId)(s),r=Object(u.getCurrentTeamId)(s),l=Object(p.getRedirectChannelNameForTeam)(s,r),c=Object(u.getCurrentRelativeTeamUrl)(s);return K.a.push("".concat(c,"/channels/").concat(l)),a(Object(ls.savePreferences)(i,[{category:n,name:t,user_id:i,value:"false"}])),Object(un.isFavoriteChannel)(e)&&a(Object(o.unfavoriteChannel)(e.id)),{data:!0}}break}case"/settings":return a(Object(x.b)({modalId:P.u.USER_SETTINGS,dialogType:Vs.a})),{data:!0};case"/collapse":case"/expand":a(U.i())}let c;try{c=await bn.Client4.executeCommand(i,t)}catch(e){return{error:e}}const d=c.goto_location&&Object(Un.f)(c.goto_location);return"/logout"===i.trim()?(S.e(d?c.goto_location:"/"),{data:!0}):(c.trigger_id&&a({type:Gs.IntegrationTypes.RECEIVED_DIALOG_TRIGGER_ID,data:c.trigger_id}),d&&(c.goto_location.startsWith("/")?K.a.push(c.goto_location):c.goto_location.startsWith(Object(Un.e)())?K.a.push(c.goto_location.substr(Object(Un.e)().length)):window.open(c.goto_location)),{data:!0})}}function zs(e){return async(t,a)=>{const n=a().plugins.components.MessageWillBePosted;if(!n||0===n.length)return{data:e};let s=e;for(const e of n){const t=await e.hook(s);if(t){if(t.error)return{error:t.error};s=t.post}}return{data:s}}}function Ys(e,t){return async(a,n)=>{const s=n().plugins.components.SlashCommandWillBePosted;if(!s||0===s.length)return{data:{message:e,args:t}};let i=e,r=t;for(const e of s){const t=await e.hook(i,r);if(t){if(t.error)return{error:t.error};i=t.message,r=t.args}}return{data:{message:i,args:r}}}}var Ks=a(80),Qs=a(539);function Js(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function Zs(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?Js(a,!0).forEach((function(t){Xs(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):Js(a).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function Xs(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function $s(){return Object(Ks.a)(P.I.COMMENT_DRAFT,(e,t)=>t?Zs({},t,{uploadsInProgress:[]}):t)}function ei(e,t){return Object(Ks.e)("".concat(P.I.COMMENT_DRAFT).concat(e),t)}function ti(e,t){const a=Object(qa.makeGetMessageInHistoryItem)(L.Posts.MESSAGE_TYPES.COMMENT);return()=>(n,s)=>{const i=Object(Cs.i)(s(),P.I.COMMENT_DRAFT,e);if(""!==i.message&&i.message!==a(s()))return;-1===t?n(Object(k.moveHistoryIndexBack)(L.Posts.MESSAGE_TYPES.COMMENT)):1===t&&n(Object(k.moveHistoryIndexForward)(L.Posts.MESSAGE_TYPES.COMMENT));const r=a(s());n(ei(e,Zs({},i,{message:r})))}}function ai(e,t,a){return async(n,s)=>{const i=s(),r=Object(m.getCurrentUserId)(i),o=I.G();let l={file_ids:[],message:a.message,channel_id:e,root_id:t,parent_id:t,pending_post_id:"".concat(r,":").concat(o),user_id:r,create_at:o,metadata:{},props:{}};const c=await n(zs(l));return c.error?{error:c.error}:(l=c.data,n(U.b(l,a.fileInfos)))}}function ni(e,t,a){return(n={})=>async(s,i)=>{const r=Object(Cs.i)(i(),P.I.COMMENT_DRAFT,t),{message:o}=r;s(Object(k.addMessageIntoHistory)(o)),s(ei(t,null));const l=I.a.exec(o),c=Object(Fs.getCustomEmojisByName)(i()),d=new Qs.a(c);l&&d.has(l[2])?s(function(e,t,a){return n=>{"+"===t?n(U.a(e,a)):"-"===t&&n(Object(k.removeReaction)(e,a))}}(a,l[1],l[2])):0!==o.indexOf("/")||n.ignoreSlash?s(ai(e,t,r)):await s(function(e,t,a){return async(n,s)=>{const i=s(),r=Object(u.getCurrentTeamId)(i);let o={channel_id:e,team_id:r,root_id:t,parent_id:t},{message:l}=a;const c=await n(Ys(l,o));if(c.error)return{error:c.error};if(!c.data.message&&!c.data.args)return{};l=c.data.message,o=c.data.args;const{error:d}=await n(Ws(l,o));if(d){if(d.sendMessage)return n(ai(e,t,a));throw d}return{}}}(e,t,r))}}function si(e,t){const a=function(e,t){return Object(Hs.createSelector)(m.getCurrentUserId,t=>Object(qa.getPostIdsInChannel)(t,e),e=>t=>Object(qa.getPost)(e,t),(e,a,n)=>{let s=null;if(!a)return s;for(const i of a){const a=n(i)||{};if(!(a.user_id!==e||a.props&&a.props.from_webhook||a.state===P.j.POST_DELETED||a.type&&a.type.startsWith(P.j.SYSTEM_MESSAGE_PREFIX)||Object(Bs.isPostPendingOrFailed)(a))){if(!t){s=a;break}if(a.root_id===t||a.id===t){s=a;break}}}return s})}(e,t),n=Object(qa.makeGetCommentCountForPost)();return()=>(e,t)=>{const s=t(),i=a(s);return i?e(U.k(i.id,n(s,{post:i}),"reply_textbox",I.gb("create_comment.commentTitle","Comment"),!0)):{data:!1}}}var ii=a(1155);function ri(e){if(-1===Array.from(e.types).indexOf("text/html"))return!1;const t=e.getData("text/html");if(!/<table/i.test(t))return!1;const a=function(e){const t=document.createElement("div");return t.innerHTML=e,t.querySelector("table")}(t);return a||!1}function oi(e){if(-1===Array.from(e.types).indexOf("text/plain"))return!1;return e.getData("text/plain")}function li(e){return/\b(js|blob|diff)-./.test(e)}function ci(e){return null==e.textContent?" ":e.textContent.trim().replace(/\|/g,"\\|").replace(/\n/g," ")}function di(e,t){const a=Array.from(e.querySelectorAll("tr")),n=a.shift(),s=n?(i=n,Array.from(i.querySelectorAll("td, th")).map(ci)):[];var i;const r=s.map(()=>"---"),o="|".concat(s.join(" | "),"|\n|").concat(r.join(" | "),"|\n"),l=a.map(e=>"|".concat(Array.from(e.querySelectorAll("td")).map(ci).join(" | "),"|")).join("\n"),c="".concat(o).concat(l,"\n");return t?"".concat(t,"\n\n").concat(c):c}var mi=a(1390),ui=a(1117);class pi extends C.a.PureComponent{render(){return C.a.createElement("span",this.props,C.a.createElement(V.a,{id:"generic_icons.attach",defaultMessage:"Attachment Icon"},e=>C.a.createElement("svg",{width:"18px",height:"18px",viewBox:"0 0 18 15",role:"img","aria-label":e},C.a.createElement("g",{fill:"inherit",fillRule:"evenodd"},C.a.createElement("g",{transform:"translate(-1029.000000, -954.000000)",fillRule:"nonzero",fill:"inherit"},C.a.createElement("g",{transform:"translate(25.000000, 937.000000)"},C.a.createElement("g",{transform:"translate(1004.000000, 17.000000)"},C.a.createElement("path",{d:"M5.35,15.56 C3.98,15.56 2.61,15.039 1.567,13.997 C0.557,12.984 0,11.642 0,10.212 C0,8.783 0.557,7.44 1.566,6.429 L6.869,1.126 C8.371,-0.376 10.812,-0.375 12.314,1.125 C13.815,2.627 13.815,5.069 12.314,6.57 L7.011,11.873 C6.094,12.792 4.603,12.79 3.687,11.873 C2.771,10.958 2.771,9.467 3.687,8.551 L8.99,3.248 C9.323,2.916 9.861,2.916 10.193,3.248 C10.525,3.579 10.525,4.118 10.193,4.449 L4.89,9.752 C4.637,10.006 4.637,10.418 4.89,10.672 C5.143,10.923 5.555,10.925 5.809,10.672 L11.113,5.369 C11.952,4.53 11.952,3.166 11.113,2.327 C10.276,1.49 8.911,1.488 8.073,2.327 L2.769,7.631 C2.079,8.32 1.699,9.237 1.699,10.212 C1.699,11.188 2.079,12.104 2.768,12.794 C4.19,14.216 6.502,14.216 7.925,12.798 L7.929,12.794 C7.929,12.793 7.929,12.793 7.929,12.793 L15.355,5.369 C15.687,5.037 16.224,5.037 16.556,5.369 C16.888,5.7 16.888,6.239 16.556,6.57 L8.779,14.348 L8.761,14.332 C7.776,15.15 6.562,15.56 5.35,15.56 Z"}))))))))}}var hi=a(1166);class gi extends C.a.PureComponent{render(){const{canDownload:e,children:t,compactDisplay:a,fileInfo:n,handleImageClick:s,iconClass:i}=this.props,r=n.name,o=Object(hi.f)(r);let l;return l=a?C.a.createElement(ui.a,{delayShow:1e3,placement:"top",overlay:C.a.createElement(mi.a,{id:"file-name__tooltip"},r)},C.a.createElement("a",{id:"file-attachment-link",href:"#",onClick:s,className:"post-image__name",rel:"noopener noreferrer"},C.a.createElement(pi,{className:"icon"}),o)):e?C.a.createElement("div",{className:i||"post-image__name"},C.a.createElement("a",{href:Object(ii.getFileDownloadUrl)(n.id),"aria-label":Object(I.gb)("view_image_popover.download","Download").toLowerCase(),download:r,target:"_blank",rel:"noopener noreferrer"},C.a.createElement(ui.a,{delayShow:1e3,placement:"top",overlay:C.a.createElement(mi.a,{id:"file-name__tooltip"},Object(I.gb)("view_image_popover.download","Download").toLowerCase())},t||o))):C.a.createElement("span",{className:"post-image__name"},o)}}!function(e,t,a){t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a}(gi,"propTypes",{fileInfo:v.a.object.isRequired,handleImageClick:v.a.func,compactDisplay:v.a.bool,canDownload:v.a.bool,children:v.a.element,iconClass:v.a.string});class bi extends C.a.PureComponent{render(){return C.a.createElement(V.a,{id:"generic_icons.remove",defaultMessage:"Remove Icon"},e=>C.a.createElement("i",{className:"fa fa-remove",title:e}))}}a(1640);var fi=a(1396);function _i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class Ei extends C.a.PureComponent{constructor(...e){super(...e),_i(this,"handleRemove",()=>{this.props.handleRemove(this.props.clientId)})}render(){let e,t,a,n=0;const{fileInfo:s,clientId:i}=this.props;if(s){const r=(n=s.percent)&&" (".concat(n.toFixed(0),"%)"),o=Object(hi.d)(s.type);t=C.a.createElement("div",{className:"file-icon "+I.A(o)}),e=C.a.createElement(C.a.Fragment,null,C.a.createElement(gi,{fileInfo:s,index:i,handleImageClick:null,compactDisplay:!1,canDownload:!1}),C.a.createElement("span",{className:"post-image__uploadingTxt"},100===n?C.a.createElement(V.a,{id:"create_post.fileProcessing",defaultMessage:"Processing..."}):C.a.createElement(C.a.Fragment,null,C.a.createElement(V.a,{id:"admin.plugin.uploading",defaultMessage:"Uploading..."}),C.a.createElement("span",null,r)))),n&&(a=C.a.createElement(fi.a,{className:"post-image__progressBar",now:n,active:100===n}))}return C.a.createElement("div",{ref:i,key:i,className:"file-preview post-image__column","data-client-id":i},C.a.createElement("div",{className:"post-image__thumbnail"},t),C.a.createElement("div",{className:"post-image__details"},C.a.createElement("div",{className:"post-image__detail_wrapper"},C.a.createElement("div",{className:"post-image__detail"},e)),C.a.createElement("div",null,C.a.createElement("a",{className:"file-preview__remove",onClick:this.handleRemove},C.a.createElement(bi,null))),a))}}function vi(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}_i(Ei,"propTypes",{handleRemove:v.a.func.isRequired,clientId:v.a.string.isRequired,fileInfo:v.a.object});class yi extends C.a.PureComponent{constructor(...e){super(...e),vi(this,"handleRemove",e=>{this.props.onRemove(e)})}render(){const e=[];return this.props.fileInfos.forEach((t,a)=>{const n=I.y(t.extension);let s,i="file-preview post-image__column";if(n===P.n.SVG&&this.props.enableSVGs)s=C.a.createElement("img",{alt:"file preview",className:"post-image normal",src:Object(ii.getFileUrl)(t.id)});else if(n===P.n.IMAGE){let e="post-image";t.width<P.Q.THUMBNAIL_WIDTH&&t.height<P.Q.THUMBNAIL_HEIGHT?e+=" small":e+=" normal";let a=Object(ii.getFileThumbnailUrl)(t.id);I.U(t.extension)&&!t.has_preview_image&&(a=Object(ii.getFileUrl)(t.id)),s=C.a.createElement("div",{className:e,style:{backgroundImage:"url(".concat(a,")"),backgroundSize:"cover"}})}else i+=" custom-file",s=C.a.createElement("div",{className:"file-icon "+I.A(n)});e.push(C.a.createElement("div",{key:t.id,className:i},C.a.createElement("div",{className:"post-image__thumbnail"},s),C.a.createElement("div",{className:"post-image__details"},C.a.createElement("div",{className:"post-image__detail_wrapper"},C.a.createElement("div",{className:"post-image__detail"},C.a.createElement(gi,{fileInfo:t,index:a,handleImageClick:null,compactDisplay:!1,canDownload:!1}),C.a.createElement("span",{className:"post-image__type"},t.extension.toUpperCase()),C.a.createElement("span",{className:"post-image__size"},I.m(t.size)))),C.a.createElement("div",null,C.a.createElement("a",{className:"file-preview__remove",onClick:this.handleRemove.bind(this,t.id)},C.a.createElement(bi,null))))))}),this.props.uploadsInProgress.forEach(t=>{e.push(C.a.createElement(Ei,{key:t,clientId:t,fileInfo:this.props.uploadsProgressPercent[t],handleRemove:this.handleRemove}))}),C.a.createElement("div",{className:"file-preview__container",ref:"container"},e)}}vi(yi,"propTypes",{enableSVGs:v.a.bool.isRequired,onRemove:v.a.func.isRequired,fileInfos:v.a.arrayOf(v.a.object).isRequired,uploadsInProgress:v.a.array,uploadsProgressPercent:v.a.object}),vi(yi,"defaultProps",{fileInfos:[],uploadsInProgress:[],uploadsProgressPercent:{}});var Ci=Object(n.connect)((function(e){return{enableSVGs:"true"===Object(d.getConfig)(e).EnableSVGs}}))(yi),wi=a(81),Oi=a(1405),Ti=a.n(Oi),Si=a(62);function Pi(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function Mi(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function Ii(e,t,a,n,s){return n=>(n({type:Gs.FileTypes.UPLOAD_FILES_REQUEST}),Ti.a.post(bn.Client4.getFilesRoute()).set(bn.Client4.getOptions({method:"post"}).headers).attach("files",e,t).field("channel_id",a).field("client_ids",s).accept("application/json"))}function Ni(e,t,a,n,s,{err:i,res:r}){return(e,t)=>{if(i){let o;o=r&&r.body&&r.body.id?r.body:0!==i.status&&i.status?{message:I.gb("channel_loader.unknown_error","We received an unexpected status code from the server.")+" ("+i.status+")"}:{message:I.gb("file_upload.generic_error","There was a problem uploading your files.")},Object(Si.forceLogoutIfNecessary)(i,e,t);const l={type:Gs.FileTypes.UPLOAD_FILES_FAILURE,clientIds:[s],channelId:a,rootId:n,error:i};return e(Object(wi.batchActions)([l,Object(q.getLogErrorAction)(i)])),{error:o}}const o=r.body.file_infos.map((e,t)=>(function(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?Pi(a,!0).forEach((function(t){Mi(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):Pi(a).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e})({},e,{clientId:r.body.client_ids[t]}));return e(Object(wi.batchActions)([{type:Gs.FileTypes.RECEIVED_UPLOAD_FILES,data:o,channelId:a,rootId:n},{type:Gs.FileTypes.UPLOAD_FILES_SUCCESS}])),{data:r.body}}}var ji=a(310),Ai=a.n(ji);var Ri=a(1133),ki=a(1126);function Li(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function Di(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?Li(a,!0).forEach((function(t){xi(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):Li(a).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function xi(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const Ui=Object(gs.defineMessages)({limited:{id:Object(de.b)("file_upload.limited"),defaultMessage:"Uploads limited to {count, number} files maximum. Please use additional posts for more files."},filesAbove:{id:Object(de.b)("file_upload.filesAbove"),defaultMessage:"Files above {max}MB could not be uploaded: {filenames}"},fileAbove:{id:Object(de.b)("file_upload.fileAbove"),defaultMessage:"File above {max}MB could not be uploaded: {filename}"},zeroBytesFiles:{id:Object(de.b)("file_upload.zeroBytesFiles"),defaultMessage:"You are uploading empty files: {filenames}"},zeroBytesFile:{id:Object(de.b)("file_upload.zeroBytesFile"),defaultMessage:"You are uploading an empty file: {filename}"},pasted:{id:Object(de.b)("file_upload.pasted"),defaultMessage:"Image Pasted at "},uploadFile:{id:Object(de.b)("file_upload.upload_files"),defaultMessage:"Upload files"}}),qi=500,Hi={left:"inherit",right:0,bottom:"100%",top:"auto"};class Fi extends y.PureComponent{constructor(e){super(e),xi(this,"fileUploadSuccess",(e,t,a)=>{if(e){this.props.onFileUpload(e.file_infos,e.client_ids,t,a);const s=Object.assign({},this.state.requests);for(var n=0;n<e.client_ids.length;n++)Reflect.deleteProperty(s,e.client_ids[n]);this.setState({requests:s})}}),xi(this,"fileUploadFail",(e,t,a,n)=>{this.props.onUploadError(e,t,a,n)}),xi(this,"pluginUploadFiles",e=>{this.props.onUploadError(null),this.uploadFiles(e)}),xi(this,"checkPluginHooksAndUploadFiles",e=>{this.props.onUploadError(null);let t=Array.from(e).sort((e,t)=>e.name.localeCompare(t.name,this.props.locale,{numeric:!0}));const a=this.props.pluginFilesWillUploadHooks;for(const e of a){const a=e.hook(t,this.pluginUploadFiles);a.message&&this.props.onUploadError(a.message),t=a.files}t&&this.uploadFiles(t)}),xi(this,"uploadFiles",e=>{const{currentChannelId:t,rootId:a}=this.props,n=P.Q.MAX_UPLOAD_FILES-this.props.fileCount;let s=0;const i=[],r=[],o=[];for(let l=0;l<e.length&&s<n;l++){if(e[l].size>this.props.maxFileSize){i.push(e[l]);continue}0===e[l].size&&r.push(e[l]);const n=Object(I.o)(),c=this.props.actions.uploadFile(e[l],e[l].name,t,a,n);c.on("progress",t=>{this.props.onUploadProgress({clientId:n,name:e[l].name,percent:t.percent,type:e[l].type})}),c.end((s,i)=>{const{error:r,data:o}=this.props.actions.handleFileUploadEnd(e[l],e[l].name,t,a,n,{err:s,res:i});r?this.fileUploadFail(r,n,t,a):o&&this.fileUploadSuccess(o,t,a)}),this.setState({requests:Di({},this.state.requests,{[n]:c})}),o.push(n),s+=1}this.props.onUploadStart(o,t);const{formatMessage:l}=this.props.intl,c=[];if(e.length>n&&c.push(l(Ui.limited,{count:P.Q.MAX_UPLOAD_FILES})),i.length>1){var d=i.map(e=>e.name).join(", ");c.push(l(Ui.filesAbove,{max:this.props.maxFileSize/1048576,filenames:d}))}else i.length>0&&c.push(l(Ui.fileAbove,{max:this.props.maxFileSize/1048576,filename:i[0].name}));if(r.length>1){var m=r.map(e=>e.name).join(", ");c.push(l(Ui.zeroBytesFiles,{filenames:m}))}else r.length>0&&c.push(l(Ui.zeroBytesFile,{filename:r[0].name}));c.length>0&&this.props.onUploadError(c.join(", "))}),xi(this,"handleChange",e=>{e.target.files.length>0&&(this.checkPluginHooksAndUploadFiles(e.target.files),Object(I.d)(e.target)),this.props.onFileUploadChange()}),xi(this,"handleDrop",e=>{if(!this.props.canUploadFiles)return void this.props.onUploadError(Object(I.gb)("file_upload.disabled","File attachments are disabled."));this.props.onUploadError(null);const t=e.dataTransfer.items||[],a=e.dataTransfer.files,n=[];Array.from(a).forEach((e,a)=>{const s=t[a];s&&s.webkitGetAsEntry&&(null===s.webkitGetAsEntry()||s.webkitGetAsEntry().isDirectory)||n.push(e)});const s=e.dataTransfer.types;if(s){if(Object(I.bb)(e.dataTransfer))return;if(s.includes&&!s.includes("Files"))return;if(s.contains&&!s.contains("Files"))return}0!==n.length?(n.length&&this.checkPluginHooksAndUploadFiles(n),this.props.onFileUploadChange()):this.props.onUploadError(Object(I.gb)("file_upload.drag_folder","Folders cannot be uploaded. Please drag all files separately."))}),xi(this,"registerDragEvents",(e,t)=>{const a=this,n=document.querySelector(t),s=new xs(()=>{n.classList.add("hidden")});let i={};i=this.props.canUploadFiles?{enter(e){var t=e.detail.dataTransfer;!Object(I.bb)(t)&&Object(I.T)(t)&&n.classList.remove("hidden")},leave(e){var t=e.detail.dataTransfer;!Object(I.bb)(t)&&Object(I.T)(t)&&n.classList.add("hidden"),s.cancel()},over(){s.fireAfter(qi)},drop(e){n.classList.add("hidden"),s.cancel(),a.handleDrop(e.detail)}}:{drop(e){a.handleDrop(e.detail)}},this.unbindDragsterEvents=function(e,t){const a=()=>{},n={enter:a,leave:a,over:a,drop:a},s=Object.assign(n,t),i=document.querySelector(e);if(!i)return a;let r=!1,o=!1;const l=e=>{if(r)return void(o=!0);r=!0;const t=new CustomEvent("dragster:enter",{detail:e});i.dispatchEvent(t),e.preventDefault()},c=e=>{if(o?o=!1:r&&(r=!1),!r&&!o){const t=new CustomEvent("dragster:leave",{detail:e});i.dispatchEvent(t)}e.preventDefault()},d=e=>{const t=new CustomEvent("dragster:over",{detail:e});i.dispatchEvent(t),e.preventDefault()},m=e=>{if(o?o=!1:r&&(r=!1),!r&&!o){const t=new CustomEvent("dragster:drop",{detail:e});i.dispatchEvent(t)}e.preventDefault()};return i.addEventListener("dragenter",l),i.addEventListener("dragleave",c),i.addEventListener("dragover",d),i.addEventListener("drop",m),i.addEventListener("dragster:enter",s.enter),i.addEventListener("dragster:leave",s.leave),i.addEventListener("dragster:over",s.over),i.addEventListener("dragster:drop",s.drop),()=>{i.removeEventListener("dragenter",l),i.removeEventListener("dragleave",c),i.removeEventListener("dragover",d),i.removeEventListener("drop",m),i.removeEventListener("dragster:enter",s.enter),i.removeEventListener("dragster:leave",s.leave),i.removeEventListener("dragster:over",s.over),i.removeEventListener("dragster:drop",s.drop)}}(e,i)}),xi(this,"containsEventTarget",(e,t)=>e&&e.contains(t)),xi(this,"pasteUpload",e=>{const{formatMessage:t}=this.props.intl;if(!e.clipboardData||!e.clipboardData.items||ri(e.clipboardData))return;const a=this.props.getTarget(),n=Ai.a.findDOMNode(a);if(!this.containsEventTarget(n,e.target))return;this.props.onUploadError(null);const s=[];for(let t=0;t<e.clipboardData.items.length;t++){const a=e.clipboardData.items[t];"file"===a.kind&&s.push(a)}if(s&&s.length>0){if(!this.props.canUploadFiles)return void this.props.onUploadError(Object(I.gb)("file_upload.disabled","File attachments are disabled."));const e=[];for(let a=0;a<s.length;a++){const n=s[a].getAsFile();if(!n)continue;var i=new Date;let o=i.getHours();o=o<10?"0".concat(o):"".concat(o);let l=i.getMinutes();l=l<10?"0".concat(l):"".concat(l);var r="";n.name?n.name.includes(".")&&(r=n.name.substr(n.name.lastIndexOf("."))):s[a].type.includes("/")&&(r="."+s[a].type.split("/")[1].toLowerCase());const c=t(Ui.pasted)+i.getFullYear()+"-"+(i.getMonth()+1)+"-"+i.getDate()+" "+o+"-"+l+r,d=new Blob([n],{type:n.type});d.name=c,e.push(d)}e.length>0&&(this.checkPluginHooksAndUploadFiles(e),this.props.onFileUploadChange())}}),xi(this,"keyUpload",e=>{if(Object(I.e)(e)&&Object(I.W)(e,P.Q.KeyCodes.U)){if(e.preventDefault(),!this.props.canUploadFiles)return void this.props.onUploadError(Object(I.gb)("file_upload.disabled","File attachments are disabled."));const t="post"===this.props.postType&&"post_textbox"===document.activeElement.id,a="comment"===this.props.postType&&"reply_textbox"===document.activeElement.id;(t||a)&&(this.fileInput.current.focus(),this.fileInput.current.click())}}),xi(this,"cancelUpload",e=>{const t=Object.assign({},this.state.requests),a=t[e];a&&(a.abort(),Reflect.deleteProperty(t,e),this.setState({requests:t}))}),xi(this,"handleMaxUploadReached",e=>{e&&e.preventDefault();const{onUploadError:t}=this.props,{formatMessage:a}=this.props.intl;t(a(Ui.limited,{count:P.Q.MAX_UPLOAD_FILES}))}),xi(this,"toggleMenu",e=>{this.setState({menuOpen:e})}),xi(this,"handleLocalFileUploaded",e=>{P.Q.MAX_UPLOAD_FILES-this.props.fileCount>0?this.props.onClick&&this.props.onClick():this.handleMaxUploadReached(e),this.setState({menuOpen:!1})}),xi(this,"simulateInputClick",()=>{this.fileInput.current.click()}),this.state={requests:{},menuOpen:!1},this.fileInput=C.a.createRef()}componentDidMount(){"post"===this.props.postType?this.registerDragEvents(".row.main",".center-file-overlay"):"comment"===this.props.postType&&this.registerDragEvents(".post-right__container",".right-file-overlay"),document.addEventListener("paste",this.pasteUpload),document.addEventListener("keydown",this.keyUpload)}componentWillUnmount(){document.removeEventListener("paste",this.pasteUpload),document.removeEventListener("keydown",this.keyUpload),this.unbindDragsterEvents()}render(){const e=Object(M.o)(),{formatMessage:t}=this.props.intl;let a=!0;e&&(a=!1);let n="";Object(M.i)()&&(n="image/*");const s=P.Q.MAX_UPLOAD_FILES-this.props.fileCount;let i;const r=t({id:"accessibility.button.attachment",defaultMessage:"attachment"});let o,l;if(e||(o=this.simulateInputClick),e&&(l=this.simulateInputClick),0===this.props.pluginFileUploadMethods.length)i=C.a.createElement("div",null,C.a.createElement("button",{type:"button",id:"fileUploadButton","aria-label":r,className:"style--none post-action icon icon--attachment",onClick:o,onTouchEnd:l},C.a.createElement(pi,null)),C.a.createElement("input",{id:"fileUploadInput",tabIndex:"-1","aria-label":t(Ui.uploadFile),ref:this.fileInput,type:"file",onChange:this.handleChange,onClick:this.handleLocalFileUploaded,multiple:a,accept:n}));else{const e=this.props.pluginFileUploadMethods.map(e=>C.a.createElement("li",{key:e.pluginId+"_fileuploadpluginmenuitem",onClick:()=>{e.action&&e.action(this.checkPluginHooksAndUploadFiles),this.setState({menuOpen:!1})}},C.a.createElement("a",{href:"#"},C.a.createElement("span",{className:"margin-right"},e.icon),e.text)));i=C.a.createElement("div",null,C.a.createElement("input",{tabIndex:"-1","aria-label":t(Ui.uploadFile),ref:this.fileInput,type:"file",className:"file-attachment-menu-item-input",onChange:this.handleChange,onClick:this.handleLocalFileUploaded,multiple:a,accept:n}),C.a.createElement(Ri.a,null,C.a.createElement("button",{type:"button","aria-label":r,className:"style--none post-action"},C.a.createElement("div",{id:"fileUploadButton",className:"icon icon--attachment"},C.a.createElement(pi,null))),C.a.createElement(ki.a,{id:"fileUploadOptions",openLeft:!0,openUp:!0,ariaLabel:t({id:"file_upload.menuAriaLabel",defaultMessage:"Upload type selector"}),customStyles:Hi},C.a.createElement("li",null,C.a.createElement("a",{href:"#",onClick:o,onTouchEnd:l},C.a.createElement("span",{className:"margin-right"},C.a.createElement("i",{className:"fa fa-laptop"})),C.a.createElement(V.a,{id:"yourcomputer",defaultMessage:"Your computer"}))),e)))}return this.props.canUploadFiles||(i=null),C.a.createElement("div",{className:s<=0?" style--none btn-file__disabled":"style--none"},i)}}xi(Fi,"propTypes",{currentChannelId:v.a.string.isRequired,rootId:v.a.string,fileCount:v.a.number.isRequired,getTarget:v.a.func.isRequired,intl:Y.a.isRequired,locale:v.a.string.isRequired,onClick:v.a.func,onFileUpload:v.a.func,onFileUploadChange:v.a.func,onUploadError:v.a.func,onUploadStart:v.a.func,postType:v.a.string,maxFileSize:v.a.number,canUploadFiles:v.a.bool.isRequired,pluginFileUploadMethods:v.a.arrayOf(v.a.object),pluginFilesWillUploadHooks:v.a.arrayOf(v.a.object),onUploadProgress:v.a.func.isRequired,actions:v.a.shape({uploadFile:v.a.func.isRequired,handleFileUploadEnd:v.a.func.isRequired}).isRequired}),xi(Fi,"defaultProps",{pluginFileUploadMethods:[],pluginFilesWillUploadHooks:[]});const Bi=Object(W.c)(Fi,{forwardRef:!0});Bi.displayName="injectIntl(FileUpload)";var Gi=Bi;var Vi=Object(n.connect)((function(e){const t=Object(d.getConfig)(e),a=parseInt(t.MaxFileSize,10);return{currentChannelId:Object(p.getCurrentChannelId)(e),maxFileSize:a,canUploadFiles:Object(hi.b)(t),locale:Object(qs.a)(e),pluginFileUploadMethods:e.plugins.components.FileUploadMethod,pluginFilesWillUploadHooks:e.plugins.components.FilesWillUploadHook}}),(function(e){return{actions:Object(s.bindActionCreators)({uploadFile:Ii,handleFileUploadEnd:Ni},e)}}),null,{withRef:!0})(Gi),Wi=a(1649);function zi(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class Yi extends C.a.Component{constructor(...e){super(...e),zi(this,"getTypingText",()=>{let e=[],t=0;if(this.props.typingUsers&&(t=(e=[...this.props.typingUsers]).length),0===t)return"";if(1===t)return C.a.createElement(V.a,{id:"msg_typing.isTyping",defaultMessage:"{user} is typing...",values:{user:e[0]}});const a=e.pop();return C.a.createElement(V.a,{id:"msg_typing.areTyping",defaultMessage:"{users} and {last} are typing...",values:{users:e.join(", "),last:a}})})}render(){return C.a.createElement("span",{className:"msg-typing"},this.getTypingText())}}zi(Yi,"propTypes",{typingUsers:v.a.arrayOf(v.a.string).isRequired});var Ki=Object(n.connect)((function(){const e=Object(Wi.makeGetUsersTypingByChannelAndPost)();return function(t,a){return{typingUsers:e(t,{channelId:a.channelId,postId:a.postId})}}}))(Yi);class Qi extends C.a.Component{shouldComponentUpdate(e){return e.show!==this.props.show}render(){return C.a.createElement(G.a,{dialogClassName:"a11y__modal",show:this.props.show,onHide:this.props.onHide,role:"dialog","aria-labelledby":"postDeletedModalLabel","data-testid":"postDeletedModal"},C.a.createElement(G.a.Header,{closeButton:!0},C.a.createElement(G.a.Title,{componentClass:"h1",id:"postDeletedModalLabel"},C.a.createElement(V.a,{id:"post_delete.notPosted",defaultMessage:"Comment could not be posted"}))),C.a.createElement(G.a.Body,null,C.a.createElement("p",null,C.a.createElement(V.a,{id:"post_delete.someone",defaultMessage:"Someone deleted the message on which you tried to post a comment."}))),C.a.createElement(G.a.Footer,null,C.a.createElement("button",{type:"button",className:"btn btn-primary",autoFocus:!0,onClick:this.props.onHide,"data-testid":"postDeletedModalOkButton"},C.a.createElement(V.a,{id:"post_delete.okay",defaultMessage:"Okay"}))))}}!function(e,t,a){t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a}(Qi,"propTypes",{show:v.a.bool.isRequired,onHide:v.a.func.isRequired});var Ji=a(1114);function Zi(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class Xi extends C.a.PureComponent{constructor(...e){super(...e),Zi(this,"renderSlashCommandError",()=>{if(!this.props.submittedMessage)return this.props.error.message;const e=this.props.submittedMessage.split(" ")[0];return C.a.createElement(C.a.Fragment,null,C.a.createElement(V.a,{id:"message_submit_error.invalidCommand",defaultMessage:"Command with a trigger of ''{command}'' not found. ",values:{command:e}}),C.a.createElement("a",{href:"#",onClick:this.props.handleSubmit},C.a.createElement(V.a,{id:"message_submit_error.sendAsMessageLink",defaultMessage:"Click here to send as a message."})))})}render(){const e=this.props.error;if(!e)return null;let t=e.message;return Object(z.l)(e)&&(t=this.renderSlashCommandError()),C.a.createElement("div",{className:"has-error"},C.a.createElement("label",{className:"control-label"},t))}}Zi(Xi,"propTypes",{error:v.a.shape({message:v.a.oneOfType([v.a.string,v.a.any]).isRequired}).isRequired,handleSubmit:v.a.func.isRequired,submittedMessage:v.a.string});var $i=Xi;function er(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function tr(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?er(a,!0).forEach((function(t){ar(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):er(a).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function ar(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class nr extends C.a.PureComponent{static getDerivedStateFromProps(e,t){let a={createPostErrorId:e.createPostErrorId,rootId:e.rootId,messageInHistory:e.messageInHistory,draft:t.draft||tr({},e.draft,{caretPosition:e.draft.message.length,uploadsInProgress:[]})};const n=e.rootId!==t.rootId,s=e.messageInHistory!==t.messageInHistory;return(n||s)&&(a=tr({},a,{draft:tr({},e.draft,{uploadsInProgress:n?[]:e.draft.uploadsInProgress})})),"api.post.create_post.root_id.app_error"===e.createPostErrorId&&e.createPostErrorId!==t.createPostErrorId&&(a=tr({},a,{showPostDeletedModal:!0})),a}constructor(e){super(e),ar(this,"updatePreview",e=>{this.setState({showPreview:e})}),ar(this,"focusTextboxIfNecessary",e=>{this.props.rhsExpanded&&(document.getElementsByClassName("channel-switch-modal").length||Object(z.r)(e,document.activeElement)&&this.focusTextbox())}),ar(this,"pasteHandler",e=>{if(!e.clipboardData||!e.clipboardData.items||"reply_textbox"!==e.target.id)return;const t=ri(e.clipboardData);if(!t)return;e.preventDefault();const{draft:a}=this.state;let n="";n=li(t.className)?"```\n"+oi(e.clipboardData)+"\n```":di(t,a.message.trim());const s=tr({},a,{message:n});this.props.onUpdateCommentDraft(s),this.setState({draft:s})}),ar(this,"handleNotifyAllConfirmation",e=>{this.hideNotifyAllModal(),this.doSubmit(e)}),ar(this,"hideNotifyAllModal",()=>{this.setState({showConfirmModal:!1})}),ar(this,"showNotifyAllModal",()=>{this.setState({showConfirmModal:!0})}),ar(this,"toggleEmojiPicker",()=>{this.setState({showEmojiPicker:!this.state.showEmojiPicker})}),ar(this,"hideEmojiPicker",()=>{this.setState({showEmojiPicker:!1})}),ar(this,"handleEmojiClick",e=>{const t=e.name||e.aliases[0];if(!t)return;const{draft:a}=this.state;let n="";if(""===a.message)n=":".concat(t,": ");else{const{draft:{message:e}}=this.state,{firstPiece:a,lastPiece:s}=Object(z.t)(this.state.caretPosition,e);n=""===a?":".concat(t,": ").concat(s," "):"".concat(a," :").concat(t,": ").concat(s," ");const i=""===a?":".concat(t,": ").length:"".concat(a," :").concat(t,": ").length,r=this.refs.textbox.getWrappedInstance().getInputBox();this.setState({caretPosition:i},()=>{I.ob(r,i)})}const s=tr({},a,{message:n});this.props.onUpdateCommentDraft(s),this.draftsForPost[this.props.rootId]=s,this.setState({showEmojiPicker:!1,draft:s})}),ar(this,"handleGifClick",e=>{const{draft:t}=this.state;let a="";const n=tr({},t,{message:a=""===t.message?e:/\s+$/.test(t.message)?"".concat(t.message).concat(e," "):"".concat(t.message," ").concat(e," ")});this.props.onUpdateCommentDraft(n),this.draftsForPost[this.props.rootId]=n,this.setState({showEmojiPicker:!1,draft:n}),this.focusTextbox()}),ar(this,"handlePostError",e=>{this.setState({postError:e})}),ar(this,"handleSubmit",async e=>{e.preventDefault(),this.updatePreview(!1);const t=this.props.channelMembersCount;if(this.props.enableConfirmNotificationsToChannel&&t>P.Q.NOTIFY_ALL_MEMBERS&&Object(z.c)(this.state.draft.message)){if(this.props.isTimezoneEnabled){const{data:e}=await this.props.getChannelTimezones(this.props.channelId);e?this.setState({channelTimezoneCount:e.length}):this.setState({channelTimezoneCount:0})}this.showNotifyAllModal()}else await this.doSubmit(e)}),ar(this,"doSubmit",async e=>{e&&e.preventDefault();const{draft:t}=this.state;if(!this.shouldEnableAddButton())return;if(t.uploadsInProgress.length>0)return;if(this.state.postError)return this.setState({errorClass:"animation--highlight"}),void setTimeout(()=>{this.setState({errorClass:null})},P.Q.ANIMATION_TIMEOUT);if(this.props.rootDeleted)return void this.showPostDeletedModal();const a=Date.now()-this.lastBlurAt<150;this.focusTextbox(a);const n=this.state.serverError;let s=!1;Object(z.l)(n)&&t.message===n.submittedMessage&&(s=!0);const i={ignoreSlash:s};try{await this.props.onSubmit(i),this.setState({postError:null,serverError:null})}catch(e){return Object(z.l)(e)&&this.props.onUpdateCommentDraft(t),e.submittedMessage=t.message,void this.setState({serverError:e})}this.setState({draft:tr({},this.props.draft,{uploadsInProgress:[]})})}),ar(this,"commentMsgKeyPress",e=>{const{ctrlSend:t,codeBlockOnCtrlEnter:a}=this.props,{allowSending:n,withClosedCodeBlock:s,message:i}=Object(z.q)(e,this.state.draft.message,t,a,0,0,this.state.caretPosition);if(n){if(e.persist(),this.refs.textbox&&this.refs.textbox.getWrappedInstance().blur(),s&&i){const{draft:t}=this.state,a=tr({},t,{message:i});this.props.onUpdateCommentDraft(a),this.setState({draft:a},()=>this.handleSubmit(e)),this.draftsForPost[this.props.rootId]=a}else this.handleSubmit(e);this.updatePreview(!1),setTimeout(()=>{this.focusTextbox()})}this.emitTypingEvent()}),ar(this,"emitTypingEvent",()=>{const{channelId:e,rootId:t}=this.props;S.d(e,t)}),ar(this,"scrollToBottom",()=>{const e=Rs()(".post-right__scroll");e[0]&&e.parent().scrollTop(e[0].scrollHeight)}),ar(this,"handleChange",e=>{const t=e.target.value;let a=this.state.serverError;Object(z.l)(a)&&(a=null);const{draft:n}=this.state,s=tr({},n,{message:t});this.props.onUpdateCommentDraft(s),this.setState({draft:s,serverError:a},()=>{this.scrollToBottom()}),this.draftsForPost[this.props.rootId]=s}),ar(this,"handleMouseUpKeyUp",e=>{const t=I.p(e.target);this.setState({caretPosition:t})}),ar(this,"handleKeyDown",e=>{if((this.props.ctrlSend||this.props.codeBlockOnCtrlEnter)&&I.W(e,P.Q.KeyCodes.ENTER)&&(e.ctrlKey||e.metaKey))return this.updatePreview(!1),void this.commentMsgKeyPress(e);const{draft:t}=this.state,{message:a}=t;if(!e.ctrlKey&&!e.metaKey&&!e.altKey&&!e.shiftKey&&I.W(e,P.Q.KeyCodes.UP)&&""===a){e.preventDefault(),this.refs.textbox&&this.refs.textbox.getWrappedInstance().blur();const{data:t}=this.props.onEditLatestPost();t||this.focusTextbox(!0)}!e.ctrlKey&&!e.metaKey||e.altKey||e.shiftKey||(I.W(e,P.Q.KeyCodes.UP)?(e.preventDefault(),this.props.onMoveHistoryIndexBack()):I.W(e,P.Q.KeyCodes.DOWN)&&(e.preventDefault(),this.props.onMoveHistoryIndexForward()))}),ar(this,"handleFileUploadChange",()=>{this.focusTextbox()}),ar(this,"handleUploadStart",e=>{const{draft:t}=this.state,a=tr({},t,{uploadsInProgress:[...t.uploadsInProgress,...e]});this.props.onUpdateCommentDraft(a),this.setState({draft:a}),this.draftsForPost[this.props.rootId]=a,this.focusTextbox()}),ar(this,"handleUploadProgress",({clientId:e,name:t,percent:a,type:n})=>{const s=tr({},this.state.uploadsProgressPercent,{[e]:{percent:a,name:t,type:n}});this.setState({uploadsProgressPercent:s})}),ar(this,"handleFileUploadComplete",(e,t,a,n)=>{const s=this.draftsForPost[n],i=[...s.uploadsInProgress],r=Object(ii.sortFileInfos)([...s.fileInfos,...e],this.props.locale);for(let e=0;e<t.length;e++){const a=i.indexOf(t[e]);-1!==a&&i.splice(a,1)}const o=tr({},s,{fileInfos:r,uploadsInProgress:i});this.props.updateCommentDraftWithRootId(n,o),this.draftsForPost[n]=o,this.props.rootId===n&&this.setState({draft:o})}),ar(this,"handleUploadError",(e,t=-1,a=-1)=>{if(-1!==t){const e=tr({},this.draftsForPost[a]),n=[...e.uploadsInProgress],s=n.indexOf(t);-1!==s&&n.splice(s,1);const i=tr({},e,{uploadsInProgress:n});this.props.updateCommentDraftWithRootId(a,i),this.draftsForPost[a]=i,this.props.rootId===a&&this.setState({draft:i})}let n=e;e&&"string"==typeof e&&(n=new Error(e)),this.setState({serverError:n},()=>{n&&this.scrollToBottom()})}),ar(this,"removePreview",e=>{const{draft:t}=this.state,a=[...t.fileInfos],n=[...t.uploadsInProgress];this.handleUploadError(null);let s=a.findIndex(t=>t.id===e);-1===s?-1!==(s=n.indexOf(e))&&(n.splice(s,1),this.refs.fileUpload&&this.refs.fileUpload.getWrappedInstance()&&this.refs.fileUpload.getWrappedInstance().cancelUpload(e)):a.splice(s,1);const i=tr({},t,{fileInfos:a,uploadsInProgress:n});this.props.onUpdateCommentDraft(i),this.setState({draft:i}),this.draftsForPost[this.props.rootId]=i,this.handleFileUploadChange()}),ar(this,"getFileCount",()=>{const{draft:{fileInfos:e,uploadsInProgress:t}}=this.state;return e.length+t.length}),ar(this,"getFileUploadTarget",()=>this.refs.textbox.getWrappedInstance()),ar(this,"getCreateCommentControls",()=>this.refs.createCommentControls),ar(this,"shouldEnableAddButton",()=>!!this.props.enableAddButton||Object(z.l)(this.state.serverError)),ar(this,"focusTextbox",(e=!1)=>{!this.refs.textbox||!e&&M.n()||this.refs.textbox.getWrappedInstance().focus()}),ar(this,"showPostDeletedModal",()=>{this.setState({showPostDeletedModal:!0})}),ar(this,"hidePostDeletedModal",()=>{this.setState({showPostDeletedModal:!1}),this.props.resetCreatePostRequest()}),ar(this,"handleBlur",()=>{this.lastBlurAt=Date.now()}),ar(this,"handleHeightChange",(e,t)=>{this.setState({renderScrollbar:e>t})}),this.state={showPostDeletedModal:!1,showConfirmModal:!1,showEmojiPicker:!1,showPreview:!1,channelTimezoneCount:0,uploadsProgressPercent:{},renderScrollbar:!1,suggestionListStyle:"top"},this.lastBlurAt=0,this.draftsForPost={},this.doInitialScrollToBottom=!1}componentDidMount(){this.props.clearCommentDraftUploads(),this.props.onResetHistoryIndex(),this.focusTextbox(),document.addEventListener("paste",this.pasteHandler),document.addEventListener("keydown",this.focusTextboxIfNecessary),""!==this.props.draft.message&&(this.doInitialScrollToBottom=!0)}componentWillUnmount(){this.props.resetCreatePostRequest(),document.removeEventListener("paste",this.pasteHandler),document.removeEventListener("keydown",this.focusTextboxIfNecessary)}componentDidUpdate(e,t){t.draft.uploadsInProgress.length<this.state.draft.uploadsInProgress.length&&this.scrollToBottom(),t.showEmojiPicker&&!this.state.showEmojiPicker&&this.focusTextbox(),t.showPreview&&!this.state.showPreview&&this.focusTextbox(),e.rootId===this.props.rootId&&e.selectedPostFocussedAt===this.props.selectedPostFocussedAt||this.focusTextbox(),this.doInitialScrollToBottom&&(this.scrollToBottom(),this.doInitialScrollToBottom=!1)}render(){const{draft:e}=this.state,{readOnlyChannel:t}=this.props,{formatMessage:a}=this.props.intl,n=this.shouldEnableAddButton(),{renderScrollbar:s}=this.state,i=I.gb("accessibility.sections.rhsFooter","reply input region"),r=C.a.createElement(V.a,{id:"notify_all.title.confirm",defaultMessage:"Confirm sending notifications to entire channel"}),o=C.a.createElement(V.a,{id:"notify_all.confirm",defaultMessage:"Confirm"});let l="";l=this.state.channelTimezoneCount&&this.props.isTimezoneEnabled?C.a.createElement(Ji.b,{id:"notify_all.question_timezone",defaultMessage:"By using @all or @channel you are about to send notifications to **{totalMembers} people** in **{timezones, number} {timezones, plural, one {timezone} other {timezones}}**. Are you sure you want to do this?",values:{totalMembers:this.props.channelMembersCount-1,timezones:this.state.channelTimezoneCount}}):C.a.createElement(V.a,{id:"notify_all.question",defaultMessage:"By using @all or @channel you are about to send notifications to {totalMembers} people. Are you sure you want to do this?",values:{totalMembers:this.props.channelMembersCount-1}});let c=null;this.state.serverError&&(c=C.a.createElement($i,{id:"postServerError",error:this.state.serverError,submittedMessage:this.state.serverError.submittedMessage,handleSubmit:this.handleSubmit}));let d=null;if(this.state.postError){const e="post-error"+(this.state.errorClass?" "+this.state.errorClass:"");d=C.a.createElement("label",{className:e},this.state.postError)}let m=null;!t&&(e.fileInfos.length>0||e.uploadsInProgress.length>0)&&(m=C.a.createElement(Ci,{fileInfos:e.fileInfos,onRemove:this.removePreview,uploadsInProgress:e.uploadsInProgress,uploadsProgressPercent:this.state.uploadsProgressPercent,ref:"preview"}));let u=null;e.uploadsInProgress.length>0&&(u=C.a.createElement("span",{className:"post-right-comments-upload-in-progress"},1===e.uploadsInProgress.length?C.a.createElement(V.a,{id:"create_comment.file",defaultMessage:"File uploading"}):C.a.createElement(V.a,{id:"create_comment.files",defaultMessage:"Files uploading"})));let p,h="btn btn-primary comment-btn";n||(h+=" disabled"),t||this.state.showPreview||(p=C.a.createElement(Vi,{ref:"fileUpload",fileCount:this.getFileCount(),getTarget:this.getFileUploadTarget,onFileUploadChange:this.handleFileUploadChange,onUploadStart:this.handleUploadStart,onFileUpload:this.handleFileUploadComplete,onUploadError:this.handleUploadError,onUploadProgress:this.handleUploadProgress,rootId:this.props.rootId,postType:"comment"}));let g=null;const b=a({id:"emoji_picker.emojiPicker",defaultMessage:"Emoji Picker"}).toLowerCase();let f;!this.props.enableEmojiPicker||t||this.state.showPreview||(g=C.a.createElement("div",null,C.a.createElement(fa,{show:this.state.showEmojiPicker,target:this.getCreateCommentControls,onHide:this.hideEmojiPicker,onEmojiClose:this.hideEmojiPicker,onEmojiClick:this.handleEmojiClick,onGifClick:this.handleGifClick,enableGifPicker:this.props.enableGifPicker,topOffset:55}),C.a.createElement("button",{"aria-label":b,type:"button",onClick:this.toggleEmojiPicker,className:"style--none emoji-picker__container post-action"},C.a.createElement(_t,{className:"icon icon--emoji emoji-rhs "+(this.state.showEmojiPicker?"active":"")})))),f=t?I.gb("create_post.read_only","This channel is read-only. Only members with permission can post here."):I.gb("create_comment.addComment","Add a comment...");let _="";s&&(_=" scroll");const E=this.refs.textbox;if(E){E.getWrappedInstance().getInputBox().getBoundingClientRect().top<P.Q.SUGGESTION_LIST_SPACE_RHS?this.setState({suggestionListStyle:"bottom"}):this.setState({suggestionListStyle:"top"})}return C.a.createElement("form",{onSubmit:this.handleSubmit},C.a.createElement("div",{role:"application",id:"rhsFooter","aria-label":i,tabIndex:"-1",className:"post-create a11y__region".concat(_),"data-a11y-sort-order":"4"},C.a.createElement("div",{id:this.props.rootId,className:"post-create-body comment-create-body"},C.a.createElement("div",{className:"post-body__cell"},C.a.createElement(Mn,{onChange:this.handleChange,onKeyPress:this.commentMsgKeyPress,onKeyDown:this.handleKeyDown,onMouseUp:this.handleMouseUpKeyUp,onKeyUp:this.handleMouseUpKeyUp,onComposition:this.emitTypingEvent,onHeightChange:this.handleHeightChange,handlePostError:this.handlePostError,value:t?"":e.message,onBlur:this.handleBlur,createMessage:f,emojiEnabled:this.props.enableEmojiPicker,initialText:"",channelId:this.props.channelId,isRHS:!0,popoverMentionKeyClick:!0,id:"reply_textbox",ref:"textbox",disabled:t,characterLimit:this.props.maxPostSize,preview:this.state.showPreview,suggestionListStyle:this.state.suggestionListStyle,badConnection:this.props.badConnection,listenForMentionKeyClick:!0}),C.a.createElement("span",{ref:"createCommentControls",className:"post-body__actions"},p,g))),C.a.createElement("div",{className:"post-create-footer"},C.a.createElement("div",{className:"d-flex justify-content-between"},C.a.createElement("div",{className:"col"},C.a.createElement(Ki,{channelId:this.props.channelId,postId:this.props.rootId}),d),C.a.createElement("div",{className:"col col-auto"},C.a.createElement(An,{characterLimit:this.props.maxPostSize,showPreview:this.state.showPreview,updatePreview:this.updatePreview,message:t?"":this.state.message}))),C.a.createElement("div",{className:"text-right margin-top"},u,C.a.createElement("input",{type:"button",disabled:!n,id:"addCommentButton",className:h,value:a({id:"create_comment.comment",defaultMessage:"Add Comment"}),onClick:this.handleSubmit}),m,c))),C.a.createElement(Qi,{show:this.state.showPostDeletedModal,onHide:this.hidePostDeletedModal}),C.a.createElement(ss.a,{title:r,message:l,confirmButtonText:o,show:this.state.showConfirmModal,onConfirm:this.handleNotifyAllConfirmation,onCancel:this.hideNotifyAllModal}))}}ar(nr,"propTypes",{channelId:v.a.string.isRequired,channelMembersCount:v.a.number.isRequired,rootId:v.a.string.isRequired,rootDeleted:v.a.bool.isRequired,messageInHistory:v.a.string,draft:v.a.shape({message:v.a.string.isRequired,uploadsInProgress:v.a.array.isRequired,fileInfos:v.a.array.isRequired}).isRequired,enableAddButton:v.a.bool.isRequired,codeBlockOnCtrlEnter:v.a.bool,ctrlSend:v.a.bool,latestPostId:v.a.string,locale:v.a.string.isRequired,createPostErrorId:v.a.string,clearCommentDraftUploads:v.a.func.isRequired,intl:Y.a.isRequired,onUpdateCommentDraft:v.a.func.isRequired,updateCommentDraftWithRootId:v.a.func.isRequired,onSubmit:v.a.func.isRequired,onResetHistoryIndex:v.a.func.isRequired,onMoveHistoryIndexBack:v.a.func.isRequired,onMoveHistoryIndexForward:v.a.func.isRequired,onEditLatestPost:v.a.func.isRequired,getChannelTimezones:v.a.func.isRequired,resetCreatePostRequest:v.a.func.isRequired,readOnlyChannel:v.a.bool,enableConfirmNotificationsToChannel:v.a.bool.isRequired,enableEmojiPicker:v.a.bool.isRequired,enableGifPicker:v.a.bool.isRequired,badConnection:v.a.bool.isRequired,maxPostSize:v.a.number.isRequired,rhsExpanded:v.a.bool.isRequired,isTimezoneEnabled:v.a.bool.isRequired,selectedPostFocussedAt:v.a.number.isRequired});var sr=Object(W.c)(nr);var ir=Object(n.connect)((function(){const e=Object(qa.makeGetMessageInHistoryItem)(L.Posts.MESSAGE_TYPES.COMMENT);return(t,a)=>{const n=t.requests.posts.createPost.error||{},s=Object(Cs.i)(t,P.I.COMMENT_DRAFT,a.rootId),i=0!==s.message.trim().length||0!==s.fileInfos.length,r=Object(p.getAllChannelStats)(t)[a.channelId]?Object(p.getAllChannelStats)(t)[a.channelId].member_count:1,o=e(t),l=t.entities.channels.channels[a.channelId]||{},u=Object(d.getConfig)(t),h="true"===u.EnableConfirmNotificationsToChannel,g="true"===u.EnableEmojiPicker,b="true"===u.EnableGifPicker,f=Us(t)>1,_="true"===u.ExperimentalTimezone;return{draft:s,messageInHistory:o,enableAddButton:i,channelMembersCount:r,codeBlockOnCtrlEnter:Object(c.getBool)(t,L.Preferences.CATEGORY_ADVANCED_SETTINGS,"code_block_ctrl_enter",!0),ctrlSend:Object(c.getBool)(t,L.Preferences.CATEGORY_ADVANCED_SETTINGS,"send_on_ctrl_enter"),createPostErrorId:n.server_error_id,readOnlyChannel:!Object(m.isCurrentUserSystemAdmin)(t)&&"true"===u.ExperimentalTownSquareIsReadOnly&&l.name===P.j.DEFAULT_CHANNEL,enableConfirmNotificationsToChannel:h,enableEmojiPicker:g,enableGifPicker:b,locale:Object(qs.a)(t),maxPostSize:parseInt(u.MaxPostSize,10)||P.j.DEFAULT_CHARACTER_LIMIT,rhsExpanded:Object(Cs.a)(t),badConnection:f,isTimezoneEnabled:_,selectedPostFocussedAt:Object(Cs.r)(t)}}}),(function(){let e,t,a,n,i,r,l,c;function d(){return Object(k.resetHistoryIndex)(L.Posts.MESSAGE_TYPES.COMMENT)}return(m,u)=>(r!==u.rootId&&(e=function(e){return t=>ei(e,t)}(u.rootId),a=ti(u.rootId,-1),n=ti(u.rootId,1)),r===u.rootId&&l===u.channelId||(i=si(u.channelId,u.rootId)),r===u.rootId&&l===u.channelId&&c===u.latestPostId||(t=ni(u.channelId,u.rootId,u.latestPostId)),r=u.rootId,l=u.channelId,c=u.latestPostId,Object(s.bindActionCreators)({clearCommentDraftUploads:$s,onUpdateCommentDraft:e,updateCommentDraftWithRootId:ei,onSubmit:t,onResetHistoryIndex:d,onMoveHistoryIndexBack:a,onMoveHistoryIndexForward:n,onEditLatestPost:i,resetCreatePostRequest:k.resetCreatePostRequest,getChannelTimezones:o.getChannelTimezones},m))}))(sr),rr=a(180),or=a(181),lr=a(110),cr=a(133),dr=a.n(cr);class mr extends C.a.PureComponent{render(){const{value:e,timeZone:t}=this.props,a=new Date(e);if(function(e){const t=new Date;return ur(e,t)}(a))return C.a.createElement(V.a,{id:"date_separator.today",defaultMessage:"Today"});if(function(e){const t=new Date;return t.setDate(t.getDate()-1),ur(e,t)}(a))return C.a.createElement(V.a,{id:"date_separator.yesterday",defaultMessage:"Yesterday"});const n={timeZone:t,weekday:"short",month:"short",day:"2-digit",year:"numeric"},s=this.props.intl.formatDate(e,n);if(s!==String(a)&&s!==String(e))return s;const i=e?dr()(e):dr()();return t&&i.tz(t),i.format("ddd, MMM D, YYYY")}}function ur(e,t){return e.getDate()===t.getDate()&&e.getMonth()===t.getMonth()&&e.getFullYear()===t.getFullYear()}!function(e,t,a){t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a}(mr,"propTypes",{timeZone:v.a.string,value:v.a.oneOfType([v.a.number,v.a.instanceOf(Date)]).isRequired,intl:v.a.any.isRequired});var pr=Object(W.c)(mr);a(1407);class hr extends C.a.PureComponent{render(){const{children:e}=this.props;return C.a.createElement("div",{"data-testid":"basicSeparator",className:"Separator BasicSeparator"},C.a.createElement("hr",{className:"separator__hr"}),e&&C.a.createElement("div",{className:"separator__text"},e))}}class gr extends C.a.PureComponent{render(){const{date:e,enableTimezone:t,timeZone:a}=this.props,n=t&&a?{timeZone:a}:{};return C.a.createElement(hr,null,C.a.createElement(pr,Object.assign({},n,{value:e,weekday:"short",month:"short",day:"2-digit",year:"numeric"})))}}!function(e,t,a){t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a}(gr,"propTypes",{date:v.a.oneOfType([v.a.number,v.a.instanceOf(Date)]).isRequired,timeZone:v.a.string,enableTimezone:v.a.bool});var br=Object(n.connect)((function(e,t){const a=Object(m.getCurrentUserId)(e);let n;return n=t.userTimezone?t.userTimezone:Object(rr.getUserTimezone)(e,a),{enableTimezone:Object(lr.a)(e),timeZone:Object(or.getUserCurrentTimezone)(n)}}))(gr),fr=a(43);class _r extends C.a.PureComponent{render(){if(!this.props.isMobile)return null;if(0===this.props.createAt)return null;const e=C.a.createElement(pr,{value:this.props.createAt,weekday:"short",day:"2-digit",month:"short",year:"numeric"});let t="post-list__timestamp";return this.props.isScrolling&&(t+=" scrolling"),this.props.isRhsPost&&(t+=" rhs"),C.a.createElement("div",{className:t,style:this.props.stylesOverride,"data-testid":"floatingTimestamp"},C.a.createElement("div",null,C.a.createElement("span",null,e)))}}!function(e,t,a){t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a}(_r,"propTypes",{isScrolling:v.a.bool.isRequired,isMobile:v.a.bool,createAt:v.a.oneOfType([v.a.instanceOf(Date),v.a.number]).isRequired,isRhsPost:v.a.bool,stylesOverride:v.a.object});var Er=Object(n.connect)((function(e,t){let a=t.postId;if(fr.isCombinedUserActivityPost(a)){const e=fr.getPostIdsForCombinedUserActivityPost(a);a=e[e.length-1]}const n=Object(qa.getPost)(e,a);return{createAt:n?n.create_at:0}}))(_r),vr=a(3),yr=a.n(vr);function Cr(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class wr extends C.a.Component{render(){return this.props.hasPermission&&!this.props.invert?this.props.children:!this.props.hasPermission&&this.props.invert?this.props.children:null}}Cr(wr,"defaultProps",{invert:!1}),Cr(wr,"propTypes",{channelId:v.a.string,teamId:v.a.string,permissions:v.a.arrayOf(v.a.string).isRequired,hasPermission:v.a.bool.isRequired,invert:v.a.bool.isRequired,children:v.a.node.isRequired});var Or=Object(n.connect)((function(e,t){if(!t.channelId||null===t.teamId||void 0===t.teamId)return{hasPermission:!1};for(const a of t.permissions)if(Object(D.haveIChannelPermission)(e,{channel:t.channelId,team:t.teamId,permission:a}))return{hasPermission:!0};return{hasPermission:!1}}))(wr);function Tr(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const Sr=80,Pr="PostDropdownMenuItem";class Mr extends C.a.PureComponent{constructor(e){super(e),Tr(this,"handleEditDisable",()=>{this.setState({canEdit:!1})}),Tr(this,"handleFlagMenuItemActivated",()=>{this.props.isFlagged?this.props.actions.unflagPost(this.props.post.id):this.props.actions.flagPost(this.props.post.id)}),Tr(this,"handleAddReactionMenuItemActivated",e=>{e.preventDefault(),this.props.handleAddReactionClick&&this.props.handleAddReactionClick()}),Tr(this,"handlePermalinkMenuItemActivated",e=>{e.preventDefault(),Object(S.j)(this.props.post)}),Tr(this,"handlePinMenuItemActivated",()=>{this.props.post.is_pinned?this.props.actions.unpinPost(this.props.post.id):this.props.actions.pinPost(this.props.post.id)}),Tr(this,"handleUnreadMenuItemActivated",e=>{e.preventDefault(),this.props.actions.markPostAsUnread(this.props.post)}),Tr(this,"handleDeleteMenuItemActivated",e=>{e.preventDefault();const t={ModalId:P.u.DELETE_POST,dialogType:Z,dialogProps:{post:this.props.post,commentCount:this.props.commentCount,isRHS:this.props.location===P.t.RHS_ROOT||this.props.location===P.t.RHS_COMMENT}};this.props.actions.openModal(t)}),Tr(this,"handleEditMenuItemActivated",()=>{this.props.actions.setEditingPost(this.props.post.id,this.props.commentCount,this.props.location===P.t.CENTER?"post_textbox":"reply_textbox",this.props.post.root_id?I.gb("rhs_comment.comment","Comment"):I.gb("create_post.post","Post"),this.props.location===P.t.RHS_ROOT||this.props.location===P.t.RHS_COMMENT)}),Tr(this,"tooltip",C.a.createElement(mi.a,{id:"dotmenu-icon-tooltip",className:"hidden-xs"},C.a.createElement(V.a,{id:"post_info.dot_menu.tooltip.more_actions",defaultMessage:"More Actions"}))),Tr(this,"refCallback",e=>{if(e){const t=e.rect();(t.y||t.top)+t.height>window.innerHeight-Sr&&this.setState({openUp:!0}),this.setState({width:t.width})}}),Tr(this,"renderDivider",e=>C.a.createElement("li",{id:"divider_post_".concat(this.props.post.id,"_").concat(e),className:"MenuItem__divider",role:"menuitem"})),this.editDisableAction=new xs(this.handleEditDisable),this.state={openUp:!1,width:0},this.buttonRef=C.a.createRef()}disableCanEditPostByTime(){const{post:e,isLicensed:t,postEditTimeLimit:a}=this.props;if(z.b(e)&&t&&String(a)!==String(P.j.UNSET_POST_EDIT_TIME_LIMIT)){const t=1e3,n=e.create_at+a*t-I.G();n>0&&this.editDisableAction.fireAfter(n+t)}}componentDidMount(){this.disableCanEditPostByTime()}static getDerivedStateFromProps(e){return{canDelete:z.a(e.post)&&!e.isReadOnly,canEdit:z.b(e.post)&&!e.isReadOnly}}componentWillUnmount(){this.editDisableAction.cancel()}render(){const e=z.o(this.props.post),t=I.Y(),a=this.props.pluginMenuItems.filter(e=>e.filter?e.filter(this.props.post.id):e).map(e=>e.subMenu?C.a.createElement(ki.a.ItemSubMenu,{key:e.id+"_pluginmenuitem",id:e.text.id,postId:this.props.post.id,text:e.text,subMenu:e.subMenu,action:e.action,xOffset:this.state.width,root:!0}):C.a.createElement(ki.a.ItemAction,{key:e.id+"_pluginmenuitem",text:e.text,onClick:()=>{e.action&&e.action(this.props.post.id)}}));return this.state.canDelete||this.state.canEdit||0!==a.length||!e?C.a.createElement(Ri.a,{onToggle:this.props.handleDropdownOpened},C.a.createElement(ui.a,{className:"hidden-xs",delayShow:500,placement:"top",overlay:this.tooltip,rootClose:!0},C.a.createElement("button",{id:"".concat(this.props.location,"_button_").concat(this.props.post.id),"aria-label":I.gb("post_info.dot_menu.tooltip.more_actions","More Actions").toLowerCase(),className:"post__dropdown color--link style--none",type:"button","aria-expanded":"false"})),C.a.createElement(ki.a,{id:"".concat(this.props.location,"_dropdown_").concat(this.props.post.id),openLeft:!0,openUp:this.state.openUp,ref:this.refCallback,ariaLabel:I.gb("post_info.menuAriaLabel","Post extra options")},C.a.createElement(ki.a.ItemAction,{show:!e&&this.props.location===P.t.CENTER,text:I.gb("post_info.reply","Reply"),onClick:this.props.handleCommentClick}),C.a.createElement(Or,{channelId:this.props.post.channel_id,teamId:this.props.teamId,permissions:[yr.a.ADD_REACTION]},C.a.createElement(ki.a.ItemAction,{show:t&&!e&&!this.props.isReadOnly&&this.props.enableEmojiPicker,text:I.gb("rhs_root.mobile.add_reaction","Add Reaction"),onClick:this.handleAddReactionMenuItemActivated})),C.a.createElement(ki.a.ItemAction,{id:"unread_post_".concat(this.props.post.id),show:!e&&!this.props.channelIsArchived&&this.props.location!==P.t.SEARCH,text:I.gb("post_info.unread","Mark as Unread"),onClick:this.handleUnreadMenuItemActivated}),C.a.createElement(ki.a.ItemAction,{id:"permalink_".concat(this.props.post.id),show:!e,text:I.gb("post_info.permalink","Permalink"),onClick:this.handlePermalinkMenuItemActivated}),C.a.createElement(ki.a.ItemAction,{show:t&&!e&&this.props.isFlagged,text:I.gb("rhs_root.mobile.unflag","Unflag"),onClick:this.handleFlagMenuItemActivated}),C.a.createElement(ki.a.ItemAction,{show:t&&!e&&!this.props.isFlagged,text:I.gb("rhs_root.mobile.flag","Flag"),onClick:this.handleFlagMenuItemActivated}),C.a.createElement(ki.a.ItemAction,{id:"unpin_post_".concat(this.props.post.id),show:!e&&!this.props.isReadOnly&&this.props.post.is_pinned,text:I.gb("post_info.unpin","Unpin"),onClick:this.handlePinMenuItemActivated}),C.a.createElement(ki.a.ItemAction,{id:"pin_post_".concat(this.props.post.id),show:!e&&!this.props.isReadOnly&&!this.props.post.is_pinned,text:I.gb("post_info.pin","Pin"),onClick:this.handlePinMenuItemActivated}),!e&&(this.state.canEdit||this.state.canDelete)&&this.renderDivider("edit"),C.a.createElement(ki.a.ItemAction,{id:"edit_post_".concat(this.props.post.id),show:this.state.canEdit,text:I.gb("post_info.edit","Edit"),onClick:this.handleEditMenuItemActivated}),C.a.createElement(ki.a.ItemAction,{id:"delete_post_".concat(this.props.post.id),show:this.state.canDelete,text:I.gb("post_info.del","Delete"),onClick:this.handleDeleteMenuItemActivated,isDangerous:!0}),(a.length>0||this.props.components[Pr])&&this.renderDivider("plugins"),a,C.a.createElement(A.a,{postId:this.props.post.id,pluggableName:Pr}))):null}}Tr(Mr,"propTypes",{post:v.a.object.isRequired,teamId:v.a.string,location:v.a.oneOf([P.t.CENTER,P.t.RHS_ROOT,P.t.RHS_COMMENT,P.t.SEARCH]).isRequired,commentCount:v.a.number,isFlagged:v.a.bool,handleCommentClick:v.a.func,handleDropdownOpened:v.a.func,handleAddReactionClick:v.a.func,isReadOnly:v.a.bool,pluginMenuItems:v.a.arrayOf(v.a.object),isLicensed:v.a.bool.isRequired,postEditTimeLimit:v.a.string.isRequired,enableEmojiPicker:v.a.bool.isRequired,channelIsArchived:v.a.bool.isRequired,components:v.a.object.isRequired,actions:v.a.shape({flagPost:v.a.func.isRequired,unflagPost:v.a.func.isRequired,setEditingPost:v.a.func.isRequired,pinPost:v.a.func.isRequired,unpinPost:v.a.func.isRequired,openModal:v.a.func.isRequired,markPostAsUnread:v.a.func.isRequired}).isRequired}),Tr(Mr,"defaultProps",{post:{},commentCount:0,isFlagged:!1,isReadOnly:!1,pluginMenuItems:[],location:P.t.CENTER,enableEmojiPicker:!1});var Ir=Object(n.connect)((function(e,t){const a=Object(p.getChannel)(e,t.post.channel_id);return{channelIsArchived:Object(ya.d)(a),components:e.plugins.components,postEditTimeLimit:Object(d.getConfig)(e).PostEditTimeLimit,isLicensed:"true"===Object(d.getLicense)(e).IsLicensed,teamId:Object(u.getCurrentTeamId)(e),pluginMenuItems:e.plugins.components.PostDropdownMenu}}),(function(e){return{actions:Object(s.bindActionCreators)({flagPost:U.d,unflagPost:U.m,setEditingPost:U.k,pinPost:U.h,unpinPost:U.n,openModal:x.b,markPostAsUnread:U.g},e)}}))(Mr);class Nr extends C.a.PureComponent{render(){return C.a.createElement("span",this.props,C.a.createElement(V.a,{id:"generic_icons.download",defaultMessage:"Download Icon"},e=>C.a.createElement("svg",{width:"40px",height:"40px",viewBox:"0 0 42 42",role:"img","aria-label":e},C.a.createElement("g",{stroke:"inherit",strokeWidth:"1",fill:"none",fillRule:"evenodd"},C.a.createElement("g",{transform:"translate(-986.000000, -1142.000000)"},C.a.createElement("g",{transform:"translate(50.000000, 1034.000000)"},C.a.createElement("g",{transform:"translate(539.000000, 54.000000)"},C.a.createElement("g",{transform:"translate(398.000000, 55.000000)"},C.a.createElement("g",{transform:"translate(11.000000, 11.000000)",fillRule:"nonzero",fill:"inherit"},C.a.createElement("path",{d:"M8.7345,14.1405 C8.74725,14.1525 8.763,14.15775 8.7765,14.16825 C8.802,14.18775 8.82675,14.20875 8.85675,14.22075 C8.9025,14.24025 8.95125,14.25 9,14.25 C9.04875,14.25 9.0975,14.24025 9.14325,14.22075 C9.18975,14.20125 9.23175,14.17275 9.267,14.1375 L13.764,9.6405 C13.91025,9.49425 13.91025,9.2565 13.764,9.11025 C13.61775,8.964 13.38,8.964 13.23375,9.11025 L9.375,12.969 L9.375,0.375 C9.375,0.168 9.207,0 9,0 C8.793,0 8.625,0.168 8.625,0.375 L8.625,12.9705 L4.76475,9.11025 C4.6185,8.964 4.38075,8.964 4.2345,9.11025 C4.08825,9.2565 4.08825,9.49425 4.2345,9.6405 L8.7345,14.1405 Z M17.25,13.5 C17.043,13.5 16.875,13.668 16.875,13.875 L16.875,17.25 L1.125,17.25 L1.125,13.875 C1.125,13.668 0.957,13.5 0.75,13.5 C0.543,13.5 0.375,13.668 0.375,13.875 L0.375,17.625 C0.375,17.832 0.543,18 0.75,18 L17.25,18 C17.457,18 17.625,17.832 17.625,17.625 L17.625,13.875 C17.625,13.668 17.457,13.5 17.25,13.5 Z"}))))))))))}}class jr extends C.a.PureComponent{render(){const{fileInfo:e}=this.props,t=Object(I.y)(e.extension);let a;if(t===P.n.IMAGE){let t="post-image";e.width<P.Q.THUMBNAIL_WIDTH&&e.height<P.Q.THUMBNAIL_HEIGHT?t+=" small":t+=" normal";let a=Object(ii.getFileThumbnailUrl)(e.id);return Object(I.U)(e.extension)&&!e.has_preview_image&&(a=Object(ii.getFileUrl)(e.id)),C.a.createElement("div",{className:t,style:{backgroundImage:"url(".concat(a,")"),backgroundSize:"cover"}})}return a=e.extension===P.n.SVG&&this.props.enableSVGs?C.a.createElement("img",{alt:"file thumbnail image",className:"post-image normal",src:Object(ii.getFileUrl)(e.id)}):C.a.createElement("div",{className:"file-icon "+Object(I.A)(t)})}}!function(e,t,a){t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a}(jr,"propTypes",{enableSVGs:v.a.bool.isRequired,fileInfo:v.a.object.isRequired});var Ar=Object(n.connect)((function(e){return{enableSVGs:"true"===Object(d.getConfig)(e).EnableSVGs}}))(jr);function Rr(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class kr extends C.a.PureComponent{constructor(e){super(e),Rr(this,"loadFiles",()=>{const e=this.props.fileInfo;if(Object(I.y)(e.extension)===P.n.IMAGE){const t=Object(ii.getFileThumbnailUrl)(e.id);Object(I.fb)(t,this.handleImageLoaded)}else e.extension===P.n.SVG&&this.props.enableSVGs&&Object(I.fb)(Object(ii.getFileUrl)(e.id),this.handleImageLoaded)}),Rr(this,"handleImageLoaded",()=>{this.mounted&&this.setState({loaded:!0})}),Rr(this,"onAttachmentClick",e=>{e.preventDefault(),e.target.blur(),this.props.handleImageClick&&this.props.handleImageClick(this.props.index)}),this.state={loaded:Object(I.y)(e.fileInfo.extension)!==P.n.IMAGE,fileInfo:e.fileInfo}}componentDidMount(){this.mounted=!0,this.loadFiles()}static getDerivedStateFromProps(e,t){if(e.fileInfo.id!==t.fileInfo.id){const t=e.fileInfo.extension;return{loaded:Object(I.y)(t)!==P.n.IMAGE&&!(e.enableSVGs&&t===P.n.SVG),fileInfo:e.fileInfo}}return null}componentDidUpdate(e){this.state.loaded||this.props.fileInfo.id===e.fileInfo.id||this.loadFiles()}componentWillUnmount(){this.mounted=!1}render(){const{compactDisplay:e,fileInfo:t}=this.props,a=Object(hi.f)(t.name);let n,s;const i="".concat(Object(I.gb)("file_attachment.thumbnail","file thumbnail")," ").concat(t.name).toLowerCase();let r;return e||(n=C.a.createElement("a",{"aria-label":i,className:"post-image__thumbnail",href:"#",onClick:this.onAttachmentClick},this.state.loaded?C.a.createElement(Ar,{fileInfo:t}):C.a.createElement("div",{className:"post-image__load"})),s=C.a.createElement("div",{className:"post-image__detail_wrapper",onClick:this.onAttachmentClick},C.a.createElement("div",{className:"post-image__detail"},C.a.createElement("span",{className:"post-image__name"},a),C.a.createElement("span",{className:"post-image__type"},t.extension.toUpperCase()),C.a.createElement("span",{className:"post-image__size"},Object(I.m)(t.size))))),this.props.canDownloadFiles&&(r=C.a.createElement(gi,{fileInfo:t,compactDisplay:e,canDownload:this.props.canDownloadFiles,handleImageClick:this.onAttachmentClick,iconClass:"post-image__download"},C.a.createElement(Nr,null))),C.a.createElement("div",{className:"post-image__column"},n,C.a.createElement("div",{className:"post-image__details"},s,r))}}Rr(kr,"propTypes",{fileInfo:v.a.object.isRequired,index:v.a.number.isRequired,handleImageClick:v.a.func,compactDisplay:v.a.bool,canDownloadFiles:v.a.bool,enableSVGs:v.a.bool.isRequired});var Lr=Object(n.connect)((function(e){const t=Object(d.getConfig)(e);return{canDownloadFiles:Object(hi.a)(t),enableSVGs:"true"===t.EnableSVGs}}))(kr),Dr=a(1218),xr=a(1267);function Ur(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const qr=50;class Hr extends C.a.PureComponent{constructor(e){super(e),Ur(this,"imageLoaded",()=>{this.mounted&&this.setState({loaded:!0})}),Ur(this,"handleImageClick",e=>{e.preventDefault(),this.setState({showPreviewModal:!0})}),Ur(this,"showPreviewModal",()=>{this.setState({showPreviewModal:!1})}),Ur(this,"toggleEmbedVisibility",()=>{this.props.actions.toggleEmbedVisibility(this.props.postId)}),this.state={loaded:!1,showPreviewModal:!1,dimensions:{width:e.fileInfo.width,height:e.fileInfo.height}}}componentDidMount(){this.mounted=!0}static getDerivedStateFromProps(e,t){return e.fileInfo.width!==t.dimensions.width||e.fileInfo.height!==t.dimensions.height?{dimensions:{width:e.fileInfo.width,height:e.fileInfo.height}}:null}componentWillUnmount(){this.mounted=!1}render(){const{fileInfo:e,compactDisplay:t}=this.props,{loaded:a}=this.state,{has_preview_image:n,id:s}=e,i=Object(ii.getFileUrl)(s),r=n?Object(ii.getFilePreviewUrl)(s):i,o=e.height,l=e.width;let c="";(l<qr||o<qr)&&(c="min-preview ",o>l&&(c+="min-preview--portrait ")),t&&(c+=" compact-display");const d=C.a.createElement("button",{key:"toggle",className:"style--none post__embed-visibility color--link","data-expanded":this.props.isEmbedVisible,"aria-label":"Toggle Embed Visibility",onClick:this.toggleEmbedVisibility});let m="image-name";t&&(m+=" compact-display");const u=C.a.createElement("div",{"data-testid":"image-name",className:m},d,C.a.createElement("div",{onClick:this.handleImageClick},e.name));let p,h="";let g={},b={},f="";return Object(I.y)(e.extension)===P.n.SVG&&(f="svg",this.state.dimensions.height?g={width:"100%"}:b={height:350,maxWidth:"100%"}),a&&(p=C.a.createElement(xr.a,{show:this.state.showPreviewModal,onModalDismissed:this.showPreviewModal,fileInfos:[e],postId:this.props.postId}),h="image-fade-in"),C.a.createElement("div",{className:"file-view--single"},C.a.createElement("div",{className:"file__image"},u,this.props.isEmbedVisible&&C.a.createElement("div",{className:"image-container",style:b},C.a.createElement("div",{className:"image-loaded ".concat(h," ").concat(f),style:g},C.a.createElement(Dr.a,{onClick:this.handleImageClick,className:c,src:r,dimensions:this.state.dimensions,fileInfo:this.props.fileInfo,onImageLoaded:this.imageLoaded,showLoader:this.props.isEmbedVisible,handleSmallImageContainer:!0}))),p))}}Ur(Hr,"propTypes",{postId:v.a.string.isRequired,fileInfo:v.a.object.isRequired,isRhsOpen:v.a.bool.isRequired,compactDisplay:v.a.bool,isEmbedVisible:v.a.bool,actions:v.a.shape({toggleEmbedVisibility:v.a.func.isRequired}).isRequired}),Ur(Hr,"defaultProps",{fileInfo:{},compactDisplay:!1});var Fr=Object(n.connect)((function(e){return{isRhsOpen:Object(Cs.c)(e)}}),(function(e){return{actions:Object(s.bindActionCreators)({toggleEmbedVisibility:U.l},e)}}))(Hr);function Br(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class Gr extends C.a.Component{constructor(e){super(e),Br(this,"handleImageClick",e=>{this.setState({showPreviewModal:!0,startImgIndex:e})}),Br(this,"hidePreviewModal",()=>{this.setState({showPreviewModal:!1})}),this.state={showPreviewModal:!1,startImgIndex:0}}render(){const{compactDisplay:e,enableSVGs:t,fileInfos:a,fileCount:n,locale:s}=this.props;if(a&&1===a.length){const n=Object(I.y)(a[0].extension);if(n===P.n.IMAGE||n===P.n.SVG&&t)return C.a.createElement(Fr,{fileInfo:a[0],isEmbedVisible:this.props.isEmbedVisible,postId:this.props.post.id,compactDisplay:e})}else if(1===n&&this.props.isEmbedVisible)return C.a.createElement("div",{style:Vr.minHeightPlaceholder});const i=Object(ii.sortFileInfos)(a,s),r=[];if(i&&i.length>0)for(let t=0;t<i.length;t++){const a=i[t];r.push(C.a.createElement(Lr,{key:a.id,fileInfo:i[t],index:t,handleImageClick:this.handleImageClick,compactDisplay:e}))}else if(n>0)for(let e=0;e<n;e++)r.push(C.a.createElement("div",{key:"fileCount-".concat(e),className:"post-image__column post-image__column--placeholder"}));return C.a.createElement(C.a.Fragment,null,C.a.createElement("div",{"data-testid":"fileAttachmentList",className:"post-image__columns clearfix"},r),C.a.createElement(xr.a,{show:this.state.showPreviewModal,onModalDismissed:this.hidePreviewModal,startIndex:this.state.startImgIndex,fileInfos:i,postId:this.props.post.id}))}}Br(Gr,"propTypes",{post:v.a.object.isRequired,fileCount:v.a.number.isRequired,fileInfos:v.a.arrayOf(v.a.object),compactDisplay:v.a.bool,enableSVGs:v.a.bool,isEmbedVisible:v.a.bool,locale:v.a.string.isRequired});const Vr={minHeightPlaceholder:{minHeight:"385px"}};var Wr=Object(n.connect)((function(){const e=Object(es.makeGetFilesForPost)();return function(t,a){const n=a.post?a.post.id:"",s=e(t,n);let i=0;return a.post.metadata&&a.post.metadata.files?i=(a.post.metadata.files||[]).length:a.post.file_ids?i=a.post.file_ids.length:a.post.filenames&&(i=a.post.filenames.length),{enableSVGs:"true"===Object(d.getConfig)(t).EnableSVGs,fileInfos:s,fileCount:i,isEmbedVisible:Object(B.b)(t,a.post.id),locale:Object(qs.a)(t)}}}))(Gr),zr=a(1176),Yr=a(1311);function Kr(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class Qr extends C.a.PureComponent{constructor(...e){super(...e),Kr(this,"getProfilePictureURL",()=>{const{post:e,user:t}=this.props;return t&&t.id===e.user_id?I.M(t):e.user_id?I.M(e.user_id):""}),Kr(this,"getStatus",(e,t,a)=>e||t||a&&a.is_bot?"":this.props.status),Kr(this,"getPostIconURL",(e,t,a)=>{const{enablePostIconOverride:n,hasImageProxy:s,post:i}=this.props,r=i.props;let o="",l="";return r&&(o=r.override_icon_url,l=r.use_user_icon),this.props.compactDisplay?"":!t&&a&&!l&&n?o&&""!==o?z.f(o,s):P.Q.DEFAULT_WEBHOOK_LOGO:e})}render(){const{compactDisplay:e,isBusy:t,isRHS:a,post:n,user:s,isBot:i}=this.props,r=z.o(n),o=z.m(n);if(r&&!e&&!o&&!i)return C.a.createElement(Yr.a,{className:"icon"});const l=z.e(n),c=!l&&!o,d=this.getProfilePictureURL(),m=this.getPostIconURL(d,l,o),u=n.props?n.props.override_icon_emoji:"",p="string"==typeof u&&""!==u,h=this.getStatus(l,o,s);return C.a.createElement(zr.a,{hasMention:c,isBusy:t,isRHS:a,size:"md",src:m,profileSrc:d,isEmoji:p,status:h,userId:s?s.id:null,username:s?s.username:null})}}Kr(Qr,"propTypes",{compactDisplay:v.a.bool.isRequired,enablePostIconOverride:v.a.bool.isRequired,hasImageProxy:v.a.bool.isRequired,isBusy:v.a.bool,isRHS:v.a.bool,post:v.a.object.isRequired,status:v.a.string,user:v.a.object,isBot:v.a.bool,postIconOverrideURL:v.a.string}),Kr(Qr,"defaultProps",{status:P.O.OFFLINE});var Jr=Object(n.connect)((function(e,t){const a=Object(d.getConfig)(e),n=Object(m.getUser)(e,t.userId);return{enablePostIconOverride:"true"===a.EnablePostIconOverride,hasImageProxy:"true"===a.HasImageProxy,status:Object(m.getStatusForUserId)(e,t.userId),isBot:Boolean(n&&n.is_bot),user:n}}))(Qr);function Zr(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function Xr(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class $r extends C.a.PureComponent{constructor(...e){super(...e),Xr(this,"retryPost",e=>{e.preventDefault();const t=function(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?Zr(a,!0).forEach((function(t){Xr(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):Zr(a).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}({},this.props.post);Reflect.deleteProperty(t,"id"),this.props.actions.createPost(t)}),Xr(this,"cancelPost",e=>{e.preventDefault(),this.props.actions.removePost(this.props.post)})}render(){return C.a.createElement("span",{className:"pending-post-actions"},C.a.createElement("a",{className:"post-retry",href:"#",onClick:this.retryPost},C.a.createElement(V.a,{id:"pending_post_actions.retry",defaultMessage:"Retry"}))," - ",C.a.createElement("a",{className:"post-cancel",href:"#",onClick:this.cancelPost},C.a.createElement(V.a,{id:"pending_post_actions.cancel",defaultMessage:"Cancel"})))}}Xr($r,"propTypes",{post:v.a.object.isRequired,actions:v.a.shape({createPost:v.a.func.isRequired,removePost:v.a.func.isRequired}).isRequired});var eo=Object(n.connect)(null,(function(e){return{actions:Object(s.bindActionCreators)({createPost:U.b,removePost:k.removePost},e)}}))($r);class to extends C.a.PureComponent{render(){return C.a.createElement("span",this.props,C.a.createElement(V.a,{id:"generic_icons.flag",defaultMessage:"Flag Icon"},e=>C.a.createElement("svg",{width:"14px",height:"14px",viewBox:"0 0 16 16",role:"img","aria-label":e},C.a.createElement("g",{stroke:"none",strokeWidth:"1",fill:"inherit",fillRule:"evenodd"},C.a.createElement("g",{transform:"translate(-1106.000000, -33.000000)",fillRule:"nonzero",fill:"inherit"},C.a.createElement("g",null,C.a.createElement("g",{transform:"translate(1096.000000, 22.000000)"},C.a.createElement("g",{transform:"translate(10.000000, 11.000000)"},C.a.createElement("path",{d:"M8,1 L2,1 C2,0.447 1.553,0 1,0 C0.447,0 0,0.447 0,1 L0,15.5 C0,15.776 0.224,16 0.5,16 L1.5,16 C1.776,16 2,15.776 2,15.5 L2,11 L7,11 L7,12 C7,12.553 7.447,13 8,13 L15,13 C15.553,13 16,12.553 16,12 L16,4 C16,3.447 15.553,3 15,3 L9,3 L9,2 C9,1.447 8.553,1 8,1 Z M9,11 L9,9.5 C9,9.224 8.776,9 8.5,9 L2,9 L2,3 L7,3 L7,4.5 C7,4.776 7.224,5 7.5,5 L14,5 L14,11 L9,11 Z"})))))))))}}class ao extends C.a.PureComponent{render(){return C.a.createElement("span",this.props,C.a.createElement(V.a,{id:"generic_icons.flagged",defaultMessage:"Flagged Icon"},e=>C.a.createElement("svg",{width:"16px",height:"16px",viewBox:"0 0 16 16",role:"img","aria-label":e},C.a.createElement("g",{stroke:"none",strokeWidth:"1",fill:"inherit",fillRule:"evenodd"},C.a.createElement("g",{transform:"translate(-1073.000000, -33.000000)",fillRule:"nonzero",fill:"inherit"},C.a.createElement("g",{transform:"translate(-1.000000, 0.000000)"},C.a.createElement("g",{transform:"translate(1064.000000, 22.000000)"},C.a.createElement("g",{transform:"translate(10.000000, 11.000000)"},C.a.createElement("path",{d:"M8,1 L2,1 C2,0.447 1.553,0 1,0 C0.447,0 0,0.447 0,1 L0,15.5 C0,15.776 0.224,16 0.5,16 L1.5,16 C1.776,16 2,15.776 2,15.5 L2,11 L7,11 L7,12 C7,12.553 7.447,13 8,13 L15,13 C15.553,13 16,12.553 16,12 L16,4 C16,3.447 15.553,3 15,3 L9,3 L9,2 C9,1.447 8.553,1 8,1 Z"})))))))))}}function no(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class so extends C.a.PureComponent{constructor(){super(),no(this,"handlePress",e=>{e.preventDefault();const{actions:t,isFlagged:a,postId:n}=this.props;a?t.unflagPost(n):t.flagPost(n)}),no(this,"handleA11yActivateEvent",()=>{this.setState({a11yActive:!0})}),no(this,"handleA11yDeactivateEvent",()=>{this.setState({a11yActive:!1})}),this.buttonRef=C.a.createRef(),this.state={a11yActive:!1}}componentDidMount(){this.buttonRef.current&&(this.buttonRef.current.addEventListener(P.c.ACTIVATE,this.handleA11yActivateEvent),this.buttonRef.current.addEventListener(P.c.DEACTIVATE,this.handleA11yDeactivateEvent))}componentWillUnmount(){this.buttonRef.current&&(this.buttonRef.current.removeEventListener(P.c.ACTIVATE,this.handleA11yActivateEvent),this.buttonRef.current.removeEventListener(P.c.DEACTIVATE,this.handleA11yDeactivateEvent))}componentDidUpdate(){this.state.a11yActive&&this.buttonRef.current&&this.buttonRef.current.dispatchEvent(new Event(P.c.UPDATE))}render(){if(this.props.isEphemeral)return null;const e=this.props.isFlagged,t=e?"visible":"";let a;return a=e?C.a.createElement(ao,{className:"icon"}):C.a.createElement(to,{className:"icon"}),C.a.createElement("button",{ref:this.buttonRef,id:"".concat(this.props.location,"_flagIcon_").concat(this.props.postId),"aria-label":e?Object(I.gb)("flag_post.unflag","Unflag").toLowerCase():Object(I.gb)("flag_post.flag","Flag for follow up").toLowerCase(),className:"style--none flag-icon__container "+t,onClick:this.handlePress},C.a.createElement(ui.a,{key:"flagtooltipkey"+t,delayShow:P.Q.OVERLAY_TIME_DELAY,placement:"top",overlay:C.a.createElement(mi.a,{id:"flagTooltip"},C.a.createElement(V.a,{id:e?Object(de.b)("flag_post.unflag"):Object(de.b)("flag_post.flag"),defaultMessage:e?"Unflag":"Flag for follow up"}))},a))}}no(so,"propTypes",{location:v.a.oneOf([P.t.CENTER,P.t.RHS_ROOT,P.t.RHS_COMMENT,P.t.SEARCH]).isRequired,postId:v.a.string.isRequired,isFlagged:v.a.bool.isRequired,isEphemeral:v.a.bool,actions:v.a.shape({flagPost:v.a.func.isRequired,unflagPost:v.a.func.isRequired}).isRequired}),no(so,"defaultProps",{isEphemeral:!1,location:P.t.CENTER});var io=Object(n.connect)(null,(function(e){return{actions:Object(s.bindActionCreators)({flagPost:U.d,unflagPost:U.m},e)}}))(so),ro=a(1350);function oo(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class lo extends C.a.PureComponent{constructor(...e){super(...e),oo(this,"handleClick",()=>{Object(I.Y)()&&S.c()})}render(){const e=C.a.createElement(ro.a,{eventTime:this.props.eventTime});if(Object(M.n)()||!this.props.isPermalink)return C.a.createElement("div",{role:"presentation",className:"post__permalink"},e);const{location:t,postId:a,teamUrl:n}=this.props;return C.a.createElement(In.a,{id:"".concat(t,"_time_").concat(a),to:"".concat(n,"/pl/").concat(a),className:"post__permalink",onClick:this.handleClick},e)}}oo(lo,"propTypes",{isPermalink:v.a.bool.isRequired,eventTime:v.a.number.isRequired,location:v.a.oneOf([P.t.CENTER,P.t.RHS_ROOT,P.t.RHS_COMMENT,P.t.SEARCH]).isRequired,postId:v.a.string,teamUrl:v.a.string}),oo(lo,"defaultProps",{eventTime:0,location:P.t.CENTER});var co=Object(n.connect)((function(e){return{teamUrl:Object(u.getCurrentRelativeTeamUrl)(e)}}))(lo);function mo(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const uo=-7;class po extends C.a.PureComponent{constructor(...e){super(...e),mo(this,"handleAddEmoji",e=>{this.setState({showEmojiPicker:!1});const t=e.name||e.aliases[0];this.props.actions.addReaction(this.props.postId,t),this.props.toggleEmojiPicker()})}render(){const{channelId:e,location:t,postId:a,showEmojiPicker:n,teamId:s}=this.props;let i,r;return t!==P.t.RHS_ROOT&&t!==P.t.RHS_COMMENT||(i=fa.RHS_SPACE_REQUIRED_ABOVE,r=fa.RHS_SPACE_REQUIRED_BELOW),C.a.createElement(Or,{channelId:e,teamId:s,permissions:[yr.a.ADD_REACTION]},C.a.createElement("div",null,C.a.createElement(fa,{show:n,target:this.props.getDotMenuRef,onHide:this.props.toggleEmojiPicker,onEmojiClose:this.props.toggleEmojiPicker,onEmojiClick:this.handleAddEmoji,topOffset:uo,spaceRequiredAbove:i,n:!0,spaceRequiredBelow:r}),C.a.createElement(ui.a,{className:"hidden-xs",delayShow:500,placement:"top",overlay:C.a.createElement(mi.a,{id:"reaction-icon-tooltip",className:"hidden-xs"},C.a.createElement(V.a,{id:"post_info.tooltip.add_reactions",defaultMessage:"Add Reaction"}))},C.a.createElement("button",{id:"".concat(t,"_reaction_").concat(a),"aria-label":Object(I.gb)("post_info.tooltip.add_reactions","Add Reaction").toLowerCase(),className:"reacticon__container color--link style--none",onClick:this.props.toggleEmojiPicker},C.a.createElement(_t,{className:"icon icon--emoji"})))))}}mo(po,"propTypes",{channelId:v.a.string,postId:v.a.string.isRequired,teamId:v.a.string.isRequired,getDotMenuRef:v.a.func.isRequired,location:v.a.oneOf([P.t.CENTER,P.t.RHS_ROOT,P.t.RHS_COMMENT]).isRequired,showEmojiPicker:v.a.bool.isRequired,toggleEmojiPicker:v.a.func.isRequired,actions:v.a.shape({addReaction:v.a.func.isRequired}).isRequired}),mo(po,"defaultProps",{location:P.t.CENTER,showEmojiPicker:!1});var ho=Object(n.connect)(null,(function(e){return{actions:Object(s.bindActionCreators)({addReaction:U.a},e)}}))(po),go=a(602),bo=a.n(go);function fo(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class _o extends C.a.PureComponent{constructor(...e){super(...e),fo(this,"handleAddReaction",e=>{e.preventDefault();const{actions:t,post:a,emojiName:n}=this.props;t.addReaction(a.id,n)}),fo(this,"handleRemoveReaction",e=>{e.preventDefault(),this.props.actions.removeReaction(this.props.post.id,this.props.emojiName)}),fo(this,"loadMissingProfiles",async()=>{const e=this.props.reactions.map(e=>e.user_id);this.props.actions.getMissingProfilesByIds(e)}),fo(this,"getSortedUsers",e=>{let t=!1;const a=this.props.reactions.sort((e,t)=>e.create_at-t.create_at).reduce((a,n)=>{if(n.user_id===this.props.currentUserId)t=!0;else{const t=this.props.profiles.find(e=>e.id===n.user_id);t&&a.push(e(t))}return a},[]);return t&&a.unshift(I.gb("reaction.you","You")),{currentUserReacted:t,users:a}})}render(){if(!this.props.emojiImageUrl)return null;const{currentUserReacted:e,users:t}=this.getSortedUsers(I.v),a=this.props.otherUsersCount;let n,s;n=a>0?t.length>0?C.a.createElement(V.a,{id:"reaction.usersAndOthersReacted",defaultMessage:"{users} and {otherUsers, number} other {otherUsers, plural, one {user} other {users}}",values:{users:t.join(", "),otherUsers:a}}):C.a.createElement(V.a,{id:"reaction.othersReacted",defaultMessage:"{otherUsers, number} {otherUsers, plural, one {user} other {users}}",values:{otherUsers:a}}):t.length>1?C.a.createElement(V.a,{id:"reaction.usersReacted",defaultMessage:"{users} and {lastUser}",values:{users:t.slice(0,-1).join(", "),lastUser:t[t.length-1]}}):t[0],s=t.length+a>1?e?C.a.createElement(V.a,{id:"reaction.reactionVerb.youAndUsers",defaultMessage:"reacted"}):C.a.createElement(V.a,{id:"reaction.reactionVerb.users",defaultMessage:"reacted"}):e?C.a.createElement(V.a,{id:"reaction.reactionVerb.you",defaultMessage:"reacted"}):C.a.createElement(V.a,{id:"reaction.reactionVerb.user",defaultMessage:"reacted"});const i=C.a.createElement(V.a,{id:"reaction.reacted",defaultMessage:"{users} {reactionVerb} with {emoji}",values:{users:C.a.createElement("b",null,n),reactionVerb:s,emoji:C.a.createElement("b",null,":"+this.props.emojiName+":")}});let r,o,l="post-reaction";const c=this.props.emojiName.replace(/_/g," ");let d="".concat(I.gb("reaction.reactWidth.ariaLabel","react with")," ").concat(c);return e?(this.props.canRemoveReaction?(r=this.handleRemoveReaction,d="".concat(I.gb("reaction.removeReact.ariaLabel","remove reaction")," ").concat(c),o=C.a.createElement(V.a,{id:"reaction.clickToRemove",defaultMessage:"(click to remove)"})):l+=" post-reaction--read-only",l+=" post-reaction--current-user"):!e&&this.props.canAddReaction?(r=this.handleAddReaction,o=C.a.createElement(V.a,{id:"reaction.clickToAdd",defaultMessage:"(click to add)"})):l+=" post-reaction--read-only",C.a.createElement("button",{id:"postReaction-".concat(this.props.post.id,"-").concat(this.props.emojiName),"aria-label":d,className:"style--none ".concat(l),onClick:r},C.a.createElement(ui.a,{delayShow:500,placement:"top",shouldUpdatePosition:!0,overlay:C.a.createElement(mi.a,{id:"".concat(this.props.post.id,"-").concat(this.props.emojiName,"-reaction")},i,C.a.createElement("br",null),o),onEnter:this.loadMissingProfiles},C.a.createElement("span",{className:"d-flex align-items-center"},C.a.createElement("span",{className:"post-reaction__emoji emoticon",style:{backgroundImage:"url("+this.props.emojiImageUrl+")"}}),C.a.createElement("span",{className:"post-reaction__count"},this.props.reactionCount))))}}function Eo(e,t,a,n,s,i,r,o){return!!Object(D.haveIChannelPermission)(e,{team:t,channel:a,permission:o})&&!(n===bo.a.DEFAULT_CHANNEL&&"true"===s.ExperimentalTownSquareIsReadOnly&&"true"===i.IsLicensed&&!r.roles.includes("system_admin"))}fo(_o,"propTypes",{post:v.a.object.isRequired,currentUserId:v.a.string.isRequired,emojiName:v.a.string.isRequired,reactionCount:v.a.number.isRequired,profiles:v.a.array.isRequired,otherUsersCount:v.a.number.isRequired,reactions:v.a.arrayOf(v.a.object).isRequired,canAddReaction:v.a.bool.isRequired,canRemoveReaction:v.a.bool.isRequired,emojiImageUrl:v.a.string.isRequired,actions:v.a.shape({addReaction:v.a.func.isRequired,getMissingProfilesByIds:v.a.func.isRequired,removeReaction:v.a.func.isRequired})});var vo=Object(n.connect)((function(){const e=Object(m.makeGetProfilesForReactions)();return function(t,a){const n=Object(d.getConfig)(t),s=Object(d.getLicense)(t),i=Object(m.getCurrentUser)(t),r=e(t,a.reactions);let o;if(St.a.has(a.emojiName))o=St.d[St.a.get(a.emojiName)];else{o=Object(Fs.getCustomEmojisByName)(t).get(a.emojiName)}let l="";o&&(l=Object(qt.getEmojiImageUrl)(o));const c=Object(p.getChannel)(t,a.post.channel_id)||{},u=0!==c.delete_at,h=c.team_id;let g=!1,b=!1;return u||(g=Eo(t,h,a.post.channel_id,c.name,n,s,i,yr.a.REMOVE_REACTION),b=Eo(t,h,a.post.channel_id,c.name,n,s,i,yr.a.ADD_REACTION)),{profiles:r,otherUsersCount:a.reactions.length-r.length,currentUserId:Object(m.getCurrentUserId)(t),reactionCount:a.reactions.length,canAddReaction:g,canRemoveReaction:b,emojiImageUrl:l}}}),(function(e){return{actions:Object(s.bindActionCreators)({addReaction:U.a,removeReaction:k.removeReaction,getMissingProfilesByIds:r.getMissingProfilesByIds},e)}}))(_o);function yo(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const Co=15,wo=260;class Oo extends C.a.PureComponent{constructor(e){super(e),yo(this,"getTarget",()=>this.refs.addReactionButton),yo(this,"handleEmojiClick",e=>{this.setState({showEmojiPicker:!1});const t=e.name||e.aliases[0];this.props.actions.addReaction(this.props.post.id,t)}),yo(this,"hideEmojiPicker",()=>{this.setState({showEmojiPicker:!1})}),yo(this,"toggleEmojiPicker",()=>{this.setState({showEmojiPicker:!this.state.showEmojiPicker})}),this.state={showEmojiPicker:!1}}render(){const e=new Map,t=[];if(this.props.reactions)for(const a of Object.values(this.props.reactions)){const n=a.emoji_name;e.has(n)?e.get(n).push(a):(t.push(n),e.set(n,[a]))}if(0===e.size)return null;const a=t.map(t=>C.a.createElement(vo,{key:t,post:this.props.post,emojiName:t,reactions:e.get(t)||[]})),n=this.getTarget();let s=Co;n&&(s=window.innerWidth-n.getBoundingClientRect().right-wo)<0&&(s=Co);let i=null;if(this.props.enableEmojiPicker){const e=C.a.createElement(mi.a,{id:"addReactionTooltip"},C.a.createElement(V.a,{id:"reaction_list.addReactionTooltip",defaultMessage:"Add reaction"}));i=C.a.createElement("span",{className:"emoji-picker__container"},C.a.createElement(fa,{show:this.state.showEmojiPicker,target:this.getTarget,onHide:this.hideEmojiPicker,onEmojiClose:this.hideEmojiPicker,onEmojiClick:this.handleEmojiClick,rightOffset:s,topOffset:-5}),C.a.createElement(ui.a,{placement:"top",delayShow:P.Q.OVERLAY_TIME_DELAY,overlay:e},C.a.createElement(Or,{channelId:this.props.post.channel_id,teamId:this.props.teamId,permissions:[yr.a.ADD_REACTION]},C.a.createElement("button",{"aria-label":Object(I.gb)("reaction.add.ariaLabel","add reaction"),className:"style--none post-reaction",onClick:this.toggleEmojiPicker},C.a.createElement("span",{id:"addReaction-".concat(this.props.post.id),className:"post-reaction__add",ref:"addReactionButton"},"+")))))}let r="post-add-reaction";return this.state.showEmojiPicker&&(r+=" post-add-reaction-emoji-picker-open"),C.a.createElement("div",{"aria-label":Object(I.gb)("reaction.container.ariaLabel","reactions"),className:"post-reaction-list"},a,C.a.createElement("div",{className:r},i))}}yo(Oo,"propTypes",{post:v.a.object.isRequired,teamId:v.a.string,reactions:v.a.object,enableEmojiPicker:v.a.bool.isRequired,actions:v.a.shape({addReaction:v.a.func.isRequired})});var To=Object(n.connect)((function(){const e=Object(qa.makeGetReactionsForPost)();return function(t,a){const n="true"===Object(d.getConfig)(t).EnableEmojiPicker&&!a.isReadOnly;return{teamId:(Object(p.getChannel)(t,a.post.channel_id)||{}).team_id,reactions:e(t,a.post.id),enableEmojiPicker:n}}}),(function(e){return{actions:Object(s.bindActionCreators)({addReaction:U.a},e)}}))(Oo),So=a(1650),Po=a.n(So),Mo=a(1239);function Io(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const No=600,jo=200,Ao=22;class Ro extends C.a.PureComponent{constructor(e){super(e),Io(this,"toggleCollapse",e=>{e.preventDefault(),this.setState(e=>({isCollapsed:!e.isCollapsed}))}),Io(this,"checkTextOverflow",()=>{this.overflowRef&&window.cancelAnimationFrame(this.overflowRef),this.overflowRef=window.requestAnimationFrame(()=>{const e=this.refs.textContainer;let t=!1;e&&e.scrollHeight>this.maxHeight&&(t=!0),t!==this.state.isOverflow&&this.setState({isOverflow:t})})}),Io(this,"handleResize",()=>{this.checkTextOverflow()}),this.maxHeight=this.props.isAttachmentText?jo:No,this.state={isCollapsed:!0,isOverflow:!1}}componentDidMount(){this.checkTextOverflow(),window.addEventListener("resize",this.handleResize)}componentDidUpdate(e){this.props.text===e.text&&this.props.isRHSExpanded===e.isRHSExpanded&&this.props.isRHSOpen===e.isRHSOpen&&this.props.checkOverflow===e.checkOverflow||this.checkTextOverflow()}componentWillUnmount(){window.removeEventListener("resize",this.handleResize),this.overflowRef&&window.cancelAnimationFrame(this.overflowRef)}render(){const{isCollapsed:e,isOverflow:t}=this.state,{children:a,isAttachmentText:n,compactDisplay:s}=this.props;let i,r="post-message";e?(i=this.maxHeight,r+=" post-message--collapsed"):r+=" post-message--expanded";let o="post-collapse__gradient",l="post-collapse__show-more";n&&(o="post-attachment-collapse__gradient",l="post-attachment-collapse__show-more");let c=null;if(t){!n&&e&&s&&(i-=Ao);let t="fa fa-angle-up",a=Object(I.gb)("post_info.message.show_less","Show Less");e&&(t="fa fa-angle-down",a=Object(I.gb)("post_info.message.show_more","Show More")),c=C.a.createElement("div",{className:"post-collapse"},C.a.createElement("div",{id:"collapseGradient",className:o}),C.a.createElement("div",{className:l},C.a.createElement("div",{className:"post-collapse__show-more-line"}),C.a.createElement("button",{id:"showMoreButton",className:"post-collapse__show-more-button",onClick:this.toggleCollapse},C.a.createElement("span",{className:t}),a),C.a.createElement("div",{className:"post-collapse__show-more-line"}))),r+=" post-message--overflow"}return C.a.createElement("div",{className:r},C.a.createElement("div",{style:{maxHeight:i},className:"post-message__text-container",ref:"textContainer"},a),c)}}Io(Ro,"propTypes",{children:v.a.node,checkOverflow:v.a.number,isAttachmentText:v.a.bool,isRHSExpanded:v.a.bool.isRequired,isRHSOpen:v.a.bool.isRequired,text:v.a.string,compactDisplay:v.a.bool.isRequired});var ko=Object(n.connect)((function(e){return{isRHSExpanded:Object(Cs.a)(e),isRHSOpen:Object(Cs.c)(e),compactDisplay:Object(c.get)(e,P.B.CATEGORY_DISPLAY_SETTINGS,P.B.MESSAGE_DISPLAY,P.B.MESSAGE_DISPLAY_DEFAULT)===P.B.MESSAGE_DISPLAY_COMPACT}}))(Ro);class Lo extends C.a.PureComponent{render(){const{action:e,handleAction:t,disabled:a}=this.props;return C.a.createElement("button",{"data-action-id":e.id,"data-action-cookie":e.cookie,disabled:a,key:e.id,onClick:t},C.a.createElement(va.a,{message:e.name,options:{mentionHighlight:!1,markdown:!1,autolinkedUrlSchemes:[]}}))}}!function(e,t,a){t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a}(Lo,"propTypes",{action:v.a.object.isRequired,handleAction:v.a.func.isRequired,disabled:v.a.bool});var Do=a(1366),xo=a(1288),Uo=a(1367),qo=a(1369);var Ho=C.a.createContext({handlePopupOpened:null});function Fo(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class Bo extends C.a.PureComponent{constructor(e){super(e),Fo(this,"handleSelected",e=>{if(!e)return;const{action:t}=this.props;let a="",n="";"users"===t.data_source?(n=e.username,a=e.id):"channels"===t.data_source?(n=e.display_name,a=e.id):(n=e.text,a=e.value),this.props.actions.selectAttachmentMenuAction(this.props.postId,this.props.action.id,this.props.action.cookie,this.props.action.data_source,n,a),this.setState({value:n})});const t=e.action;let a;this.providers=[],t&&("users"===t.data_source?this.providers=[new xo.a(e.actions.autocompleteUsers)]:"channels"===t.data_source?this.providers=[new Uo.a(e.actions.autocompleteChannels)]:t.options&&(this.providers=[new Do.a(t.options)]));let n="";t.default_option&&t.options&&(n=(a=t.options.find(e=>e.value===t.default_option))?a.text:""),this.state={selected:a,value:n}}static getDerivedStateFromProps(e,t){return e.selected&&e.selected!==t.selected?{value:e.selected.text,selected:e.selected}:null}render(){const{action:e,disabled:t}=this.props;return C.a.createElement(Ho.Consumer,null,({handlePopupOpened:a})=>C.a.createElement(qo.a,{providers:this.providers,onSelected:this.handleSelected,placeholder:e.name,inputClassName:"post-attachment-dropdown",value:this.state.value,toggleFocus:a,disabled:t}))}}Fo(Bo,"propTypes",{postId:v.a.string.isRequired,action:v.a.object.isRequired,selected:v.a.object,disabled:v.a.bool,actions:v.a.shape({autocompleteChannels:v.a.func.isRequired,selectAttachmentMenuAction:v.a.func.isRequired,autocompleteUsers:v.a.func.isRequired}).isRequired});var Go=Object(n.connect)((function(e,t){const a=e.views.posts.menuActions[t.postId];return{selected:a&&a[t.action&&t.action.id]}}),(function(e){return{actions:Object(s.bindActionCreators)({selectAttachmentMenuAction:F,autocompleteChannels:_a.b,autocompleteUsers:cs.b},e)}}))(Bo),Vo=a(551);class Wo extends Vo.a{link(e,t,a){let n=e;Object(Un.c)(e)||(n="http://".concat(n));let s='<a class="theme markdown__link" href="'.concat(n,'" target="_blank"');return t&&(s+=' title="'+t+'"'),s+=">".concat(a,"</a>")}}function zo(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class Yo extends C.a.PureComponent{constructor(e){super(e),zo(this,"handleHeightReceivedForThumbUrl",({height:e})=>{const{attachment:t}=this.props;(!this.props.imagesMetadata||this.props.imagesMetadata&&!this.props.imagesMetadata[t.thumb_url])&&this.handleHeightReceived(e)}),zo(this,"handleHeightReceivedForImageUrl",({height:e})=>{const{attachment:t}=this.props;(!this.props.imagesMetadata||this.props.imagesMetadata&&!this.props.imagesMetadata[t.image_url])&&this.handleHeightReceived(e)}),zo(this,"handleHeightReceived",e=>{this.mounted&&e>0&&this.setState(e=>({checkOverflow:e.checkOverflow+1}))}),zo(this,"renderPostActions",()=>{const e=this.props.attachment.actions;if(!e||!e.length)return"";const t=[];return e.forEach(e=>{if(e.id&&e.name)switch(e.type){case"select":t.push(C.a.createElement(Go,{key:e.id,postId:this.props.postId,action:e,disabled:e.disabled}));break;case"button":default:t.push(C.a.createElement(Lo,{key:e.id,action:e,disabled:e.disabled,handleAction:this.handleAction}))}}),C.a.createElement("div",{className:"attachment-actions"},t)}),zo(this,"handleAction",e=>{e.preventDefault();const t=e.currentTarget.getAttribute("data-action-id"),a=e.currentTarget.getAttribute("data-action-cookie");this.props.actions.doPostActionWithCookie(this.props.postId,t,a)}),zo(this,"getFieldsTable",()=>{const e=this.props.attachment.fields;if(!e||!e.length)return"";const t=[];let a=[],n=[],s=0,i=!1,r=0;const o={markdown:!1,mentionHighlight:!1};return e.forEach((e,l)=>{(2===s||!0!==e.short||i)&&(t.push(C.a.createElement("table",{className:"attachment-fields",key:"attachment__table__"+r},C.a.createElement("thead",null,C.a.createElement("tr",null,a)),C.a.createElement("tbody",null,C.a.createElement("tr",null,n)))),a=[],n=[],s=0,r+=1,i=!1),a.push(C.a.createElement("th",{className:"attachment-field__caption",key:"attachment__field-caption-"+l+"__"+r,width:"50%"},C.a.createElement(va.a,{message:e.title,options:o}))),n.push(C.a.createElement("td",{className:"attachment-field",key:"attachment__field-"+l+"__"+r},C.a.createElement(va.a,{message:e.value}))),s+=1,i=!(!0===e.short)}),a.length>0&&t.push(C.a.createElement("table",{className:"attachment-fields",key:"attachment__table__"+r},C.a.createElement("thead",null,C.a.createElement("tr",null,a)),C.a.createElement("tbody",null,C.a.createElement("tr",null,n)))),C.a.createElement("div",null,t)}),this.state={checkOverflow:0},this.imageProps={onImageLoaded:this.handleHeightReceived}}componentDidMount(){this.mounted=!0}componentWillUnmount(){this.mounted=!1}render(){const{attachment:e,options:t}=this.props;let a,n="";e.pretext&&(n="attachment--pretext",a=C.a.createElement("div",{className:"attachment__thumb-pretext"},C.a.createElement(va.a,{message:e.pretext})));let s,i,r,o,l,c=[];if((e.author_name||e.author_icon)&&(e.author_icon&&c.push(C.a.createElement(Mo.a,{key:"attachment__author-icon",src:e.author_icon,imageMetadata:this.props.imagesMetadata[e.author_icon]},e=>C.a.createElement("img",{alt:"attachment author icon",className:"attachment__author-icon",src:e,height:"14",width:"14"}))),e.author_name&&c.push(C.a.createElement("span",{className:"attachment__author-name",key:"attachment__author-name"},e.author_name))),e.author_link&&Object(Un.f)(e.author_link)&&(c=C.a.createElement("a",{href:e.author_link,target:"_blank",rel:"noopener noreferrer"},c)),e.title&&(s=e.title_link&&Object(Un.f)(e.title_link)?C.a.createElement("h1",{className:"attachment__title"},C.a.createElement("a",{className:"attachment__title-link",href:e.title_link,target:"_blank",rel:"noopener noreferrer"},e.title)):C.a.createElement("h1",{className:"attachment__title"},C.a.createElement(va.a,{message:e.title,options:{mentionHighlight:!1,renderer:new Wo,autolinkedUrlSchemes:[]}}))),e.text&&(i=C.a.createElement(ko,{checkOverflow:this.state.checkOverflow,isAttachmentText:!0,text:e.text},C.a.createElement(va.a,{message:e.text||"",options:t,imageProps:this.imageProps}))),e.image_url){const t=this.props.imagesMetadata[e.image_url];r=C.a.createElement("div",{className:"attachment__image-container"},C.a.createElement(Mo.a,{src:e.image_url,imageMetadata:t},e=>C.a.createElement(Dr.a,{className:"attachment__image",onImageLoaded:this.handleHeightReceivedForImageUrl,src:e,dimensions:t})))}if(e.footer){let t;if(e.footer_icon){const a=this.props.imagesMetadata[e.footer_icon];t=C.a.createElement(Mo.a,{src:e.footer_icon,imageMetadata:a},e=>C.a.createElement("img",{alt:"attachment footer icon",className:"attachment__footer-icon",src:e,height:"16",width:"16"}))}o=C.a.createElement("div",{className:"attachment__footer-container"},t,C.a.createElement("span",null,Po()(e.footer,{length:P.j.MAX_ATTACHMENT_FOOTER_LENGTH,omission:"…"})))}if(e.thumb_url){const t=this.props.imagesMetadata[e.thumb_url];l=C.a.createElement("div",{className:"attachment__thumb-container"},C.a.createElement(Mo.a,{src:e.thumb_url,imageMetadata:t},e=>C.a.createElement(Dr.a,{onImageLoaded:this.handleHeightReceivedForThumbUrl,src:e,dimensions:t})))}const d=this.getFieldsTable(),m=this.renderPostActions();let u;return e.color&&"#"===e.color[0]&&(u={borderLeftColor:e.color}),C.a.createElement("div",{className:"attachment "+n,ref:"attachment"},a,C.a.createElement("div",{className:"attachment__content"},C.a.createElement("div",{className:u?"clearfix attachment__container":"clearfix attachment__container attachment__container--"+e.color,style:u},c,s,C.a.createElement("div",null,C.a.createElement("div",{className:l?"attachment__body":"attachment__body attachment__body--no_thumb",onClick:I.J},i,r,d,o,m),l,C.a.createElement("div",{style:Ko.footer})))))}}zo(Yo,"propTypes",{postId:v.a.string.isRequired,attachment:v.a.object.isRequired,options:v.a.object,imagesMetadata:v.a.object,actions:v.a.shape({doPostActionWithCookie:v.a.func.isRequired}).isRequired});const Ko={footer:{clear:"both"}};var Qo=Object(n.connect)(null,(function(e){return{actions:Object(s.bindActionCreators)({doPostActionWithCookie:k.doPostActionWithCookie},e)}}))(Yo);function Jo(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class Zo extends C.a.PureComponent{render(){const e=[];return this.props.attachments.forEach((t,a)=>{e.push(C.a.createElement(Qo,{attachment:t,postId:this.props.postId,key:"att_"+a,options:this.props.options,imagesMetadata:this.props.imagesMetadata}))}),C.a.createElement("div",{id:"messageAttachmentList_".concat(this.props.postId),className:"attachment__list"},e)}}function Xo(e,t,a="x",n="y"){return Math.sqrt(Math.pow(e[a]-t[a],2)+Math.pow(e[n]-t[n],2))}function $o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function el(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}Jo(Zo,"propTypes",{postId:v.a.string.isRequired,attachments:v.a.array.isRequired,options:v.a.object,imagesMetadata:v.a.object}),Jo(Zo,"defaultProps",{imagesMetadata:{}});const tl={height:80,width:80};class al extends C.a.PureComponent{constructor(...e){super(...e),el(this,"getImageMetadata",e=>{if(!e)return null;const t=this.props.post.metadata.images;return t?t[e]:null}),el(this,"isLargeImage",e=>{if(!e)return!1;const{height:t,width:a}=e;return a>=150&&a/t>=16/9}),el(this,"handleRemovePreview",async()=>{const e=Object.assign({},this.props.post.props);e[P.A.REMOVE_LINK_PREVIEW]="true";const t={id:this.props.post.id,props:e};return this.props.actions.editPost(t)})}renderImageToggle(){return C.a.createElement("button",{className:"style--none post__embed-visibility color--link","data-expanded":this.props.isEmbedVisible,"aria-label":"Toggle Embed Visibility",onClick:this.props.toggleEmbedVisibility})}renderLargeImage(e,t){return this.props.isEmbedVisible?C.a.createElement(Mo.a,{src:e,imageMetadata:t},e=>C.a.createElement(Dr.a,{className:"attachment__image attachment__image--opengraph large_image",src:e,dimensions:t})):null}renderSmallImage(e,t){return this.props.isEmbedVisible?C.a.createElement("div",{className:"attachment__image__container--opengraph"},C.a.createElement(Mo.a,{src:e,imageMetadata:t},e=>C.a.createElement(Dr.a,{className:"attachment__image attachment__image--opengraph",src:e,dimensions:t}))):null}truncateText(e){return e&&e.length>300?e.substring(0,300-"...".length)+"...":e}hasPreviewBeenRemoved(){const{post:e}=this.props;return!(!e||!e.props)&&"true"===e.props[P.A.REMOVE_LINK_PREVIEW]}render(){if(!this.props.previewEnabled||!this.props.enableLinkPreviews)return null;if(!this.props.post||Object(z.o)(this.props.post))return null;if(this.hasPreviewBeenRemoved())return null;const e=this.props.openGraphData;if(!e)return null;const t=function(e,t){if(!e||!e.images||0===e.images.length)return null;const a=e.images.map(e=>{const a=e.secure_url||e.url;return e.width&&e.height||!t||!t[a]?e:function(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?$o(a,!0).forEach((function(t){el(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):$o(a).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}({},e,{height:e.height||t[a].height,width:e.width||t[a].width})}),n=function(e,t,a="x",n="y"){var s={};for(const i of t)void 0===s[a]||void 0===s[n]?s=i:Xo(i,e,a,n)<Xo(s,e,a,n)&&(s=i);return s}(tl,a,"width","height");return n.secure_url||n.url}(e,this.props.post.metadata.images),a=this.getImageMetadata(t),n=this.isLargeImage(a);let s,i;return this.props.currentUserId===this.props.post.user_id&&(s=C.a.createElement("button",{type:"button",className:"btn-close","aria-label":"Close",onClick:this.handleRemovePreview,"data-testid":"removeLinkPreviewButton"},C.a.createElement("span",{"aria-hidden":"true"},"×"))),(e.description||t)&&(i=C.a.createElement("div",{className:"attachment__body attachment__body--opengraph"},C.a.createElement("div",null,this.truncateText(e.description)," ",t&&n&&this.renderImageToggle()),t&&n&&this.renderLargeImage(t,a))),C.a.createElement("div",{className:"attachment attachment--opengraph"},C.a.createElement("div",{className:"attachment__content"},C.a.createElement("div",{className:"clearfix attachment__container attachment__container--opengraph"},C.a.createElement("div",{className:"attachment__body__wrap attachment__body__wrap--opengraph"},C.a.createElement("span",{className:"sitename"},this.truncateText(e.site_name)),s,C.a.createElement("h1",{className:"attachment__title attachment__title--opengraph"+(e.title?"":" is-url")},C.a.createElement("a",{className:"attachment__title-link attachment__title-link--opengraph",href:Object(Un.g)(e.url||this.props.link),target:"_blank",rel:"noopener noreferrer",title:e.title||e.url||this.props.link},this.truncateText(e.title||e.url||this.props.link))),i),t&&!n&&this.renderSmallImage(t,a))))}}el(al,"propTypes",{link:v.a.string.isRequired,currentUserId:v.a.string,post:v.a.object,openGraphData:v.a.object,enableLinkPreviews:v.a.bool.isRequired,previewEnabled:v.a.bool.isRequired,isEmbedVisible:v.a.bool,toggleEmbedVisibility:v.a.func.isRequired,actions:v.a.shape({editPost:v.a.func.isRequired}).isRequired});var nl=Object(n.connect)((function(e,t){const a=Object(d.getConfig)(e);return{currentUserId:Object(m.getCurrentUserId)(e),enableLinkPreviews:"true"===a.EnableLinkPreviews,openGraphData:Object(qa.getOpenGraphMetadataForUrl)(e,t.postId,t.link),previewEnabled:Object(c.getBool)(e,P.B.CATEGORY_DISPLAY_SETTINGS,P.B.LINK_PREVIEW_DISPLAY,!0)}}),(function(e){return{actions:Object(s.bindActionCreators)({editPost:H},e)}}))(al);function sl(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class il extends C.a.PureComponent{constructor(e){super(e),sl(this,"showModal",e=>{e.preventDefault(),this.setState({showModal:!0})}),sl(this,"hideModal",()=>{this.setState({showModal:!1})}),this.state={showModal:!1}}render(){return C.a.createElement("div",{className:"post__embed-container"},C.a.createElement(Mo.a,{src:this.props.link,imageMetadata:this.props.imageMetadata},e=>C.a.createElement(C.a.Fragment,null,C.a.createElement(Dr.a,{className:"img-div attachment__image cursor--pointer",src:e,dimensions:this.props.imageMetadata,showLoader:!0,onClick:this.showModal}),C.a.createElement(xr.a,{show:this.state.showModal,onModalDismissed:this.hideModal,post:this.props.post,startIndex:0,fileInfos:[{has_preview_image:!1,link:e,extension:this.props.imageMetadata.format}]}))))}}sl(il,"propTypes",{imageMetadata:v.a.object.isRequired,link:v.a.string.isRequired,post:v.a.object.isRequired});var rl=il;const ol=/(?:http|https):\/\/(?:www\.|m\.)?(?:(?:youtube\.com\/(?:(?:v\/)|(?:(?:watch|embed\/watch)(?:\/|.*v=))|(?:embed\/)|(?:user\/[^/]+\/u\/[0-9]\/)))|(?:youtu\.be\/))([^#&?]*)/;function ll(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class cl extends C.a.PureComponent{constructor(e){super(e),ll(this,"play",()=>{this.setState({playing:!0})}),ll(this,"stop",()=>{this.setState({playing:!1})}),this.state={playing:!1}}static getDerivedStateFromProps(e,t){return!e.show&&t.playing?{playing:!1}:null}render(){const{metadata:e,link:t}=this.props,a=function(e){const t=e.trim().match(ol);return t&&11===t[1].length?t[1]:null}(t),n=function(e){var t,a,n,s,i,r;const o=e.match(/[\\?&](t|time|start|time_continue)=([0-9]+h)?([0-9]+m)?([0-9]+s?)/);if(!(null==o?void 0:o[0]))return"";const l=null!==(t=null===(a=o[2])||void 0===a?void 0:a.match(/([0-9]+)h/))&&void 0!==t?t:null,c=null!==(n=null===(s=o[3])||void 0===s?void 0:s.match(/([0-9]+)m/))&&void 0!==n?n:null,d=null!==(i=null===(r=o[4])||void 0===r?void 0:r.match(/([0-9]+)s?/))&&void 0!==i?i:null;let m=0;return(null==l?void 0:l[1])&&(m+=3600*parseInt(l[1],10)),(null==c?void 0:c[1])&&(m+=60*parseInt(c[1],10)),(null==d?void 0:d[1])&&(m+=parseInt(d[1],10)),"&start=".concat(m)}(t),s=C.a.createElement("h4",null,C.a.createElement("span",{className:"video-type"},"YouTube - "),C.a.createElement("span",{className:"video-title"},C.a.createElement("a",{href:this.props.link,target:"blank",rel:"noopener noreferrer"},e.title)));let i;if(this.state.playing)i=C.a.createElement("iframe",{src:"https://www.youtube.com/embed/"+a+"?autoplay=1&autohide=1&border=0&wmode=opaque&fs=1&enablejsapi=1"+n,width:"480px",height:"360px",type:"text/html",frameBorder:"0",allowFullScreen:"allowfullscreen"});else{const t=e.images[0];i=C.a.createElement("div",{className:"embed-responsive video-div__placeholder"},C.a.createElement("div",{className:"video-thumbnail__container"},C.a.createElement(Mo.a,{src:t.secure_url||t.url},e=>C.a.createElement("img",{src:e,alt:"youtube video thumbnail",className:"video-thumbnail"})),C.a.createElement("div",{className:"block"},C.a.createElement("span",{className:"play-button"},C.a.createElement("span",null)))))}return C.a.createElement("div",{className:"post__embed-container"},C.a.createElement("div",null,s,C.a.createElement("div",{className:"video-div embed-responsive-item",onClick:this.play},i)))}static isYoutubeLink(e){return e.trim().match(ol)}}ll(cl,"propTypes",{link:v.a.string.isRequired,show:v.a.bool.isRequired,metadata:v.a.object});var dl=Object(n.connect)((function(e,t){const a=Object(d.getConfig)(e);return{currentChannelId:Object(p.getCurrentChannelId)(e),googleDeveloperKey:a.GoogleDeveloperKey,hasImageProxy:"true"===a.HasImageProxy,metadata:Object(qa.getOpenGraphMetadataForUrl)(e,t.postId,t.link)}}))(cl);function ml(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class ul extends C.a.PureComponent{constructor(...e){super(...e),ml(this,"toggleEmbedVisibility",()=>{this.props.actions.toggleEmbedVisibility(this.props.post.id)}),ml(this,"getEmbed",()=>{const{metadata:e}=this.props.post;return e&&e.embeds&&0!==e.embeds.length?e.embeds[0]:null}),ml(this,"isEmbedToggleable",e=>{const t=this.props.pluginPostWillRenderEmbedComponents||[];for(const a of t)if(a.match(e))return Boolean(a.toggleable);return"image"===e.type||"opengraph"===e.type&&dl.isYoutubeLink(e.url)}),ml(this,"renderEmbed",e=>{const t=this.props.pluginPostWillRenderEmbedComponents||[];for(const a of t)if(a.match(e)){const t=a.component;return this.props.isEmbedVisible&&C.a.createElement(t,{embed:e})}switch(e.type){case"image":return this.props.isEmbedVisible?C.a.createElement(rl,{imageMetadata:this.props.post.metadata.images[e.url],link:e.url,post:this.props.post}):null;case"message_attachment":{let e=[];return this.props.post.props&&this.props.post.props.attachments&&(e=this.props.post.props.attachments),C.a.createElement(Zo,{attachments:e,postId:this.props.post.id,options:this.props.options,imagesMetadata:this.props.post.metadata.images})}case"opengraph":return dl.isYoutubeLink(e.url)?this.props.isEmbedVisible?C.a.createElement(dl,{postId:this.props.post.id,link:e.url,show:this.props.isEmbedVisible}):null:C.a.createElement(nl,{postId:this.props.post.id,link:e.url,isEmbedVisible:this.props.isEmbedVisible,post:this.props.post,toggleEmbedVisibility:this.toggleEmbedVisibility});default:return null}}),ml(this,"renderToggle",e=>C.a.createElement("button",{key:"toggle",className:"style--none post__embed-visibility color--link ".concat(e?"pull-left":""),"data-expanded":this.props.isEmbedVisible,"aria-label":"Toggle Embed Visibility",onClick:this.toggleEmbedVisibility}))}render(){const e=this.getEmbed();if(e){const t=this.isEmbedToggleable(e),a=/^\s*https?:\/\/.*$/.test(this.props.post.message);return C.a.createElement("div",null,t&&a&&this.renderToggle(!0),this.props.children,t&&!a&&this.renderToggle(!1),this.renderEmbed(e))}return this.props.children}}ml(ul,"propTypes",{post:v.a.object.isRequired,pluginPostWillRenderEmbedComponents:v.a.arrayOf(v.a.object),children:v.a.element,isEmbedVisible:v.a.bool,options:v.a.object,actions:v.a.shape({toggleEmbedVisibility:v.a.func.isRequired}).isRequired});var pl=Object(n.connect)((function(e,t){return{isEmbedVisible:Object(B.b)(e,t.post.id),pluginPostWillRenderEmbedComponents:e.plugins.components.PostWillRenderEmbedComponent}}),(function(e){return{actions:Object(s.bindActionCreators)({toggleEmbedVisibility:U.l},e)}}))(ul);function hl(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class gl extends C.a.PureComponent{constructor(e){super(e),hl(this,"handleHeightReceived",e=>{e>0&&this.setState(e=>({checkOverflow:e.checkOverflow+1}))}),this.state={collapse:!0,hasOverflow:!1,checkOverflow:0},this.imageProps={onImageLoaded:this.handleHeightReceived}}renderDeletedPost(){return C.a.createElement("p",null,C.a.createElement(V.a,{id:"post_body.deleted",defaultMessage:"(message deleted)"}))}renderEditedIndicator(){return z.k(this.props.post)?C.a.createElement("span",{id:"postEdited_".concat(this.props.post.id),className:"post-edited__indicator"},C.a.createElement(V.a,{id:"post_message_view.edited",defaultMessage:"(edited)"})):null}render(){const{post:e,enableFormatting:t,options:a,pluginPostTypes:n,compactDisplay:s,isRHS:i,theme:r}=this.props;if(e.state===L.Posts.POST_DELETED)return this.renderDeletedPost();if(!t)return C.a.createElement("span",null,e.message);const o=e.props&&e.props.type?e.props.type:e.type;if(n.hasOwnProperty(o)){const t=n[o].component;return C.a.createElement(t,{post:e,compactDisplay:s,isRHS:i,theme:r})}let l=e.message;const c=I.Z(e);if(s&&c){const e=I.gb("post_info.message.visible.compact"," (Only visible to you)");l=l.concat(e)}const d=i?"rhsPostMessageText_".concat(e.id):"postMessageText_".concat(e.id);return C.a.createElement(ko,{checkOverflow:this.state.checkOverflow,text:l},C.a.createElement("div",{"aria-readonly":"true",tabIndex:"0",id:d,className:"post-message__text",onClick:I.J},C.a.createElement(Ja,{message:l,imageProps:this.imageProps,isRHS:i,options:a,post:e,channelId:e.channel_id})),this.renderEditedIndicator(),C.a.createElement(A.a,{pluggableName:"PostMessageAttachment",postId:e.id,onHeightChange:this.handleHeightReceived}))}}hl(gl,"propTypes",{post:v.a.object.isRequired,enableFormatting:v.a.bool,options:v.a.object,compactDisplay:v.a.bool,isRHS:v.a.bool,isRHSOpen:v.a.bool,isRHSExpanded:v.a.bool,theme:v.a.object.isRequired,pluginPostTypes:v.a.object}),hl(gl,"defaultProps",{options:{},isRHS:!1,pluginPostTypes:{}});var bl=Object(n.connect)((function(e){return{enableFormatting:Object(c.getBool)(e,L.Preferences.CATEGORY_ADVANCED_SETTINGS,"formatting",!0),isRHSExpanded:Object(Cs.a)(e),isRHSOpen:Object(Cs.c)(e),pluginPostTypes:e.plugins.postTypes,theme:Object(c.getTheme)(e)}}))(gl);function fl({post:e,previewCollapsed:t,previewEnabled:a,isEmbedVisible:n,pluginPostTypes:s}){const i=e.type&&s.hasOwnProperty(e.type);let r;const o=C.a.createElement(bl,{post:e,isRHS:!0,hasMention:!0});return r=e.state===L.Posts.POST_DELETED||i?o:C.a.createElement(pl,{post:e,previewCollapsed:t,previewEnabled:a,isEmbedVisible:n},o)}var _l=a(1245);class El extends C.a.PureComponent{render(){return C.a.createElement("span",this.props,C.a.createElement(V.a,{id:"generic_icons.info",defaultMessage:"Info Icon"},e=>C.a.createElement("svg",{className:"svg-text-color","aria-label":e,width:"24px",height:"24px",viewBox:"0 0 24 24",version:"1.1"},C.a.createElement("g",{stroke:"none",strokeWidth:"1",fill:"inherit",fillRule:"evenodd"},C.a.createElement("g",{transform:"translate(-1015.000000, -516.000000)",fill:"inherit"},C.a.createElement("path",{d:"M1027,540 C1020.37258,540 1015,534.627417 1015,528 C1015,521.372583 1020.37258,516 1027,516 C1033.62742,516 1039,521.372583 1039,528 C1039,534.627417 1033.62742,540 1027,540 Z M1027,527 C1025.89543,527 1025,527.895431 1025,529 L1025,533 C1025,534.104569 1025.89543,535 1027,535 C1028.10457,535 1029,534.104569 1029,533 L1029,529 C1029,527.895431 1028.10457,527 1027,527 Z M1027,525 C1028.10457,525 1029,524.104569 1029,523 C1029,521.895431 1028.10457,521 1027,521 C1025.89543,521 1025,521.895431 1025,523 C1025,524.104569 1025.89543,525 1027,525 Z"}))))))}}var vl=a(1346);function yl(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class Cl extends y.PureComponent{constructor(...e){super(...e),yl(this,"hideProfilePopover",()=>{this.overlay&&this.overlay.hide()}),yl(this,"setOverlaynRef",e=>{this.overlay=e})}render(){const{disablePopover:e,displayName:t,isBusy:a,isRHS:n,hasMention:s,hideStatus:i,overwriteName:r,user:o,userId:l}=this.props,c=r||t||"...";if(e)return C.a.createElement("div",{className:"user-popover"},c);let d="right";n&&!Object(I.Y)()&&(d="left");let m="";return o&&(m=Object(I.M)(o)),C.a.createElement(C.a.Fragment,null,C.a.createElement(ui.a,{ref:this.setOverlaynRef,trigger:"click",placement:d,rootClose:!0,overlay:C.a.createElement(vl.a,{className:"user-profile-popover",userId:l,src:m,isBusy:a,hide:this.hideProfilePopover,hideStatus:i,isRHS:n,hasMention:s})},C.a.createElement("button",{"aria-label":c.toLowerCase(),className:"user-popover style--none"},c)),C.a.createElement(tn.a,{show:Boolean(o&&o.is_bot),className:"badge-popoverlist"}),C.a.createElement(an.a,{show:Boolean(o&&Object(I.V)(o)),className:"badge-popoverlist"}))}}yl(Cl,"propTypes",{disablePopover:v.a.bool,displayName:v.a.string,hasMention:v.a.bool,hideStatus:v.a.bool,isBusy:v.a.bool,isRHS:v.a.bool,overwriteName:v.a.node,user:v.a.object,userId:v.a.string}),yl(Cl,"defaultProps",{disablePopover:!1,hasMention:!1,hideStatus:!1,isRHS:!1,overwriteImage:"",overwriteName:""});var wl=Object(n.connect)((function(){const e=Object(m.makeGetDisplayName)();return(t,a)=>({displayName:e(t,a.userId),user:Object(m.getUser)(t,a.userId)})}))(Cl);function Ol(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class Tl extends C.a.PureComponent{constructor(e){super(e),Ol(this,"removePost",()=>{this.props.removePost(this.props.post)}),Ol(this,"createRemovePostButton",()=>C.a.createElement("button",{className:"post__remove theme color--link style--none",type:"button",onClick:this.removePost},"×")),Ol(this,"renderPostTime",()=>{const e=this.props.post,t=!(L.Posts.POST_DELETED===e.state||Object(Bs.isPostPendingOrFailed)(e));return C.a.createElement(co,{isPermalink:t,eventTime:e.create_at,postId:e.id,location:P.t.RHS_COMMENT})}),Ol(this,"toggleEmojiPicker",()=>{const e=!this.state.showEmojiPicker;this.setState({showEmojiPicker:e})}),Ol(this,"getClassName",(e,t)=>{let a="post post--thread same--root post--comment";return this.props.currentUserId===e.user_id&&(a+=" current--user"),t&&(a+=" post--system"),this.props.compactDisplay&&(a+=" post--compact"),e.is_pinned&&(a+=" post--pinned"),(this.state.dropdownOpened||this.state.showEmojiPicker)&&(a+=" post--hovered"),this.props.isConsecutivePost&&(a+=" same--user"),this.state.alt&&!this.props.channelIsArchived&&(a+=" cursor--pointer"),a}),Ol(this,"handleAlt",e=>{this.state.alt!==e.altKey&&this.setState({alt:e.altKey})}),Ol(this,"handleDropdownOpened",e=>{this.setState({dropdownOpened:e})}),Ol(this,"getDotMenuRef",()=>this.refs.dotMenu),Ol(this,"setHover",()=>{this.setState({hover:!0})}),Ol(this,"unsetHover",()=>{this.setState({hover:!1})}),Ol(this,"handleA11yActivateEvent",()=>{this.setState({a11yActive:!0})}),Ol(this,"handleA11yDeactivateEvent",()=>{this.setState({a11yActive:!1})}),Ol(this,"handlePostClick",e=>{this.props.channelIsArchived||e.altKey&&this.props.actions.markPostAsUnread(this.props.post)}),Ol(this,"handlePostFocus",()=>{const{post:e,author:t,reactions:a,isFlagged:n}=this.props;this.setState({currentAriaLabel:z.d(e,t,n,a,this.props.intl)})}),this.postRef=C.a.createRef(),this.state={showEmojiPicker:!1,dropdownOpened:!1,alt:!1,hover:!1,a11yActive:!1,currentAriaLabel:""}}componentDidMount(){document.addEventListener("keydown",this.handleAlt),document.addEventListener("keyup",this.handleAlt),this.postRef.current&&(this.postRef.current.addEventListener(P.c.ACTIVATE,this.handleA11yActivateEvent),this.postRef.current.addEventListener(P.c.DEACTIVATE,this.handleA11yDeactivateEvent))}componentWillUnmount(){document.removeEventListener("keydown",this.handleAlt),document.removeEventListener("keyup",this.handleAlt),this.postRef.current&&(this.postRef.current.removeEventListener(P.c.ACTIVATE,this.handleA11yActivateEvent),this.postRef.current.removeEventListener(P.c.DEACTIVATE,this.handleA11yDeactivateEvent))}componentDidUpdate(){this.state.a11yActive&&this.postRef.current.dispatchEvent(new Event(P.c.UPDATE))}render(){const{post:e,isConsecutivePost:t,isReadOnly:a,channelIsArchived:n}=this.props,s=e&&e.state===L.Posts.POST_DELETED,i=Object(Bs.isPostEphemeral)(e),r=z.o(e),o=z.e(e);let l,c,d,m,u=null;(this.props.compactDisplay||Object(I.Y)())&&(u=C.a.createElement(wl,{userId:e.user_id,isBusy:this.props.isBusy,isRHS:!0,hasMention:!0})),t||(u=C.a.createElement(wl,{userId:e.user_id,isBusy:this.props.isBusy,isRHS:!0,hasMention:!0}),c=C.a.createElement(Jr,{compactDisplay:this.props.compactDisplay,isBusy:this.props.isBusy,isRHS:!0,post:e,userId:e.user_id}),e.props&&e.props.from_webhook?(u=e.props.override_username&&this.props.enablePostUsernameOverride?C.a.createElement(wl,{userId:e.user_id,hideStatus:!0,overwriteName:e.props.override_username,disablePopover:!0}):C.a.createElement(wl,{userId:e.user_id,hideStatus:!0,disablePopover:!0}),l=C.a.createElement(tn.a,{className:"col col__name"})):o?(u=C.a.createElement("span",{className:"auto-responder"},C.a.createElement(wl,{userId:e.user_id,hideStatus:!0,isBusy:this.props.isBusy,isRHS:!0,hasMention:!0})),l=C.a.createElement(_l.a,{className:"col col__name"},C.a.createElement(V.a,{id:"post_info.auto_responder",defaultMessage:"AUTOMATIC REPLY"}))):r&&(u=C.a.createElement(wl,{overwriteName:C.a.createElement(V.a,{id:"post_info.system",defaultMessage:"System"}),overwriteImage:P.Q.SYSTEM_MESSAGE_PROFILE_IMAGE,disablePopover:!0}),d=C.a.createElement("span",{className:"post__visibility"},C.a.createElement(V.a,{id:"post_info.message.visible",defaultMessage:"(Only visible to you)"}))));let p="";e.failed&&(p+=" post-failed",m=C.a.createElement(eo,{post:this.props.post})),z.k(this.props.post)&&(p+=" post--edited");let h,g,b,f=null;if(e.file_ids&&e.file_ids.length>0&&(f=C.a.createElement(Wr,{post:e,compactDisplay:this.props.compactDisplay})),a||i||e.failed||r||!this.props.enableEmojiPicker||n||(h=C.a.createElement(ho,{channelId:e.channel_id,postId:e.id,teamId:this.props.teamId,getDotMenuRef:this.getDotMenuRef,location:P.t.RHS_COMMENT,showEmojiPicker:this.state.showEmojiPicker,toggleEmojiPicker:this.toggleEmojiPicker})),i)g=C.a.createElement("div",{className:"col col__remove"},this.createRemovePostButton());else if(s)g=null;else if(!r&&(Object(I.Y)()||this.state.hover||this.state.a11yActive||this.state.dropdownOpened||this.state.showEmojiPicker)){const e=C.a.createElement(Ir,{post:this.props.post,location:P.t.RHS_COMMENT,isFlagged:this.props.isFlagged,handleDropdownOpened:this.handleDropdownOpened,handleAddReactionClick:this.toggleEmojiPicker,isReadOnly:a||n,enableEmojiPicker:this.props.enableEmojiPicker});g=C.a.createElement("div",{ref:"dotMenu",className:"col col__reply"},e,h)}e.is_pinned&&(b=C.a.createElement("span",{className:"post__pinned-badge"},C.a.createElement(V.a,{id:"post_info.pinned",defaultMessage:"Pinned"})));let _=null;(this.state.hover||this.state.a11yActive||this.state.dropdownOpened||this.state.showEmojiPicker||this.props.isFlagged)&&(_=C.a.createElement(io,{location:P.t.RHS_COMMENT,postId:e.id,isFlagged:this.props.isFlagged,isEphemeral:i}));const E=this.renderPostTime();let v;return e.props&&e.props.card&&(v=C.a.createElement(ui.a,{delayShow:P.Q.OVERLAY_TIME_DELAY,placement:"top",overlay:C.a.createElement(mi.a,null,C.a.createElement(V.a,{id:"post_info.info.view_additional_info",defaultMessage:"View additional info"}))},C.a.createElement("button",{className:"card-icon__container icon--show style--none",onClick:e=>{e.preventDefault(),this.props.handleCardClick(this.props.post)}},C.a.createElement(El,{className:"icon icon__info","aria-hidden":"true"})))),C.a.createElement("div",{role:"listitem",ref:this.postRef,id:"rhsPost_"+e.id,tabIndex:"-1",className:"a11y__section ".concat(this.getClassName(e,r)),onClick:this.handlePostClick,onMouseOver:this.setHover,onMouseLeave:this.unsetHover,"aria-label":this.state.currentAriaLabel,onFocus:this.handlePostFocus,"data-a11y-sort-order":this.props.a11yIndex},C.a.createElement("div",{role:"application",className:"post__content"},C.a.createElement("div",{className:"post__img"},c),C.a.createElement("div",null,C.a.createElement("div",{className:"post__header"},C.a.createElement("div",{className:"col col__name"},u,l),C.a.createElement("div",{className:"col"},E,b,v,_,d),g),C.a.createElement("div",{className:"post__body"},C.a.createElement("div",{className:p},m,C.a.createElement(fl,{post:e,previewCollapsed:this.props.previewCollapsed,previewEnabled:this.props.previewEnabled,isEmbedVisible:this.props.isEmbedVisible,pluginPostTypes:this.props.pluginPostTypes})),f,C.a.createElement(To,{post:e,isReadOnly:a||n})))))}}Ol(Tl,"propTypes",{post:v.a.object,teamId:v.a.string.isRequired,currentUserId:v.a.string.isRequired,compactDisplay:v.a.bool,author:v.a.string,reactions:v.a.object,isFlagged:v.a.bool,isBusy:v.a.bool,removePost:v.a.func.isRequired,previewCollapsed:v.a.string.isRequired,previewEnabled:v.a.bool.isRequired,isEmbedVisible:v.a.bool,enableEmojiPicker:v.a.bool.isRequired,enablePostUsernameOverride:v.a.bool.isRequired,isReadOnly:v.a.bool.isRequired,pluginPostTypes:v.a.object,channelIsArchived:v.a.bool.isRequired,isConsecutivePost:v.a.bool,handleCardClick:v.a.func,a11yIndex:v.a.number,intl:Y.a.isRequired,actions:v.a.shape({markPostAsUnread:v.a.func.isRequired})});var Sl=Object(W.c)(Tl);function Pl(e,t){const a=t.post,n=t.previousPostId&&Object(qa.getPost)(e,t.previousPostId);let s=!1;if(n){const e=Boolean(a.props&&a.props.from_webhook),t=Boolean(n.props&&n.props.from_webhook);!(n&&n.user_id===a.user_id&&a.create_at-n.create_at<=L.Posts.POST_COLLAPSE_TIMEOUT)||e||t||Object(Bs.isSystemMessage)(a)||Object(Bs.isSystemMessage)(n)||n.root_id!==a.root_id&&n.id!==a.root_id||(s=!0)}return s}var Ml=Object(n.connect)((function(e,t){const a=Object(qa.makeGetReactionsForPost)(),n=Object(m.makeGetDisplayName)(),s=Object(d.getConfig)(e),i="true"===s.EnableEmojiPicker,r="true"===s.EnablePostUsernameOverride,o=t.teamId||Object(u.getCurrentTeamId)(e),l=e.entities.channels.channels[t.post.channel_id];return{author:n(e,t.post.user_id),reactions:a(e,t.post.id),enableEmojiPicker:i,enablePostUsernameOverride:r,isEmbedVisible:Object(B.b)(e,t.post.id),isReadOnly:Object(p.isChannelReadOnlyById)(e,t.post.channel_id),teamId:o,pluginPostTypes:e.plugins.postTypes,channelIsArchived:Object(ya.d)(l),isConsecutivePost:Pl(e,t),isFlagged:null!=Object(c.get)(e,P.B.CATEGORY_FLAGGED_POST,t.post.id,null),compactDisplay:Object(c.get)(e,P.B.CATEGORY_DISPLAY_SETTINGS,P.B.MESSAGE_DISPLAY,P.B.MESSAGE_DISPLAY_DEFAULT)===P.B.MESSAGE_DISPLAY_COMPACT}}),(function(e){return{actions:Object(s.bindActionCreators)({markPostAsUnread:U.g},e)}}))(Sl);function Il(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class Nl extends C.a.Component{constructor(...e){super(...e),Il(this,"handleBack",e=>{switch(e.preventDefault(),this.props.previousRhsState){case P.C.SEARCH:this.props.actions.showSearchResults();break;case P.C.MENTION:this.props.actions.showMentions();break;case P.C.FLAG:this.props.actions.showFlaggedPosts();break;case P.C.PIN:this.props.actions.showPinnedPosts()}})}render(){let e;const t=C.a.createElement(mi.a,{id:"closeSidebarTooltip"},C.a.createElement(V.a,{id:"rhs_header.closeSidebarTooltip",defaultMessage:"Close Sidebar"}));let a;switch(this.props.previousRhsState){case P.C.SEARCH:case P.C.MENTION:a=C.a.createElement(mi.a,{id:"backToResultsTooltip"},C.a.createElement(V.a,{id:"rhs_header.backToResultsTooltip",defaultMessage:"Back to Search Results"}));break;case P.C.FLAG:a=C.a.createElement(mi.a,{id:"backToResultsTooltip"},C.a.createElement(V.a,{id:"rhs_header.backToFlaggedTooltip",defaultMessage:"Back to Flagged Posts"}));break;case P.C.PIN:a=C.a.createElement(mi.a,{id:"backToResultsTooltip"},C.a.createElement(V.a,{id:"rhs_header.backToPinnedTooltip",defaultMessage:"Back to Pinned Posts"}))}const n=C.a.createElement(mi.a,{id:"expandSidebarTooltip"},C.a.createElement(V.a,{id:"rhs_header.expandSidebarTooltip",defaultMessage:"Expand Sidebar"})),s=C.a.createElement(mi.a,{id:"shrinkSidebarTooltip"},C.a.createElement(V.a,{id:"rhs_header.shrinkSidebarTooltip",defaultMessage:"Shrink Sidebar"}));return a&&(e=C.a.createElement("a",{href:"#",onClick:this.handleBack,className:"sidebar--right__back"},C.a.createElement(ui.a,{delayShow:P.Q.OVERLAY_TIME_DELAY,placement:"top",overlay:a},C.a.createElement(V.a,{id:"generic_icons.back",defaultMessage:"Back Icon"},e=>C.a.createElement("i",{className:"fa fa-angle-left","aria-label":e}))))),C.a.createElement("div",{className:"sidebar--right__header"},C.a.createElement("span",{className:"sidebar--right__title"},e,C.a.createElement(V.a,{id:"rhs_header.details",defaultMessage:"Message Details"})),C.a.createElement("div",{className:"pull-right"},C.a.createElement("button",{type:"button",className:"sidebar--right__expand","aria-label":"Expand",onClick:this.props.actions.toggleRhsExpanded},C.a.createElement(ui.a,{delayShow:P.Q.OVERLAY_TIME_DELAY,placement:"top",overlay:n},C.a.createElement(V.a,{id:"rhs_header.expandSidebarTooltip.icon",defaultMessage:"Expand Sidebar Icon"},e=>C.a.createElement("i",{className:"fa fa-expand","aria-label":e}))),C.a.createElement(ui.a,{delayShow:P.Q.OVERLAY_TIME_DELAY,placement:"top",overlay:s},C.a.createElement(V.a,{id:"rhs_header.expandTooltip.icon",defaultMessage:"Shrink Sidebar Icon"},e=>C.a.createElement("i",{className:"fa fa-compress","aria-label":e})))),C.a.createElement("button",{id:"rhsCloseButton",type:"button",className:"sidebar--right__close","aria-label":"Close",onClick:this.props.actions.closeRightHandSide},C.a.createElement(ui.a,{delayShow:P.Q.OVERLAY_TIME_DELAY,placement:"top",overlay:t},C.a.createElement(V.a,{id:"rhs_header.closeTooltip.icon",defaultMessage:"Close Sidebar Icon"},e=>C.a.createElement("i",{className:"fa fa-sign-out","aria-label":e}))))))}}Il(Nl,"propTypes",{previousRhsState:v.a.oneOf(Object.values(P.C)),actions:v.a.shape({showMentions:v.a.func,showSearchResults:v.a.func,showFlaggedPosts:v.a.func,showPinnedPosts:v.a.func,closeRightHandSide:v.a.func,toggleRhsExpanded:v.a.func})});var jl=Object(n.connect)(null,(function(e){return{actions:Object(s.bindActionCreators)({showSearchResults:ys.p,showMentions:ys.m,showFlaggedPosts:ys.l,showPinnedPosts:ys.n,closeRightHandSide:ys.b,toggleRhsExpanded:ys.s},e)}}))(Nl);function Al(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class Rl extends C.a.PureComponent{constructor(e){super(e),Al(this,"renderPostTime",e=>{const t=this.props.post;if(t.type===P.Q.PostTypes.FAKE_PARENT_DELETED)return null;const a=!(e||L.Posts.POST_DELETED===t.state||Bs.isPostPendingOrFailed(t));return C.a.createElement(co,{isPermalink:a,eventTime:t.create_at,postId:t.id,location:P.t.RHS_ROOT})}),Al(this,"toggleEmojiPicker",()=>{const e=!this.state.showEmojiPicker;this.setState({showEmojiPicker:e})}),Al(this,"getClassName",(e,t)=>{let a="post post--root post--thread";return this.props.currentUserId===e.user_id&&(a+=" current--user"),t&&(a+=" post--system"),this.props.compactDisplay&&(a+=" post--compact"),e.is_pinned&&(a+=" post--pinned"),(this.state.dropdownOpened||this.state.showEmojiPicker)&&(a+=" post--hovered"),this.state.alt&&!this.props.channelIsArchived&&(a+=" cursor--pointer"),a}),Al(this,"handleAlt",e=>{this.state.alt!==e.altKey&&this.setState({alt:e.altKey})}),Al(this,"handleDropdownOpened",e=>{this.setState({dropdownOpened:e})}),Al(this,"handlePostClick",e=>{this.props.channelIsArchived||e.altKey&&this.props.actions.markPostAsUnread(this.props.post)}),Al(this,"handlePostFocus",()=>{const{post:e,author:t,reactions:a,isFlagged:n}=this.props;this.setState({currentAriaLabel:z.d(e,t,n,a,this.props.intl)})}),Al(this,"getDotMenuRef",()=>this.refs.dotMenu),this.state={alt:!1,showEmojiPicker:!1,testStateObj:!0,dropdownOpened:!1,currentAriaLabel:""}}componentDidMount(){document.addEventListener("keydown",this.handleAlt),document.addEventListener("keyup",this.handleAlt)}componentWillUnmount(){document.removeEventListener("keydown",this.handleAlt),document.removeEventListener("keyup",this.handleAlt)}render(){const{post:e,isReadOnly:t,teamId:a,channelIsArchived:n,channelType:s,channelDisplayName:i}=this.props,r=e&&e.state===L.Posts.POST_DELETED,o=I.Z(e),l=z.o(e);let c,d;c="D"===s?C.a.createElement(V.a,{id:"rhs_root.direct",defaultMessage:"Direct Message"}):i,t||o||e.failed||l||!this.props.enableEmojiPicker||n||(d=C.a.createElement(ho,{channelId:e.channel_id,postId:e.id,teamId:a,getDotMenuRef:this.getDotMenuRef,location:P.t.RHS_ROOT,showEmojiPicker:this.state.showEmojiPicker,toggleEmojiPicker:this.toggleEmojiPicker}));let m,u,p=null;e.file_ids&&e.file_ids.length>0&&(p=C.a.createElement(Wr,{post:e,compactDisplay:this.props.compactDisplay})),l?m=C.a.createElement(wl,{overwriteName:C.a.createElement(V.a,{id:"post_info.system",defaultMessage:"System"}),overwriteImage:P.Q.SYSTEM_MESSAGE_PROFILE_IMAGE,disablePopover:!0}):e.props&&e.props.from_webhook?(m=e.props.override_username&&this.props.enablePostUsernameOverride?C.a.createElement(wl,{key:e.user_id,userId:e.user_id,hideStatus:!0,overwriteName:e.props.override_username,disablePopover:!0}):C.a.createElement(wl,{key:e.user_id,userId:e.user_id,hideStatus:!0,disablePopover:!0}),u=C.a.createElement(tn.a,null)):m=C.a.createElement(wl,{key:e.user_id,userId:e.user_id,isBusy:this.props.isBusy,isRHS:!0,hasMention:!0});let h,g="";z.k(this.props.post)&&(g+=" post--edited"),e.is_pinned&&(h=C.a.createElement("span",{className:"post__pinned-badge"},C.a.createElement(V.a,{id:"post_info.pinned",defaultMessage:"Pinned"})));const b=C.a.createElement(Ir,{post:this.props.post,location:P.t.RHS_ROOT,isFlagged:this.props.isFlagged,handleDropdownOpened:this.handleDropdownOpened,handleAddReactionClick:this.toggleEmojiPicker,commentCount:this.props.commentCount,isReadOnly:t||n,enableEmojiPicker:this.props.enableEmojiPicker});let f,_;let E;return r||this.props.post.type===P.Q.PostTypes.FAKE_PARENT_DELETED||(f=C.a.createElement("div",{ref:"dotMenu",className:"col col__reply"},b,d)),!o&&!e.failed&&!l&&(_=C.a.createElement(io,{location:P.t.RHS_ROOT,postId:e.id,isFlagged:this.props.isFlagged})),this.props.post.props&&this.props.post.props.card&&(E=C.a.createElement(ui.a,{delayShow:P.Q.OVERLAY_TIME_DELAY,placement:"top",overlay:C.a.createElement(mi.a,null,C.a.createElement(V.a,{id:"post_info.info.view_additional_info",defaultMessage:"View additional info"}))},C.a.createElement("button",{className:"card-icon__container icon--show style--none",onClick:e=>{e.preventDefault(),this.props.handleCardClick(this.props.post)}},C.a.createElement(El,{className:"icon icon__info","aria-hidden":"true"})))),C.a.createElement("div",{role:"listitem",id:"rhsPost_"+e.id,tabIndex:"-1",className:"thread__root a11y__section ".concat(this.getClassName(e,l)),"aria-label":this.state.currentAriaLabel,onClick:this.handlePostClick,onFocus:this.handlePostFocus,"data-a11y-sort-order":"0"},C.a.createElement("div",{className:"post-right-channel__name"},c),C.a.createElement("div",{role:"application",className:"post__content"},C.a.createElement("div",{className:"post__img"},C.a.createElement(Jr,{compactDisplay:this.props.compactDisplay,isBusy:this.props.isBusy,isRHS:!0,post:e,userId:e.user_id})),C.a.createElement("div",null,C.a.createElement("div",{className:"post__header"},C.a.createElement("div",{className:"col__name"},m,u),C.a.createElement("div",{className:"col"},this.renderPostTime(o),h,E,_),f),C.a.createElement("div",{className:"post__body"},C.a.createElement("div",{className:g},C.a.createElement(fl,{post:e,previewCollapsed:this.props.previewCollapsed,previewEnabled:this.props.previewEnabled,isEmbedVisible:this.props.isEmbedVisible,pluginPostTypes:this.props.pluginPostTypes})),p,C.a.createElement(To,{post:e,isReadOnly:t||n})))))}}Al(Rl,"propTypes",{post:v.a.object.isRequired,teamId:v.a.string.isRequired,currentUserId:v.a.string.isRequired,compactDisplay:v.a.bool,commentCount:v.a.number.isRequired,author:v.a.string,reactions:v.a.object,isFlagged:v.a.bool,previewCollapsed:v.a.string,previewEnabled:v.a.bool,isBusy:v.a.bool,isEmbedVisible:v.a.bool,enableEmojiPicker:v.a.bool.isRequired,enablePostUsernameOverride:v.a.bool.isRequired,isReadOnly:v.a.bool.isRequired,pluginPostTypes:v.a.object,channelIsArchived:v.a.bool.isRequired,channelType:v.a.string,channelDisplayName:v.a.string,handleCardClick:v.a.func.isRequired,intl:Y.a.isRequired,actions:v.a.shape({markPostAsUnread:v.a.func.isRequired})}),Al(Rl,"defaultProps",{commentCount:0});var kl=Object(W.c)(Rl);var Ll=Object(n.connect)((function(e,t){const a=Object(qa.makeGetReactionsForPost)(),n=Object(m.makeGetDisplayName)(),s=Object(d.getConfig)(e),i="true"===s.EnableEmojiPicker,r="true"===s.EnablePostUsernameOverride,o=t.teamId||Object(u.getCurrentTeamId)(e),l=Object(p.getChannel)(e,t.post.channel_id)||{};return{author:n(e,t.post.user_id),reactions:a(e,t.post.id),enableEmojiPicker:i,enablePostUsernameOverride:r,isEmbedVisible:Object(B.b)(e,t.post.id),isReadOnly:Object(p.isChannelReadOnlyById)(e,t.post.channel_id),teamId:o,pluginPostTypes:e.plugins.postTypes,channelIsArchived:Object(ya.d)(l),channelType:l.type,channelDisplayName:l.display_name,isFlagged:null!=Object(c.get)(e,P.B.CATEGORY_FLAGGED_POST,t.post.id,null),compactDisplay:Object(c.get)(e,P.B.CATEGORY_DISPLAY_SETTINGS,P.B.MESSAGE_DISPLAY,P.B.MESSAGE_DISPLAY_DEFAULT)===P.B.MESSAGE_DISPLAY_COMPACT}}),(function(e){return{actions:Object(s.bindActionCreators)({markPostAsUnread:U.g},e)}}))(kl);function Dl(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function xl(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function Ul(e){return C.a.createElement("div",Object.assign({},e,{className:"scrollbar--view"}))}function ql(){return C.a.createElement("div",null)}function Hl(e){return C.a.createElement("div",Object.assign({},e,{className:"scrollbar--vertical"}))}class Fl extends C.a.Component{static getDerivedStateFromProps(e,t){let a={selected:e.selected};return t.selected&&e.selected&&t.selected.id!==e.selected.id&&(a=function(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?Dl(a,!0).forEach((function(t){xl(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):Dl(a).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}({},a,{openTime:(new Date).getTime()})),a}constructor(e){super(e),xl(this,"handleResize",()=>{this.setState({windowWidth:I.sb(),windowHeight:I.rb()}),M.n()&&"reply_textbox"===document.activeElement.id&&this.scrollToBottom()}),xl(this,"handleCardClick",e=>{e&&this.props.actions.selectPostCard(e)}),xl(this,"handleCardClickPost",e=>{e&&this.props.actions.selectPostCard(e)}),xl(this,"onBusy",e=>{this.setState({isBusy:e})}),xl(this,"filterPosts",(e,t,a)=>{const n=[];return e.forEach(e=>{"system_ephemeral"===e.type&&e.create_at<a||e.root_id===t.id&&n.unshift(e)}),n}),xl(this,"scrollToBottom",()=>{Rs()(".post-right__scroll")[0]&&Rs()(".post-right__scroll").parent().scrollTop(Rs()(".post-right__scroll")[0].scrollHeight)}),xl(this,"updateFloatingTimestamp",()=>{if(I.Y()&&this.props.posts){const e=this.refs.rhspostlist.childNodes,t=this.refs.rhspostlist.getBoundingClientRect();let a="";const n=100;for(let s=0;s<e.length;s++)if(e[s].offsetTop+t.top-n>0){a=this.props.posts[s].id;break}a!==this.state.topRhsPostId&&this.setState({topRhsPostId:a})}}),xl(this,"handleScroll",()=>{this.updateFloatingTimestamp(),this.state.isScrolling||this.setState({isScrolling:!0}),this.scrollStopAction.fireAfter(P.Q.SCROLL_DELAY)}),xl(this,"handleScrollStop",()=>{this.setState({isScrolling:!1})}),this.scrollStopAction=new xs(this.handleScrollStop);const t=(new Date).getTime();this.state={windowWidth:I.sb(),windowHeight:I.rb(),isScrolling:!1,topRhsPostId:0,openTime:t}}componentDidMount(){this.scrollToBottom(),window.addEventListener("resize",this.handleResize),this.props.posts.length<I.F(this.props.posts).reply_count+1&&this.props.actions.getPostThread(this.props.selected.id,!0)}componentWillUnmount(){window.removeEventListener("resize",this.handleResize)}componentDidUpdate(e){const t=e.posts||[],a=this.props.posts||[];this.props.socketConnectionStatus&&!e.socketConnectionStatus&&this.props.actions.getPostThread(this.props.selected.id),t.length>=a.length||a[a.length-1].user_id===this.props.currentUserId&&this.scrollToBottom()}shouldComponentUpdate(e,t){return!I.c(t.postsArray,this.props.posts)||(!I.c(t.selected,this.props.selected)||(e.previewEnabled!==this.props.previewEnabled||(t.isBusy!==this.state.isBusy||(t.isScrolling!==this.state.isScrolling||t.topRhsPostId!==this.state.topRhsPostId))))}render(){if(null==this.props.posts||null==this.props.selected)return C.a.createElement("div",null);const e=this.filterPosts(this.props.posts,this.props.selected,this.state.openTime),{selected:t,currentUserId:a}=this.props;let n=t.create_at;!n&&this.props.posts.length>0&&(n=this.props.posts[this.props.posts.length-1].create_at);const s=I.r(n);let i=s;const r=[],o=e.length;let l,c=1;for(let t=0;t<o;t++){const n=e[t],s=t>0?e[t-1].id:"",o=I.r(n.create_at);o.toDateString()!==i.toDateString()&&(i=o,r.push(C.a.createElement(br,{key:o,date:o})));const l=n.id?n.id:n.pending_post_id;r.push(C.a.createElement(Ml,{key:l+"commentKey",ref:n.id,post:n,previousPostId:s,teamId:this.props.channel.team_id,currentUserId:a,isBusy:this.state.isBusy,removePost:this.props.actions.removePost,previewCollapsed:this.props.previewCollapsed,previewEnabled:this.props.previewEnabled,handleCardClick:this.handleCardClickPost,a11yIndex:c++}))}const d=t.type===P.Q.PostTypes.FAKE_PARENT_DELETED,m=0!==this.props.channel.delete_at;if(d||(l=m?C.a.createElement("div",{className:"channel-archived-warning"},C.a.createElement(Ji.b,{id:"archivedChannelMessage",defaultMessage:"You are viewing an **archived channel**. New messages cannot be posted."})):C.a.createElement("div",{className:"post-create__container"},C.a.createElement(ir,{channelId:t.channel_id,rootId:t.id,rootDeleted:t.state===L.Posts.POST_DELETED,latestPostId:o>0?e[o-1].id:t.id}))),this.props.channel.type===P.Q.DM_CHANNEL){const e=I.t(this.props.channel.id);e&&e.delete_at&&(l=C.a.createElement("div",{className:"post-create-message"},C.a.createElement(V.a,{id:"create_post.deactivated",defaultMessage:"You are viewing an archived channel with a deactivated user."})))}return C.a.createElement("div",{id:"rhsContainer",className:"sidebar-right__body"},C.a.createElement(Er,{isScrolling:this.state.isScrolling,isMobile:I.Y(),postId:this.state.topRhsPostId,isRhsPost:!0}),C.a.createElement(jl,{previousRhsState:this.props.previousRhsState}),C.a.createElement(Ls.a,{autoHide:!0,autoHideTimeout:500,autoHideDuration:500,renderThumbHorizontal:ql,renderThumbVertical:Hl,renderView:Ul,onScroll:this.handleScroll},C.a.createElement("div",{className:"post-right__scroll"},C.a.createElement("div",{role:"application",id:"rhsContent","aria-label":I.gb("accessibility.sections.rhsContent","message details complimentary region"),className:"post-right__content a11y__region","data-a11y-sort-order":"3","data-a11y-focus-child":!0,"data-a11y-order-reversed":!0},!d&&C.a.createElement(br,{date:s}),C.a.createElement(Ll,{ref:t.id,post:t,commentCount:o,teamId:this.props.channel.team_id,currentUserId:this.props.currentUserId,previewCollapsed:this.props.previewCollapsed,previewEnabled:this.props.previewEnabled,isBusy:this.state.isBusy,handleCardClick:this.handleCardClick}),d&&s&&C.a.createElement(br,{date:s}),C.a.createElement("div",{ref:"rhspostlist",className:"post-right-comments-container",id:"rhsPostList"},r)),l)))}}xl(Fl,"propTypes",{posts:v.a.arrayOf(v.a.object).isRequired,channel:v.a.object.isRequired,selected:v.a.object.isRequired,previousRhsState:v.a.string,currentUserId:v.a.string.isRequired,previewCollapsed:v.a.string.isRequired,previewEnabled:v.a.bool.isRequired,socketConnectionStatus:v.a.bool.isRequired,actions:v.a.shape({removePost:v.a.func.isRequired,selectPostCard:v.a.func.isRequired,getPostThread:v.a.func.isRequired}).isRequired});var Bl=Object(n.connect)((function(){const e=Object(qa.makeGetPostsForThread)();return function(t){const a=Object(Cs.o)(t),n=Object(js.a)(t);let s=null,i=[];a&&(i=e(t,{rootId:a.id}),s=Object(p.getChannel)(t,a.channel_id));const r=Object(c.get)(t,P.B.CATEGORY_DISPLAY_SETTINGS,P.B.COLLAPSE_DISPLAY,P.B.COLLAPSE_DISPLAY_DEFAULT);return{selected:a,channel:s,posts:i,socketConnectionStatus:n.connected,previewCollapsed:r,previewEnabled:Object(c.getBool)(t,P.B.CATEGORY_DISPLAY_SETTINGS,P.B.LINK_PREVIEW_DISPLAY,P.B.LINK_PREVIEW_DISPLAY_DEFAULT)}}}),(function(e){return{actions:Object(s.bindActionCreators)({removePost:k.removePost,selectPostCard:ys.g,getPostThread:k.getPostThread},e)}}))(Fl);function Gl(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class Vl extends C.a.Component{constructor(...e){super(...e),Gl(this,"handleBack",e=>{switch(e.preventDefault(),this.props.previousRhsState){case P.C.SEARCH:this.props.actions.showSearchResults();break;case P.C.MENTION:this.props.actions.showMentions();break;case P.C.FLAG:this.props.actions.showFlaggedPosts();break;case P.C.PIN:this.props.actions.showPinnedPosts()}})}render(){let e,t;switch(this.props.previousRhsState){case P.C.SEARCH:case P.C.MENTION:t=C.a.createElement(mi.a,{id:"backToResultsTooltip"},C.a.createElement(V.a,{id:"rhs_header.backToResultsTooltip",defaultMessage:"Back to Search Results"}));break;case P.C.FLAG:t=C.a.createElement(mi.a,{id:"backToResultsTooltip"},C.a.createElement(V.a,{id:"rhs_header.backToFlaggedTooltip",defaultMessage:"Back to Flagged Posts"}));break;case P.C.PIN:t=C.a.createElement(mi.a,{id:"backToResultsTooltip"},C.a.createElement(V.a,{id:"rhs_header.backToPinnedTooltip",defaultMessage:"Back to Pinned Posts"}))}const a=C.a.createElement(mi.a,{id:"closeSidebarTooltip"},C.a.createElement(V.a,{id:"rhs_header.closeSidebarTooltip",defaultMessage:"Close Sidebar"})),n=C.a.createElement(mi.a,{id:"expandSidebarTooltip"},C.a.createElement(V.a,{id:"rhs_header.expandSidebarTooltip",defaultMessage:"Expand Sidebar"})),s=C.a.createElement(mi.a,{id:"shrinkSidebarTooltip"},C.a.createElement(V.a,{id:"rhs_header.shrinkSidebarTooltip",defaultMessage:"Shrink Sidebar"}));return t&&(e=C.a.createElement("a",{href:"#",onClick:this.handleBack,className:"sidebar--right__back"},C.a.createElement(ui.a,{delayShow:P.Q.OVERLAY_TIME_DELAY,placement:"top",overlay:t},C.a.createElement(V.a,{id:"generic_icons.back",defaultMessage:"Back Icon"},e=>C.a.createElement("i",{className:"fa fa-angle-left","aria-label":e}))))),C.a.createElement("div",{className:"sidebar--right__header"},C.a.createElement("span",{className:"sidebar--right__title"},e,C.a.createElement(V.a,{id:"search_header.title5",defaultMessage:"Extra information"})),C.a.createElement("div",{className:"pull-right"},C.a.createElement("button",{type:"button",className:"sidebar--right__expand","aria-label":"Expand",onClick:this.props.actions.toggleRhsExpanded},C.a.createElement(ui.a,{delayShow:P.Q.OVERLAY_TIME_DELAY,placement:"top",overlay:n},C.a.createElement(V.a,{id:"rhs_header.expandSidebarTooltip.icon",defaultMessage:"Expand Sidebar Icon"},e=>C.a.createElement("i",{className:"fa fa-expand","aria-label":e}))),C.a.createElement(ui.a,{delayShow:P.Q.OVERLAY_TIME_DELAY,placement:"top",overlay:s},C.a.createElement(V.a,{id:"rhs_header.expandTooltip.icon",defaultMessage:"Shrink Sidebar Icon"},e=>C.a.createElement("i",{className:"fa fa-compress","aria-label":e})))),C.a.createElement("button",{type:"button",className:"sidebar--right__close","aria-label":"Close",onClick:this.props.actions.closeRightHandSide},C.a.createElement(ui.a,{delayShow:P.Q.OVERLAY_TIME_DELAY,placement:"top",overlay:a},C.a.createElement(V.a,{id:"rhs_header.closeTooltip.icon",defaultMessage:"Close Sidebar Icon"},e=>C.a.createElement("i",{className:"fa fa-sign-out","aria-label":e}))))))}}Gl(Vl,"propTypes",{previousRhsState:v.a.oneOf(Object.values(P.C)),actions:v.a.shape({showMentions:v.a.func,showSearchResults:v.a.func,showFlaggedPosts:v.a.func,showPinnedPosts:v.a.func,closeRightHandSide:v.a.func,toggleRhsExpanded:v.a.func.isRequired})});var Wl=Object(n.connect)(null,(function(e){return{actions:Object(s.bindActionCreators)({showMentions:ys.m,showSearchResults:ys.p,showFlaggedPosts:ys.l,showPinnedPosts:ys.n,closeRightHandSide:ys.b,toggleRhsExpanded:ys.s},e)}}))(Vl);function zl(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function Yl(e){return C.a.createElement("div",Object.assign({},e,{className:"scrollbar--view"}))}function Kl(e){return C.a.createElement("div",Object.assign({},e,{className:"scrollbar--horizontal"}))}function Ql(e){return C.a.createElement("div",Object.assign({},e,{className:"scrollbar--vertical"}))}class Jl extends C.a.Component{constructor(e){super(e),zl(this,"handleScroll",()=>{this.state.isScrolling||this.setState({isScrolling:!0}),this.scrollStopAction.fireAfter(P.Q.SCROLL_DELAY)}),zl(this,"handleScrollStop",()=>{this.setState({isScrolling:!1})}),zl(this,"handleClick",()=>{I.Y()&&S.c()}),this.scrollStopAction=new xs(this.handleScrollStop),this.state={isScrolling:!1,topRhsPostCreateAt:0}}shouldComponentUpdate(e,t){return!I.c(t.selected,this.props.selected)||t.isScrolling!==this.state.isScrolling}render(){if(null==this.props.selected)return C.a.createElement("div",null);const{selected:e,pluginPostCardTypes:t,teamUrl:a}=this.props,n=e.type;let s=null;if(t.hasOwnProperty(n)){const a=t[n].component;s=C.a.createElement(a,{post:e})}s||(s=C.a.createElement("div",{className:"info-card"},C.a.createElement(va.a,{message:e.props&&e.props.card})));let i=C.a.createElement(wl,{userId:e.user_id,hideStatus:!0,disablePopover:!0});e.props.override_username&&this.props.enablePostUsernameOverride&&(i=C.a.createElement(wl,{userId:e.user_id,hideStatus:!0,disablePopover:!0,overwriteName:e.props.override_username}));const r=C.a.createElement(Jr,{compactDisplay:!1,post:e,userId:e.user_id});return C.a.createElement("div",{className:"sidebar-right__body sidebar-right__card"},C.a.createElement(Wl,{previousRhsState:this.props.previousRhsState}),C.a.createElement(Ls.a,{autoHide:!0,autoHideTimeout:500,autoHideDuration:500,renderThumbHorizontal:Kl,renderThumbVertical:Ql,renderView:Yl,onScroll:this.handleScroll},C.a.createElement("div",{className:"post-right__scroll"},s,C.a.createElement("div",{className:"d-flex post-card--info"},C.a.createElement("div",{className:"post-card--post-by overflow--ellipsis"},C.a.createElement(V.a,{id:"rhs_card.message_by",defaultMessage:"Message by {avatar} {user}",values:{user:i,avatar:r}})),C.a.createElement("div",{className:"post-card--view-post"},C.a.createElement(In.a,{to:"".concat(a,"/pl/").concat(e.id),className:"post__permalink",onClick:this.handleClick},C.a.createElement(V.a,{id:"rhs_card.jump",defaultMessage:"Jump"})))))))}}zl(Jl,"propTypes",{selected:v.a.object,pluginPostCardTypes:v.a.object,previousRhsState:v.a.oneOf(Object.values(P.C)),enablePostUsernameOverride:v.a.bool,teamUrl:v.a.string}),zl(Jl,"defaultProps",{pluginPostCardTypes:{}});var Zl=Object(n.connect)((function(e){const t=Object(Cs.p)(e);return{enablePostUsernameOverride:"true"===Object(d.getConfig)(e).EnablePostUsernameOverride,selected:t,pluginPostCardTypes:e.plugins.postCardTypes,teamUrl:Object(u.getCurrentRelativeTeamUrl)(e)}}))(Jl),Xl=a(1302);class $l extends C.a.PureComponent{render(){return C.a.createElement(V.a,{id:"generic_icons.select",defaultMessage:"Select Icon"},e=>C.a.createElement("i",{className:"fa fa fa-plus-square",title:e}))}}function ec(e){return e.type===P.Q.DM_CHANNEL?"@"+e.display_name:e.type===P.Q.GM_CHANNEL?"@"+e.display_name.replace(/ /g,""):(e.type===P.Q.OPEN_CHANNEL||(e.type,P.Q.PRIVATE_CHANNEL),e.name)}class tc extends sn.a{render(){const{item:e,isSelection:t}=this.props;let a="search-autocomplete__item";t&&(a+=" selected a11y--focused");const n=function(e){return e.type===P.Q.DM_CHANNEL?"@"+e.display_name:e.type===P.Q.GM_CHANNEL?"@"+e.display_name.replace(/ /g,""):e.type===P.Q.OPEN_CHANNEL||e.type===P.Q.PRIVATE_CHANNEL?e.display_name+" (~"+e.name+")":e.name}(e);let s=null;if(e.type===P.Q.DM_CHANNEL){const t=Object(I.t)(e.id);s=C.a.createElement(tn.a,{show:Boolean(t&&t.is_bot),className:"badge-popoverlist"})}return C.a.createElement("div",Object.assign({onClick:this.handleClick,className:a,onMouseMove:this.handleMouseMove,ref:e=>{this.node=e}},sn.a.baseProps),C.a.createElement($l,null),C.a.createElement("span",{"data-testid":"listItem",className:"search-autocomplete__name"},n),s)}}class ac extends en.a{constructor(e){super(),this.autocompleteChannelsForSearch=e}handlePretextChanged(e,t){const a=/\b(?:in|channel):\s*(\S*)$/i.exec(e.toLowerCase());if(a){const e=a[1];this.startNewRequest(e),this.autocompleteChannelsForSearch(e,a=>{if(this.shouldCancelDispatch(e))return;const n=a.sort(un.sortChannelsByTypeAndDisplayName.bind(null,"en")),s=n.map(ec);t({matchedPretext:e,terms:s,items:n,component:tc})})}return Boolean(a)}}var nc=a(1174);function sc(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function ic(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class rc extends Tn.a{constructor(e){super(e),ic(this,"getContent",()=>Rs()(Ai.a.findDOMNode(this.popoverRef.current)).find(".popover-content")),this.itemRefs=new Map,this.popoverRef=C.a.createRef(),this.suggestionReadOut=C.a.createRef()}generateLabel(e){e.username?(this.currentLabel=e.username,(e.first_name||e.last_name)&&e.nickname?this.currentLabel+=" ".concat(e.first_name," ").concat(e.last_name," ").concat(e.nickname):e.nickname?this.currentLabel+=" ".concat(e.nickname):(e.first_name||e.last_name)&&(this.currentLabel+=" ".concat(e.first_name," ").concat(e.last_name))):e.type===P.Q.DM_CHANNEL||e.type===P.Q.GM_CHANNEL?this.currentLabel=e.display_name:this.currentLabel=e.name,this.currentLabel&&(this.currentLabel=this.currentLabel.toLowerCase()),this.announceLabel()}renderChannelDivider(e){let t;return t=e===P.Q.OPEN_CHANNEL?C.a.createElement(V.a,{id:"suggestion.search.public",defaultMessage:"Public Channels"}):e===P.Q.PRIVATE_CHANNEL?C.a.createElement(V.a,{id:"suggestion.search.private",defaultMessage:"Private Channels"}):C.a.createElement(V.a,{id:"suggestion.search.direct",defaultMessage:"Direct Messages"}),C.a.createElement("div",{key:e+"-divider",className:"search-autocomplete__divider"},C.a.createElement("span",null,t))}render(){if(0===this.props.items.length)return null;const e=[];for(let t=0;t<this.props.items.length;t++){const a=this.props.items[t],n=this.props.terms[t],s=n===this.props.selection,i=this.props.components[t];this.props.renderDividers&&(0!==t&&a.type===this.props.items[t-1].type||(a.type===P.Q.OPEN_CHANNEL?e.push(this.renderChannelDivider(P.Q.OPEN_CHANNEL)):a.type===P.Q.PRIVATE_CHANNEL?e.push(this.renderChannelDivider(P.Q.PRIVATE_CHANNEL)):0!==t&&this.props.items[t-1].type!==P.Q.OPEN_CHANNEL&&this.props.items[t-1].type!==P.Q.PRIVATE_CHANNEL||e.push(this.renderChannelDivider(P.Q.DM_CHANNEL)))),s&&(this.currentItem=a),e.push(C.a.createElement(i,{key:n,ref:e=>this.itemRefs.set(n,e),item:a,term:n,matchedPretext:this.props.matchedPretext[t],isSelection:s,onClick:this.props.onCompleteWord,onMouseMove:this.props.onItemHover}))}return C.a.createElement(nc.a,{ref:this.popoverRef,id:"search-autocomplete__popover",className:"search-help-popover autocomplete visible",placement:"bottom"},C.a.createElement("div",{ref:this.suggestionReadOut,"aria-live":"polite",className:"hidden-label"}),e)}}ic(rc,"propTypes",function(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?sc(a,!0).forEach((function(t){ic(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):sc(a).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}({},Tn.a.propTypes));class oc extends C.a.PureComponent{render(){if(0===this.props.items.length)return null;const e=this.props.items[0],t=this.props.terms[0],a=this.props.components[0],n=C.a.createElement(a,{key:t,ref:t,item:e,term:t,matchedPretext:this.props.matchedPretext[0],isSelection:!1,onClick:this.props.onCompleteWord});return C.a.createElement(nc.a,{id:"search-autocomplete__popover",className:"search-help-popover autocomplete visible",placement:"bottom"},n)}}!function(e,t,a){t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a}(oc,"propTypes",{onCompleteWord:v.a.func.isRequired,items:v.a.array.isRequired,terms:v.a.array.isRequired,components:v.a.array.isRequired,matchedPretext:v.a.array.isRequired});class lc extends sn.a{render(){const{item:e,isSelection:t}=this.props;let a="search-autocomplete__item";t&&(a+=" selected a11y--focused");const n=e.username;let s="";return(e.first_name||e.last_name)&&e.nickname?s="- ".concat(I.z(e)," (").concat(e.nickname,")"):e.nickname?s="- (".concat(e.nickname,")"):(e.first_name||e.last_name)&&(s="- ".concat(I.z(e))),C.a.createElement("div",Object.assign({className:a,ref:e=>{this.node=e},onClick:this.handleClick,onMouseMove:this.handleMouseMove},sn.a.baseProps),C.a.createElement($l,null),C.a.createElement(nn.a,{size:"xs",username:n,url:I.M(e)}),C.a.createElement("div",{className:"mention--align"},C.a.createElement("span",null,n),C.a.createElement(tn.a,{show:Boolean(e.is_bot),className:"badge-autocomplete"}),C.a.createElement("span",{className:"mention__fullname"}," ",s)))}}class cc extends en.a{constructor(e){super(),this.autocompleteUsersInTeam=e}handlePretextChanged(e,t){const a=/\bfrom:\s*(\S*)$/i.exec(e.toLowerCase());return this.doAutocomplete(a,t),Boolean(a)}async doAutocomplete(e,t){if(!e)return;const a=e[1];this.startNewRequest(a);const n=await this.autocompleteUsersInTeam(a);if(this.shouldCancelDispatch(a))return;const s=Object.assign([],n.users);t({matchedPretext:a,terms:s.map(e=>e.username),items:s,component:lc})}allowDividers(){return!1}}var dc=a(184),mc=a(1662),uc=a.n(mc);a(1669);class pc extends sn.a{constructor(...e){super(...e),function(e,t,a){t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a}(this,"handleDayClick",e=>{const t=e.toISOString().split("T")[0];this.props.onClick(t,this.props.matchedPretext)})}render(){let e;return this.props.currentDate&&(e={today:this.props.currentDate}),C.a.createElement(uc.a,{onDayClick:this.handleDayClick,showOutsideDays:!0,modifiers:e,ref:e=>{this.node=e}})}}var hc=Object(n.connect)((function(e){const t=Object(m.getCurrentUserId)(e),a=Object(rr.getUserTimezone)(e,t);let n;return Object(lr.a)(e)&&(n=a.useAutomaticTimezone?Object(dc.c)(a.automaticTimezone):Object(dc.c)(a.manualTimezone)),{currentDate:n}}))(pc);class gc extends en.a{handlePretextChanged(e,t){const a=/\b(?:on|before|after):\s*(\S*)$/i.exec(e.toLowerCase());if(a){const e=a[1];this.startNewRequest(e);const n=Object.assign([],[{label:"Selected Date",date:e}]);t({matchedPretext:e,terms:n.map(e=>e.date),items:n,component:hc})}return Boolean(a)}allowDividers(){return!1}presentationType(){return"date"}}function bc({iconComponent:e,ariaLabel:t,buttonClass:a,buttonId:n,onClick:s,tooltipKey:i,tooltipText:r}){const o={flaggedPosts:{class:"text-nowrap",id:"flaggedTooltip",messageID:Object(de.b)("channel_header.flagged"),message:"Flagged Posts"},pinnedPosts:{class:"",id:"pinnedPostTooltip",messageID:Object(de.b)("channel_header.pinnedPosts"),message:"Pinned Posts"},recentMentions:{class:"",id:"recentMentionsTooltip",messageID:Object(de.b)("channel_header.recentMentions"),message:"Recent Mentions"},search:{class:"",id:"searchTooltip",messageID:Object(de.b)("channel_header.search"),message:"Search"}};let l,c;return l="plugin"===i&&r?C.a.createElement(mi.a,{id:"pluginTooltip",className:""},C.a.createElement("span",null,r)):function(e){return null==o[e]?null:C.a.createElement(mi.a,{id:o[e].id,className:o[e].class},C.a.createElement(V.a,{id:o[e].messageID,defaultMessage:o[e].message}))}(i),t&&(c="".concat(Object(I.gb)(o[i].messageID,o[i].message))),l?C.a.createElement("div",{className:"flex-child"},C.a.createElement(ui.a,{trigger:["hover"],delayShow:P.j.OVERLAY_TIME_DELAY,placement:"bottom",overlay:l},C.a.createElement("button",{id:n,"aria-label":c,className:a||"channel-header__icon style--none",onClick:s},e))):C.a.createElement("div",{className:"flex-child"},C.a.createElement("button",{id:n,className:a||"channel-header__icon style--none",onClick:s},e))}bc.propTypes={ariaLabel:v.a.bool,buttonClass:v.a.string,buttonId:v.a.string.isRequired,iconComponent:v.a.element.isRequired,onClick:v.a.func.isRequired,tooltipKey:v.a.string,tooltipText:v.a.string};class fc extends y.PureComponent{render(){return C.a.createElement(C.a.Fragment,null,this.props.withTitle&&C.a.createElement("h4",null,C.a.createElement(V.a,{id:"search_bar.usage.title",defaultMessage:"Search Options"})),C.a.createElement(Ji.b,{id:"search_bar.usage.tips",defaultMessage:'* Use **"quotation marks"** to search for phrases\\n* Use **from:** to find posts from specific users\\n * Use **in:** to find posts in specific channels\\n* Use **on:** to find posts on a specific date\\n* Use **before:** to find posts before a specific date\\n* Use **after:** to find posts after a specific date\\n* Use **dash** "-" to exclude search terms and modifiers'}))}}!function(e,t,a){t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a}(fc,"propTypes",{withTitle:v.a.bool});class _c extends C.a.PureComponent{render(){return C.a.createElement("span",this.props,C.a.createElement(V.a,{id:"generic_icons.mention",defaultMessage:"Mention Icon"},e=>C.a.createElement("svg",{width:"14px",height:"14px",viewBox:"0 0 20 20",version:"1.1",role:"img","aria-label":e},C.a.createElement("g",{stroke:"none",strokeWidth:"1",fill:"inherit",fillRule:"evenodd"},C.a.createElement("g",{transform:"translate(-1057.000000, -31.000000)",fill:"inherit"},C.a.createElement("g",null,C.a.createElement("g",{transform:"translate(1049.000000, 22.000000)"},C.a.createElement("path",{d:"M17.4296875,15.8867188 C15.9882812,15.8867188 15.1210938,17.0351562 15.1210938,18.96875 C15.1210938,20.8789062 15.9882812,22.0507812 17.4179688,22.0507812 C18.8945312,22.0507812 19.84375,20.8554688 19.84375,18.96875 C19.84375,17.0820312 18.90625,15.8867188 17.4296875,15.8867188 Z M17.8398438,9.125 C23.3242188,9.125 27.25,12.59375 27.25,17.7734375 C27.25,21.5117188 25.5625,23.9609375 22.7734375,23.9609375 C21.4023438,23.9609375 20.265625,23.1992188 20.078125,22.0390625 L19.9609375,22.0390625 C19.46875,23.2226562 18.4140625,23.8789062 17.0429688,23.8789062 C14.6054687,23.8789062 12.9648438,21.8867188 12.9648438,18.9101562 C12.9648438,16.0625 14.6171875,14.09375 16.9960938,14.09375 C18.25,14.09375 19.3632812,14.7382812 19.8085938,15.7460938 L19.9375,15.7460938 L19.9375,14.328125 L21.9179688,14.328125 L21.9179688,20.984375 C21.9179688,21.7578125 22.328125,22.2851562 23.171875,22.2851562 C24.4726562,22.2851562 25.421875,20.6679688 25.421875,17.8320312 C25.421875,13.5664062 22.2929688,10.7421875 17.7109375,10.7421875 C13.1640625,10.7421875 9.90625,14.140625 9.90625,18.96875 C9.90625,24.1367188 13.3515625,27.0429688 18.109375,27.0429688 C19.5625,27.0429688 21.0507812,26.84375 21.7773438,26.5390625 L21.7773438,28.15625 C20.78125,28.484375 19.4570312,28.671875 18.0273438,28.671875 C12.2382812,28.671875 8.078125,25.109375 8.078125,18.8984375 C8.078125,13.0625 12.0859375,9.125 17.8398438,9.125 Z"}))))))))}}var Ec=a(1191),vc=a(1154);function yc(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const{KeyCodes:Cc}=P.Q;class wc extends C.a.Component{constructor(e){super(e),yc(this,"handleClose",()=>{this.props.actions.closeRightHandSide()}),yc(this,"handleKeyDown",e=>{I.W(e,Cc.ESCAPE)&&(e.stopPropagation(),e.preventDefault())}),yc(this,"handleChange",e=>{var t=e.target.value;this.props.actions.updateSearchTerms(t)}),yc(this,"handleUserBlur",()=>{setTimeout(()=>{this.setState({focused:!1})},200)}),yc(this,"handleClear",()=>{this.props.actions.updateSearchTerms("")}),yc(this,"handleUserFocus",()=>{this.setState({focused:!0})}),yc(this,"handleSearch",async e=>{if(e.length){const{error:e}=await this.props.actions.showSearchResults();e||this.handleSearchOnSuccess()}}),yc(this,"handleSearchOnSuccess",()=>{I.Y()&&this.search&&(this.search.value="")}),yc(this,"handleSubmit",e=>{e.preventDefault();const t=this.props.searchTerms.trim();0!==t.length&&(this.handleSearch(t),this.search.blur())}),yc(this,"searchMentions",e=>{e.preventDefault(),this.props.isMentionSearch?this.props.actions.closeRightHandSide():this.props.actions.showMentions()}),yc(this,"getFlagged",e=>{e.preventDefault(),this.props.isFlaggedPosts?this.props.actions.closeRightHandSide():this.props.actions.showFlaggedPosts()}),yc(this,"getSearch",e=>{this.search=e}),this.state={focused:!1},this.suggestionProviders=[new gc,new ac(e.actions.autocompleteChannelsForSearch),new cc(e.actions.autocompleteUsersInTeam)]}componentDidMount(){I.Y()&&setTimeout(()=>{const e=document.querySelector(".app__body .sidebar--menu");e&&e.classList.remove("visible")})}renderHintPopover(){if(I.Y())return null;let e="search-help-popover";return!this.props.searchTerms&&this.state.focused&&(e+=" visible"),C.a.createElement(nc.a,{id:this.props.isSideBarRight?"sbr-searchbar-help-popup":"searchbar-help-popup",placement:"bottom",className:e},C.a.createElement(fc,{withTitle:!0}))}render(){let e,t;if(this.props.showMentionFlagBtns){var a=this.props.isMentionSearch?"active":"";e=C.a.createElement(bc,{iconComponent:C.a.createElement(_c,{className:"icon icon__mentions","aria-hidden":"true"}),ariaLabel:!0,buttonClass:"channel-header__icon style--none "+a,buttonId:this.props.isSideBarRight?"sbrChannelHeaderMentionButton":"channelHeaderMentionButton",onClick:this.searchMentions,tooltipKey:"recentMentions"});var n=this.props.isFlaggedPosts?"active":"";t=C.a.createElement(bc,{iconComponent:C.a.createElement(to,{className:"icon icon__flag"}),ariaLabel:!0,buttonClass:"channel-header__icon style--none "+n,buttonId:this.props.isSideBarRight?"sbrChannelHeaderFlagButton":"channelHeaderFlagButton",onClick:this.getFlagged,tooltipKey:"flaggedPosts"})}const s=!this.props.isSearchingTerm&&this.props.searchTerms&&""!==this.props.searchTerms.trim();let i="search__form";this.state.focused&&(i+=" focused");const r=C.a.createElement(mi.a,{id:"searchClearTooltip"},C.a.createElement(V.a,{id:"search_bar.clear",defaultMessage:"Clear search query"}));return C.a.createElement("div",{className:"sidebar-right__table"},C.a.createElement("div",{className:"sidebar-collapse__container"},C.a.createElement("div",{id:this.props.isSideBarRight?"sbrSidebarCollapse":"sidebarCollapse",className:"sidebar-collapse",onClick:this.handleClose},C.a.createElement(V.a,{id:"generic_icons.back",defaultMessage:"Back Icon"},e=>C.a.createElement("span",{className:"fa fa-2x fa-angle-left",title:e})))),C.a.createElement("div",{id:this.props.isSideBarRight?"sbrSearchFormContainer":"searchFormContainer",className:"search-form__container"},C.a.createElement("form",{role:"application",className:i,onSubmit:this.handleSubmit,style:Oc.searchForm,autoComplete:"off"},C.a.createElement(Ec.a,{className:"search__icon","aria-hidden":"true"}),C.a.createElement(On.a,{ref:this.getSearch,id:this.props.isSideBarRight?"sbrSearchBox":"searchBox",tabIndex:"0",className:"search-bar a11y__region","data-a11y-sort-order":"8","aria-describedby":this.props.isSideBarRight?"sbr-searchbar-help-popup":"searchbar-help-popup","aria-label":I.gb("search_bar.search","Search"),placeholder:I.gb("search_bar.search","Search"),value:this.props.searchTerms,onFocus:this.handleUserFocus,onBlur:this.handleUserBlur,onChange:this.handleChange,onKeyDown:this.handleKeyDown,listComponent:rc,dateComponent:oc,providers:this.suggestionProviders,type:"search",autoFocus:this.props.isFocus&&""===this.props.searchTerms,delayInputUpdate:!0,renderDividers:!0}),s&&C.a.createElement("div",{id:this.props.isSideBarRight?"sbrSearchClearButton":"searchClearButton",className:"sidebar__search-clear visible",onClick:this.handleClear},C.a.createElement(Xl.a,{delayShow:P.Q.OVERLAY_TIME_DELAY,placement:"bottom",overlay:r},C.a.createElement("span",{className:"sidebar__search-clear-x","aria-hidden":"true"},"×"))),this.props.isSearchingTerm&&C.a.createElement(vc.a,null),this.renderHintPopover())),e,t)}}yc(wc,"propTypes",{isSearchingTerm:v.a.bool,searchTerms:v.a.string,isMentionSearch:v.a.bool,isFlaggedPosts:v.a.bool,showMentionFlagBtns:v.a.bool,isFocus:v.a.bool,isSideBarRight:v.a.bool,actions:v.a.shape({updateSearchTerms:v.a.func,showSearchResults:v.a.func,showMentions:v.a.func,showFlaggedPosts:v.a.func,closeRightHandSide:v.a.func,autocompleteChannelsForSearch:v.a.func.isRequired,autocompleteUsersInTeam:v.a.func.isRequired})}),yc(wc,"defaultProps",{showMentionFlagBtns:!0,isFocus:!1});const Oc={searchForm:{overflow:"visible"}};var Tc=Object(n.connect)((function(e){const t=Object(Cs.k)(e);return{isSearchingTerm:Object(Cs.g)(e),searchTerms:Object(Cs.m)(e),isMentionSearch:t===P.C.MENTION,isFlaggedPosts:t===P.C.FLAG}}),(function(e){return{actions:Object(s.bindActionCreators)({updateSearchTerms:ys.u,showSearchResults:ys.p,showMentions:ys.m,showFlaggedPosts:ys.l,closeRightHandSide:ys.b,autocompleteChannelsForSearch:_a.c,autocompleteUsersInTeam:cs.c},e)}}))(wc),Sc=a(135),Pc=a(1670);class Mc extends C.a.Component{render(){const e=C.a.createElement(mi.a,{id:"closeSidebarTooltip"},C.a.createElement(V.a,{id:"rhs_header.closeSidebarTooltip",defaultMessage:"Close Sidebar"})),t=C.a.createElement(mi.a,{id:"expandSidebarTooltip"},C.a.createElement(V.a,{id:"rhs_header.expandSidebarTooltip",defaultMessage:"Expand Sidebar"})),a=C.a.createElement(mi.a,{id:"shrinkSidebarTooltip"},C.a.createElement(V.a,{id:"rhs_header.shrinkSidebarTooltip",defaultMessage:"Shrink Sidebar"}));return C.a.createElement("div",{className:"sidebar--right__header"},C.a.createElement("span",{className:"sidebar--right__title"},this.props.children),C.a.createElement("div",{className:"pull-right"},C.a.createElement("button",{type:"button",className:"sidebar--right__expand","aria-label":"Expand",onClick:this.props.actions.toggleRhsExpanded},C.a.createElement(ui.a,{delayShow:P.Q.OVERLAY_TIME_DELAY,placement:"top",overlay:t},C.a.createElement(V.a,{id:"rhs_header.expandSidebarTooltip.icon",defaultMessage:"Expand Sidebar Icon"},e=>C.a.createElement("i",{className:"fa fa-expand","aria-label":e}))),C.a.createElement(ui.a,{delayShow:P.Q.OVERLAY_TIME_DELAY,placement:"top",overlay:a},C.a.createElement(V.a,{id:"rhs_header.expandTooltip.icon",defaultMessage:"Shrink Sidebar Icon"},e=>C.a.createElement("i",{className:"fa fa-compress","aria-label":e})))),C.a.createElement("button",{id:"searchResultsCloseButton",type:"button",className:"sidebar--right__close","aria-label":"Close",onClick:this.props.actions.closeRightHandSide},C.a.createElement(ui.a,{delayShow:P.Q.OVERLAY_TIME_DELAY,placement:"top",overlay:e},C.a.createElement(V.a,{id:"rhs_header.closeTooltip.icon",defaultMessage:"Close Sidebar Icon"},e=>C.a.createElement("i",{className:"fa fa-sign-out","aria-label":e}))))))}}!function(e,t,a){t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a}(Mc,"propTypes",{children:v.a.element,actions:v.a.shape({closeRightHandSide:v.a.func,toggleRhsExpanded:v.a.func.isRequired})});var Ic=Object(n.connect)(null,(function(e){return{actions:Object(s.bindActionCreators)({closeRightHandSide:ys.b,toggleRhsExpanded:ys.s},e)}}))(Mc);class Nc extends C.a.PureComponent{render(){return C.a.createElement("span",this.props,C.a.createElement(V.a,{id:"generic_icons.reply",defaultMessage:"Reply Icon"},e=>C.a.createElement("svg",{x:"0px",y:"0px",width:"17px",height:"17px",viewBox:"-158 242 18 18",style:jc,role:"img","aria-label":e},C.a.createElement("path",{d:"M-142.2,252.6c-2-3-4.8-4.7-8.3-4.8v-3.3c0-0.2-0.1-0.3-0.2-0.3s-0.3,0-0.4,0.1l-6.9,6.2c-0.1,0.1-0.1,0.2-0.1,0.3 c0,0.1,0,0.2,0.1,0.3l6.9,6.4c0.1,0.1,0.3,0.1,0.4,0.1c0.1-0.1,0.2-0.2,0.2-0.4v-3.8c4.2,0,7.4,0.4,9.6,4.4c0.1,0.1,0.2,0.2,0.3,0.2 c0,0,0.1,0,0.1,0c0.2-0.1,0.3-0.3,0.2-0.4C-140.2,257.3-140.6,255-142.2,252.6z M-150.8,252.5c-0.2,0-0.4,0.2-0.4,0.4v3.3l-6-5.5 l6-5.3v2.8c0,0.2,0.2,0.4,0.4,0.4c3.3,0,6,1.5,8,4.5c0.5,0.8,0.9,1.6,1.2,2.3C-144,252.8-147.1,252.5-150.8,252.5z"}))))}}const jc={enableBackground:"new -158 242 18 18"};function Ac(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class Rc extends C.a.PureComponent{render(){let e=null,t="comment-icon__container";this.props.commentCount>0?(t+=" icon--show",e=C.a.createElement("span",{className:"comment-count"},this.props.commentCount)):""!==this.props.searchStyle&&(t=t+" "+this.props.searchStyle);const a=C.a.createElement(mi.a,{id:"comment-icon-tooltip",className:"hidden-xs"},C.a.createElement(V.a,{id:"post_info.comment_icon.tooltip.reply",defaultMessage:"Reply"}));return C.a.createElement(ui.a,{delayShow:500,placement:"top",overlay:a},C.a.createElement("button",{id:"".concat(this.props.location,"_commentIcon_").concat(this.props.postId),"aria-label":Object(I.gb)("post_info.comment_icon.tooltip.reply","Reply").toLowerCase(),className:t+" color--link style--none "+this.props.extraClass,onClick:this.props.handleCommentClick},C.a.createElement("span",{className:"d-flex"},C.a.createElement(Nc,{className:"comment-icon"}),e)))}}Ac(Rc,"propTypes",{location:v.a.oneOf(["CENTER","SEARCH"]),handleCommentClick:v.a.func.isRequired,searchStyle:v.a.string,commentCount:v.a.number,postId:v.a.string,extraClass:v.a.string}),Ac(Rc,"defaultProps",{location:"CENTER",searchStyle:"",commentCount:0,extraClass:""});var kc=a(1188);function Lc(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class Dc extends C.a.PureComponent{constructor(e){super(e),Lc(this,"handleFocusRHSClick",e=>{e.preventDefault(),this.props.actions.selectPost(this.props.post)}),Lc(this,"handleJumpClick",e=>{e.preventDefault(),I.Y()&&this.props.actions.closeRightHandSide(),this.props.actions.setRhsExpanded(!1),K.a.push("/".concat(this.props.currentTeamName,"/pl/").concat(this.props.post.id))}),Lc(this,"handleCardClick",e=>{e&&this.props.actions.selectPostCard(e)}),Lc(this,"handleDropdownOpened",e=>{this.setState({dropdownOpened:e})}),Lc(this,"renderPostTime",()=>{const e=this.props.post,t=!(L.Posts.POST_DELETED===e.state||Bs.isPostPendingOrFailed(e));return C.a.createElement(co,{isPermalink:t,eventTime:e.create_at,postId:e.id,location:P.t.SEARCH})}),Lc(this,"getClassName",()=>{let e="post post--thread";return this.props.compactDisplay&&(e+=" post--compact"),this.state.dropdownOpened&&(e+=" post--hovered"),e}),Lc(this,"handleSearchItemFocus",()=>{this.setState({currentAriaLabel:"".concat(this.getChannelName(),", ").concat(this.props.createAriaLabel(this.props.intl))})}),Lc(this,"getChannelName",()=>{const{channelId:e,channelType:t}=this.props;let{channelName:a}=this.props;return t===P.Q.DM_CHANNEL&&(a=this.props.intl.formatMessage({id:"search_item.direct",defaultMessage:"Direct Message (with {username})"},{username:I.v(I.t(e))})),a}),this.state={dropdownOpened:!1}}render(){const{post:e,channelIsArchived:t}=this.props,a=this.getChannelName();let n,s=!1;e.props&&e.props.from_webhook&&e.props.override_username&&this.props.enablePostUsernameOverride&&(n=e.props.override_username,s=!0);const i=C.a.createElement(Jr,{compactDisplay:this.props.compactDisplay,post:e,userId:e.user_id}),r=C.a.createElement("div",{className:"post__img"},i);let o="";z.k(this.props.post)&&(o+=" post--edited");let l,c,d,m,u,p=null;e.file_ids&&e.file_ids.length>0&&(p=C.a.createElement(Wr,{post:e,compactDisplay:this.props.compactDisplay})),e.state===P.Q.POST_DELETED||e.state===L.Posts.POST_DELETED?l=C.a.createElement("p",null,C.a.createElement(V.a,{id:"post_body.deleted",defaultMessage:"(message deleted)"})):(c=C.a.createElement(io,{location:P.t.SEARCH,postId:e.id,isFlagged:this.props.isFlagged}),e.props&&e.props.card&&(d=C.a.createElement(ui.a,{delayShow:P.Q.OVERLAY_TIME_DELAY,placement:"top",overlay:C.a.createElement(mi.a,null,C.a.createElement(V.a,{id:"post_info.info.view_additional_info",defaultMessage:"View additional info"}))},C.a.createElement("button",{className:"card-icon__container icon--show style--none",onClick:e=>{e.preventDefault(),this.handleCardClick(this.props.post)}},C.a.createElement(El,{className:"icon icon__info","aria-hidden":"true"})))),m=C.a.createElement("div",{className:"col__controls col__reply"},C.a.createElement(Ir,{post:e,location:P.t.SEARCH,isFlagged:this.props.isFlagged,handleDropdownOpened:this.handleDropdownOpened,commentCount:this.props.commentCountForPost,isReadOnly:t||null}),C.a.createElement(Rc,{location:P.t.SEARCH,handleCommentClick:this.handleFocusRHSClick,postId:e.id,searchStyle:"search-item__comment"}),C.a.createElement("a",{href:"#",onClick:this.handleJumpClick,className:"search-item__jump"},C.a.createElement(V.a,{id:"search_item.jump",defaultMessage:"Jump"}))),l=C.a.createElement(pl,{post:e,options:{searchTerm:this.props.term,searchMatches:this.props.matches}},C.a.createElement(bl,{post:e,options:{searchTerm:this.props.term,searchMatches:this.props.matches,mentionHighlight:this.props.isMentionSearch},isRHS:!0}))),e.is_pinned&&(u=C.a.createElement("span",{className:"post__pinned-badge"},C.a.createElement(V.a,{id:"post_info.pinned",defaultMessage:"Pinned"})));const h=I.r(e.create_at);return C.a.createElement("div",{"data-testid":"search-item-container",className:"search-item__container"},C.a.createElement(br,{date:h}),C.a.createElement("div",{className:"a11y__section ".concat(this.getClassName()),"aria-label":this.state.currentAriaLabel,onFocus:this.handleSearchItemFocus,"data-a11y-sort-order":this.props.a11yIndex},C.a.createElement("div",{className:"search-channel__name","aria-hidden":"true"},a,t&&C.a.createElement("span",{className:"search-channel__archived"},C.a.createElement(kc.a,{className:"icon icon__archive channel-header-archived-icon svg-text-color"}),C.a.createElement(V.a,{id:"search_item.channelArchived",defaultMessage:"Archived"}))),C.a.createElement("div",{role:"application",className:"post__content"},r,C.a.createElement("div",null,C.a.createElement("div",{className:"post__header"},C.a.createElement("div",{className:"col col__name"},C.a.createElement(wl,{userId:e.user_id,overwriteName:n,disablePopover:s,isRHS:!0}),C.a.createElement(tn.a,{show:Boolean(e.props&&e.props.from_webhook&&!this.props.isBot)})),C.a.createElement("div",{className:"col"},this.renderPostTime(),u,d,c),m),C.a.createElement("div",{className:"search-item-snippet post__body"},C.a.createElement("div",{className:o},l,p))))))}}Lc(Dc,"propTypes",{post:v.a.object,createAriaLabel:v.a.func,matches:v.a.array,channelId:v.a.string,channelName:v.a.string,channelType:v.a.string,channelIsArchived:v.a.bool,compactDisplay:v.a.bool,isMentionSearch:v.a.bool,term:v.a.string,isFlagged:v.a.bool,currentTeamName:v.a.string,commentCountForPost:v.a.number,enablePostUsernameOverride:v.a.bool.isRequired,isBot:v.a.bool.isRequired,a11yIndex:v.a.number,actions:v.a.shape({closeRightHandSide:v.a.func.isRequired,selectPost:v.a.func.isRequired,selectPostCard:v.a.func.isRequired,setRhsExpanded:v.a.func.isRequired}).isRequired,intl:Y.a.isRequired}),Lc(Dc,"defaultProps",{isBot:!1,channelIsArchived:!1});var xc=Object(W.c)(Dc);var Uc=Object(n.connect)((function(){const e=Object(z.p)(),t=Object(qa.makeGetCommentCountForPost)();return(a,n)=>{const s=Object(d.getConfig)(a),i=Object(c.getMyPreferences)(a),r="true"===s.EnablePostUsernameOverride,{post:o}=n,l=Object(m.getUser)(a,o.user_id),h=Object(p.getChannel)(a,o.channel_id)||{delete_at:0};return{createAriaLabel:e(a,o),channelId:h.id,channelName:h.display_name,channelType:h.type,channelIsArchived:0!==h.delete_at,currentTeamName:Object(u.getCurrentTeam)(a).name,commentCountForPost:t(a,{post:o}),enablePostUsernameOverride:r,isFlagged:Object(Bs.isPostFlagged)(o.id,i),isBot:!!l&&l.is_bot}}}),(function(e){return{actions:Object(s.bindActionCreators)({closeRightHandSide:ys.b,selectPost:ys.i,selectPostCard:ys.h,setRhsExpanded:ys.k},e)}}))(xc);class qc extends y.PureComponent{render(){return C.a.createElement("li",null,C.a.createElement(V.a,{id:"search_results.usage.dataRetention",defaultMessage:"Only messages posted in the last {days} days are returned. Contact your System Administrator for more detail.",values:{days:this.props.dataRetentionMessageRetentionDays}}))}}!function(e,t,a){t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a}(qc,"propTypes",{dataRetentionMessageRetentionDays:v.a.string});class Hc extends y.PureComponent{render(){return C.a.createElement(C.a.Fragment,null,C.a.createElement("ul",null,C.a.createElement("li",null,C.a.createElement(V.a,{id:"search_results.usageFlag1",defaultMessage:"You haven't flagged any messages yet."})),C.a.createElement("li",null,C.a.createElement(V.a,{id:"search_results.usageFlag2",defaultMessage:"You can add a flag to messages and comments by clicking the {flagIcon} icon next to the timestamp.",values:{flagIcon:C.a.createElement(to,{className:"usage__icon"})}})),C.a.createElement("li",null,C.a.createElement(V.a,{id:"search_results.usageFlag4",defaultMessage:"Flags are a way to mark messages for follow up. Your flags are personal, and cannot be seen by other users."})),this.props.dataRetentionEnableMessageDeletion&&C.a.createElement(qc,{dataRetentionMessageRetentionDays:this.props.dataRetentionMessageRetentionDays})))}}!function(e,t,a){t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a}(Hc,"propTypes",{dataRetentionEnableMessageDeletion:v.a.bool,dataRetentionMessageRetentionDays:v.a.string});class Fc extends y.PureComponent{render(){return C.a.createElement(C.a.Fragment,null,C.a.createElement("h4",{id:"noResultsMessage"},C.a.createElement(V.a,{id:"search_results.noResults",defaultMessage:"No results found. Try again?"})),C.a.createElement("ul",null,C.a.createElement("li",null,C.a.createElement(V.a,{id:"search_results.noResults.partialPhraseSuggestion",defaultMessage:'If you\'re searching a partial phrase (ex. searching "rea", looking for "reach" or "reaction"), append a * to your search term.'})),C.a.createElement("li",null,C.a.createElement(V.a,{id:"search_results.noResults.stopWordsSuggestion",defaultMessage:'Two letter searches and common words like "this", "a" and "is" won\'t appear in search results due to the excessive results returned.'})),this.props.dataRetentionEnableMessageDeletion&&C.a.createElement(qc,{dataRetentionMessageRetentionDays:this.props.dataRetentionMessageRetentionDays})))}}!function(e,t,a){t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a}(Fc,"propTypes",{dataRetentionEnableMessageDeletion:v.a.bool,dataRetentionMessageRetentionDays:v.a.string});class Bc extends y.PureComponent{render(){return C.a.createElement(C.a.Fragment,null,C.a.createElement("ul",null,C.a.createElement("li",null,C.a.createElement(V.a,{id:"search_results.usagePin1",defaultMessage:"There are no pinned messages yet."})),C.a.createElement("li",null,C.a.createElement(V.a,{id:"search_results.usagePin2",defaultMessage:"All members of this channel can pin important or useful messages."})),C.a.createElement("li",null,C.a.createElement(V.a,{id:"search_results.usagePin3",defaultMessage:"Pinned messages are visible to all channel members."})),C.a.createElement("li",null,C.a.createElement(V.a,{id:"search_results.usagePin4",defaultMessage:'To pin a message: Go to the message that you want to pin and click [...] > "Pin to channel".'})),this.props.dataRetentionEnableMessageDeletion&&C.a.createElement(qc,{dataRetentionMessageRetentionDays:this.props.dataRetentionMessageRetentionDays})))}}!function(e,t,a){t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a}(Bc,"propTypes",{dataRetentionEnableMessageDeletion:v.a.bool,dataRetentionMessageRetentionDays:v.a.string});var Gc=a(1160);function Vc(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const Wc=30;function zc(e){return C.a.createElement("div",Object.assign({},e,{className:"scrollbar--view"}))}function Yc(e){return C.a.createElement("div",Object.assign({},e,{className:"scrollbar--horizontal"}))}function Kc(e){return C.a.createElement("div",Object.assign({},e,{className:"scrollbar--vertical"}))}class Qc extends C.a.Component{constructor(e){super(e),Vc(this,"handleResize",()=>{this.setState({windowWidth:I.sb(),windowHeight:I.rb()})}),Vc(this,"scrollToTop",()=>{this.refs.scrollbars.scrollToTop()}),Vc(this,"handleScroll",()=>{if(!(this.props.isFlaggedPosts||this.props.isPinnedPosts||this.props.isSearchingTerm||this.props.isSearchGettingMore)){const e=this.refs.scrollbars.getScrollHeight();this.refs.scrollbars.getScrollTop()+this.refs.scrollbars.getClientHeight()+Wc>=e&&this.loadMorePosts()}}),Vc(this,"loadMorePosts",Object(Si.debounce)(()=>{this.props.actions.getMorePostsForSearch()},100)),this.state={windowWidth:I.sb(),windowHeight:I.rb()}}componentDidMount(){this.scrollToTop(),window.addEventListener("resize",this.handleResize)}componentWillUnmount(){window.removeEventListener("resize",this.handleResize)}shouldComponentUpdate(e,t){return function(e,t,a,n){for(const a in t)if(t.hasOwnProperty(a)&&"results"!==a&&t[a]!==e[a])return!0;for(const e in n)if(n.hasOwnProperty(e)&&n[e]!==a[e])return!0;const s=e.results,i=t.results;if(s.length!==i.length)return!0;for(let e=0;e<s.length;e++)if(s[e]!==i[e])return!0;return!1}(this.props,e,this.state,t)}componentDidUpdate(e){this.props.searchTerms!==e.searchTerms&&this.scrollToTop()}render(){const e=this.props.results,t=!e||0===e.length,a=this.props.searchTerms;let n=null,s=null;if(this.props.isSearchingTerm||this.props.isSearchingFlaggedPost||this.props.isSearchingPinnedPost||!this.props.isOpened)n=C.a.createElement("div",{className:"sidebar--right__subheader a11y__section"},C.a.createElement("div",{className:"sidebar--right__loading"},C.a.createElement(Gc.a,{text:I.gb("search_header.loading","Searching")})));else if(this.props.isFlaggedPosts&&t)n=C.a.createElement("div",{className:"sidebar--right__subheader a11y__section"},C.a.createElement(Hc,{dataRetentionEnableMessageDeletion:this.props.dataRetentionEnableMessageDeletion,dataRetentionMessageRetentionDays:this.props.dataRetentionMessageRetentionDays}));else if(this.props.isPinnedPosts&&t)n=C.a.createElement("div",{className:"sidebar--right__subheader a11y__section"},C.a.createElement(Bc,{dataRetentionEnableMessageDeletion:this.props.dataRetentionEnableMessageDeletion,dataRetentionMessageRetentionDays:this.props.dataRetentionMessageRetentionDays}));else if(!a&&t)n=C.a.createElement("div",{className:"sidebar--right__subheader a11y__section"},C.a.createElement(fc,null));else if(t)n=C.a.createElement("div",{className:"sidebar--right__subheader a11y__section"},C.a.createElement(Fc,{dataRetentionEnableMessageDeletion:this.props.dataRetentionEnableMessageDeletion,dataRetentionMessageRetentionDays:this.props.dataRetentionMessageRetentionDays}));else{let t;this.props.isPinnedPosts?(t=[...e]).sort((e,t)=>t.create_at-e.create_at):t=e,n=t.map((e,t)=>C.a.createElement(Uc,{key:e.id,compactDisplay:this.props.compactDisplay,post:e,matches:this.props.matches[e.id],term:this.props.isFlaggedPosts||this.props.isPinnedPosts||this.props.isMentionSearch?"":a,isMentionSearch:this.props.isMentionSearch,a11yIndex:t}),this),this.props.isSearchAtEnd||this.props.isFlaggedPosts||this.props.isPinnedPosts||(s=C.a.createElement("div",{className:"loading-screen"},C.a.createElement("div",{className:"loading__content"},C.a.createElement("div",{className:"round round-1"}),C.a.createElement("div",{className:"round round-2"}),C.a.createElement("div",{className:"round round-3"}))))}var i=this.props.intl.formatMessage({id:"search_header.results",defaultMessage:"Search Results"});return this.props.isMentionSearch?i=this.props.intl.formatMessage({id:"search_header.title2",defaultMessage:"Recent Mentions"}):this.props.isFlaggedPosts?i=this.props.intl.formatMessage({id:"search_header.title3",defaultMessage:"Flagged Posts"}):this.props.isPinnedPosts?i=this.props.intl.formatMessage({id:"search_header.title4",defaultMessage:"Pinned posts in {channelDisplayName}"},{channelDisplayName:this.props.channelDisplayName}):this.props.isCard&&(i=this.props.intl.formatMessage({id:"search_header.title5",defaultMessage:"Extra information"})),C.a.createElement("div",{id:"searchContainer",className:"sidebar-right__body"},C.a.createElement(Ic,null,i),C.a.createElement(Ls.a,{ref:"scrollbars",autoHide:!0,autoHideTimeout:500,autoHideDuration:500,renderThumbHorizontal:Yc,renderThumbVertical:Kc,renderView:zc,onScroll:this.handleScroll},C.a.createElement("div",{id:"search-items-container",role:"application",className:"search-items-container post-list__table a11y__region","data-a11y-sort-order":"3","data-a11y-focus-child":!0,"data-a11y-loop-navigation":!1,"aria-label":this.props.intl.formatMessage({id:"accessibility.sections.rhs",defaultMessage:"{regionTitle} complimentary region"},{regionTitle:i})},n,s)))}}Vc(Qc,"propTypes",{results:v.a.array,matches:v.a.object,currentUser:v.a.object,searchTerms:v.a.string,isSearchingTerm:v.a.bool,isSearchingFlaggedPost:v.a.bool,isSearchingPinnedPost:v.a.bool,isSearchGettingMore:v.a.bool,isSearchAtEnd:v.a.bool,compactDisplay:v.a.bool,isMentionSearch:v.a.bool,isFlaggedPosts:v.a.bool,isPinnedPosts:v.a.bool,isCard:v.a.bool,channelDisplayName:v.a.string.isRequired,dataRetentionEnableMessageDeletion:v.a.bool.isRequired,dataRetentionMessageRetentionDays:v.a.string,isOpened:v.a.bool,actions:v.a.shape({getMorePostsForSearch:v.a.func.isRequired}),intl:Y.a.isRequired}),Vc(Qc,"defaultProps",{matches:{},currentUser:{}});var Jc=Object(W.c)(Qc);var Zc=Object(n.connect)((function(){let e,t;return function(a){const n=Object(d.getConfig)(a),s="true"===n.DataRetentionEnableMessageDeletion,i=n.DataRetentionMessageRetentionDays,r="true"===n.ExperimentalViewArchivedChannels,o=Object(qa.getSearchResults)(a);o&&o!==e&&(t=[],(e=o).forEach(e=>{if(!e)return;const n=Object(p.getChannel)(a,e.channel_id);n&&0!==n.delete_at&&!r||t.push(e)}));const l=Object(Pc.getCurrentSearchForCurrentTeam)(a)||{};return{results:t,matches:Object(qa.getSearchMatches)(a),currentUser:Object(m.getCurrentUser)(a),searchTerms:Object(Cs.l)(a),isSearchingTerm:Object(Cs.g)(a),isSearchingFlaggedPost:Object(Cs.e)(a),isSearchingPinnedPost:Object(Cs.f)(a),isSearchGettingMore:Object(Cs.d)(a),isSearchAtEnd:l.isEnd,compactDisplay:c.get(a,P.B.CATEGORY_DISPLAY_SETTINGS,P.B.MESSAGE_DISPLAY,P.B.MESSAGE_DISPLAY_DEFAULT)===P.B.MESSAGE_DISPLAY_COMPACT,dataRetentionEnableMessageDeletion:s,dataRetentionMessageRetentionDays:i}}}),(function(e){return{actions:Object(s.bindActionCreators)({getMorePostsForSearch:Sc.getMorePostsForSearch},e)}}))(Jc);class Xc extends C.a.PureComponent{render(){return C.a.createElement("div",{id:"rhsContainer",className:"sidebar-right__body"},C.a.createElement(Ic,null,this.props.title),C.a.createElement(A.a,{pluggableName:"RightHandSidebarComponent",pluggableId:this.props.pluggableId}))}}!function(e,t,a){t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a}(Xc,"propTypes",{title:v.a.oneOfType([v.a.string,v.a.object]),pluggableId:v.a.string.isRequired});var $c=Object(n.connect)((function(e){const t=e.plugins.components.RightHandSidebarComponent,a=Object(Cs.h)(e),n=t.find(e=>e.id===a);return{title:n?n.title:"",pluggableId:a}}))(Xc);function ed(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class td extends C.a.PureComponent{constructor(e){super(e),ed(this,"determineTransition",()=>{const e=window.getComputedStyle(this.sidebarRight.current).getPropertyValue("transition"),t=Boolean(e)&&"all 0s ease 0s"!==e;this.sidebarRight.current&&t?(this.setState({isOpened:this.props.isOpen}),this.sidebarRight.current.addEventListener("transitionend",this.onFinishTransition)):(this.setState({isOpened:!0}),this.sidebarRight.current&&this.sidebarRight.current.removeEventListener("transitionend",this.onFinishTransition))}),ed(this,"onFinishTransition",e=>{"transform"===e.propertyName&&this.setState({isOpened:this.props.isOpen})}),ed(this,"onShrink",()=>{this.props.actions.setRhsExpanded(!1)}),this.sidebarRight=C.a.createRef(),this.state={isOpened:!1}}componentDidMount(){window.addEventListener("resize",this.determineTransition),this.determineTransition()}componentWillUnmount(){window.removeEventListener("resize",this.determineTransition),this.sidebarRight.current&&this.sidebarRight.current.removeEventListener("transitionend",this.onFinishTransition)}componentDidUpdate(e){const t=e.searchVisible||e.postRightVisible,a=this.props.searchVisible||this.props.postRightVisible;!t&&a&&Object(Ie.d)("ui","ui_rhs_opened");const{actions:n,isPinnedPosts:s,channel:i}=this.props;s&&e.isPinnedPosts===s&&i.id!==e.channel.id&&n.showPinnedPosts(i.id)}render(){const{channel:e,currentUserId:t,isFlaggedPosts:a,isMentionSearch:n,isPinnedPosts:s,postRightVisible:i,postCardVisible:r,previousRhsState:o,searchVisible:l,isPluginView:c}=this.props;let d=null,m="";this.props.isExpanded&&(m="sidebar--right--expanded");var u=null;t&&(u=C.a.createElement(Tc,{isFocus:l&&!a&&!s,isSideBarRight:!0}));let p="";return e&&(p=e.type===P.Q.DM_CHANNEL||e.type===P.Q.GM_CHANNEL?I.gb("rhs_root.direct","Direct Message"):e.display_name),l?d=C.a.createElement("div",{className:"sidebar--right__content"},C.a.createElement("div",{className:"search-bar__container channel-header alt"},u),C.a.createElement(Zc,{isMentionSearch:n,isFlaggedPosts:a,isPinnedPosts:s,toggleSize:this.toggleSize,shrink:this.onShrink,channelDisplayName:p,isOpened:this.state.isOpened})):i?d=C.a.createElement("div",{className:"post-right__container"},C.a.createElement(Ns,{overlayType:"right"}),C.a.createElement("div",{className:"search-bar__container channel-header alt"},u),C.a.createElement(Bl,{previousRhsState:o,currentUserId:t,toggleSize:this.toggleSize,shrink:this.onShrink})):c?d=C.a.createElement("div",{className:"post-right__container"},C.a.createElement("div",{className:"search-bar__container channel-header alt"},u),C.a.createElement($c,null)):r&&(d=C.a.createElement("div",{className:"post-right__container"},C.a.createElement("div",{className:"search-bar__container channel-header alt"},u),C.a.createElement(Zl,{previousRhsState:o}))),d||(m=""),C.a.createElement("div",{className:Os()("sidebar--right",m,{"move--left":this.props.isOpen}),id:"sidebar-right",ref:this.sidebarRight},C.a.createElement("div",{onClick:this.onShrink,className:"sidebar--right__bg"}),C.a.createElement("div",{className:"sidebar-right-container"},d))}}ed(td,"propTypes",{isExpanded:v.a.bool.isRequired,isOpen:v.a.bool.isRequired,currentUserId:v.a.string.isRequired,channel:v.a.object,postRightVisible:v.a.bool,postCardVisible:v.a.bool,searchVisible:v.a.bool,isMentionSearch:v.a.bool,isFlaggedPosts:v.a.bool,isPinnedPosts:v.a.bool,isPluginView:v.a.bool,previousRhsState:v.a.string,actions:v.a.shape({setRhsExpanded:v.a.func.isRequired,showPinnedPosts:v.a.func.isRequired})});var ad=Object(n.connect)((function(e){const t=Object(Cs.k)(e),a=Object(Cs.n)(e);let n=null;if(a&&null==(n=Object(p.getChannel)(e,a))){const{focusedPostId:t}=e.views.channel,a=Object(qa.getPost)(e,t);null!=a&&(n=Object(p.getChannel)(e,a.channel_id))}return{isExpanded:Object(Cs.a)(e),isOpen:Object(Cs.c)(e),channel:n,currentUserId:Object(m.getCurrentUserId)(e),postRightVisible:Boolean(Object(Cs.s)(e)),postCardVisible:Boolean(Object(Cs.q)(e)),searchVisible:Boolean(t)&&t!==P.C.PLUGIN,previousRhsState:Object(Cs.j)(e),isMentionSearch:t===P.C.MENTION,isFlaggedPosts:t===P.C.FLAG,isPinnedPosts:t===P.C.PIN,isPluginView:t===P.C.PLUGIN}}),(function(e){return{actions:Object(s.bindActionCreators)({setRhsExpanded:ys.k,showPinnedPosts:ys.n},e)}}))(td),nd=a(1966),sd=(a(137),a(1671)),id=a.n(sd),rd=a(1672),od=a.n(rd);function ld(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const cd=P.Q.Preferences,dd=P.Q.TutorialSteps;class md extends C.a.Component{constructor(e){super(e),ld(this,"targetRef",void 0),ld(this,"show",()=>{this.setState({show:!0})}),ld(this,"hide",()=>{this.setState({show:!1})}),ld(this,"handleNext",()=>{if(this.state.currentScreen<this.props.screens.length-1)return void this.setState({currentScreen:this.state.currentScreen+1});if(this.props.diagnosticsTag){let e=this.props.diagnosticsTag;this.props.screens.length>1&&(e+="_"+(this.state.currentScreen+1).toString()),this.state.currentScreen===this.props.screens.length-1?e+="_okay":e+="_next",Object(Ie.d)("tutorial",e)}const{currentUserId:e,actions:t}=this.props,{closeRhsMenu:a,savePreferences:n}=t,s=[{user_id:e,category:cd.TUTORIAL_STEP,name:e,value:(this.props.step+1).toString()}];a(),this.hide(),n(e,s)}),ld(this,"skipTutorial",e=>{if(e.preventDefault(),this.props.diagnosticsTag){let e=this.props.diagnosticsTag;this.props.screens.length>1&&(e+="_"+this.state.currentScreen),e+="_skip",Object(Ie.d)("tutorial",e)}const{currentUserId:t,actions:a}=this.props,n=[{user_id:t,category:cd.TUTORIAL_STEP,name:t,value:dd.FINISHED.toString()}];a.savePreferences(t,n)}),ld(this,"handleCircleClick",(e,t)=>{e.preventDefault(),this.setState({currentScreen:t})}),ld(this,"getTarget",()=>this.targetRef.current),this.state={currentScreen:0,show:!1},this.targetRef=C.a.createRef()}render(){const e=this.state.currentScreen===this.props.screens.length-1?C.a.createElement(V.a,{id:"tutorial_tip.ok",defaultMessage:"Okay"}):C.a.createElement(V.a,{id:"tutorial_tip.next",defaultMessage:"Next"}),t=[];if(this.props.screens.length>1)for(let e=0;e<this.props.screens.length;e++){let a="circle";e===this.state.currentScreen&&(a+=" active"),t.push(C.a.createElement("a",{href:"#",key:"dotactive"+e,className:a,"data-screen":e,onClick:t=>this.handleCircleClick(t,e)}))}let a=id.a;return"tip-overlay--header"!==this.props.overlayClass&&"tip-overlay--sidebar"!==this.props.overlayClass&&"tip-overlay--header--up"!==this.props.overlayClass||(a=od.a),C.a.createElement("div",{id:"tipButton",className:"tip-div "+this.props.overlayClass,onClick:this.show},C.a.createElement("img",{alt:"tutorial tip",className:"tip-button",src:a,width:"35",onClick:this.show,ref:this.targetRef}),C.a.createElement(X.a,{show:this.state.show},C.a.createElement("div",{className:"tip-backdrop"})),C.a.createElement(X.a,{placement:this.props.placement,show:this.state.show,rootClose:!0,onHide:this.hide,target:this.getTarget},C.a.createElement("div",{className:"tip-overlay "+this.props.overlayClass},C.a.createElement("div",{className:"arrow"}),this.props.screens[this.state.currentScreen],C.a.createElement("div",{className:"tutorial__footer"},C.a.createElement("div",{className:"tutorial__circles"},t),C.a.createElement("div",{className:"text-right"},C.a.createElement("button",{id:"tipNextButton",className:"btn btn-primary",onClick:this.handleNext},e),C.a.createElement("div",{className:"tip-opt"},C.a.createElement(V.a,{id:"tutorial_tip.seen",defaultMessage:"Seen this before? "}),C.a.createElement("a",{href:"#",onClick:this.skipTutorial},C.a.createElement(V.a,{id:"tutorial_tip.out",defaultMessage:"Opt out of these tips."}))))))))}}ld(md,"propTypes",{currentUserId:v.a.string.isRequired,step:v.a.number.isRequired,screens:v.a.any.isRequired,placement:v.a.string.isRequired,overlayClass:v.a.string,diagnosticsTag:v.a.string,actions:v.a.shape({closeRhsMenu:v.a.func.isRequired,savePreferences:v.a.func.isRequired}).isRequired}),ld(md,"defaultProps",{overlayClass:""});var ud=Object(n.connect)((function(e){const t=Object(m.getCurrentUserId)(e);return{currentUserId:t,step:Object(c.getInt)(e,P.B.TUTORIAL_STEP,t,0)}}),(function(e){return{actions:Object(s.bindActionCreators)({closeRhsMenu:ys.a,savePreferences:ls.savePreferences},e)}}))(md);const pd=({toggleFunc:e,onBottom:t})=>{const a=[];a.push(C.a.createElement("div",null,C.a.createElement("h4",null,C.a.createElement(V.a,{id:"sidebar_header.tutorial.title",defaultMessage:"Main Menu"})),C.a.createElement("p",null,C.a.createElement(Ji.b,{id:"sidebar_header.tutorial.body1",defaultMessage:"The **Main Menu** is where you can **Invite New Members**, access your **Account Settings** and set your **Theme Color**."})),C.a.createElement("p",null,C.a.createElement(Ji.b,{id:"sidebar_header.tutorial.body2",defaultMessage:"Team administrators can also access their **Team Settings** from this menu."})),C.a.createElement("p",null,C.a.createElement(Ji.b,{id:"sidebar_header.tutorial.body3",defaultMessage:"System administrators will find a **System Console** option to administrate the entire system."}))));let n="right",s="left";return t&&(n="bottom",s="up"),C.a.createElement("div",{onClick:e},C.a.createElement(ud,{placement:n,screens:a,overlayClass:"tip-overlay--header--"+s,diagnosticsTag:"tutorial_tip_3_main_menu"}))};pd.propTypes={toggleFunc:v.a.func,onBottom:v.a.bool.isRequired};var hd=pd,gd=a(1177);function bd(e,t,a){return async(n,s)=>{t.length>0&&await n(l.getTeamMembersByIds(e,t.map(e=>e.id)));const i=s(),r=[],o=[],c=[];for(const a of t){const t=Object(u.getTeamMember)(i,e,a.id);Object(I.V)(a)?o.push({user:a,reason:Object(I.gb)("invite.members.user-is-guest","Contact your admin to make this guest a full member.")}):t?o.push({user:a,reason:Object(I.gb)("invite.members.already-member","This person is already a team member.")}):c.push(a)}if(c.length>0){const t=(await n(Object(b.c)(e,c.map(e=>e.id)))).data||[];for(const e of c){const a=t.find(t=>t.user_id===e.id&&t.error);a?o.push({user:e,reason:a.error.message}):r.push({user:e,reason:Object(I.gb)("invite.members.added-to-team","This member has been added to the team.")})}}if(a.length>0){let t;try{t=await n(l.sendEmailInvitesToTeamGracefully(e,a))}catch(e){t={data:a.map(e=>({email:e,error:{error:Object(I.gb)("invite.members.unable-to-add-the-user-to-the-team","Unable to add the user to the team.")}}))}}const s=t.data||[];for(const e of a){const t=s.find(t=>e===t.email&&t.error);t?o.push({email:e,reason:t.error.message}):r.push({email:e,reason:Object(I.gb)("invite.members.invite-sent","An invitation email has been sent.")})}}return{sent:r,notSent:o}}}function fd(e,t,a,n,s){return async(i,r)=>{a.length>0&&await i(l.getTeamMembersByIds(e,a.map(e=>e.id)));const c=r(),d=[],m=[],u=Object(p.getChannelMembersInChannels)(c),h=await Promise.all(a.map(a=>(async function(e,t,a,n,s){if(!Object(I.V)(t))return{notSent:{user:t,reason:Object(I.gb)("invite.members.user-is-not-guest","This person is already a member.")}};let i=!0,r=!1;for(const e of n){s&&s[e]&&s[e][t.id]?r=!0:i=!1}if(i)return{notSent:{user:t,reason:Object(I.gb)("invite.guests.already-all-channels-member","This person is already a member of all the channels.")}};try{await e(Object(b.c)(a,[t.id]));for(const i of n){s&&s[i]&&s[i][t.id]||await e(Object(o.joinChannel)(t.id,a,i))}}catch(e){return{notSent:{user:t,reason:Object(I.gb)("invite.guests.unable-to-add-the-user-to-the-channels","Unable to add the guest to the channels.")}}}return r?{notSent:{user:t,reason:Object(I.gb)("invite.guests.already-some-channels-member","This person is already a member of some of the channels.")}}:{sent:{user:t,reason:{id:Object(de.b)("invite.guests.new-member"),message:"This guest has been added to the team and {count, plural, one {channel} other {channels}}.",values:{count:n.length}}}}})(i,a,e,t,u)));for(const e of h)e.sent&&d.push(e.sent),e.notSent&&m.push(e.notSent);if(n.length>0){let a;try{a=await i(l.sendEmailGuestInvitesToChannelsGracefully(e,t,n,s))}catch(e){a={data:n.map(e=>({email:e,error:{error:Object(I.gb)("invite.guests.unable-to-add-the-user-to-the-channels","Unable to add the guest to the channels.")}}))}}for(const e of a.data||[])e.error?m.push({email:e.email,reason:e.error.message}):d.push({email:e.email,reason:Object(I.gb)("invite.guests.added-to-channel","An invitation email has been sent.")})}return{sent:d,notSent:m}}}class _d extends C.a.PureComponent{render(){return C.a.createElement("span",this.props,C.a.createElement(V.a,{id:"generic_icons.close",defaultMessage:"Close Icon"},e=>C.a.createElement("svg",{width:"24px",height:"24px",viewBox:"0 0 24 24",role:"img","aria-label":e},C.a.createElement("path",{fillRule:"nonzero",d:"M18 7.209L16.791 6 12 10.791 7.209 6 6 7.209 10.791 12 6 16.791 7.209 18 12 13.209 16.791 18 18 16.791 13.209 12z"}))))}}class Ed extends C.a.PureComponent{render(){return C.a.createElement("span",this.props,C.a.createElement(V.a,{id:"generic_icons.back",defaultMessage:"Back Icon"},e=>C.a.createElement("svg",{width:"24px",height:"24px",viewBox:"0 0 24 24",role:"img","aria-label":e},C.a.createElement("path",{d:"M20,11V13H8L13.5,18.5L12.08,19.92L4.16,12L12.08,4.08L13.5,5.5L8,11H20Z"}))))}}a(1673);function vd(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const yd=100;class Cd extends C.a.Component{constructor(...e){super(...e),vd(this,"modal",C.a.createRef()),vd(this,"enforceFocus",()=>{setTimeout(()=>{const e=document.activeElement;this.modal&&this.modal.current&&!this.modal.current.contains(e)&&this.modal.current.focus()})}),vd(this,"resetFocus",()=>{setTimeout(()=>{this.modal&&this.modal.current&&this.modal.current.focus()})}),vd(this,"handleKeypress",e=>{"Escape"===e.key&&this.props.show&&this.close()}),vd(this,"close",()=>{this.props.onClose()})}componentDidMount(){document.addEventListener("keydown",this.handleKeypress),document.addEventListener("focus",this.enforceFocus,!0),this.resetFocus()}componentWillUnmount(){document.removeEventListener("keydown",this.handleKeypress),document.removeEventListener("focus",this.enforceFocus,!0)}render(){return C.a.createElement(nd.a,{in:this.props.show,classNames:"FullScreenModal",mountOnEnter:!0,unmountOnExit:!0,timeout:yd,appear:!0},C.a.createElement(C.a.Fragment,null,C.a.createElement("div",{className:"FullScreenModal",ref:this.modal,tabIndex:-1,"aria-modal":!0,"aria-label":this.props.ariaLabel,"aria-labelledby":this.props.ariaLabelledBy,role:"dialog"},this.props.onGoBack&&C.a.createElement("button",{onClick:this.props.onGoBack,className:"back","aria-label":this.props.intl.formatMessage({id:"full_screen_modal.back",defaultMessage:"Back"})},C.a.createElement(Ed,{id:"backIcon"})),C.a.createElement("button",{onClick:this.close,className:"close-x","aria-label":this.props.intl.formatMessage({id:"full_screen_modal.close",defaultMessage:"Close"})},C.a.createElement(_d,{id:"closeIcon"})),this.props.children),C.a.createElement("div",{tabIndex:0,style:{display:"none"}})))}}vd(Cd,"propTypes",{show:v.a.bool.isRequired,onClose:v.a.func.isRequired,onGoBack:v.a.func,children:v.a.node.isRequired,ariaLabel:v.a.string,ariaLabelledBy:v.a.string,intl:v.a.any.isRequired});const wd=Object(W.c)(Cd,{forwardRef:!0});wd.displayName="injectIntl(FullScreenModal)";var Od=wd;class Td extends C.a.Component{constructor(e){super(e),this.el=document.createElement("div")}componentDidMount(){document.getElementById("root-portal").appendChild(this.el)}componentWillUnmount(){document.getElementById("root-portal").removeChild(this.el)}render(){return Ai.a.createPortal(this.props.children,this.el)}}!function(e,t,a){t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a}(Td,"propTypes",{children:v.a.node});class Sd extends C.a.PureComponent{render(){return C.a.createElement("span",this.props,C.a.createElement(V.a,{id:"generic_icons.invite",defaultMessage:"Invite Icon"},e=>C.a.createElement("svg",{width:"126px",height:"32px",viewBox:"0 0 126 32",role:"img","aria-label":e},C.a.createElement("path",{d:"M 106,18 86,5.52 V 4 c 0,-2.22 1.78,-4 4,-4 h 32 c 2.20914,0 4,1.790861 4,4 v 1.5 z m 20,10 c 0,2.209139 -1.79086,4 -4,4 H 90 c -2.22,0 -4,-1.8 -4,-4 V 10.22 l 4,2.5 V 28 h 32 V 12.72 l 4,-2.5 z M 1,15 h 62 c 0.552285,0 1,0.447715 1,1 0,0.552285 -0.447715,1 -1,1 H 1 C 0.44771525,17 0,16.552285 0,16 0,15.447715 0.44771525,15 1,15 Z M 21,5 h 48 c 0.552285,0 1,0.447715 1,1 0,0.552285 -0.447715,1 -1,1 H 21 C 20.447715,7 20,6.552285 20,6 20,5.447715 20.447715,5 21,5 Z m 0,20 h 48 c 0.552285,0 1,0.447715 1,1 0,0.552285 -0.447715,1 -1,1 H 21 c -0.552285,0 -1,-0.447715 -1,-1 0,-0.552285 0.447715,-1 1,-1 z"}))))}}class Pd extends C.a.PureComponent{render(){return C.a.createElement("span",this.props,C.a.createElement(V.a,{id:"generic_icons.channel.arrow-right",defaultMessage:"Arrow right"},e=>C.a.createElement("svg",{width:"24px",height:"24px",viewBox:"0 0 24 24",role:"img",title:e},C.a.createElement("path",{d:"M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z"}))))}}a(1674);function Md(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class Id extends C.a.Component{constructor(...e){super(...e),Md(this,"onMembersKeyDown",e=>{const t=e.which;13!==t&&32!==t||this.props.goToMembers()}),Md(this,"onGuestsKeyDown",e=>{const t=e.which;13!==t&&32!==t||this.props.goToGuests()})}render(){const e=this.props.teamName;return C.a.createElement("div",{className:"InvitationModalInitialStep"},C.a.createElement("div",{className:"modal-icon"},C.a.createElement(Sd,null)),C.a.createElement("h1",{id:"invitation_modal_title"},C.a.createElement(Ji.b,{id:"invitation_modal.title",defaultMessage:"Invite people to **{teamName}**",values:{teamName:e}})),C.a.createElement("div",{className:"invitation-modal-option",onClick:this.props.goToMembers,"data-testid":"inviteMembersLink",tabIndex:"0",onKeyDown:this.onMembersKeyDown,"aria-labeledby":"inviteMembersSectionHeader","aria-describedby":"inviteMembersSectionDescription"},C.a.createElement("div",{"data-testid":"inviteMembersSection"},C.a.createElement("h2",{id:"inviteMembersSectionHeader"},C.a.createElement(Ji.b,{id:"invitation_modal.invite_members.title",defaultMessage:"Invite **Members**"})),C.a.createElement(V.a,{id:"invitation_modal.invite_members.description",defaultMessage:"Invite new team members with a link or by email. Team members have access to messages and files in open teams and public channels."},e=>C.a.createElement("span",{id:"inviteMembersSectionDescription"},e))),C.a.createElement(Pd,{className:"arrow"})),C.a.createElement("div",{className:"invitation-modal-option",onClick:this.props.goToGuests,"data-testid":"inviteGuestLink",tabIndex:"0",onKeyDown:this.onGuestsKeyDown,"aria-labeledby":"inviteGuestsSectionHeader","aria-describedby":"inviteGuestsSectionDescription"},C.a.createElement("div",null,C.a.createElement("h2",{id:"inviteGuestsSectionHeader"},C.a.createElement(Ji.b,{id:"invitation_modal.invite_guests.title",defaultMessage:"Invite **Guests**"})),C.a.createElement(V.a,{id:"invitation_modal.invite_guests.description",defaultMessage:"Invite guests to one or more channels. Guests only have access to messages, files, and people in the channels they are members of."},e=>C.a.createElement("span",{id:"inviteGuestsSectionDescription"},e))),C.a.createElement(Pd,{className:"arrow"})))}}Md(Id,"propTypes",{teamName:v.a.string.isRequired,goToMembers:v.a.func.isRequired,goToGuests:v.a.func.isRequired});var Nd=a(53);class jd extends C.a.PureComponent{render(){return C.a.createElement("span",this.props,C.a.createElement(V.a,{id:"generic_icons.invite_members",defaultMessage:"Invite Members Icon"},e=>C.a.createElement("svg",{width:"126px",height:"38px",viewBox:"0 0 126 38",role:"img","aria-label":e},C.a.createElement("path",{d:"M 108.83398 0.03515625 C 108.64165 0.03515625 108.4496 0.04983111 108.25977 0.08203125 C 109.08339 0.57981559 109.86736 1.165576 110.60156 1.8359375 C 113.34699 4.3426243 115.07813 7.1515117 115.07812 10.777344 L 115.07812 15.908203 C 115.07812 17.577458 114.81586 19.392207 114.32812 21.453125 C 114.19039 22.035006 114.02467 22.601886 113.83008 23.152344 C 116.57398 24.811724 118.17106 25.88194 118.62109 26.361328 C 120.0119 27.842823 120.78516 29.798054 120.78516 31.830078 L 120.78516 32 C 122.99178 32 124.78125 32.008356 124.78125 30.001953 C 124.78125 26.755542 122.78085 23.90476 118.77734 21.453125 L 118.46875 21.267578 L 118.46094 21.285156 C 118.44384 21.330296 118.43871 21.318446 118.44531 21.253906 L 118.46875 21.267578 L 118.47266 21.251953 C 118.52056 21.104379 118.6246 20.690139 118.78516 20.011719 C 119.2074 18.22759 119.07227 17.224165 119.07227 15.908203 L 119.07227 10.777344 C 119.07227 8.5210935 117.78998 3.8565489 115.79297 2.0332031 C 113.81134 0.22387865 111.50192 0.03515625 108.83594 0.03515625 L 108.83398 0.03515625 z M 100.84375 2.0332031 C 98.23721 2.0332031 95.848767 2.9659792 93.835938 4.7363281 C 91.761167 6.5611731 90.535156 8.4793085 90.535156 10.777344 L 90.535156 15.908203 C 90.535156 17.293336 90.80759 18.870238 91.328125 20.703125 C 91.751681 22.194536 92.389981 23.518449 93.25 24.634766 L 87.810547 27.792969 C 87.734577 27.827779 87.659451 27.865141 87.585938 27.904297 C 87.562827 27.916627 87.538385 27.928746 87.515625 27.941406 C 87.254658 28.067724 87.009242 28.216755 86.775391 28.382812 L 86.509766 28.574219 C 85.454567 29.323561 84.826172 30.535879 84.826172 31.830078 L 84.826172 33.994141 C 84.826172 36.20075 86.615661 37.992188 88.822266 37.992188 L 112.79492 37.992188 C 115.00153 37.992188 116.79102 36.20075 116.79102 33.994141 L 116.79102 31.830078 C 116.79102 30.814065 116.40241 29.834497 115.70703 29.09375 C 115.33382 28.696209 114.89968 28.36777 114.42188 28.113281 L 114.13867 27.962891 C 114.10527 27.945041 114.06897 27.932866 114.03516 27.916016 C 113.99746 27.894746 113.96392 27.869949 113.92578 27.849609 L 108.53711 24.673828 C 109.43906 23.498248 110.06724 22.107856 110.43945 20.535156 C 110.86169 18.751027 111.08203 17.224166 111.08203 15.908203 L 111.08203 10.777344 C 111.08203 8.5210941 109.90325 6.6104541 107.90625 4.7871094 C 105.92461 2.977785 103.50974 2.0332043 100.84375 2.0332031 z M 100.84375 6.0273438 C 102.50853 6.0273438 103.96628 6.5982778 105.21484 7.7382812 C 106.46343 8.878286 107.08789 9.8906745 107.08789 10.777344 L 107.08789 15.908203 C 107.08789 16.870874 106.90948 18.105944 106.55273 19.613281 C 106.19601 21.12062 105.52977 22.279175 104.55469 23.089844 C 104.24552 23.343181 104.012 23.661015 103.85742 24.041016 C 103.70244 24.421017 103.65168 24.811463 103.69922 25.216797 C 103.72302 25.622132 103.84065 25.997842 104.05469 26.339844 C 104.26872 26.681846 104.54401 26.953582 104.87695 27.15625 L 112.04492 31.375 C 112.09262 31.40033 112.13432 31.425832 112.16992 31.451172 C 112.20552 31.476502 112.23401 31.488281 112.25781 31.488281 L 112.54297 31.640625 C 112.63817 31.691295 112.72361 31.754092 112.79492 31.830078 L 112.79492 33.994141 L 88.822266 33.994141 L 88.822266 31.830078 L 89.089844 31.640625 C 89.196862 31.564625 89.297447 31.513613 89.392578 31.488281 C 89.416398 31.462951 89.439071 31.442357 89.462891 31.429688 C 89.486711 31.416988 89.513289 31.412109 89.537109 31.412109 L 96.921875 27.117188 C 97.254845 26.939854 97.526184 26.681846 97.740234 26.339844 C 97.954274 25.997845 98.073886 25.622132 98.097656 25.216797 C 98.145256 24.811463 98.089577 24.421017 97.935547 24.041016 C 97.780967 23.661012 97.562734 23.343179 97.277344 23.089844 C 96.302254 22.279177 95.599958 21.120619 95.171875 19.613281 C 94.743792 18.105943 94.529297 16.870874 94.529297 15.908203 L 94.529297 10.777344 C 94.529297 9.8906751 95.178468 8.8782834 96.474609 7.7382812 C 97.770749 6.5982776 99.22654 6.0273453 100.84375 6.0273438 z M 21 7.9707031 C 20.447715 7.9707031 20 8.4184181 20 8.9707031 C 20 9.5229881 20.447715 9.9707031 21 9.9707031 L 69 9.9707031 C 69.552285 9.9707031 70 9.5229881 70 8.9707031 C 70 8.4184181 69.552285 7.9707031 69 7.9707031 L 21 7.9707031 z M 1 17.970703 C 0.4477153 17.970703 -2.220446e-16 18.418418 0 18.970703 C 0 19.522988 0.4477153 19.970703 1 19.970703 L 63 19.970703 C 63.552285 19.970703 64 19.522988 64 18.970703 C 64 18.418418 63.552285 17.970703 63 17.970703 L 1 17.970703 z M 21 27.970703 C 20.447715 27.970703 20 28.418418 20 28.970703 C 20 29.522988 20.447715 29.970703 21 29.970703 L 69 29.970703 C 69.552285 29.970703 70 29.522988 70 28.970703 C 70 28.418418 69.552285 27.970703 69 27.970703 L 21 27.970703 z"}))))}}var Ad=a(1681),Rd=a.n(Ad),kd=a(1221);class Ld extends C.a.PureComponent{render(){return C.a.createElement("span",this.props,C.a.createElement(V.a,{id:"generic_icons.mail",defaultMessage:"Mail Icon"},e=>C.a.createElement("svg",{width:"24px",height:"24px",viewBox:"0 0 24 24",role:"img","aria-label":e},C.a.createElement("path",{d:"M4,4H20A2,2 0 0,1 22,6V18A2,2 0 0,1 20,20H4C2.89,20 2,19.1 2,18V6C2,4.89 2.89,4 4,4M12,11L20,6H4L12,11M4,18H20V8.37L12,13.36L4,8.37V18Z"}))))}}class Dd extends C.a.PureComponent{render(){return C.a.createElement("span",this.props,C.a.createElement(V.a,{id:"generic_icons.add-mail",defaultMessage:"Add Mail Icon"},e=>C.a.createElement("svg",{width:"24px",height:"24px",viewBox:"0 0 24 24",role:"img","aria-label":e},C.a.createElement("path",{d:"M3,4C1.89,4 1,4.89 1,6V18A2,2 0 0,0 3,20H14V18H3V8.37L11,13.36L19,8.37V13H21V6A2,2 0 0,0 19,4H3M3,6H19L11,11L3,6M19,15V18H16V20H19V23H21V20H24V18H21V15H19Z"}))))}}class xd extends C.a.PureComponent{render(){return C.a.createElement("span",this.props,C.a.createElement(V.a,{id:"generic_icons.close",defaultMessage:"Close Icon"},e=>C.a.createElement("svg",{width:"16px",height:"16px",viewBox:"0 0 16 16",role:"img","aria-label":e},C.a.createElement("path",{d:"m 8,0 c 4.424,0 8,3.576 8,8 0,4.424 -3.576,8 -8,8 C 3.576,16 0,12.424 0,8 0,3.576 3.576,0 8,0 Z M 10.872,4 8,6.872 5.128,4 4,5.128 6.872,8 4,10.872 5.128,12 8,9.128 10.872,12 12,10.872 9.128,8 12,5.128 Z"}))))}}a(1675);function Ud(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class qd extends C.a.Component{constructor(e){super(e),Ud(this,"renderUserName",e=>{const t=Object(I.C)(e);let a=null;t.fullName&&(a=C.a.createElement("span",{className:"fullname"},t.fullName));let n=null;return t.nickname&&(n=C.a.createElement("span",{className:"nickname"},t.nickname)),C.a.createElement(C.a.Fragment,null,t.displayName,a,n)}),Ud(this,"loadingMessage",()=>{const e=C.a.createElement(V.a,{id:this.props.loadingMessageId,defaultMessage:this.props.loadingMessageDefault});return C.a.createElement(vc.a,{text:e})}),Ud(this,"getOptionValue",e=>e.id||e.value),Ud(this,"formatOptionLabel",(e,t)=>{const a=Object(I.M)(e);let n=null;return!Object(Nd.isEmail)(e.value)&&Object(I.V)(e)&&(n=C.a.createElement(an.a,null)),"menu"===t.context?e.value&&Object(Nd.isEmail)(e.value)?this.getCreateLabel(e.value):C.a.createElement(C.a.Fragment,null,C.a.createElement(nn.a,{size:"lg",username:e.username,url:a}),this.renderUserName(e),n):e.value&&Object(Nd.isEmail)(e.value)?C.a.createElement(C.a.Fragment,null,C.a.createElement(Ld,{className:"mail-icon"}),C.a.createElement("span",null,e.value)):C.a.createElement(C.a.Fragment,null,C.a.createElement(nn.a,{size:"sm",username:e.username,url:a}),Object(I.u)(e),n)}),Ud(this,"onChange",e=>{this.props.onChange&&this.props.onChange(e.map(e=>e.id?e:e.value))}),Ud(this,"getCreateLabel",e=>C.a.createElement(C.a.Fragment,null,C.a.createElement(Dd,{className:"mail-plus-icon"}),C.a.createElement(Ji.b,{key:"widgets.users_emails_input.valid_email",id:this.props.validAddressMessageId,defaultMessage:this.props.validAddressMessageDefault,values:{email:e},disableLinks:!0}))),Ud(this,"NoOptionsMessage",e=>{const t=e.selectProps.inputValue;return t?C.a.createElement("div",{className:"users-emails-input__option users-emails-input__option--no-matches"},C.a.createElement(Ji.b,{id:this.props.noMatchMessageId,defaultMessage:this.props.noMatchMessageDefault,values:{text:t},disableLinks:!0},t=>C.a.createElement(kd.a.NoOptionsMessage,e,t))):null}),Ud(this,"MultiValueRemove",({children:e,innerProps:t})=>C.a.createElement("div",t,e||C.a.createElement(xd,null))),Ud(this,"components",{NoOptionsMessage:this.NoOptionsMessage,MultiValueRemove:this.MultiValueRemove,IndicatorsContainer:()=>null}),Ud(this,"handleInputChange",(e,t)=>{if("input-blur"===t.action&&""!==e){const e=this.props.value.map(e=>e.id?e:{label:e,value:e});for(const t of this.state.options){if(this.props.inputValue===t.username||this.props.inputValue==="@"+t.username)return this.onChange([...e,t]),void this.props.onInputChange("");if(this.props.inputValue===t.email)return this.onChange([...e,t]),void this.props.onInputChange("")}if(this.props.emailInvitationsEnabled&&Object(Nd.isEmail)(this.props.inputValue)){const t=this.props.inputValue;this.onChange([...e,{value:t,label:t}]),this.props.onInputChange("")}}"input-blur"!==t.action&&"menu-close"!==t.action&&this.props.onInputChange(e)}),Ud(this,"optionsLoader",(e,t)=>{const a=e=>{this.setState({options:e}),t(e)},n=this.props.usersLoader(this.props.inputValue,a);n&&n.then&&n.then(a)}),Ud(this,"showAddEmail",(e,t,a)=>this.props.emailInvitationsEnabled&&0===a.length&&Object(Nd.isEmail)(e)),Ud(this,"onFocus",()=>{this.selectRef.current.handleInputChange(this.props.inputValue,{action:"custom"})}),this.selectRef=C.a.createRef(),this.state={options:[]}}render(){const e=this.props.value.map(e=>e.id?e:{label:e,value:e});return C.a.createElement(Rd.a,{ref:this.selectRef,styles:this.customStyles,onChange:this.onChange,loadOptions:this.optionsLoader,isValidNewOption:this.showAddEmail,isMulti:!0,isClearable:!1,className:Os()("UsersEmailsInput",{empty:""===this.props.inputValue}),classNamePrefix:"users-emails-input",placeholder:this.props.placeholder,components:this.components,getOptionValue:this.getOptionValue,formatOptionLabel:this.formatOptionLabel,defaultOptions:!1,defaultMenuIsOpen:!1,openMenuOnClick:!1,loadingMessage:this.loadingMessage,onInputChange:this.handleInputChange,inputValue:this.props.inputValue,openMenuOnFocus:!0,onFocus:this.onFocus,tabSelectsValue:!0,value:e,"aria-label":this.props.ariaLabel})}}Ud(qd,"propTypes",{placeholder:v.a.string,ariaLabel:v.a.string.isRequired,usersLoader:v.a.func,onChange:v.a.func,value:v.a.arrayOf(v.a.oneOfType([v.a.object,v.a.string])),onInputChange:v.a.func,inputValue:v.a.string,noMatchMessageId:v.a.string,noMatchMessageDefault:v.a.string,validAddressMessageId:v.a.string,validAddressMessageDefault:v.a.string,loadingMessageId:v.a.string,loadingMessageDefault:v.a.string,emailInvitationsEnabled:v.a.bool}),Ud(qd,"defaultProps",{noMatchMessageId:Object(de.b)("widgets.users_emails_input.no_user_found_matching"),noMatchMessageDefault:"No one found matching **{text}**, type email address",validAddressMessageId:Object(de.b)("widgets.users_emails_input.valid_email"),validAddressMessageDefault:"Add **{email}**",loadingMessageId:Object(de.b)("widgets.users_emails_input.loading"),loadingMessageDefault:"Loading"});class Hd extends C.a.PureComponent{render(){return C.a.createElement("span",this.props,C.a.createElement(V.a,{id:"generic_icons.link",defaultMessage:"Link Icon"},e=>C.a.createElement("svg",{width:"24px",height:"24px",viewBox:"0 0 24 24",role:"img","aria-label":e},C.a.createElement("path",{d:"M10.59,13.41C11,13.8 11,14.44 10.59,14.83C10.2,15.22 9.56,15.22 9.17,14.83C7.22,12.88 7.22,9.71 9.17,7.76V7.76L12.71,4.22C14.66,2.27 17.83,2.27 19.78,4.22C21.73,6.17 21.73,9.34 19.78,11.29L18.29,12.78C18.3,11.96 18.17,11.14 17.89,10.36L18.36,9.88C19.54,8.71 19.54,6.81 18.36,5.64C17.19,4.46 15.29,4.46 14.12,5.64L10.59,9.17C9.41,10.34 9.41,12.24 10.59,13.41M13.41,9.17C13.8,8.78 14.44,8.78 14.83,9.17C16.78,11.12 16.78,14.29 14.83,16.24V16.24L11.29,19.78C9.34,21.73 6.17,21.73 4.22,19.78C2.27,17.83 2.27,14.66 4.22,12.71L5.71,11.22C5.7,12.04 5.83,12.86 6.11,13.65L5.64,14.12C4.46,15.29 4.46,17.19 5.64,18.36C6.81,19.54 8.71,19.54 9.88,18.36L13.41,14.83C14.59,13.66 14.59,11.76 13.41,10.59C13,10.2 13,9.56 13.41,9.17Z"}))))}}a(1699);function Fd(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class Bd extends C.a.Component{constructor(e){super(e),Fd(this,"copyLink",()=>{const e=this.inviteLinkRef.current,t=document.createElement("textarea");t.innerText=e.value,t.style.position="fixed",t.style.opacity=0,document.body.appendChild(t),t.select();try{this.setState({copiedLink:document.execCommand("copy")})}catch(e){this.setState({copiedLink:!1})}t.remove(),this.timeout&&clearTimeout(this.timeout),this.timeout=setTimeout(()=>{this.setState({copiedLink:!1})},3e3)}),Fd(this,"debouncedSearchProfiles",Object(Si.debounce)((e,t)=>{this.props.searchProfiles(e).then(({data:a})=>{t(a),0===a.length?this.setState({termWithoutResults:e}):this.setState({termWithoutResults:null})}).catch(()=>{t([])})},150)),Fd(this,"usersLoader",(e,t)=>{if(this.state.termWithoutResults&&e.startsWith(this.state.termWithoutResults))t([]);else try{this.debouncedSearchProfiles(e,t)}catch(e){t([])}}),Fd(this,"onChange",e=>{this.setState({usersAndEmails:e}),this.props.onEdit(e.length>0||this.state.usersInputValue)}),Fd(this,"onUsersInputChange",e=>{this.setState({usersInputValue:e}),this.props.onEdit(this.state.usersAndEmails.length>0||e)}),Fd(this,"submit",()=>{const e=[],t=[];for(const a of this.state.usersAndEmails)Object(Nd.isEmail)(a)?t.push(a):e.push(a);this.props.onSubmit(e,t,this.state.usersInputValue)}),this.inviteLinkRef=C.a.createRef(),this.timeout=null,this.state={usersAndEmails:[],copiedLink:!1,termWithoutResults:null,usersInputValue:""}}render(){const e=Object(Un.e)()+"/signup_user_complete/?id="+this.props.inviteId;let t=Object(I.gb)("invitation_modal.members.search-and-add.placeholder","Add members or email addresses"),a=Object(de.b)("invitation_modal.members.users_emails_input.no_user_found_matching"),n="No one found matching **{text}**, type email to invite";return this.props.emailInvitationsEnabled||(t=Object(I.gb)("invitation_modal.members.search-and-add.placeholder-email-disabled","Add members"),a=Object(de.b)("invitation_modal.members.users_emails_input.no_user_found_matching-email-disabled"),n="No one found matching **{text}**"),C.a.createElement("div",{className:"InvitationModalMembersStep"},C.a.createElement("div",{className:"modal-icon"},C.a.createElement(jd,null)),C.a.createElement("h1",{id:"invitation_modal_title"},C.a.createElement(Ji.b,{id:"invitation_modal.members.title",defaultMessage:"Invite **Members** to {teamName}",values:{teamName:this.props.teamName}})),C.a.createElement("div",{className:"share-link","data-testid":"shareLink"},C.a.createElement("h2",null,C.a.createElement(V.a,{id:"invitation_modal.members.share_link.title",defaultMessage:"Share This Link"})),C.a.createElement("div",{className:"share-link-input-block"},C.a.createElement("input",{ref:this.inviteLinkRef,className:"share-link-input",type:"text",readOnly:!0,value:e,"aria-label":this.props.intl.formatMessage({id:"invitation_modal.members.share_link.input",defaultMessage:"team invite link"}),"data-testid":"shareLinkInput"}),C.a.createElement("button",{className:"share-link-input-button",onClick:this.copyLink,"data-testid":"shareLinkInputButton"},C.a.createElement(Hd,null),!this.state.copiedLink&&C.a.createElement(V.a,{id:"invitation_modal.members.share_link.copy_button",defaultMessage:"Copy Link"}),this.state.copiedLink&&C.a.createElement(V.a,{id:"invitation_modal.members.share_link.link_copied",defaultMessage:"Link Copied"}))),C.a.createElement("div",{className:"help-text"},C.a.createElement(V.a,{id:"invitation_modal.members.share_link.description",defaultMessage:"Share this link to invite people to this team."}))),C.a.createElement("div",{className:"invitation-modal-or"},C.a.createElement("hr",null),C.a.createElement("div",null,C.a.createElement(V.a,{id:"invitation_modal.members.or",defaultMessage:"OR"}))),C.a.createElement("div",{className:"search-and-add","data-testid":"searchAdd"},C.a.createElement("h2",null,C.a.createElement(V.a,{id:"invitation_modal.members.search_and_add.title",defaultMessage:"Add or Invite People"})),C.a.createElement("div",{"data-testid":"inputPlaceholder"},C.a.createElement(qd,{usersLoader:this.usersLoader,placeholder:t,ariaLabel:Object(I.gb)("invitation_modal.members.search_and_add.title","Invite People"),onChange:this.onChange,value:this.state.usersAndEmails,validAddressMessageId:Object(de.b)("invitation_modal.members.users_emails_input.valid_email"),validAddressMessageDefault:"Invite **{email}** as a team member",noMatchMessageId:a,noMatchMessageDefault:n,onInputChange:this.onUsersInputChange,inputValue:this.state.usersInputValue,emailInvitationsEnabled:this.props.emailInvitationsEnabled})),C.a.createElement("div",{className:"help-text"},this.props.emailInvitationsEnabled&&C.a.createElement(V.a,{id:"invitation_modal.members.search-and-add.description",defaultMessage:"Add existing members or send email invites to new members."}),!this.props.emailInvitationsEnabled&&C.a.createElement(V.a,{id:"invitation_modal.members.search-and-add.description-email-disabled",defaultMessage:"Add existing members to this team."}))),C.a.createElement("div",{className:"invite-members"},C.a.createElement("button",{className:"btn "+(0===this.state.usersAndEmails.length?"btn-inactive":"btn-primary"),onClick:this.submit,disabled:0===this.state.usersAndEmails.length,id:"inviteMembersButton"},C.a.createElement(V.a,{id:"invitation_modal.members.invite_button",defaultMessage:"Invite Members"}))))}}Fd(Bd,"propTypes",{teamName:v.a.string.isRequired,intl:v.a.any,inviteId:v.a.string.isRequired,searchProfiles:v.a.func.isRequired,emailInvitationsEnabled:v.a.bool.isRequired,onEdit:v.a.func.isRequired,onSubmit:v.a.func.isRequired});var Gd=Object(W.c)(Bd);class Vd extends C.a.PureComponent{render(){return C.a.createElement("span",this.props,C.a.createElement(V.a,{id:"generic_icons.close",defaultMessage:"Close Icon"},e=>C.a.createElement("svg",{width:"24px",height:"24px",viewBox:"0 0 24 24",role:"img","aria-label":e},C.a.createElement("path",{d:"M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,16.41 16.41,20 12,20M12,2C6.47,2 2,6.47 2,12C2,17.53 6.47,22 12,22C17.53,22 22,17.53 22,12C22,6.47 17.53,2 12,2M14.59,8L12,10.59L9.41,8L8,9.41L10.59,12L8,14.59L9.41,16L12,13.41L14.59,16L16,14.59L13.41,12L16,9.41L14.59,8Z"}))))}}var Wd=a(1415),zd=a.n(Wd),Yd=a(1170),Kd=a(1171);a(1700);function Qd(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class Jd extends C.a.Component{constructor(e){super(e),Qd(this,"getOptionValue",e=>e.id),Qd(this,"handleInputChange",(e,t)=>{if("input-blur"===t.action&&""!==e)for(const e of this.state.options)if(this.props.inputValue===e.name)return this.onChange([...this.props.value,e]),void this.props.onInputChange("");"input-blur"!==t.action&&"menu-close"!==t.action&&this.props.onInputChange(e)}),Qd(this,"optionsLoader",(e,t)=>{const a=e=>{this.setState({options:e}),t(e)},n=this.props.channelsLoader(this.props.inputValue,a);n&&n.then&&n.then(a)}),Qd(this,"loadingMessage",()=>{const e=C.a.createElement(V.a,{id:this.props.loadingMessageId,defaultMessage:this.props.loadingMessageDefault});return C.a.createElement(vc.a,{text:e})}),Qd(this,"NoOptionsMessage",e=>{const t=e.selectProps.inputValue;return t?C.a.createElement("div",{className:"channels-input__option channels-input__option--no-matches"},C.a.createElement(Ji.b,{id:this.props.noOptionsMessageId,defaultMessage:this.props.noOptionsMessageDefault,values:{text:t}},t=>C.a.createElement(kd.a.NoOptionsMessage,e,t))):null}),Qd(this,"formatOptionLabel",e=>{let t=C.a.createElement(Yd.a,{className:"public-channel-icon"});return e.type===P.j.PRIVATE_CHANNEL&&(t=C.a.createElement(Kd.a,{className:"private-channel-icon"})),C.a.createElement(C.a.Fragment,null,t,e.display_name,C.a.createElement("span",{className:"channel-name"},e.name))}),Qd(this,"onChange",e=>{this.props.onChange&&this.props.onChange(e)}),Qd(this,"MultiValueRemove",({children:e,innerProps:t})=>C.a.createElement("div",t,e||C.a.createElement(xd,null))),Qd(this,"components",{NoOptionsMessage:this.NoOptionsMessage,MultiValueRemove:this.MultiValueRemove,IndicatorsContainer:()=>null}),Qd(this,"onFocus",()=>{this.selectRef.current.handleInputChange(this.props.inputValue,{action:"custom"})}),this.selectRef=C.a.createRef(),this.state={options:[]}}render(){return C.a.createElement(zd.a,{ref:this.selectRef,styles:this.customStyles,onChange:this.onChange,loadOptions:this.optionsLoader,isMulti:!0,isClearable:!1,className:Os()("ChannelsInput",{empty:""===this.props.inputValue}),classNamePrefix:"channels-input",placeholder:this.props.placeholder,components:this.components,getOptionValue:this.getOptionValue,formatOptionLabel:this.formatOptionLabel,noOptionsMessage:this.noOptionsMessage,loadingMessage:this.loadingMessage,defaultOptions:!1,defaultMenuIsOpen:!1,openMenuOnClick:!1,onInputChange:this.handleInputChange,inputValue:this.props.inputValue,openMenuOnFocus:!0,onFocus:this.onFocus,tabSelectsValue:!0,value:this.props.value,"aria-label":this.props.ariaLabel})}}Qd(Jd,"propTypes",{placeholder:v.a.string,ariaLabel:v.a.string.isRequired,channelsLoader:v.a.func,onChange:v.a.func,value:v.a.arrayOf(v.a.object),onInputChange:v.a.func,inputValue:v.a.string,loadingMessageId:v.a.string,loadingMessageDefault:v.a.string,noOptionsMessageId:v.a.string,noOptionsMessageDefault:v.a.string}),Qd(Jd,"defaultProps",{loadingMessageId:Object(de.b)("widgets.channels_input.loading"),loadingMessageDefault:"Loading",noOptionsMessageId:Object(de.b)("widgets.channels_input.empty"),noOptionsMessageDefault:"No channels found"});a(1701);function Zd(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class Xd extends C.a.Component{constructor(e){super(e),Zd(this,"onUsersEmailsChange",e=>{this.setState({usersAndEmails:e}),this.props.onEdit(e.length>0||this.state.channels.length>0||""!==this.state.customMessage||this.state.usersInputValue||this.state.channelsInputValue)}),Zd(this,"onChannelsChange",e=>{this.setState({channels:e}),this.props.onEdit(this.state.usersAndEmails.length>0||e.length>0||""!==this.state.customMessage||this.state.usersInputValue||this.state.channelsInputValue)}),Zd(this,"onMessageChange",e=>{this.setState({customMessage:e.target.value}),this.props.onEdit(this.state.usersAndEmails.length>0||this.state.channels.length>0||""!==e.target.value||this.state.usersInputValue||this.state.channelsInputValue)}),Zd(this,"onUsersInputChange",e=>{this.setState({usersInputValue:e}),this.props.onEdit(this.state.usersAndEmails.length>0||this.state.channels.length>0||""!==this.state.customMessage||e||this.state.channelsInputValue)}),Zd(this,"onChannelsInputChange",e=>{this.setState({channelsInputValue:e}),this.props.onEdit(this.state.usersAndEmails.length>0||this.state.channels.length>0||""!==this.state.customMessage||this.state.usersInputValue||e)}),Zd(this,"debouncedSearchProfiles",Object(Si.debounce)((e,t)=>{this.props.searchProfiles(e).then(({data:a})=>{t(a),0===a.length?this.setState({termWithoutResults:e}):this.setState({termWithoutResults:null})}).catch(()=>{t([])})},150)),Zd(this,"usersLoader",(e,t)=>{if(this.state.termWithoutResults&&e.startsWith(this.state.termWithoutResults))t([]);else try{this.debouncedSearchProfiles(e,t)}catch(e){t([])}}),Zd(this,"debouncedSearchChannels",Object(Si.debounce)(e=>this.props.searchChannels(this.props.currentTeamId,e),150)),Zd(this,"channelsLoader",async e=>e?(this.debouncedSearchChannels(e),this.props.myInvitableChannels.filter(t=>t.display_name.toLowerCase().startsWith(e.toLowerCase())||t.name.toLowerCase().startsWith(e.toLowerCase()))):this.props.myInvitableChannels),Zd(this,"openCustomMessage",()=>{this.setState({customMessageOpen:!0}),setTimeout(()=>{this.textareaRef.current&&this.textareaRef.current.focus()})}),Zd(this,"closeCustomMessage",()=>{this.setState({customMessageOpen:!1})}),Zd(this,"sendInvites",()=>{const e=[],t=[];for(const a of this.state.usersAndEmails)Object(Nd.isEmail)(a)?t.push(a):e.push(a);this.props.onSubmit(e,t,this.state.channels,this.state.customMessageOpen?this.state.customMessage:"",this.state.usersInputValue,this.state.channelsInputValue)}),this.textareaRef=C.a.createRef(),this.state={customMessageOpen:Boolean(e.defaultMessage),customMessage:e.defaultMessage||"",usersAndEmails:[],channels:e.defaultChannels||[],usersInputValue:"",channelsInputValue:""}}render(){let e=Object(I.gb)("invitation_modal.guests.search-and-add.placeholder","Add guests or email addresses"),t=Object(de.b)("invitation_modal.guests.users_emails_input.no_user_found_matching"),a="No one found matching **{text}**, type email to invite";return this.props.emailInvitationsEnabled||(e=Object(I.gb)("invitation_modal.guests.search-and-add.placeholder-email-disabled","Add guests"),t=Object(de.b)("invitation_modal.guests.users_emails_input.no_user_found_matching-email-disabled"),a="No one found matching **{text}**"),C.a.createElement("div",{className:"InvitationModalGuestsStep"},C.a.createElement("div",{className:"modal-icon"},C.a.createElement(Sd,null)),C.a.createElement("h1",{id:"invitation_modal_title"},C.a.createElement(Ji.b,{id:"invitation_modal.guests.title",defaultMessage:"Invite **Guests** to {teamName}",values:{teamName:this.props.teamName}})),C.a.createElement("div",{className:"add-people","data-testid":"addPeople"},C.a.createElement("h2",null,C.a.createElement(V.a,{id:"invitation_modal.guests.add_people.title",defaultMessage:"Invite People"})),C.a.createElement("div",{"data-testid":"emailPlaceholder"},C.a.createElement(qd,{usersLoader:this.usersLoader,placeholder:e,ariaLabel:Object(I.gb)("invitation_modal.guests.add_people.title","Invite People"),onChange:this.onUsersEmailsChange,value:this.state.usersAndEmails,onInputChange:this.onUsersInputChange,inputValue:this.state.usersInputValue,validAddressMessageId:Object(de.b)("invitation_modal.guests.users_emails_input.valid_email"),validAddressMessageDefault:"Invite **{email}** as a guest",noMatchMessageId:t,noMatchMessageDefault:a,emailInvitationsEnabled:this.props.emailInvitationsEnabled})),C.a.createElement("div",{className:"help-text"},this.props.emailInvitationsEnabled&&C.a.createElement(V.a,{id:"invitation_modal.guests.add_people.description",defaultMessage:"Add existing guests or send email invites to new guests."}),!this.props.emailInvitationsEnabled&&C.a.createElement(V.a,{id:"invitation_modal.guests.add_people.description-email-disabled",defaultMessage:"Add existing guests."}))),C.a.createElement("div",{className:"add-channels","data-testid":"channelPlaceholder"},C.a.createElement("h2",null,C.a.createElement(V.a,{id:"invitation_modal.guests.add_channels.title",defaultMessage:"Search and Add Channels"})),C.a.createElement("div",null,C.a.createElement(V.a,{id:"invitation_modal.guests.add_channels.placeholder",defaultMessage:"Search and add channels"},e=>C.a.createElement(Jd,{placeholder:e,ariaLabel:Object(I.gb)("invitation_modal.guests.add_channels.title","Search and Add Channels"),channelsLoader:this.channelsLoader,onChange:this.onChannelsChange,onInputChange:this.onChannelsInputChange,inputValue:this.state.channelsInputValue,value:this.state.channels}))),C.a.createElement("div",{className:"help-text"},C.a.createElement(V.a,{id:"invitation_modal.guests.add-channels.description",defaultMessage:"Specify the channels the guests have access to."}))),C.a.createElement("div",{className:"custom-message","data-testid":"customMessage"},!this.state.customMessageOpen&&C.a.createElement("a",{onClick:this.openCustomMessage,href:"#"},C.a.createElement(V.a,{id:"invitation_modal.guests.custom-message.link",defaultMessage:"Set a custom message"})),this.state.customMessageOpen&&C.a.createElement(C.a.Fragment,null,C.a.createElement("div",null,C.a.createElement(V.a,{id:"invitation_modal.guests.custom-message.title",defaultMessage:"Custom message"}),C.a.createElement(Vd,{onClick:this.closeCustomMessage})),C.a.createElement("textarea",{ref:this.textareaRef,onChange:this.onMessageChange,value:this.state.customMessage})),C.a.createElement("div",{className:"help-text"},C.a.createElement(V.a,{id:"invitation_modal.guests.custom-message.description",defaultMessage:"Create a custom message to make your invite more personal."}))),C.a.createElement("div",{className:"invite-guests"},C.a.createElement("button",{className:"btn "+(0===this.state.channels.length||0===this.state.usersAndEmails.length?"btn-inactive":"btn-primary"),disabled:0===this.state.channels.length||0===this.state.usersAndEmails.length,onClick:this.sendInvites,id:"inviteGuestButton"},C.a.createElement(V.a,{id:"invitation_modal.guests.invite_button",defaultMessage:"Invite Guests"}))))}}Zd(Xd,"propTypes",{teamName:v.a.string.isRequired,myInvitableChannels:v.a.array.isRequired,currentTeamId:v.a.string.isRequired,searchProfiles:v.a.func.isRequired,searchChannels:v.a.func.isRequired,defaultChannels:v.a.array,defaultMessage:v.a.string,onEdit:v.a.func.isRequired,onSubmit:v.a.func.isRequired,emailInvitationsEnabled:v.a.bool.isRequired});class $d extends C.a.PureComponent{render(){return C.a.createElement("span",this.props,C.a.createElement(V.a,{id:"generic_icons.alert",defaultMessage:"Alert Icon"},e=>C.a.createElement("svg",{width:"24px",height:"24px",viewBox:"0 0 24 24",role:"img","aria-label":e},C.a.createElement("path",{d:"M11,15H13V17H11V15M11,7H13V13H11V7M12,2C6.47,2 2,6.5 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20Z"}))))}}a(1702);class em extends C.a.Component{render(){const{invitation:e}=this.props;let t,a,n,s;if(e.user){n="name";const i=Object(I.M)(e.user);t=C.a.createElement(nn.a,{username:e.user.username,url:i,size:"lg"}),a=Object(I.B)(e.user),Object(I.V)(e.user)&&(s=C.a.createElement(an.a,null))}else e.email?(n="email",t=C.a.createElement(Ld,{className:"mail-icon"}),a=e.email):(n="name",t=C.a.createElement($d,{className:"alert-icon"}),a=e.text);let i=e.reason;return e.reason&&e.reason.id&&(i=C.a.createElement(V.a,{id:e.reason.id,defaultMessage:e.reason.message,values:e.reason.values})),C.a.createElement("div",{className:"InvitationModalConfirmStepRow"},C.a.createElement("div",{className:"username-or-icon"},t,C.a.createElement("span",{className:n},a,s)),C.a.createElement("div",{className:"reason"},i))}}!function(e,t,a){t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a}(em,"propTypes",{invitation:v.a.object.isRequired});a(1703);class tm extends C.a.Component{render(){return C.a.createElement("div",{className:"InvitationModalConfirmStepTable"},C.a.createElement("div",{className:"table-header"},C.a.createElement("div",{className:"people-header"},C.a.createElement(V.a,{id:"invitation-modal.confirm.people-header",defaultMessage:"People"})),C.a.createElement("div",{className:"details-header"},C.a.createElement(V.a,{id:"invitation-modal.confirm.details-header",defaultMessage:"Details"}))),C.a.createElement("div",{className:"rows"},this.props.invites.map(e=>C.a.createElement(em,{key:e.text||e.email||e.user.id,invitation:e}))))}}!function(e,t,a){t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a}(tm,"propTypes",{invites:v.a.arrayOf(v.a.object).isRequired});a(1704);function am(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class nm extends C.a.Component{constructor(...e){super(...e),am(this,"getInvitesCountsMessage",(e,t)=>e>0&&t>0?C.a.createElement(Ji.b,{id:"invitation_modal.confirm.members_subtitle",defaultMessage:"**{sentCount, number} {sentCount, plural, one {person} other {people}}** {sentCount, plural, one {has} other {have}} been invited, and **{notSentCount, number} {notSentCount, plural, one {invitation} other {invitations}}** {notSentCount, plural, one {was} other {were}} not sent",values:{sentCount:e,notSentCount:t}}):e>0&&0===t?C.a.createElement(Ji.b,{id:"invitation_modal.confirm.members_subtitle_without_not_sent",defaultMessage:"**{sentCount, number} {sentCount, plural, one {person} other {people}}** {sentCount, plural, one {has} other {have}} been invited",values:{sentCount:e}}):0===e&&t>0?C.a.createElement(Ji.b,{id:"invitation_modal.confirm.members_subtitle_without_sent",defaultMessage:"**{notSentCount, number} {notSentCount, plural, one {invitation} other {invitations}}** {notSentCount, plural, one {was} other {were}} not sent",values:{notSentCount:t}}):C.a.createElement(Ji.b,{id:"invitation_modal.confirm.members_subtitle_without_sent_and_not_sent",defaultMessage:"No invitation sent"}))}render(){const{teamName:e,invitesType:t,invitesSent:a,invitesNotSent:n,onDone:s}=this.props;return C.a.createElement("div",{className:"InvitationModalConfirmStep"},C.a.createElement("div",{className:"modal-icon"},C.a.createElement(Sd,null)),t===P.p.INVITE_MEMBER&&C.a.createElement("h1",{id:"invitation_modal_title"},C.a.createElement(Ji.b,{id:"invitation_modal.confirm.members_title",defaultMessage:"**Members** Invited to **{teamName}**",values:{teamName:e}})),t===P.p.INVITE_GUEST&&C.a.createElement("h1",{id:"invitation_modal_title"},C.a.createElement(Ji.b,{id:"invitation_modal.confirm.guests_title",defaultMessage:"**Guests** Invited to **{teamName}**",values:{teamName:e}})),C.a.createElement("h2",{className:"subtitle"},this.getInvitesCountsMessage(a.length,n.length)),a.length>0&&C.a.createElement("div",{className:"invitation-modal-confirm-sent"},C.a.createElement("h2",null,C.a.createElement(V.a,{id:"invitation_modal.confirm.sent-header",defaultMessage:"Successful Invites"})),C.a.createElement(tm,{invites:a})),n.length>0&&C.a.createElement("div",{className:"invitation-modal-confirm-not-sent"},C.a.createElement("h2",null,C.a.createElement(V.a,{id:"invitation_modal.confirm.not-sent-header",defaultMessage:"Invitations Not Sent"})),C.a.createElement(tm,{invites:n})),C.a.createElement("div",{className:"confirm-done"},C.a.createElement("button",{className:"btn btn-primary",onClick:s},C.a.createElement(V.a,{id:"invitation_modal.confirm.done",defaultMessage:"Done"}))))}}am(nm,"propTypes",{teamName:v.a.string.isRequired,onDone:v.a.func.isRequired,invitesType:v.a.oneOf([P.p.INVITE_MEMBER,P.p.INVITE_GUEST]).isRequired,invitesSent:v.a.array.isRequired,invitesNotSent:v.a.array.isRequired});a(1705);function sm(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const im="initial",rm="members",om="guests",lm="confirm";class cm extends C.a.Component{constructor(e){super(e),sm(this,"modal",C.a.createRef()),sm(this,"goToInitialStep",()=>{this.state.hasChanges?this.setState({confirmBack:!0}):this.setState({step:im,hasChanges:!1,lastInviteChannels:[],lastInviteMesssage:"",prevStep:this.state.step}),this.modal&&this.modal.current&&this.modal.current.resetFocus()}),sm(this,"goToMembers",()=>{this.setState({step:rm,prevStep:this.state.step,hasChanges:!1,invitesSent:[],invitesNotSent:[],invitesType:P.p.INVITE_MEMBER}),this.modal&&this.modal.current&&this.modal.current.resetFocus()}),sm(this,"goToGuests",()=>{this.setState({step:om,prevStep:this.state.step,hasChanges:!1,invitesSent:[],invitesNotSent:[],invitesType:P.p.INVITE_GUEST}),this.modal&&this.modal.current&&this.modal.current.resetFocus()}),sm(this,"goToPrevStep",()=>{this.state.prevStep===om?this.setState({step:om,prevStep:this.state.step,hasChanges:!1,invitesSent:[],invitesNotSent:[],invitesType:P.p.INVITE_GUEST}):this.state.prevStep===rm&&this.setState({step:rm,prevStep:this.state.step,hasChanges:!1,invitesSent:[],invitesNotSent:[],invitesType:P.p.INVITE_MEMBER}),this.modal&&this.modal.current&&this.modal.current.resetFocus()}),sm(this,"getBackFunction",()=>this.state.step===lm&&this.state.invitesNotSent.length>0?this.goToPrevStep:(this.state.step===rm||this.state.step===om)&&this.props.canInviteGuests&&this.props.canAddUsers?this.goToInitialStep:null),sm(this,"onEdit",e=>{this.setState({hasChanges:e})}),sm(this,"close",()=>{this.state.hasChanges?this.setState({confirmModal:!0}):this.props.actions.closeModal()}),sm(this,"confirmBack",()=>{this.setState({step:im,hasChanges:!1,confirmBack:!1})}),sm(this,"cancelBack",()=>{this.setState({confirmBack:!1})}),sm(this,"confirmClose",()=>{this.props.actions.closeModal(),this.setState({confirmModal:!1})}),sm(this,"cancelClose",()=>{this.setState({confirmModal:!1})}),sm(this,"onMembersSubmit",async(e,t,a)=>{const n=await this.props.actions.sendMembersInvites(this.props.currentTeam.id,e,t);""!==a&&n.notSent.push({text:a,reason:C.a.createElement(V.a,{id:"invitation-modal.confirm.not-valid-user-or-email",defaultMessage:"Does not match a valid user or email."})}),this.setState({step:lm,prevStep:this.state.step,invitesSent:n.sent,invitesNotSent:n.notSent,invitesType:P.p.INVITE_MEMBER,hasChanges:!1})}),sm(this,"onGuestsSubmit",async(e,t,a,n,s,i)=>{const r=await this.props.actions.sendGuestsInvites(this.props.currentTeam.id,a.map(e=>e.id),e,t,n);""!==s&&r.notSent.push({text:s,reason:C.a.createElement(V.a,{id:"invitation-modal.confirm.not-valid-user-or-email",defaultMessage:"Does not match a valid user or email."})}),""!==i&&r.notSent.push({text:i,reason:C.a.createElement(V.a,{id:"invitation-modal.confirm.not-valid-channel",defaultMessage:"Does not match a valid channel name."})}),this.setState({step:lm,prevStep:this.state.step,lastInviteChannels:a,lastInviteMessage:n,invitesSent:r.sent,invitesNotSent:r.notSent,invitesType:P.p.INVITE_GUEST,hasChanges:!1})});let t=im;e.canInviteGuests||(t=rm),e.canAddUsers||(t=om),this.state={step:t,prevStep:null,lastInviteChannels:[],lastInviteMessage:"",confirmModal:!1,confirmBack:!1,hasChanges:!1,invitesType:P.p.INVITE_MEMBER,invitesSent:[],invitesNotSent:[]}}componentDidUpdate(e,t){this.state.step!==rm||t.step===rm||this.props.currentTeam.invite_id||this.props.actions.getTeam(this.props.currentTeam.id)}render(){return C.a.createElement(Td,null,C.a.createElement(Od,{show:Boolean(this.props.show),onClose:this.close,onGoBack:this.getBackFunction(),ref:this.modal,ariaLabelledBy:"invitation_modal_title"},C.a.createElement("div",{"data-testid":"invitationModal",className:"InvitationModal"},C.a.createElement(ss.a,{show:this.state.confirmModal||this.state.confirmBack,title:C.a.createElement(V.a,{id:"invitation-modal.discard-changes.title",defaultMessage:"Discard Changes"}),message:C.a.createElement(V.a,{id:"invitation-modal.discard-changes.message",defaultMessage:"You have unsent invitations, are you sure you want to discard them?"}),confirmButtonText:C.a.createElement(V.a,{id:"invitation-modal.discard-changes.button",defaultMessage:"Yes, Discard"}),modalClass:"invitation-modal-confirm",onConfirm:this.state.confirmModal?this.confirmClose:this.confirmBack,onCancel:this.state.confirmModal?this.cancelClose:this.cancelBack}),this.state.step===im&&C.a.createElement(Id,{teamName:this.props.currentTeam.display_name,goToMembers:this.goToMembers,goToGuests:this.goToGuests}),this.state.step===rm&&C.a.createElement(Gd,{teamName:this.props.currentTeam.display_name,inviteId:this.props.currentTeam.invite_id,searchProfiles:this.props.actions.searchProfiles,emailInvitationsEnabled:this.props.emailInvitationsEnabled,onSubmit:this.onMembersSubmit,onEdit:this.onEdit}),this.state.step===om&&C.a.createElement(Xd,{teamName:this.props.currentTeam.display_name,currentTeamId:this.props.currentTeam.id,myInvitableChannels:this.props.invitableChannels,searchProfiles:this.props.actions.searchProfiles,searchChannels:this.props.actions.searchChannels,defaultChannels:this.state.lastInviteChannels,defaultMessage:this.state.lastInviteMessage,emailInvitationsEnabled:this.props.emailInvitationsEnabled,onSubmit:this.onGuestsSubmit,onEdit:this.onEdit}),this.state.step===lm&&C.a.createElement(nm,{teamName:this.props.currentTeam.display_name,currentTeamId:this.props.currentTeam.id,onDone:this.close,invitesType:this.state.invitesType,invitesSent:this.state.invitesSent,invitesNotSent:this.state.invitesNotSent}))))}}sm(cm,"propTypes",{show:v.a.bool,currentTeam:v.a.object.isRequired,invitableChannels:v.a.array.isRequired,canInviteGuests:v.a.bool.isRequired,canAddUsers:v.a.bool.isRequired,emailInvitationsEnabled:v.a.bool.isRequired,actions:v.a.shape({closeModal:v.a.func.isRequired,sendGuestsInvites:v.a.func.isRequired,sendMembersInvites:v.a.func.isRequired,searchProfiles:v.a.func.isRequired,searchChannels:v.a.func.isRequired,getTeam:v.a.func.isRequired}).isRequired});const dm=(e,t={})=>e?Object(r.searchProfiles)(e,t):Object(r.getProfiles)(0,20,t),mm=(e,t)=>Object(o.searchChannels)(e,t);var um=Object(n.connect)((function(e){const t=Object(d.getConfig)(e),a=Object(d.getLicense)(e),n=Object(p.getChannelsInCurrentTeam)(e),s=Object(u.getCurrentTeam)(e),i=n.filter(t=>t.type!==P.j.DM_CHANNEL&&t.type!==P.j.GM_CHANNEL&&(t.type===P.j.PRIVATE_CHANNEL?Object(D.haveIChannelPermission)(e,{channel:t.id,team:s.id,permission:L.Permissions.MANAGE_PRIVATE_CHANNEL_MEMBERS}):Object(D.haveIChannelPermission)(e,{channel:t.id,team:s.id,permission:L.Permissions.MANAGE_PUBLIC_CHANNEL_MEMBERS}))),r="true"===t.EnableGuestAccounts,o="true"===t.EnableEmailInvitations,l=a&&"true"===a.IsLicensed,c=!Boolean(s.group_constrained)&&l&&r&&Object(D.haveITeamPermission)(e,{team:s.id,permission:L.Permissions.INVITE_GUEST}),m=Object(D.haveITeamPermission)(e,{team:s.id,permission:L.Permissions.ADD_USER_TO_TEAM});return{invitableChannels:i,currentTeam:s,canInviteGuests:c,canAddUsers:m,emailInvitationsEnabled:o,show:Object(gd.a)(e,P.u.INVITATION)}}),(function(e){return{actions:Object(s.bindActionCreators)({closeModal:()=>Object(x.a)(P.u.INVITATION),sendGuestsInvites:fd,sendMembersInvites:bd,searchProfiles:dm,searchChannels:mm,getTeam:l.getTeam},e)}}))(cm),pm=a(1183),hm=a(1182);class gm extends C.a.PureComponent{render(){return C.a.createElement("span",this.props,C.a.createElement(V.a,{id:"navbar_dropdown.leave.icon",defaultMessage:"Leave Team Icon"},e=>C.a.createElement("svg",{width:"100%",height:"100%",viewBox:"0 0 164 164",style:bm,role:"img","aria-label":e},C.a.createElement("path",{d:"M26.023,164L26.023,7.035L26.022,0.32L137.658,0.32L137.658,164L124.228,164L124.228, 13.749L39.452,13.749L39.452,164L26.023, 164ZM118.876,164L118.876,18.619L58.137,32.918L58.137,149.701L118.876,164Z"}))))}}const bm={fillRule:"evenodd",clipRule:"evenodd",strokeLinejoin:"round",strokeMiterlimit:1.41421};function fm(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class _m extends C.a.PureComponent{constructor(...e){super(...e),fm(this,"handleKeyPress",e=>{Object(I.W)(e,P.Q.KeyCodes.ENTER)&&this.handleSubmit(e)}),fm(this,"handleSubmit",()=>{this.props.onHide(),this.props.actions.leaveTeam(this.props.currentTeamId,this.props.currentUserId),this.props.actions.toggleSideBarRightMenu()})}componentDidMount(){this.props.show&&document.addEventListener("keypress",this.handleKeyPress)}componentWillUnmount(){document.removeEventListener("keypress",this.handleKeyPress)}render(){return C.a.createElement(G.a,{dialogClassName:"a11y__modal",className:"modal-confirm",show:this.props.show,onHide:this.props.onHide,id:"leaveTeamModal",role:"dialog","aria-labelledby":"leaveTeamModalLabel"},C.a.createElement(G.a.Header,{closeButton:!1},C.a.createElement(G.a.Title,{componentClass:"h1",id:"leaveTeamModalLabel"},C.a.createElement(V.a,{id:"leave_team_modal.title",defaultMessage:"Leave the team?"}))),C.a.createElement(G.a.Body,null,C.a.createElement(V.a,{id:"leave_team_modal.desc",defaultMessage:"You will be removed from all public and private channels. If the team is private you will not be able to rejoin the team. Are you sure?"})),C.a.createElement(G.a.Footer,null,C.a.createElement("button",{type:"button",className:"btn btn-link",onClick:this.props.onHide,id:"leaveTeamNo"},C.a.createElement(V.a,{id:"leave_team_modal.no",defaultMessage:"No"})),C.a.createElement("button",{type:"button",className:"btn btn-danger",onClick:this.handleSubmit,id:"leaveTeamYes"},C.a.createElement(V.a,{id:"leave_team_modal.yes",defaultMessage:"Yes"}))))}}fm(_m,"propTypes",{currentUserId:v.a.string.isRequired,currentTeamId:v.a.string.isRequired,onHide:v.a.func.isRequired,show:v.a.bool.isRequired,actions:v.a.shape({leaveTeam:v.a.func.isRequired,toggleSideBarRightMenu:v.a.func.isRequired})});var Em=Object(n.connect)((function(e){const t=P.u.LEAVE_TEAM;return{currentUserId:Object(m.getCurrentUserId)(e),currentTeamId:Object(u.getCurrentTeamId)(e),show:Object(gd.a)(e,t)}}),(function(e){return{actions:Object(s.bindActionCreators)({leaveTeam:l.removeUserFromTeam,toggleSideBarRightMenu:S.o},e)}}))(_m),vm=a(1178),ym=a(1485);function Cm(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class wm extends C.a.Component{constructor(e){super(e),Cm(this,"handleTermChange",e=>{this.setState({term:e})}),Cm(this,"nextPage",()=>{this.setState({page:this.state.page+1}),this.props.nextPage(this.state.page+1)}),Cm(this,"previousPage",()=>{this.setState({page:this.state.page-1})}),Cm(this,"search",e=>{this.props.search(e),""!==e&&this.setState({page:0})}),this.state={term:"",page:0}}render(){return C.a.createElement(ym.a,Object.assign({},this.props,{nextPage:this.nextPage,previousPage:this.previousPage,search:this.search,page:this.state.page,term:this.state.term,onTermChange:this.handleTermChange}))}}Cm(wm,"propTypes",{users:v.a.arrayOf(v.a.object),usersPerPage:v.a.number,total:v.a.number,extraInfo:v.a.object,nextPage:v.a.func.isRequired,search:v.a.func.isRequired,actions:v.a.arrayOf(v.a.func),actionProps:v.a.object,actionUserProps:v.a.object,focusOnMount:v.a.bool});class Om extends C.a.PureComponent{render(){return C.a.createElement(V.a,{id:"generic_icons.dropdown",defaultMessage:"Dropdown Icon"},e=>C.a.createElement("i",{className:"fa fa-angle-down",title:e}))}}function Tm(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const Sm=3;class Pm extends C.a.Component{constructor(e){super(e),Tm(this,"handleMakeMember",async()=>{const e=this.props.currentUser;if(this.props.user.id===e.id&&e.roles.includes("system_admin"))this.handleDemote(this.props.user,"team_user");else{const{error:t}=await this.props.actions.updateTeamMemberSchemeRoles(this.props.teamMember.team_id,this.props.user.id,!0,!1);t?this.setState({serverError:t.message}):(this.props.actions.getUser(this.props.user.id),this.props.actions.getTeamMember(this.props.teamMember.team_id,this.props.user.id),this.props.user.id===e.id&&(await this.props.actions.getMyTeamMembers(),this.props.actions.getMyTeamUnreads()))}}),Tm(this,"handleRemoveFromTeam",async()=>{const{error:e}=await this.props.actions.removeUserFromTeamAndGetStats(this.props.teamMember.team_id,this.props.user.id);e&&this.setState({serverError:e.message})}),Tm(this,"handleMakeAdmin",async()=>{const e=this.props.currentUser;if(this.props.user.id===e.id&&e.roles.includes("system_admin"))this.handleDemote(this.props.user,"team_user team_admin");else{const{error:e}=await this.props.actions.updateTeamMemberSchemeRoles(this.props.teamMember.team_id,this.props.user.id,!0,!0);e?this.setState({serverError:e.message}):(this.props.actions.getUser(this.props.user.id),this.props.actions.getTeamMember(this.props.teamMember.team_id,this.props.user.id))}}),Tm(this,"handleDemote",(e,t,a)=>{this.setState({serverError:this.state.serverError,showDemoteModal:!0,user:e,role:t,newRole:a})}),Tm(this,"handleDemoteCancel",()=>{this.setState({serverError:null,showDemoteModal:!1,user:null,role:null,newRole:null})}),Tm(this,"handleDemoteSubmit",async()=>{const{error:e}=await this.props.actions.updateTeamMemberSchemeRoles(this.props.teamMember.team_id,this.props.user.id,!0,!1);e?this.setState({serverError:e.message}):(this.props.actions.getUser(this.props.user.id),K.a.push(this.props.teamUrl))}),this.state={serverError:null,showDemoteModal:!1,user:null,role:null}}render(){let e=null;this.state.serverError&&(e=C.a.createElement("div",{className:"has-error"},C.a.createElement("label",{className:"has-error control-label"},this.state.serverError)));const{currentTeam:t,teamMember:a,user:n}=this.props;let s=null;s=I.V(n)?C.a.createElement(V.a,{id:"team_members_dropdown.guest",defaultMessage:"Guest"}):n.roles.length>0&&I.ab(n.roles)?C.a.createElement(V.a,{id:"team_members_dropdown.systemAdmin",defaultMessage:"System Admin"}):a.roles.length>0&&I.O(a.roles)||a.scheme_admin?C.a.createElement(V.a,{id:"team_members_dropdown.teamAdmin",defaultMessage:"Team Admin"}):C.a.createElement(V.a,{id:"team_members_dropdown.member",defaultMessage:"Member"});const i=this.props.currentUser;let r=!I.V(n)&&(I.O(a.roles)||a.scheme_admin)&&!I.ab(n.roles),o=!(I.V(n)||I.O(a.roles)||I.ab(n.roles)||a.scheme_admin);n.delete_at>0&&(s=C.a.createElement(V.a,{id:"team_members_dropdown.inactive",defaultMessage:"Inactive"}),r=!1,o=!1);const l=n.id!==i.id&&!t.group_constrained;let c=null;if(n.id===i.id){const t=C.a.createElement(V.a,{id:"team_members_dropdown.confirmDemoteRoleTitle",defaultMessage:"Confirm demotion from System Admin role"}),a=C.a.createElement("div",null,C.a.createElement(V.a,{id:"team_members_dropdown.confirmDemoteDescription",defaultMessage:"If you demote yourself from the System Admin role and there is not another user with System Admin privileges, you'll need to re-assign a System Admin by accessing the Mattermost server through a terminal and running the following command."}),C.a.createElement("br",null),C.a.createElement("br",null),C.a.createElement(V.a,{id:"team_members_dropdown.confirmDemotionCmd",defaultMessage:"platform roles system_admin {username}",vallues:{username:i.username}}),e),n=C.a.createElement(V.a,{id:"team_members_dropdown.confirmDemotion",defaultMessage:"Confirm Demotion"});c=C.a.createElement(ss.a,{show:this.state.showDemoteModal,title:t,message:a,confirmButtonText:n,onConfirm:this.handleDemoteSubmit,onCancel:this.handleDemoteCancel})}if(!l&&!o&&!r)return C.a.createElement("div",null,s);const{index:d,totalUsers:m}=this.props;let u=!1;return m>Sm&&m-d<=Sm&&(u=!0),C.a.createElement(Ri.a,null,C.a.createElement("button",{id:"teamMembersDropdown_".concat(n.username),className:"dropdown-toggle theme color--link style--none",type:"button","aria-expanded":"true"},C.a.createElement("span",null,s," "),C.a.createElement(Om,null)),C.a.createElement("div",null,C.a.createElement(ki.a,{openLeft:!0,openUp:u,ariaLabel:I.gb("team_members_dropdown.menuAriaLabel","Team member role change")},C.a.createElement(ki.a.ItemAction,{id:"removeFromTeam",show:l,onClick:this.handleRemoveFromTeam,text:I.gb("team_members_dropdown.leave_team","Remove From Team")}),C.a.createElement(ki.a.ItemAction,{show:o,onClick:this.handleMakeAdmin,text:I.gb("team_members_dropdown.makeAdmin","Make Team Admin")}),C.a.createElement(ki.a.ItemAction,{show:r,onClick:this.handleMakeMember,text:I.gb("team_members_dropdown.makeMember","Make Member")})),c,e))}}Tm(Pm,"propTypes",{user:v.a.object.isRequired,currentUser:v.a.object.isRequired,teamMember:v.a.object.isRequired,teamUrl:v.a.string.isRequired,currentTeam:v.a.object.isRequired,index:v.a.number.isRequired,totalUsers:v.a.number.isRequired,actions:v.a.shape({getMyTeamMembers:v.a.func.isRequired,getMyTeamUnreads:v.a.func.isRequired,getUser:v.a.func.isRequired,getTeamMember:v.a.func.isRequired,getTeamStats:v.a.func.isRequired,getChannelStats:v.a.func.isRequired,updateTeamMemberSchemeRoles:v.a.func.isRequired,removeUserFromTeamAndGetStats:v.a.func.isRequired,updateUserActive:v.a.func.isRequired}).isRequired});var Mm=Object(n.connect)((function(e){return{currentUser:Object(m.getCurrentUser)(e),currentChannelId:Object(p.getCurrentChannelId)(e),teamUrl:Object(u.getCurrentRelativeTeamUrl)(e),currentTeam:Object(u.getCurrentTeam)(e)}}),(function(e){return{actions:Object(s.bindActionCreators)({getMyTeamMembers:l.getMyTeamMembers,getMyTeamUnreads:l.getMyTeamUnreads,getUser:r.getUser,getTeamMember:l.getTeamMember,getTeamStats:l.getTeamStats,getChannelStats:o.getChannelStats,updateUserActive:r.updateUserActive,updateTeamMemberSchemeRoles:l.updateTeamMemberSchemeRoles,removeUserFromTeamAndGetStats:b.d},e)}}))(Pm);function Im(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const Nm=50;class jm extends C.a.Component{constructor(e){super(e),Im(this,"loadComplete",()=>{this.setState({loading:!1})}),Im(this,"nextPage",e=>{this.props.actions.loadProfilesAndTeamMembers(e+1,Nm)}),Im(this,"search",e=>{this.props.actions.setModalSearchTerm(e)}),this.searchTimeoutId=0,this.state={loading:!0}}componentDidMount(){this.props.actions.loadProfilesAndTeamMembers(0,P.Q.PROFILE_CHUNK_SIZE,this.props.currentTeamId).then(({data:e})=>{e&&this.loadComplete()}),this.props.actions.getTeamStats(this.props.currentTeamId)}componentWillUnmount(){this.props.actions.setModalSearchTerm("")}UNSAFE_componentWillReceiveProps(e){if(this.props.searchTerm!==e.searchTerm){clearTimeout(this.searchTimeoutId);const t=e.searchTerm;if(""===t)return this.loadComplete(),void(this.searchTimeoutId="");const a=setTimeout(async()=>{const{loadStatusesForProfilesList:n,loadTeamMembersForProfilesList:s,searchProfiles:i}=e.actions,{data:r}=await i(t,{team_id:e.currentTeamId});a===this.searchTimeoutId&&(this.setState({loading:!0}),n(r),s(r,e.currentTeamId).then(({data:e})=>{e&&this.loadComplete()}))},P.Q.SEARCH_TIMEOUT_MILLISECONDS);this.searchTimeoutId=a}}render(){let e=null;this.props.canManageTeamMembers&&(e=[Mm]);const t=this.props.teamMembers,a=this.props.users,n={};let s;if(this.state.loading)s=null;else{s=[];for(let e=0;e<a.length;e++){const i=a[e];t[i.id]&&0===i.delete_at&&(s.push(i),n[i.id]={teamMember:t[i.id]})}}return C.a.createElement(wm,{users:s,usersPerPage:Nm,total:this.props.totalTeamMembers,nextPage:this.nextPage,search:this.search,actions:e,actionUserProps:n,focusOnMount:!M.n()})}}Im(jm,"propTypes",{searchTerm:v.a.string.isRequired,users:v.a.arrayOf(v.a.object).isRequired,teamMembers:v.a.object.isRequired,currentTeamId:v.a.string.isRequired,totalTeamMembers:v.a.number.isRequired,canManageTeamMembers:v.a.bool,actions:v.a.shape({searchProfiles:v.a.func.isRequired,getTeamStats:v.a.func.isRequired,loadProfilesAndTeamMembers:v.a.func.isRequired,loadStatusesForProfilesList:v.a.func.isRequired,loadTeamMembersForProfilesList:v.a.func.isRequired,setModalSearchTerm:v.a.func.isRequired}).isRequired});var Am=Object(n.connect)((function(e,t){const a=Object(D.haveITeamPermission)(e,{team:t.teamId,permission:L.Permissions.MANAGE_TEAM_ROLES}),n=e.views.search.modalSearch;let s;s=n?Object(m.searchProfilesInCurrentTeam)(e,n):Object(m.getProfilesInCurrentTeam)(e);const i=Object(u.getCurrentTeamStats)(e)||{active_member_count:0};return{searchTerm:n,users:s,teamMembers:Object(u.getMembersInCurrentTeam)(e)||{},currentTeamId:e.entities.teams.currentTeamId,totalTeamMembers:i.active_member_count,canManageTeamMembers:a}}),(function(e){return{actions:Object(s.bindActionCreators)({searchProfiles:r.searchProfiles,getTeamStats:l.getTeamStats,loadProfilesAndTeamMembers:cs.g,loadStatusesForProfilesList:g.b,loadTeamMembersForProfilesList:cs.m,setModalSearchTerm:vm.a},e)}}))(jm);function Rm(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class km extends C.a.PureComponent{constructor(e){super(e),Rm(this,"onHide",()=>{this.setState({show:!1})}),Rm(this,"handleInvitePeople",()=>{const e={modalId:P.u.INVITATION,dialogType:um};this.props.actions.openModal(e),this.setState({show:!1})}),this.state={show:!0}}componentDidMount(){this.props.onLoad&&this.props.onLoad()}render(){let e="";return this.props.currentTeam&&(e=this.props.currentTeam.display_name),C.a.createElement(G.a,{dialogClassName:"a11y__modal more-modal",show:this.state.show,onHide:this.onHide,onExited:this.props.onHide,role:"dialog","aria-labelledby":"teamMemberModalLabel",id:"teamMembersModal"},C.a.createElement(G.a.Header,{closeButton:!0},C.a.createElement(G.a.Title,{componentClass:"h1",id:"teamMemberModalLabel"},C.a.createElement(V.a,{id:"team_member_modal.members",defaultMessage:"{team} Members",values:{team:e}})),C.a.createElement(pm.a,{teamId:this.props.currentTeam.id,permissions:[yr.a.ADD_USER_TO_TEAM,yr.a.INVITE_GUEST]},C.a.createElement("button",{id:"invitePeople",type:"button",className:"btn btn-primary invite-people-btn",onClick:this.handleInvitePeople},C.a.createElement(V.a,{id:"team_member_modal.invitePeople",defaultMessage:"Invite People"})))),C.a.createElement(G.a.Body,null,C.a.createElement(Am,{teamId:this.props.currentTeam.id})))}}Rm(km,"propTypes",{currentTeam:v.a.object.isRequired,onHide:v.a.func.isRequired,onLoad:v.a.func,actions:v.a.shape({openModal:v.a.func.isRequired})});var Lm=Object(n.connect)((function(e){const t=P.u.TEAM_MEMBERS;return{currentTeam:Object(u.getCurrentTeam)(e),show:Object(gd.a)(e,t)}}),(function(e){return{actions:Object(s.bindActionCreators)({openModal:x.b},e)}}))(km),Dm=a(1103),xm=a(1135),Um=a(1146),qm=a(1425),Hm=a(1222);function Fm(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function Bm(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?Fm(a,!0).forEach((function(t){Gm(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):Fm(a).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function Gm(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const Vm=["image/jpeg","image/png","image/bmp"];class Wm extends C.a.Component{constructor(e){super(e),Gm(this,"updateSection",e=>{this.setState(this.setupInitialState(this.props)),this.props.updateSection(e)}),Gm(this,"handleOpenInviteRadio",e=>{this.setState({allow_open_invite:e})}),Gm(this,"handleAllowedDomainsSubmit",async()=>{var e={serverError:"",clientError:""},t=Bm({},this.props.team);t.allowed_domains=this.state.allowed_domains;const{error:a}=await this.props.actions.patchTeam(t);a?(e.serverError=a.message,this.setState(e)):this.updateSection("")}),Gm(this,"handleOpenInviteSubmit",async()=>{var e={serverError:"",clientError:""},t=Bm({},this.props.team);t.allow_open_invite=this.state.allow_open_invite;const{error:a}=await this.props.actions.patchTeam(t);a?(e.serverError=a.message,this.setState(e)):this.updateSection("")}),Gm(this,"handleNameSubmit",async()=>{var e={serverError:"",clientError:""};let t=!0;const a=this.state.name.trim();if(a?a.length<P.Q.MIN_TEAMNAME_LENGTH?(e.clientError=C.a.createElement(V.a,{id:"general_tab.teamNameRestrictions",defaultMessage:"Team Name must be {min} or more characters up to a maximum of {max}. You can add a longer team description.",values:{min:P.Q.MIN_TEAMNAME_LENGTH,max:P.Q.MAX_TEAMNAME_LENGTH}}),t=!1):e.clientError="":(e.clientError=I.gb("general_tab.required","This field is required"),t=!1),this.setState(e),!t)return;var n=Bm({},this.props.team);n.display_name=this.state.name;const{error:s}=await this.props.actions.patchTeam(n);s?(e.serverError=s.message,this.setState(e)):this.updateSection("")}),Gm(this,"handleInviteIdSubmit",async()=>{const e={serverError:"",clientError:""};this.setState(e);const{error:t}=await this.props.actions.regenerateTeamInviteId(this.props.team.id);t?(e.serverError=t.message,this.setState(e)):this.updateSection("")}),Gm(this,"handleClose",()=>{this.updateSection("")}),Gm(this,"handleDescriptionSubmit",async()=>{var e={serverError:"",clientError:""};let t=!0;if(this.state.description.trim()===this.props.team.description?(e.clientError=I.gb("general_tab.chooseDescription","Please choose a new description for your team"),t=!1):e.clientError="",this.setState(e),!t)return;var a=Bm({},this.props.team);a.description=this.state.description;const{error:n}=await this.props.actions.patchTeam(a);n?(e.serverError=n.message,this.setState(e)):this.updateSection("")}),Gm(this,"handleTeamIconSubmit",async()=>{if(!this.state.teamIconFile)return;if(!this.state.submitActive)return;this.setState({loadingIcon:!0,clientError:"",serverError:""});const{error:e}=await this.props.actions.setTeamIcon(this.props.team.id,this.state.teamIconFile);e?this.setState({loadingIcon:!1,serverError:e.message}):(this.setState({loadingIcon:!1,submitActive:!1}),this.updateSection(""))}),Gm(this,"handleTeamIconRemove",async()=>{this.setState({loadingIcon:!0,clientError:"",serverError:""});const{error:e}=await this.props.actions.removeTeamIcon(this.props.team.id);e?this.setState({loadingIcon:!1,serverError:e.message}):(this.setState({loadingIcon:!1,submitActive:!1}),this.updateSection(""))}),Gm(this,"handleUpdateSection",e=>{"invite_id"!==e||this.props.activeSection===e||this.props.team.invite_id?this.updateSection(e):this.setState({shouldFetchTeam:!0},()=>{this.updateSection(e)})}),Gm(this,"updateName",e=>{this.setState({name:e.target.value})}),Gm(this,"updateDescription",e=>{this.setState({description:e.target.value})}),Gm(this,"updateTeamIcon",e=>{if(e&&e.target&&e.target.files&&e.target.files[0]){const t=e.target.files[0];Vm.includes(t.type)?t.size>this.props.maxFileSize?this.setState({clientError:I.gb("general_tab.teamIconTooLarge","Unable to upload team icon. File is too large.")}):this.setState({teamIconFile:e.target.files[0],clientError:"",submitActive:!0}):this.setState({clientError:I.gb("general_tab.teamIconInvalidFileType","Only BMP, JPG or PNG images may be used for team icons")})}else this.setState({teamIconFile:null,clientError:I.gb("general_tab.teamIconError","An error occurred while selecting the image.")})}),Gm(this,"updateAllowedDomains",e=>{this.setState({allowed_domains:e.target.value})}),this.state=this.setupInitialState(e)}setupInitialState(e){const t=e.team;return{name:t.display_name,invite_id:t.invite_id,allow_open_invite:t.allow_open_invite,description:t.description,allowed_domains:t.allowed_domains,serverError:"",clientError:"",teamIconFile:null,loadingIcon:!1,submitActive:!1}}UNSAFE_componentWillReceiveProps(e){this.setState({name:e.team.display_name,description:e.team.description,allowed_domains:e.team.allowed_domains,invite_id:e.team.invite_id,allow_open_invite:e.team.allow_open_invite})}componentDidUpdate(e,t){!t.shouldFetchTeam&&this.state.shouldFetchTeam&&this.fetchTeam()}fetchTeam(){this.state.serverError||this.props.actions.getTeam(this.props.team.id).then(({error:e})=>{const t={shouldFetchTeam:!1};e&&(t.serverError=e.message),this.setState(t)})}componentDidMount(){Rs()("#team_settings").on("hidden.bs.modal",this.handleClose)}componentWillUnmount(){Rs()("#team_settings").off("hidden.bs.modal",this.handleClose)}render(){const e=this.props.team;let t,a,n,s,i,r,o=null,l=null;if(this.state.clientError&&(o=this.state.clientError),this.state.serverError&&(l=this.state.serverError),"open_invite"===this.props.activeSection){let a;a=e.group_constrained?[C.a.createElement("div",{key:"userOpenInviteOptions"},C.a.createElement("div",null,C.a.createElement(Ji.b,{id:"team_settings.openInviteDescription.groupConstrained",defaultMessage:"No, members of this team are added and removed by linked groups. [Learn More](!https://mattermost.com/pl/default-ldap-group-constrained-team-channel.html)"})))]:[C.a.createElement("fieldset",{key:"userOpenInviteOptions"},C.a.createElement("legend",{className:"form-legend hidden-label"},C.a.createElement(V.a,{id:"team_settings.openInviteDescription.ariaLabel",defaultMessage:"Invite Code"})),C.a.createElement("div",{className:"radio"},C.a.createElement("label",null,C.a.createElement("input",{id:"teamOpenInvite",name:"userOpenInviteOptions",type:"radio",defaultChecked:this.state.allow_open_invite,onChange:this.handleOpenInviteRadio.bind(this,!0)}),C.a.createElement(V.a,{id:"general_tab.yes",defaultMessage:"Yes"})),C.a.createElement("br",null)),C.a.createElement("div",{className:"radio"},C.a.createElement("label",null,C.a.createElement("input",{id:"teamOpenInviteNo",name:"userOpenInviteOptions",type:"radio",defaultChecked:!this.state.allow_open_invite,onChange:this.handleOpenInviteRadio.bind(this,!1)}),C.a.createElement(V.a,{id:"general_tab.no",defaultMessage:"No"})),C.a.createElement("br",null)),C.a.createElement("div",{className:"margin-top x3"},C.a.createElement(V.a,{id:"general_tab.openInviteDesc",defaultMessage:"When allowed, a link to this team will be included on the landing page allowing anyone with an account to join this team."})))],t=C.a.createElement(xm.a,{title:I.gb("general_tab.openInviteTitle","Allow any user with an account on this server to join this team"),inputs:a,submit:this.handleOpenInviteSubmit,serverError:l,updateSection:this.handleUpdateSection})}else{let a="";a=!0===this.state.allow_open_invite?I.gb("general_tab.yes","Yes"):e.group_constrained?I.gb("team_settings.openInviteSetting.groupConstrained","No, members of this team are added and removed by linked groups."):I.gb("general_tab.no","No"),t=C.a.createElement(Um.a,{title:I.gb("general_tab.openInviteTitle","Allow any user with an account on this server to join this team"),describe:a,updateSection:this.handleUpdateSection,section:"open_invite"})}if("invite_id"===this.props.activeSection&&this.props.canInviteTeamMembers){const e=[];e.push(C.a.createElement("div",{key:"teamInviteSetting"},C.a.createElement("div",{className:"row"},C.a.createElement("label",{className:"col-sm-5 control-label visible-xs-block"}),C.a.createElement("div",{className:"col-sm-12"},C.a.createElement("input",{id:"teamInviteId",autoFocus:!0,className:"form-control",type:"text",value:this.state.invite_id,maxLength:"32",onFocus:I.ib,readOnly:!0}))),C.a.createElement("div",{className:"setting-list__hint"},C.a.createElement(V.a,{id:"general_tab.codeLongDesc",defaultMessage:"The Invite Code is used as part of the URL in the team invitation link created by {getTeamInviteLink} in the main menu. Regenerating creates a new team invitation link and invalidates the previous link.",values:{getTeamInviteLink:C.a.createElement("strong",null,C.a.createElement(V.a,{id:"general_tab.getTeamInviteLink",defaultMessage:"Get Team Invite Link"}))}})))),a=C.a.createElement(xm.a,{title:I.gb("general_tab.codeTitle","Invite Code"),inputs:e,submit:this.handleInviteIdSubmit,serverError:l,clientError:o,updateSection:this.handleUpdateSection,saveButtonText:I.gb("general_tab.regenerate","Regenerate")})}else this.props.canInviteTeamMembers&&(a=C.a.createElement(Um.a,{title:I.gb("general_tab.codeTitle","Invite Code"),describe:I.gb("general_tab.codeDesc","Click 'Edit' to regenerate Invite Code."),updateSection:this.handleUpdateSection,section:"invite_id"}));if("name"===this.props.activeSection){const e=[];let t=C.a.createElement(V.a,{id:"general_tab.teamName",defaultMessage:"Team Name"});I.Y()&&(t=""),e.push(C.a.createElement("div",{key:"teamNameSetting",className:"form-group"},C.a.createElement("label",{className:"col-sm-5 control-label"},t),C.a.createElement("div",{className:"col-sm-7"},C.a.createElement("input",{id:"teamName",autoFocus:!0,className:"form-control",type:"text",maxLength:P.Q.MAX_TEAMNAME_LENGTH.toString(),onChange:this.updateName,value:this.state.name,onFocus:I.ib}))));const a=C.a.createElement("span",null,I.gb("general_tab.teamNameInfo","Set the name of the team as it appears on your sign-in screen and at the top of the left-hand sidebar."));n=C.a.createElement(xm.a,{title:I.gb("general_tab.teamName","Team Name"),inputs:e,submit:this.handleNameSubmit,serverError:l,clientError:o,updateSection:this.handleUpdateSection,extraInfo:a})}else{var c=this.state.name;n=C.a.createElement(Um.a,{title:I.gb("general_tab.teamName","Team Name"),describe:c,updateSection:this.handleUpdateSection,section:"name"})}if("description"===this.props.activeSection){const e=[];let t=C.a.createElement(V.a,{id:"general_tab.teamDescription",defaultMessage:"Team Description"});I.Y()&&(t=""),e.push(C.a.createElement("div",{key:"teamDescriptionSetting",className:"form-group"},C.a.createElement("label",{className:"col-sm-5 control-label"},t),C.a.createElement("div",{className:"col-sm-7"},C.a.createElement("input",{id:"teamDescription",autoFocus:!0,className:"form-control",type:"text",maxLength:P.Q.MAX_TEAMDESCRIPTION_LENGTH.toString(),onChange:this.updateDescription,value:this.state.description,onFocus:I.ib}))));const a=C.a.createElement("span",null,I.gb("general_tab.teamDescriptionInfo","Team description provides additional information to help users select the right team. Maximum of 50 characters."));s=C.a.createElement(xm.a,{title:I.gb("general_tab.teamDescription","Team Description"),inputs:e,submit:this.handleDescriptionSubmit,serverError:l,clientError:o,updateSection:this.handleUpdateSection,extraInfo:a})}else{let e="";e=this.state.description?this.state.description:C.a.createElement(V.a,{id:"general_tab.emptyDescription",defaultMessage:"Click 'Edit' to add a team description."}),s=C.a.createElement(Um.a,{title:I.gb("general_tab.teamDescription","Team Description"),describe:e,updateSection:this.handleUpdateSection,section:"description"})}if("team_icon"===this.props.activeSection)i=C.a.createElement(qm.a,{imageContext:"team",title:I.gb("general_tab.teamIcon","Team Icon"),src:I.L(e),file:this.state.teamIconFile,serverError:this.state.serverError,clientError:this.state.clientError,loadingPicture:this.state.loadingIcon,submitActive:this.state.submitActive,updateSection:e=>{this.updateSection(""),e.preventDefault()},onFileChange:this.updateTeamIcon,onSubmit:this.handleTeamIconSubmit,onRemove:this.handleTeamIconRemove});else{let t;t=e.last_team_icon_update?C.a.createElement(V.a,{id:"general_tab.teamIconLastUpdated",defaultMessage:"Image last updated {date}",values:{date:C.a.createElement(Dm.a,{value:new Date(e.last_team_icon_update),day:"2-digit",month:"short",year:"numeric"})}}):I.Y()?I.gb("general_tab.teamIconEditHintMobile","Click to upload an image"):I.gb("general_tab.teamIconEditHint","Click 'Edit' to upload an image."),i=C.a.createElement(Um.a,{title:I.gb("general_tab.teamIcon","Team Icon"),describe:t,section:"team_icon",updateSection:this.handleUpdateSection})}if("allowed_domains"===this.props.activeSection){const e=[];e.push(C.a.createElement("div",{key:"allowedDomainsSetting",className:"form-group"},C.a.createElement("div",{className:"col-sm-12"},C.a.createElement(ce.a,{id:"allowedDomains",autoFocus:!0,className:"form-control",type:"text",onChange:this.updateAllowedDomains,value:this.state.allowed_domains,onFocus:I.ib,placeholder:{id:Object(de.b)("general_tab.AllowedDomainsExample"),defaultMessage:"corp.mattermost.com, mattermost.org"},"aria-label":I.gb("general_tab.allowedDomains.ariaLabel","Allowed Domains")}))));const t=C.a.createElement("span",null,I.gb("general_tab.AllowedDomainsInfo",'Users can only join the team if their email matches a specific domain (e.g. "mattermost.org") or list of comma-separated domains (e.g. "corp.mattermost.com, mattermost.org").'));r=C.a.createElement(xm.a,{title:I.gb("general_tab.allowedDomains","Allow only users with a specific email domain to join this team"),inputs:e,submit:this.handleAllowedDomainsSubmit,serverError:l,clientError:o,updateSection:this.handleUpdateSection,extraInfo:t})}else{let e="";e=this.state.allowed_domains?this.state.allowed_domains:C.a.createElement(V.a,{id:"general_tab.allowedDomainsEdit",defaultMessage:"Click 'Edit' to add an email domain whitelist."}),r=C.a.createElement(Um.a,{title:I.gb("general_tab.allowedDomains","allowedDomains"),describe:e,updateSection:this.handleUpdateSection,section:"allowed_domains"})}return C.a.createElement("div",null,C.a.createElement("div",{className:"modal-header"},C.a.createElement("button",{id:"closeButton",type:"button",className:"close","data-dismiss":"modal","aria-label":"Close",onClick:this.props.closeModal},C.a.createElement("span",{"aria-hidden":"true"},"×")),C.a.createElement("h4",{className:"modal-title",ref:"title"},C.a.createElement("div",{className:"modal-back"},C.a.createElement("span",{onClick:this.props.collapseModal},C.a.createElement(Hm.a,null))),C.a.createElement(V.a,{id:"general_tab.title",defaultMessage:"General Settings"}))),C.a.createElement("div",{ref:"wrapper",className:"user-settings"},C.a.createElement("h3",{className:"tab-header"},C.a.createElement(V.a,{id:"general_tab.title",defaultMessage:"General Settings"})),C.a.createElement("div",{className:"divider-dark first"}),n,C.a.createElement("div",{className:"divider-light"}),s,C.a.createElement("div",{className:"divider-light"}),i,!e.group_constrained&&C.a.createElement(C.a.Fragment,null,C.a.createElement("div",{className:"divider-light"}),r),C.a.createElement("div",{className:"divider-light"}),t,!e.group_constrained&&C.a.createElement(C.a.Fragment,null,C.a.createElement("div",{className:"divider-light"}),a),C.a.createElement("div",{className:"divider-dark"})))}}Gm(Wm,"propTypes",{updateSection:v.a.func.isRequired,team:v.a.object.isRequired,activeSection:v.a.string.isRequired,closeModal:v.a.func.isRequired,collapseModal:v.a.func.isRequired,maxFileSize:v.a.number.isRequired,actions:v.a.shape({getTeam:v.a.func.isRequired,patchTeam:v.a.func.isRequired,regenerateTeamInviteId:v.a.func.isRequired,removeTeamIcon:v.a.func.isRequired,setTeamIcon:v.a.func.isRequired}).isRequired,canInviteTeamMembers:v.a.bool.isRequired});var zm=Object(n.connect)((function(e,t){const a=Object(d.getConfig)(e);return{maxFileSize:parseInt(a.MaxFileSize,10),canInviteTeamMembers:Object(D.haveITeamPermission)(e,{team:t.team.id,permission:L.Permissions.INVITE_USER})}}),(function(e){return{actions:Object(s.bindActionCreators)({getTeam:l.getTeam,patchTeam:l.patchTeam,regenerateTeamInviteId:l.regenerateTeamInviteId,removeTeamIcon:l.removeTeamIcon,setTeamIcon:l.setTeamIcon},e)}}))(Wm);function Ym(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class Km extends C.a.Component{constructor(e){super(e),Ym(this,"doFileSelect",e=>{e.preventDefault();var t=Rs()(e.target).val();"fakepath"===t.substring(3,11)&&(t=t.substring(12)),this.setState({clientError:"",serverError:"",filename:t})}),Ym(this,"openFileSelect",()=>{this.uploadinput.current.value="",this.uploadinput.current.click()}),Ym(this,"doSubmit",e=>{e.preventDefault();var t=Ai.a.findDOMNode(this.uploadinput.current);t.files&&t.files[0]?this.props.submit(t.files[0]):this.setState({clientError:!0})}),this.uploadinput=C.a.createRef(),this.state={clientError:"",serverError:"",filename:""}}render(){let e=null;this.state.clientError&&(e=C.a.createElement("div",{className:"file-status"},C.a.createElement(V.a,{id:"setting_upload.noFile",defaultMessage:"No file selected."})));let t=null;this.state.serverError&&(t=C.a.createElement("div",{className:"file-status"},this.state.serverError));let a=null,n="btn btn-sm btn-primary disabled";return this.state.filename&&(a=C.a.createElement("div",{className:"file-status file-name"},this.state.filename),n="btn btn-sm btn-primary"),C.a.createElement("ul",{className:"section-max"},C.a.createElement("li",{className:"col-sm-12 section-title"},this.props.title),C.a.createElement("li",{className:"col-sm-offset-3 col-sm-9"},this.props.helpText),C.a.createElement("li",{className:"col-sm-offset-3 col-sm-9"},C.a.createElement("ul",{className:"setting-list"},C.a.createElement("li",{className:"setting-list-item"},C.a.createElement("input",{ref:this.uploadinput,accept:this.props.fileTypesAccepted,type:"file",onChange:this.doFileSelect,tabIndex:"-1","aria-hidden":!0}),C.a.createElement("button",{onClick:this.openFileSelect,className:"btn btn-sm btn-primary btn-file sel-btn"},C.a.createElement(V.a,{id:"setting_upload.select",defaultMessage:"Select file"})),C.a.createElement("a",{className:n,onClick:this.doSubmit},C.a.createElement(V.a,{id:"setting_upload.import",defaultMessage:"Import"})),a,t,e))))}}Km.propTypes={title:v.a.node.isRequired,submit:v.a.func.isRequired,fileTypesAccepted:v.a.string.isRequired,helpText:v.a.object};var Qm=a(1163);function Jm(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const Zm=Object(gs.defineMessages)({importSlack:{id:Object(de.b)("team_import_tab.importSlack"),defaultMessage:"Import from Slack (Beta)"}});class Xm extends C.a.Component{constructor(e){super(e),Jm(this,"onImportFailure",()=>{this.setState({status:"fail"})}),Jm(this,"onImportSuccess",e=>{this.setState({status:"done",link:"data:application/octet-stream;charset=utf-8,"+encodeURIComponent(atob(e.results))})}),Jm(this,"doImportSlack",e=>{this.setState({status:"in-progress",link:""}),I.N(e,this.onImportSuccess,this.onImportFailure)}),this.state={status:"ready",link:""}}render(){const e=C.a.createElement("a",{href:"https://docs.mattermost.com/administration/migrating.html#migrating-from-slack",target:"_blank",rel:"noopener noreferrer"},C.a.createElement(V.a,{id:"team_import_tab.importHelpDocsLink",defaultMessage:"documentation"})),t=C.a.createElement("strong",null,C.a.createElement(V.a,{id:"team_import_tab.importHelpExportInstructions",defaultMessage:"Slack > Administration > Workspace settings > Import/Export Data > Export > Start Export"})),a=C.a.createElement("a",{href:"https://github.com/grundleborg/slack-advanced-exporter",target:"_blank",rel:"noopener noreferrer"},C.a.createElement(V.a,{id:"team_import_tab.importHelpExporterLink",defaultMessage:"Slack Advanced Exporter"})),n=C.a.createElement("a",{href:"https://docs.mattermost.com/administration/migrating.html#migrating-from-slack-using-the-mattermost-cli",target:"_blank",rel:"noopener noreferrer"},C.a.createElement(V.a,{id:"team_import_tab.importHelpCliDocsLink",defaultMessage:"CLI tool for Slack import"})),s=C.a.createElement("div",null,C.a.createElement("p",null,C.a.createElement(V.a,{id:"team_import_tab.importHelpLine1",defaultMessage:"Slack import to Mattermost supports importing of messages in your Slack team's public channels."})),C.a.createElement("p",null,C.a.createElement(V.a,{id:"team_import_tab.importHelpLine2",defaultMessage:"To import a team from Slack, go to {exportInstructions}. See {uploadDocsLink} to learn more.",values:{exportInstructions:t,uploadDocsLink:e}})),C.a.createElement("p",null,C.a.createElement(V.a,{id:"team_import_tab.importHelpLine3",defaultMessage:"To import posts with attached files, see {slackAdvancedExporterLink} for details.",values:{slackAdvancedExporterLink:a}})),C.a.createElement("p",null,C.a.createElement(V.a,{id:"team_import_tab.importHelpLine4",defaultMessage:"For Slack teams with over 10,000 messages, we recommend using the {cliLink}.",values:{cliLink:n}}))),i=C.a.createElement(Km,{title:C.a.createElement(V.a,Zm.importSlack),submit:this.doImportSlack,helpText:s,fileTypesAccepted:".zip"});let r;switch(this.state.status){case"ready":r="";break;case"in-progress":r=C.a.createElement("p",{className:"confirm-import alert alert-warning"},C.a.createElement(vc.a,{text:I.gb("team_import_tab.importing","Importing...")}));break;case"done":r=C.a.createElement("p",{className:"confirm-import alert alert-success"},C.a.createElement(Yn.a,null),C.a.createElement(V.a,{id:"team_import_tab.successful",defaultMessage:" Import successful: "}),C.a.createElement("a",{href:this.state.link,download:"MattermostImportSummary.txt"},C.a.createElement(V.a,{id:"team_import_tab.summary",defaultMessage:"View Summary"})));break;case"fail":r=C.a.createElement("p",{className:"confirm-import alert alert-warning"},C.a.createElement(Qm.a,null),C.a.createElement(V.a,{id:"team_import_tab.failure",defaultMessage:" Import failure: "}),C.a.createElement("a",{href:this.state.link,download:"MattermostImportSummary.txt"},C.a.createElement(V.a,{id:"team_import_tab.summary",defaultMessage:"View Summary"})))}return C.a.createElement("div",null,C.a.createElement("div",{className:"modal-header"},C.a.createElement("button",{type:"button",className:"close","data-dismiss":"modal","aria-label":"Close",onClick:this.props.closeModal},C.a.createElement("span",{"aria-hidden":"true"},"×")),C.a.createElement("h4",{className:"modal-title",ref:"title"},C.a.createElement("div",{className:"modal-back"},C.a.createElement("span",{onClick:this.props.collapseModal},C.a.createElement(Hm.a,null))),C.a.createElement(V.a,{id:"team_import_tab.import",defaultMessage:"Import"}))),C.a.createElement("div",{ref:"wrapper",className:"user-settings"},C.a.createElement("h3",{className:"tab-header"},C.a.createElement(V.a,{id:"team_import_tab.import",defaultMessage:"Import"})),C.a.createElement("div",{className:"divider-dark first"}),i,C.a.createElement("div",{className:"divider-dark"}),r))}}Jm(Xm,"propTypes",{closeModal:v.a.func.isRequired,collapseModal:v.a.func.isRequired});const $m=({activeTab:e,activeSection:t,updateSection:a,closeModal:n,collapseModal:s,team:i})=>{if(!i)return null;let r;switch(e){case"general":r=C.a.createElement("div",null,C.a.createElement(zm,{team:i,activeSection:t,updateSection:a,closeModal:n,collapseModal:s}));break;case"import":r=C.a.createElement("div",null,C.a.createElement(Xm,{team:i,activeSection:t,updateSection:a,closeModal:n,collapseModal:s}));break;default:r=C.a.createElement("div",null)}return r};$m.defaultProps={activeTab:"",activeSection:""},$m.propTypes={activeTab:v.a.string.isRequired,activeSection:v.a.string.isRequired,updateSection:v.a.func.isRequired,closeModal:v.a.func.isRequired,collapseModal:v.a.func.isRequired,team:v.a.object.isRequired};var eu=$m;var tu=Object(n.connect)((function(e){return{team:Object(u.getCurrentTeam)(e)}}))(eu);function au(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const nu=C.a.lazy(()=>a.e(3).then(a.bind(null,1961)));class su extends C.a.Component{constructor(e){super(e),au(this,"updateTab",e=>{this.setState({activeTab:e,activeSection:""})}),au(this,"updateSection",e=>{this.setState({activeSection:e})}),au(this,"collapseModal",()=>{Rs()(Ai.a.findDOMNode(this.modalBodyRef.current)).closest(".modal-dialog").removeClass("display--content"),this.setState({active_tab:"",active_section:""})}),au(this,"handleHide",()=>{this.setState({show:!1})}),au(this,"handleHidden",()=>{this.setState({activeTab:"general",activeSection:""}),this.props.onHide()}),this.state={activeTab:"general",activeSection:"",show:!0},this.modalBodyRef=C.a.createRef()}render(){const e=[];return e.push({name:"general",uiName:I.gb("team_settings_modal.generalTab","General"),icon:"icon fa fa-cog",iconTitle:I.gb("generic_icons.settings","Settings Icon")}),e.push({name:"import",uiName:I.gb("team_settings_modal.importTab","Import"),icon:"icon fa fa-upload",iconTitle:I.gb("generic_icons.upload","Upload Icon")}),C.a.createElement(G.a,{dialogClassName:"a11y__modal settings-modal settings-modal--action",show:this.state.show,onHide:this.handleHide,onExited:this.handleHidden,role:"dialog","aria-labelledby":"teamSettingsModalLabel"},C.a.createElement(G.a.Header,{id:"teamSettingsModalLabel",closeButton:!0},C.a.createElement(G.a.Title,{componentClass:"h1"},C.a.createElement(V.a,{id:"team_settings_modal.title",defaultMessage:"Team Settings"}))),C.a.createElement(G.a.Body,{ref:this.modalBodyRef},C.a.createElement("div",{className:"settings-table"},C.a.createElement("div",{className:"settings-links"},C.a.createElement(C.a.Suspense,{fallback:null},C.a.createElement(nu,{tabs:e,activeTab:this.state.activeTab,updateTab:this.updateTab}))),C.a.createElement("div",{className:"settings-content minimize-settings"},C.a.createElement(tu,{activeTab:this.state.activeTab,activeSection:this.state.activeSection,updateSection:this.updateSection,closeModal:this.handleHide,collapseModal:this.collapseModal})))))}}au(su,"propTypes",{onHide:v.a.func});var iu=Object(n.connect)((function(e){const t=P.u.TEAM_SETTINGS;return{show:Object(gd.a)(e,t)}}))(su),ru=a(1489),ou=a(1272);const lu=e=>e.views.marketplace.plugins,cu=e=>Object.values(lu(e)).filter(e=>""!==e.installed_version),du=(e,t)=>lu(e).find(e=>e.manifest&&e.manifest.id===t),mu=e=>e.views.marketplace.filter,uu=(e,t)=>Boolean(e.views.marketplace.installing[t]),pu=(e,t)=>e.views.marketplace.errors[t];function hu(e=!1){return async(t,a)=>{const n=a(),s=mu(n);try{const a=await bn.Client4.getMarketplacePlugins(s,e);return t({type:P.f.RECEIVED_MARKETPLACE_PLUGINS,plugins:a}),{plugins:a}}catch(a){return"app.plugin.marketplace_client.failed_to_fetch"!==a.server_error_id||e||await t(hu(!0)),{error:a}}}}function gu(e,t){return async(a,n)=>{a({type:P.f.INSTALLING_MARKETPLACE_PLUGIN,id:e});const s=n();if(du(s,e)){try{await bn.Client4.installMarketplacePlugin(e,t)}catch(t){return void a({type:P.f.INSTALLING_MARKETPLACE_PLUGIN_FAILED,id:e,error:t.message})}await a(hu()),a({type:P.f.INSTALLING_MARKETPLACE_PLUGIN_SUCCEEDED,id:e})}else a({type:P.f.INSTALLING_MARKETPLACE_PLUGIN_FAILED,id:e,error:"Unknown plugin: "+e})}}function bu(e){return async t=>(t({type:P.f.FILTER_MARKETPLACE_PLUGINS,filter:e}),t(hu()))}var fu=a(1246);class _u extends C.a.PureComponent{render(){return C.a.createElement("span",this.props,C.a.createElement(V.a,{id:"generic_icons.plugin",defaultMessage:"Plugin Icon"},e=>C.a.createElement("svg",{width:"61px",height:"61px",viewBox:"0 0 61 61","aria-label":e},C.a.createElement("g",{stroke:"none",strokeWidth:"1",fill:"inherit",fillRule:"evenodd"},C.a.createElement("g",{transform:"translate(-347.000000, -211.000000)",fill:"inherit"},C.a.createElement("g",{transform:"translate(377.585786, 241.500000) rotate(-315.000000) translate(-377.585786, -241.500000) translate(358.585786, 200.000000)"},C.a.createElement("g",{transform:"translate(0.000000, -0.000000)"},C.a.createElement("path",{d:"M3.28846154,6.10822511 L3.05411255,6.10822511 C1.36737277,6.10822511 2.06566048e-16,4.74085234 0,3.05411255 C-2.06566048e-16,1.36737277 1.36737277,-7.78498519e-14 3.05411255,-7.81597009e-14 L34.9458874,-7.81597009e-14 C36.6326272,-8.16905472e-14 38,1.36737277 38,3.05411255 C38,4.74085234 36.6326272,6.10822511 34.9458874,6.10822511 L34.7115385,6.10822511 L34.7115385,14.7316017 C34.7115385,20.9798931 29.0184395,26.1638765 21.5576923,27.1415606 L21.5576923,33.1964286 C21.5576923,34.5081049 20.4943686,35.5714286 19.1826923,35.5714286 C17.871016,35.5714286 16.8076923,34.5081049 16.8076923,33.1964286 L16.8076923,27.1859094 C9.16823824,26.3322077 3.28846154,21.0815081 3.28846154,14.7316017 L3.28846154,6.10822511 Z M19.1431901,14.7316017 C17.8533303,14.7316017 16.8076923,15.7772397 16.8076923,17.0670996 C16.8076923,18.3569594 17.8533303,19.4025974 19.1431901,19.4025974 L19.2221945,19.4025974 C20.5120543,19.4025974 21.5576923,18.3569594 21.5576923,17.0670996 C21.5576923,15.7772397 20.5120543,14.7316017 19.2221945,14.7316017 L19.1431901,14.7316017 Z",transform:"translate(19.000000, 17.785714) rotate(-180.000000) translate(-19.000000, -17.785714) "}),C.a.createElement("path",{d:"M32.1538462,53.5367965 L34.7115385,53.5367965 L34.7115385,62.1601732 C34.7115385,68.4084646 29.0184395,73.592448 21.5576923,74.5701321 L21.5576923,80.625 C21.5576923,81.9366763 20.4943686,83 19.1826923,83 C17.871016,83 16.8076923,81.9366763 16.8076923,80.625 L16.8076923,74.6144809 C9.16823824,73.7607791 3.28846154,68.5100796 3.28846154,62.1601732 L3.28846154,53.5367965 L3.05411255,53.5367965 C1.36737277,53.5367965 2.06566048e-16,52.1694238 0,50.482684 C-2.06566048e-16,48.7959442 1.36737277,47.4285714 3.05411255,47.4285714 L8.40384615,47.4285714 L8.40384615,42.2581169 C8.40384615,40.9464406 9.46716987,39.8831169 10.7788462,39.8831169 C12.0905224,39.8831169 13.1538462,40.9464406 13.1538462,42.2581169 L13.1538462,47.4285714 L24.8461538,47.4285714 L24.8461538,42.2581169 C24.8461538,40.9464406 25.9094776,39.8831169 27.2211538,39.8831169 C28.5328301,39.8831169 29.5961538,40.9464406 29.5961538,42.2581169 L29.5961538,47.4285714 L34.9458874,47.4285714 C36.6326272,47.4285714 38,48.7959442 38,50.482684 C38,52.1694238 36.6326272,53.5367965 34.9458874,53.5367965 L32.1538462,53.5367965 Z M19.1431901,62.1601732 C17.8533303,62.1601732 16.8076923,63.2058112 16.8076923,64.495671 C16.8076923,65.7855308 17.8533303,66.8311688 19.1431901,66.8311688 L19.2221945,66.8311688 C20.5120543,66.8311688 21.5576923,65.7855308 21.5576923,64.495671 C21.5576923,63.2058112 20.5120543,62.1601732 19.2221945,62.1601732 L19.1431901,62.1601732 Z",transform:"translate(19.000000, 61.441558) rotate(-360.000000) translate(-19.000000, -61.441558) "}))))))))}}var Eu=a(1119),vu=a(333),yu=a.n(vu),Cu=a(1426);function wu(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const Ou=({version:e,releaseNotesUrl:t})=>t?C.a.createElement("a",{target:"_blank",rel:"noopener noreferrer",href:t},e):e;Ou.propTypes={version:v.a.string.isRequired,releaseNotesUrl:v.a.string};const Tu=({name:e,description:t,url:a,color:n})=>{const s=C.a.createElement("span",{className:"tag",style:{backgroundColor:n||""}},e.toUpperCase());let i;return i=t?C.a.createElement(ui.a,{delayShow:P.j.OVERLAY_TIME_DELAY,placement:"top",overlay:C.a.createElement(mi.a,{id:"plugin-marketplace_label_"+e.toLowerCase()+"-tooltip"},t)},s):s,a?C.a.createElement("a",{"aria-label":e.toLowerCase(),className:"style--none more-modal__row--link",target:"_blank",rel:"noopener noreferrer",href:a},i):i};Tu.propTypes={name:v.a.string.isRequired,description:v.a.string,url:v.a.string,color:v.a.string};const Su=({version:e,releaseNotesUrl:t,installedVersion:a,isInstalling:n,onUpdate:s})=>{if(!a||n)return null;var i=!1;try{i=yu.a.gt(e,a)}catch(e){}return i?C.a.createElement("div",{className:Os()("update")},C.a.createElement(V.a,{id:"marketplace_modal.list.update_available",defaultMessage:"Update available:"})," ",C.a.createElement(Ou,{version:e,releaseNotesUrl:t})," - ",C.a.createElement("b",null,C.a.createElement("a",{onClick:s},C.a.createElement(V.a,{id:"marketplace_modal.list.update",defaultMessage:"Update"})))):null};Su.propTypes={version:v.a.string.isRequired,releaseNotesUrl:v.a.string,installedVersion:v.a.string,isInstalling:v.a.bool.isRequired,onUpdate:v.a.func.isRequired};const Pu=({show:e,name:t,version:a,installedVersion:n,releaseNotesUrl:s,onUpdate:i,onCancel:r})=>{if(!n)return null;var o=!1;try{o=yu.a.gt(a,n)}catch(e){}if(!o)return null;const l=[C.a.createElement("p",{key:"intro"},C.a.createElement(V.a,{id:"marketplace_modal.list.update_confirmation.message.intro",defaultMessage:"Are you sure you want to update the ".concat(t," plugin to ").concat(a,"?"),values:{name:t,version:a}}))];s?l.push(C.a.createElement("p",{key:"current"},C.a.createElement(Cu.a,{id:"marketplace_modal.list.update_confirmation.message.current_with_release_notes",defaultMessage:"You currently have ".concat(n,' installed. View the <a href="').concat(s,"\" target='_blank' rel='noopener noreferrer'>release notes</a> to learn about the changes included in this update."),values:{installedVersion:n,releaseNotesUrl:s}}))):l.push(C.a.createElement("p",{key:"current"},C.a.createElement(V.a,{id:"marketplace_modal.list.update_confirmation.message.current",defaultMessage:"You currently have ".concat(n," installed."),values:{installedVersion:n}})));let c=!1;try{c=yu.a.major(a)===yu.a.major(n)}catch(e){}return c||(s?l.push(C.a.createElement("p",{className:"alert alert-warning",key:"warning"},C.a.createElement(Cu.a,{id:"marketplace_modal.list.update_confirmation.message.warning_major_version_with_release_notes",defaultMessage:'This update may contain breaking changes. Consult the <a href="'.concat(s,"\" target='_blank' rel='noopener noreferrer'>release notes</a> before upgrading."),values:{releaseNotesUrl:s}}))):l.push(C.a.createElement("p",{className:"alert alert-warning",key:"warning"},C.a.createElement(V.a,{id:"marketplace_modal.list.update_confirmation.message.warning_major_version",defaultMessage:"This update may contain breaking changes."})))),C.a.createElement(ss.a,{show:e,title:C.a.createElement(V.a,{id:"marketplace_modal.list.update_confirmation.title",defaultMessage:"Confirm Plugin Update"}),message:l,confirmButtonText:C.a.createElement(V.a,{id:"marketplace_modal.list.update_confirmation.confirm_button",defaultMessage:"Update"}),onConfirm:i,onCancel:r})};Pu.propTypes={show:v.a.bool.isRequired,name:v.a.string.isRequired,version:v.a.string.isRequired,releaseNotesUrl:v.a.string,installedVersion:v.a.string,onUpdate:v.a.func.isRequired,onCancel:v.a.func.isRequired};class Mu extends C.a.Component{constructor(){super(),wu(this,"trackEvent",(e,t=!0)=>{this.props.isDefaultMarketplace&&t?this.props.trackEvent("plugins",e,{plugin_id:this.props.id,version:this.props.version,installed_version:this.props.installedVersion}):this.props.trackEvent("plugins",e)}),wu(this,"onInstall",()=>{this.trackEvent("ui_marketplace_download"),this.props.actions.installPlugin(this.props.id,this.props.version)}),wu(this,"showUpdateConfirmationModal",()=>{this.setState({showUpdateConfirmationModal:!0})}),wu(this,"hideUpdateConfirmationModal",()=>{this.setState({showUpdateConfirmationModal:!1})}),wu(this,"onUpdate",()=>{this.trackEvent("ui_marketplace_download_update"),this.hideUpdateConfirmationModal(),this.props.actions.installPlugin(this.props.id,this.props.version)}),wu(this,"onConfigure",()=>{this.trackEvent("ui_marketplace_configure",!1),this.props.actions.closeMarketplaceModal()}),this.state={showUpdateConfirmationModal:!1}}getItemButton(){let e=C.a.createElement(V.a,{id:"marketplace_modal.list.Install",defaultMessage:"Install"});this.props.error&&(e=C.a.createElement(V.a,{id:"marketplace_modal.list.try_again",defaultMessage:"Try Again"}));let t=C.a.createElement("button",{onClick:this.onInstall,className:"btn btn-primary",disabled:this.props.installing},C.a.createElement(Gc.a,{loading:this.props.installing,text:Object(I.gb)("marketplace_modal.installing","Installing...")},e));return""===this.props.installedVersion||this.props.installing||this.props.error||(t=C.a.createElement(In.a,{to:"/admin_console/plugins/plugin_"+this.props.id},C.a.createElement("button",{onClick:this.onConfigure,className:"btn btn-outline"},C.a.createElement(V.a,{id:"marketplace_modal.list.configure",defaultMessage:"Configure"})))),t}render(){const e="".concat(this.props.name,", ").concat(this.props.description).toLowerCase();let t,a,n="(".concat(this.props.version,")");""!==this.props.installedVersion&&(n="(".concat(this.props.installedVersion,")")),t=this.props.iconData?C.a.createElement("div",{className:"icon__plugin icon__plugin--background"},C.a.createElement("img",{src:this.props.iconData})):C.a.createElement(_u,{className:"icon__plugin icon__plugin--background"}),this.props.labels&&0!==this.props.labels.length&&(a=this.props.labels.map(e=>C.a.createElement(Tu,{key:e.name,name:e.name,description:e.description,url:e.url,color:e.color})));const s=C.a.createElement(C.a.Fragment,null,this.props.name,C.a.createElement("span",{className:"light subtitle"},n),a,C.a.createElement("p",{className:Os()("more-modal__description",{error_text:this.props.error})},this.props.error?this.props.error:this.props.description));let i;return i=this.props.homepageUrl?C.a.createElement("a",{"aria-label":e,className:"style--none more-modal__row--link",target:"_blank",rel:"noopener noreferrer",href:this.props.homepageUrl},s):C.a.createElement("span",{"aria-label":e,className:"style--none"},s),C.a.createElement(C.a.Fragment,null,C.a.createElement("div",{className:Os()("more-modal__row","more-modal__row--link",{item_error:this.props.error}),key:this.props.id,id:"marketplace-plugin-"+this.props.id},t,C.a.createElement("div",{className:"more-modal__details"},i,C.a.createElement(Su,{version:this.props.version,installedVersion:this.props.installedVersion,releaseNotesUrl:this.props.releaseNotesUrl,isInstalling:this.props.installing,onUpdate:this.showUpdateConfirmationModal})),C.a.createElement("div",{className:"more-modal__actions"},this.getItemButton()),C.a.createElement(Pu,{show:this.state.showUpdateConfirmationModal,name:this.props.name,version:this.props.version,installedVersion:this.props.installedVersion,releaseNotesUrl:this.props.releaseNotesUrl,onUpdate:this.onUpdate,onCancel:this.hideUpdateConfirmationModal})))}}wu(Mu,"propTypes",{id:v.a.string.isRequired,name:v.a.string.isRequired,description:v.a.string.isRequired,version:v.a.string.isRequired,downloadUrl:v.a.string,homepageUrl:v.a.string,releaseNotesUrl:v.a.string,labels:v.a.array,iconData:v.a.string,installedVersion:v.a.string.isRequired,installing:v.a.bool.isRequired,error:v.a.string,isDefaultMarketplace:v.a.bool.isRequired,trackEvent:v.a.func.isRequired,actions:v.a.shape({installPlugin:v.a.func.isRequired,closeMarketplaceModal:v.a.func.isRequired}).isRequired});var Iu=Object(n.connect)((function(e,t){return{installing:uu(e,t.id),error:pu(e,t.id),isDefaultMarketplace:"true"===Object(d.getConfig)(e).IsDefaultMarketplace,trackEvent:Ie.d}}),(function(e){return{actions:Object(s.bindActionCreators)({installPlugin:gu,closeMarketplaceModal:()=>Object(x.a)(P.u.PLUGIN_MARKETPLACE)},e)}}))(Mu);a(1706);function Nu(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const ju={ALL_PLUGINS:"allPlugins",INSTALLED_PLUGINS:"installed"},Au=200,Ru=({plugins:e})=>C.a.createElement("div",{className:"more-modal__list"},e.map(e=>C.a.createElement(Iu,{key:e.manifest.id,id:e.manifest.id,name:e.manifest.name,description:e.manifest.description,version:e.manifest.version,downloadUrl:e.download_url,homepageUrl:e.homepage_url,releaseNotesUrl:e.release_notes_url,labels:e.labels,iconData:e.icon_data,installedVersion:e.installed_version})));Ru.propTypes={plugins:v.a.array.isRequired};const ku=({plugins:e})=>0===e.length?C.a.createElement("div",{className:"no_plugins_div"},C.a.createElement("br",null),C.a.createElement(_u,{className:"icon__plugin"}),C.a.createElement("div",{className:"margin-top x2 light"},C.a.createElement(V.a,{id:"marketplace_modal.no_plugins",defaultMessage:"There are no plugins available at this time."}))):C.a.createElement(Ru,{plugins:e});ku.propTypes={plugins:v.a.array.isRequired};const Lu=({installedPlugins:e,changeTab:t})=>0===e.length?C.a.createElement("div",{className:"no_plugins_div"},C.a.createElement("br",null),C.a.createElement(_u,{className:"icon__plugin"}),C.a.createElement("div",{className:"margin-top x2 light"},C.a.createElement(V.a,{id:"marketplace_modal.no_plugins_installed",defaultMessage:"You do not have any plugins installed."})),C.a.createElement("button",{className:"margin-top x3 style--none color--link",onClick:()=>t(ju.ALL_PLUGINS),"data-testid":"Install-Plugins-button"},C.a.createElement(V.a,{id:"marketplace_modal.install_plugins",defaultMessage:"Install Plugins"}))):C.a.createElement(Ru,{plugins:e});Lu.propTypes={installedPlugins:v.a.array.isRequired,changeTab:v.a.func};class Du extends C.a.Component{constructor(e){super(e),Nu(this,"fetchPlugins",async()=>{const{error:e}=await this.props.actions.fetchPlugins();this.setState({loading:!1,serverError:e})}),Nu(this,"close",()=>{Object(Ie.d)("plugins","ui_marketplace_closed"),this.props.actions.closeModal()}),Nu(this,"changeTab",e=>{this.setState({tabKey:e})}),Nu(this,"onInput",()=>{this.setState({filter:this.refs.filter.value}),this.debouncedSearch()}),Nu(this,"handleClearSearch",()=>{this.refs.filter.value="",this.setState({filter:this.refs.filter.value},this.doSearch)}),Nu(this,"doSearch",async()=>{Object(Ie.d)("plugins","ui_marketplace_search");const{error:e}=await this.props.actions.filterPlugins(this.state.filter);this.setState({serverError:e})}),Nu(this,"debouncedSearch",Ut()(this.doSearch,Au)),this.state={tabKey:ju.ALL_PLUGINS,loading:!0,serverError:null,filter:""}}componentDidMount(){Object(Ie.d)("plugins","ui_marketplace_opened"),this.fetchPlugins(),this.refs.filter&&this.refs.filter.focus()}componentDidUpdate(e){this.props.pluginStatuses!==e.pluginStatuses&&this.fetchPlugins()}render(){const e=C.a.createElement(mi.a,{id:"searchClearTooltip"},C.a.createElement(V.a,{id:"search_bar.clear",defaultMessage:"Clear search query"})),t=C.a.createElement("div",{className:"filter-row filter-row--full"},C.a.createElement("div",{className:"col-sm-12"},C.a.createElement(fu.a,{id:"searchMarketplaceTextbox",ref:"filter",className:"form-control filter-textbox search_input",placeholder:{id:Object(de.b)("marketplace_modal.search"),defaultMessage:"Search Plugins"},inputComponent:ce.a,onInput:this.onInput,value:this.state.filter}),this.state.filter&&""!==this.state.filter.trim()&&C.a.createElement("div",{id:"searchClearButton",className:"sidebar__search-clear visible",onClick:this.handleClearSearch},C.a.createElement(Xl.a,{delayShow:P.Q.OVERLAY_TIME_DELAY,placement:"bottom",overlay:e},C.a.createElement("span",{className:"sidebar__search-clear-x","aria-hidden":"true"},"×")))));let a=null;return this.state.serverError&&(a=C.a.createElement("div",{className:"error-bar",id:"error_bar"},C.a.createElement(Ji.b,{id:"app.plugin.marketplace_plugins.app_error",defaultMessage:"Error connecting to the marketplace server. Please check your settings in the [System Console]({siteURL}/admin_console/plugins/plugin_management).",values:{siteURL:this.props.siteURL}}))),C.a.createElement(Td,null,C.a.createElement(Od,{show:this.props.show,onClose:this.close,ariaLabel:Object(I.gb)("marketplace_modal.title","Plugin Marketplace")},a,C.a.createElement("div",{className:"modal-marketplace",id:"modal_marketplace"},C.a.createElement("h1",null,C.a.createElement("strong",null,C.a.createElement(V.a,{id:"marketplace_modal.title",defaultMessage:"Plugin Marketplace"}))),t,C.a.createElement(ee.a,{id:"marketplaceTabs",className:"tabs",defaultActiveKey:"allPlugins",activeKey:this.state.tabKey,onSelect:this.changeTab,unmountOnExit:!0},C.a.createElement(te.a,{eventKey:ju.ALL_PLUGINS,title:Object(I.gb)("marketplace_modal.tabs.all_plugins","All Plugins")},this.state.loading?C.a.createElement(Eu.a,null):C.a.createElement(ku,{plugins:this.props.plugins})),C.a.createElement(te.a,{eventKey:ju.INSTALLED_PLUGINS,title:Object(I.gb)("marketplace_modal.tabs.installed_plugins","Installed")+" (".concat(this.props.installedPlugins.length,")")},C.a.createElement(Lu,{installedPlugins:this.props.installedPlugins,changeTab:this.changeTab}))))))}}Nu(Du,"propTypes",{show:v.a.bool,plugins:v.a.array.isRequired,installedPlugins:v.a.array.isRequired,siteURL:v.a.string.isRequired,pluginStatuses:v.a.object.isRequired,actions:v.a.shape({closeModal:v.a.func.isRequired,fetchPlugins:v.a.func.isRequired,filterPlugins:v.a.func.isRequired}).isRequired});var xu=Object(n.connect)((function(e){return{show:Object(gd.a)(e,P.u.PLUGIN_MARKETPLACE),plugins:lu(e),installedPlugins:cu(e),siteURL:Object(Un.e)(e),pluginStatuses:e.entities.admin.pluginStatuses}}),(function(e){return{actions:Object(s.bindActionCreators)({closeModal:()=>Object(x.a)(P.u.PLUGIN_MARKETPLACE),fetchPlugins:hu,filterPlugins:bu},e)}}))(Du),Uu=a(1192);function qu(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const Hu=50;class Fu extends C.a.PureComponent{constructor(e){super(e),qu(this,"handleHide",()=>{this.setState({show:!1})}),qu(this,"handleExit",()=>{this.props.onHide&&this.props.onHide()}),qu(this,"onNext",()=>{const e=this.state.page+1;this.onPageChange(e)}),qu(this,"onPrev",()=>{const e=this.state.page-1;this.onPageChange(e)}),qu(this,"onPageChange",async e=>{this.setState({loading:!0});const t=await this.props.loadItems(e,this.state.searchTerm);this.setState({page:e,items:t.items,loading:!1})}),qu(this,"onSearchInput",async e=>{const{target:t}=e,a=t.value;this.setState({loading:!0,searchTerm:a});const n=await this.props.loadItems(0,a),{items:s,totalCount:i}=n;this.setState({loading:!1,items:s,totalCount:i})}),this.numPerPage=e.numPerPage||Hu,this.state={show:!0,page:0,items:[],totalCount:0,loading:!0,searchTerm:""}}async componentDidMount(){const{totalCount:e,items:t}=await this.props.loadItems(0,"");this.setState({totalCount:e,items:t,loading:!1})}renderRows(){return this.state.loading?C.a.createElement("div",null,C.a.createElement(Eu.a,{position:"absolute",key:"loading"})):this.state.items.map(e=>this.props.renderRow(e,this))}paginationRange(){let e=this.state.page*this.numPerPage+1;const t=e+this.state.items.length-1;return 0===t&&(e=0),{startCount:e,endCount:t}}render(){if(!this.props.show)return null;const{endCount:e,startCount:t}=this.paginationRange();return C.a.createElement("div",null,C.a.createElement(G.a,{dialogClassName:"a11y__modal more-modal more-modal--action",show:this.state.show,onHide:this.handleHide,onExited:this.handleExit},C.a.createElement(G.a.Header,{closeButton:!0},C.a.createElement(G.a.Title,{componentClass:"h1"},C.a.createElement("span",{className:"name"},this.props.titleText)),this.props.titleBarButtonText&&this.props.titleBarButtonOnClick&&C.a.createElement("a",{className:"btn btn-md btn-primary",href:"#",onClick:this.props.titleBarButtonOnClick},this.props.titleBarButtonText)),C.a.createElement(G.a.Body,null,C.a.createElement("div",{className:"filtered-user-list"},C.a.createElement("div",{className:"filter-row"},C.a.createElement("div",{className:"col-xs-12"},C.a.createElement("label",{className:"hidden-label",htmlFor:"searchUsersInput"},this.props.searchPlaceholderText),C.a.createElement("input",{id:"searchUsersInput",className:"form-control filter-textbox",placeholder:this.props.searchPlaceholderText,onChange:this.onSearchInput})),C.a.createElement("div",{className:"col-sm-12"},C.a.createElement("span",{className:"member-count pull-left"},C.a.createElement(V.a,{id:"list_modal.paginatorCount",defaultMessage:"{startCount, number} - {endCount, number} of {total, number} total",values:{startCount:t,endCount:e,total:this.state.totalCount}})))),C.a.createElement("div",{className:"more-modal__list"},C.a.createElement("div",null,this.renderRows())),C.a.createElement("div",{className:"filter-controls"},this.state.page>0&&C.a.createElement("button",{onClick:this.onPrev,className:"btn btn-link filter-control filter-control__prev"},C.a.createElement(V.a,{id:"filtered_user_list.prev",defaultMessage:"Previous"})),this.state.items.length>=this.props.numPerPage&&e!==this.state.totalCount&&C.a.createElement("button",{onClick:this.onNext,className:"btn btn-link filter-control filter-control__next"},C.a.createElement(V.a,{id:"filtered_user_list.next",defaultMessage:"Next"})))))))}}qu(Fu,"propTypes",{loadItems:v.a.func.isRequired,renderRow:v.a.func.isRequired,onHide:v.a.func,titleText:v.a.string,searchPlaceholderText:v.a.string,titleBarButtonText:v.a.string,titleBarButtonOnClick:v.a.func,numPerPage:v.a.number,show:v.a.bool}),qu(Fu,"defaultProps",{show:!0});var Bu=a(1259),Gu=a.n(Bu);function Vu(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class Wu extends C.a.PureComponent{constructor(...e){super(...e),Vu(this,"state",{showConfirmModal:!1,item:{member_count:0},listModal:null}),Vu(this,"loadItems",async(e,t)=>{const{data:a}=await this.props.actions.getGroupsAssociatedToTeam(this.props.team.id,t,e,Hu,!0);return{items:a.groups,totalCount:a.totalGroupCount}}),Vu(this,"handleDeleteCanceled",()=>{this.setState({showConfirmModal:!1})}),Vu(this,"handleDeleteConfirmed",()=>{this.setState({showConfirmModal:!1});const{item:e,listModal:t}=this.state;this.props.actions.unlinkGroupSyncable(e.id,this.props.team.id,L.Groups.SYNCABLE_TYPE_TEAM).then(async()=>{t.setState({loading:!0});const{items:e,totalCount:a}=await t.props.loadItems(t.setState.page,t.state.searchTerm);t.setState({loading:!1,items:e,totalCount:a})})}),Vu(this,"onClickRemoveGroup",(e,t)=>{this.setState({showConfirmModal:!0,item:e,listModal:t})}),Vu(this,"onClickConfirmRemoveGroup",(e,t)=>this.props.actions.unlinkGroupSyncable(e.id,this.props.team.id,L.Groups.SYNCABLE_TYPE_TEAM).then(async()=>{t.setState({loading:!0});const{items:e,totalCount:a}=await t.props.loadItems(t.setState.page,t.state.searchTerm);t.setState({loading:!1,items:e,totalCount:a})})),Vu(this,"onHide",()=>{this.props.actions.closeModal(P.u.MANAGE_TEAM_GROUPS)}),Vu(this,"titleButtonOnClick",()=>{this.onHide(),this.props.actions.openModal({modalId:P.u.ADD_GROUPS_TO_TEAM,dialogType:ou.a})}),Vu(this,"setTeamMemberStatus",async(e,t,a)=>{this.props.actions.patchGroupSyncable(e.id,this.props.team.id,L.Groups.SYNCABLE_TYPE_TEAM,{scheme_admin:a}).then(async()=>{t.setState({loading:!0});const{items:e,totalCount:a}=await t.props.loadItems(t.setState.page,t.state.searchTerm);this.props.actions.getMyTeamMembers(),t.setState({loading:!1,items:e,totalCount:a})})}),Vu(this,"renderRow",(e,t)=>{let a;return a=e.scheme_admin?I.gb("team_members_dropdown.teamAdmins","Team Admins"):I.gb("team_members_dropdown.teamMembers","Team Members"),C.a.createElement("div",{key:e.id,className:"more-modal__row"},C.a.createElement("img",{className:"more-modal__image",src:Gu.a,alt:"group picture",width:"32",height:"32"}),C.a.createElement("div",{className:"more-modal__details"},C.a.createElement("div",{className:"more-modal__name"},e.display_name," ","-"," ",C.a.createElement("span",{className:"more-modal__name_count"},C.a.createElement(V.a,{id:"numMembers",defaultMessage:"{num, number} {num, plural, one {member} other {members}}",values:{num:e.member_count}})))),C.a.createElement("div",{className:"more-modal__actions"},C.a.createElement(Ri.a,null,C.a.createElement("button",{id:"teamGroupsDropdown_".concat(e.display_name),className:"dropdown-toggle theme color--link style--none",type:"button","aria-expanded":"true"},C.a.createElement("span",null,a," "),C.a.createElement(Om,null)),C.a.createElement(ki.a,{openLeft:!0,ariaLabel:I.gb("team_members_dropdown.menuAriaLabel","Team member role change")},C.a.createElement(ki.a.ItemAction,{show:!e.scheme_admin,onClick:()=>this.setTeamMemberStatus(e,t,!0),text:I.gb("team_members_dropdown.makeTeamAdmins","Make Team Admins")}),C.a.createElement(ki.a.ItemAction,{show:Boolean(e.scheme_admin),onClick:()=>this.setTeamMemberStatus(e,t,!1),text:I.gb("team_members_dropdown.makeTeamMembers","Make Team Members")}),C.a.createElement(ki.a.ItemAction,{onClick:()=>this.onClickRemoveGroup(e,t),text:I.gb("group_list_modal.removeGroupButton","Remove Group")})))))})}render(){const{formatMessage:e}=this.props.intl,t=this.state.item.member_count;return C.a.createElement(C.a.Fragment,null,C.a.createElement(Fu,{show:!this.state.showConfirmModal,titleText:e({id:"groups",defaultMessage:"{team} Groups"},{team:this.props.team.display_name}),searchPlaceholderText:e({id:"manage_team_groups_modal.search_placeholder",defaultMessage:"Search groups"}),renderRow:this.renderRow,loadItems:this.loadItems,onHide:this.onHide,titleBarButtonText:e({id:"group_list_modal.addGroupButton",defaultMessage:"Add Groups"}),titleBarButtonOnClick:this.titleButtonOnClick}),C.a.createElement(ss.a,{show:this.state.showConfirmModal,title:e({id:"remove_group_confirm_title",defaultMessage:"Remove Group and {memberCount, number} {memberCount, plural, one {Member} other {Members}}"},{memberCount:t}),message:e({id:"remove_group_confirm_message",defaultMessage:"{memberCount, number} {memberCount, plural, one {member} other {members}} associated to this group will be removed from the team on the next scheduled AD/LDAP synchronization. Are you sure you wish to remove this group and {memberCount} {memberCount, plural, one {member} other {members}}?"},{memberCount:t}),confirmButtonText:e({id:"remove_group_confirm_button",defaultMessage:"Yes, Remove Group and {memberCount, plural, one {Member} other {Members}}"},{memberCount:t}),onConfirm:this.handleDeleteConfirmed,onCancel:this.handleDeleteCanceled}))}}Vu(Wu,"propTypes",{intl:Y.a.isRequired,team:v.a.object.isRequired,actions:v.a.shape({getGroupsAssociatedToTeam:v.a.func.isRequired,unlinkGroupSyncable:v.a.func.isRequired,patchGroupSyncable:v.a.func.isRequired,getMyTeamMembers:v.a.func.isRequired,closeModal:v.a.func.isRequired,openModal:v.a.func.isRequired}).isRequired});var zu=Object(W.c)(Wu);var Yu=Object(n.connect)((e,t)=>({team:e.entities.teams.teams[t.teamID]}),e=>({actions:Object(s.bindActionCreators)({getGroupsAssociatedToTeam:Uu.getGroupsAssociatedToTeam,closeModal:x.a,openModal:x.b,unlinkGroupSyncable:Uu.unlinkGroupSyncable,patchGroupSyncable:Uu.patchGroupSyncable,getMyTeamMembers:l.getMyTeamMembers},e)}))(zu);function Ku(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class Qu extends C.a.PureComponent{constructor(...e){super(...e),Ku(this,"toggleShortcutsModal",e=>{e.preventDefault(),S.n()}),Ku(this,"handleKeyDown",e=>{Object(I.e)(e)&&e.shiftKey&&Object(I.W)(e,P.j.KeyCodes.A)&&this.props.actions.openModal({ModalId:P.u.USER_SETTINGS,dialogType:Vs.a})}),Ku(this,"handleEmitUserLoggedOutEvent",()=>{S.e()}),Ku(this,"getFlagged",e=>{e.preventDefault(),this.props.actions.showFlaggedPosts(),this.props.actions.closeRhsMenu()}),Ku(this,"searchMentions",e=>{e.preventDefault(),this.props.isMentionSearch?this.props.actions.closeRightHandSide():(this.props.actions.closeRhsMenu(),this.props.actions.showMentions())})}componentDidMount(){document.addEventListener("keydown",this.handleKeyDown)}componentWillUnmount(){document.removeEventListener("keydown",this.handleKeyDown)}render(){const{currentUser:e,teamIsGroupConstrained:t,isLicensedForLDAPGroups:a}=this.props;if(!e)return null;const n=this.props.pluginMenuItems.map(e=>C.a.createElement(ki.a.ItemAction,{id:e.id+"_pluginmenuitem",key:e.id+"_pluginmenuitem",onClick:()=>{e.action&&e.action()},text:e.text,icon:this.props.mobile&&e.mobileIcon})),{formatMessage:s}=this.props.intl;return C.a.createElement(ki.a,{mobile:this.props.mobile,id:this.props.id,ariaLabel:s({id:"navbar_dropdown.menuAriaLabel",defaultMessage:"main menu"})},C.a.createElement(ki.a.Group,null,C.a.createElement(ki.a.ItemAction,{id:"recentMentions",show:this.props.mobile,onClick:this.searchMentions,icon:this.props.mobile&&C.a.createElement("i",{className:"mentions"},"@"),text:s({id:"sidebar_right_menu.recentMentions",defaultMessage:"Recent Mentions"})}),C.a.createElement(ki.a.ItemAction,{id:"flaggedPosts",show:this.props.mobile,onClick:this.getFlagged,icon:this.props.mobile&&C.a.createElement("i",{className:"fa fa-flag"}),text:s({id:"sidebar_right_menu.flagged",defaultMessage:"Flagged Posts"})})),C.a.createElement(ki.a.Group,null,C.a.createElement(ki.a.ItemToggleModalRedux,{id:"accountSettings",modalId:P.u.USER_SETTINGS,dialogType:Vs.a,text:s({id:"navbar_dropdown.accountSettings",defaultMessage:"Account Settings"}),icon:this.props.mobile&&C.a.createElement("i",{className:"fa fa-cog"})})),C.a.createElement(ki.a.Group,null,C.a.createElement(pm.a,{teamId:this.props.teamId,permissions:[L.Permissions.MANAGE_TEAM]},C.a.createElement(ki.a.ItemToggleModalRedux,{id:"addGroupsToTeam",show:t&&a,modalId:P.u.ADD_GROUPS_TO_TEAM,dialogType:ou.a,text:s({id:"navbar_dropdown.addGroupsToTeam",defaultMessage:"Add Groups to Team"}),icon:this.props.mobile&&C.a.createElement("i",{className:"fa fa-user-plus"})})),C.a.createElement(pm.a,{teamId:this.props.teamId,permissions:[L.Permissions.ADD_USER_TO_TEAM,L.Permissions.INVITE_GUEST]},C.a.createElement(ki.a.ItemToggleModalRedux,{id:"invitePeople",modalId:P.u.INVITATION,dialogType:um,text:s({id:"navbar_dropdown.invitePeople",defaultMessage:"Invite People"}),extraText:s({id:"navbar_dropdown.invitePeopleExtraText",defaultMessage:"Add or invite people to the team"}),icon:this.props.mobile&&C.a.createElement("i",{className:"fa fa-user-plus"})}))),C.a.createElement(ki.a.Group,null,C.a.createElement(pm.a,{teamId:this.props.teamId,permissions:[L.Permissions.MANAGE_TEAM]},C.a.createElement(ki.a.ItemToggleModalRedux,{id:"teamSettings",modalId:P.u.TEAM_SETTINGS,dialogType:iu,text:s({id:"navbar_dropdown.teamSettings",defaultMessage:"Team Settings"}),icon:this.props.mobile&&C.a.createElement("i",{className:"fa fa-globe"})})),C.a.createElement(pm.a,{teamId:this.props.teamId,permissions:[L.Permissions.MANAGE_TEAM]},C.a.createElement(ki.a.ItemToggleModalRedux,{id:"manageGroups",show:t&&a,modalId:P.u.MANAGE_TEAM_GROUPS,dialogProps:{teamID:this.props.teamId},dialogType:Yu,text:s({id:"navbar_dropdown.manageGroups",defaultMessage:"Manage Groups"}),icon:this.props.mobile&&C.a.createElement("i",{className:"fa fa-user-plus"})})),C.a.createElement(pm.a,{teamId:this.props.teamId,permissions:[L.Permissions.REMOVE_USER_FROM_TEAM,L.Permissions.MANAGE_TEAM_ROLES]},C.a.createElement(ki.a.ItemToggleModalRedux,{id:"manageMembers",modalId:P.u.TEAM_MEMBERS,dialogType:Lm,text:s({id:"navbar_dropdown.manageMembers",defaultMessage:"Manage Members"}),icon:this.props.mobile&&C.a.createElement("i",{className:"fa fa-users"})})),C.a.createElement(pm.a,{teamId:this.props.teamId,permissions:[L.Permissions.REMOVE_USER_FROM_TEAM,L.Permissions.MANAGE_TEAM_ROLES],invert:!0},C.a.createElement(ki.a.ItemToggleModalRedux,{id:"viewMembers",modalId:P.u.TEAM_MEMBERS,dialogType:Lm,text:s({id:"navbar_dropdown.viewMembers",defaultMessage:"View Members"}),icon:this.props.mobile&&C.a.createElement("i",{className:"fa fa-users"})}))),C.a.createElement(ki.a.Group,null,C.a.createElement(hm.a,{permissions:[L.Permissions.CREATE_TEAM]},C.a.createElement(ki.a.ItemLink,{id:"createTeam",to:"/create_team",text:s({id:"navbar_dropdown.create",defaultMessage:"Create a Team"}),icon:this.props.mobile&&C.a.createElement("i",{className:"fa fa-plus-square"})})),C.a.createElement(ki.a.ItemLink,{id:"joinTeam",show:!this.props.experimentalPrimaryTeam&&this.props.moreTeamsToJoin,to:"/select_team",text:s({id:"navbar_dropdown.join",defaultMessage:"Join Another Team"}),icon:this.props.mobile&&C.a.createElement("i",{className:"fa fa-plus-square"})}),C.a.createElement(ki.a.ItemToggleModalRedux,{id:"leaveTeam",show:!t&&this.props.experimentalPrimaryTeam!==this.props.teamName,modalId:P.u.LEAVE_TEAM,dialogType:Em,text:s({id:"navbar_dropdown.leave",defaultMessage:"Leave Team"}),icon:this.props.mobile&&C.a.createElement(gm,null)})),C.a.createElement(ki.a.Group,null,n),C.a.createElement(ki.a.Group,null,C.a.createElement(pm.a,{teamId:this.props.teamId,permissions:[L.Permissions.MANAGE_SLASH_COMMANDS,L.Permissions.MANAGE_OAUTH,L.Permissions.MANAGE_INCOMING_WEBHOOKS,L.Permissions.MANAGE_OUTGOING_WEBHOOKS]},C.a.createElement(ki.a.ItemLink,{id:"integrations",show:!this.props.mobile&&(this.props.enableIncomingWebhooks||this.props.enableOutgoingWebhooks||this.props.enableCommands||this.props.enableOAuthServiceProvider),to:"/"+this.props.teamName+"/integrations",text:s({id:"navbar_dropdown.integrations",defaultMessage:"Integrations"})})),C.a.createElement(pm.a,{teamId:this.props.teamId,permissions:[L.Permissions.MANAGE_SYSTEM]},C.a.createElement(ki.a.ItemToggleModalRedux,{id:"marketplaceModal",modalId:P.u.PLUGIN_MARKETPLACE,show:!this.props.mobile&&this.props.enablePluginMarketplace,dialogType:xu,text:s({id:"navbar_dropdown.marketplace",defaultMessage:"Plugin Marketplace"})})),C.a.createElement(ki.a.ItemLink,{id:"customEmojis",show:!this.props.mobile&&this.props.enableCustomEmoji&&this.props.canCreateOrDeleteCustomEmoji,to:"/"+this.props.teamName+"/emoji",text:s({id:"navbar_dropdown.emoji",defaultMessage:"Custom Emoji"})})),C.a.createElement(ki.a.Group,null,C.a.createElement(hm.a,{permissions:[L.Permissions.MANAGE_SYSTEM]},C.a.createElement(ki.a.ItemLink,{id:"systemConsole",show:!this.props.mobile,to:"/admin_console",text:s({id:"navbar_dropdown.console",defaultMessage:"System Console"}),icon:this.props.mobile&&C.a.createElement("i",{className:"fa fa-wrench"})}))),C.a.createElement(ki.a.Group,null,C.a.createElement(ki.a.ItemExternalLink,{id:"helpLink",show:Boolean(this.props.helpLink),url:this.props.helpLink,text:s({id:"navbar_dropdown.help",defaultMessage:"Help"}),icon:this.props.mobile&&C.a.createElement("i",{className:"fa fa-question"})}),C.a.createElement(ki.a.ItemAction,{id:"keyboardShortcuts",show:!this.props.mobile,onClick:this.toggleShortcutsModal,text:s({id:"navbar_dropdown.keyboardShortcuts",defaultMessage:"Keyboard Shortcuts"})}),C.a.createElement(ki.a.ItemExternalLink,{id:"reportLink",show:Boolean(this.props.reportAProblemLink),url:this.props.reportAProblemLink,text:s({id:"navbar_dropdown.report",defaultMessage:"Report a Problem"}),icon:this.props.mobile&&C.a.createElement("i",{className:"fa fa-phone"})}),C.a.createElement(ki.a.ItemExternalLink,{id:"nativeAppLink",show:this.props.appDownloadLink&&!M.o(),url:Object(Un.g)(this.props.appDownloadLink),text:s({id:"navbar_dropdown.nativeApps",defaultMessage:"Download Apps"}),icon:this.props.mobile&&C.a.createElement("i",{className:"fa fa-mobile"})}),C.a.createElement(ki.a.ItemToggleModalRedux,{id:"about",modalId:P.u.ABOUT,dialogType:ru.a,text:s({id:"navbar_dropdown.about",defaultMessage:"About {appTitle}"},{appTitle:this.props.siteName||"Mattermost"}),icon:this.props.mobile&&C.a.createElement("i",{className:"fa fa-info"})})),C.a.createElement(ki.a.Group,null,C.a.createElement(ki.a.ItemAction,{id:"logout",onClick:this.handleEmitUserLoggedOutEvent,text:s({id:"navbar_dropdown.logout",defaultMessage:"Log Out"}),icon:this.props.mobile&&C.a.createElement("i",{className:"fa fa-sign-out"})})))}}Ku(Qu,"propTypes",{mobile:v.a.bool.isRequired,id:v.a.string,teamId:v.a.string,teamType:v.a.string,teamName:v.a.string,siteName:v.a.string,currentUser:v.a.object,appDownloadLink:v.a.string,enableCommands:v.a.bool.isRequired,enableCustomEmoji:v.a.bool.isRequired,canCreateOrDeleteCustomEmoji:v.a.bool.isRequired,enableIncomingWebhooks:v.a.bool.isRequired,enableOAuthServiceProvider:v.a.bool.isRequired,enableOutgoingWebhooks:v.a.bool.isRequired,enableUserCreation:v.a.bool.isRequired,enableEmailInvitations:v.a.bool.isRequired,enablePluginMarketplace:v.a.bool.isRequired,experimentalPrimaryTeam:v.a.string,helpLink:v.a.string,reportAProblemLink:v.a.string,moreTeamsToJoin:v.a.bool.isRequired,pluginMenuItems:v.a.arrayOf(v.a.object),isMentionSearch:v.a.bool,teamIsGroupConstrained:v.a.bool.isRequired,isLicensedForLDAPGroups:v.a.bool,intl:Y.a.isRequired,actions:v.a.shape({openModal:v.a.func.isRequred,showMentions:v.a.func,showFlaggedPosts:v.a.func,closeRightHandSide:v.a.func.isRequired,closeRhsMenu:v.a.func.isRequired}).isRequired}),Ku(Qu,"defaultProps",{teamType:"",mobile:!1,pluginMenuItems:[]});var Ju=Object(W.c)(Qu);var Zu=Object(n.connect)((function(e){const t=Object(d.getConfig)(e),a=Object(u.getCurrentTeam)(e),n=Object(m.getCurrentUser)(e),s=t.AppDownloadLink,i="true"===t.EnableCommands,r="true"===t.EnableCustomEmoji,o=t.SiteName,l="true"===t.EnableIncomingWebhooks,c="true"===t.EnableOAuthServiceProvider,p="true"===t.EnableOutgoingWebhooks,h="true"===t.EnableUserCreation,g="true"===t.EnableEmailInvitations,b="true"===t.PluginsEnabled&&"true"===t.EnableMarketplace,f=t.ExperimentalPrimaryTeam,_=t.HelpLink,E=t.ReportAProblemLink;let v=Object(D.haveISystemPermission)(e,{permission:L.Permissions.CREATE_EMOJIS})||Object(D.haveISystemPermission)(e,{permission:L.Permissions.DELETE_EMOJIS});if(!v)for(const t of Object(u.getMyTeams)(e))if(Object(D.haveITeamPermission)(e,{team:t.id,permission:L.Permissions.CREATE_EMOJIS})||Object(D.haveITeamPermission)(e,{team:t.id,permission:L.Permissions.DELETE_EMOJIS})){v=!0;break}const y=Object(u.getJoinableTeamIds)(e),C=y&&y.length>0,w=Object(Cs.k)(e);return{appDownloadLink:s,enableCommands:i,enableCustomEmoji:r,enableIncomingWebhooks:l,enableOAuthServiceProvider:c,enableOutgoingWebhooks:p,enableUserCreation:h,enableEmailInvitations:g,enablePluginMarketplace:b,experimentalPrimaryTeam:f,helpLink:_,reportAProblemLink:E,pluginMenuItems:e.plugins.components.MainMenu,canCreateOrDeleteCustomEmoji:v,moreTeamsToJoin:C,siteName:o,teamId:a.id,teamName:a.name,teamType:a.type,currentUser:n,isMentionSearch:w===P.C.MENTION,teamIsGroupConstrained:Boolean(a.group_constrained),isLicensedForLDAPGroups:"true"===e.entities.general.license.LDAPGroups}}),(function(e){return{actions:Object(s.bindActionCreators)({openModal:x.b,showMentions:ys.m,showFlaggedPosts:ys.l,closeRightHandSide:ys.b,closeRhsMenu:ys.a},e)}}))(Ju);function Xu(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const $u=500;class ep extends C.a.PureComponent{constructor(...e){super(...e),Xu(this,"handleEmitUserLoggedOutEvent",()=>{S.e()})}render(){var e="";null!=this.props.siteName&&(e=this.props.siteName);var t=e;this.props.teamDisplayName&&(t=this.props.teamDisplayName);let a=null;return this.props.showTutorialTip&&(a=C.a.createElement(hd,{onBottom:!0}),this.props.actions.openRhsMenu()),C.a.createElement("div",{className:Os()("sidebar--menu",{"move--left":this.props.isOpen&&I.Y()}),id:"sidebar-menu"},C.a.createElement("div",{className:"team__header theme"},C.a.createElement(In.a,{className:"team__name",to:"/channels/".concat(P.j.DEFAULT_CHANNEL)},t)),C.a.createElement("div",{className:"nav-pills__container mobile-main-menu"},a,C.a.createElement(nd.a,{in:this.props.isOpen&&I.Y(),classNames:"MobileRightSidebarMenu",enter:!0,exit:!0,mountOnEnter:!0,unmountOnExit:!0,timeout:{enter:$u,exit:$u}},C.a.createElement(Zu,{mobile:!0}))))}}Xu(ep,"propTypes",{isOpen:v.a.bool.isRequired,teamDisplayName:v.a.string,showTutorialTip:v.a.bool.isRequired,siteName:v.a.string,actions:v.a.shape({openRhsMenu:v.a.func.isRequired})});var tp=Object(n.connect)((function(e){const t=Object(d.getConfig)(e),a=Object(u.getCurrentTeam)(e),n="true"===t.EnableTutorial,s=Object(c.getInt)(e,P.B.TUTORIAL_STEP,Object(m.getCurrentUserId)(e),P.K.FINISHED),i=t.SiteName;return{teamDisplayName:a&&a.display_name,isOpen:Object(Cs.b)(e),showTutorialTip:n&&Object(I.Y)()&&s===P.K.MENU_POPOVER,siteName:i}}),(function(e){return{actions:Object(s.bindActionCreators)({openRhsMenu:ys.d},e)}}))(ep);function ap(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const np=P.Q.ActionTypes;class sp extends C.a.Component{constructor(e){super(e),ap(this,"updateShow",(e,t)=>{this.setState({show:e,callback:t.callback})}),ap(this,"handleSubmit",e=>{e.preventDefault();const t=this.state.value;if(!this.isInputValid(t))return void this.setState({inputError:C.a.createElement(V.a,{id:"user.settings.import_theme.submitError",defaultMessage:"Invalid format, please try copying and pasting in again."})});const a=t.split(","),n={type:"custom"};n.sidebarBg=a[0],n.sidebarText=a[5],n.sidebarUnreadText=a[5],n.sidebarTextHoverBg=a[4],n.sidebarTextActiveBorder=a[2],n.sidebarTextActiveColor=a[3],n.sidebarHeaderBg=a[1],n.sidebarHeaderTextColor=a[5],n.onlineIndicator=a[6],n.mentionBg=a[7],Object(ie.setThemeDefaults)(n),this.state.callback(n),this.setState({show:!1,callback:null})}),ap(this,"handleChange",e=>{const t=e.target.value;this.setState({value:t}),this.isInputValid(t)?this.setState({inputError:null}):this.setState({inputError:C.a.createElement(V.a,{id:"user.settings.import_theme.submitError",defaultMessage:"Invalid format, please try copying and pasting in again."})})}),ap(this,"handleOnHide",()=>{this.setState({show:!1})}),this.state={value:"",inputError:"",show:!1,callback:null}}componentDidMount(){zn.addModalListener(np.TOGGLE_IMPORT_THEME_MODAL,this.updateShow)}componentWillUnmount(){zn.removeModalListener(np.TOGGLE_IMPORT_THEME_MODAL,this.updateShow)}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(8!==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 C.a.createElement("span",null,C.a.createElement(G.a,{dialogClassName:"a11y__modal",show:this.state.show,onHide:this.handleOnHide,role:"dialog","aria-labelledby":"importThemeModalLabel"},C.a.createElement(G.a.Header,{closeButton:!0},C.a.createElement(G.a.Title,{componentClass:"h1",id:"importThemeModalLabel"},C.a.createElement(V.a,{id:"user.settings.import_theme.importHeader",defaultMessage:"Import Slack Theme"}))),C.a.createElement("form",{role:"form",className:"form-horizontal"},C.a.createElement(G.a.Body,null,C.a.createElement("p",null,C.a.createElement(V.a,{id:"user.settings.import_theme.importBody",defaultMessage:'To import a theme, go to a Slack team and look for "Preferences -> Sidebar Theme". Open the custom theme option, copy the theme color values and paste them here:'})),C.a.createElement("div",{className:"form-group less"},C.a.createElement("div",{className:"col-sm-12"},C.a.createElement("input",{id:"themeVector",type:"text",className:"form-control",value:this.state.value,onChange:this.handleChange}),C.a.createElement("div",{className:"input__help"},this.state.inputError)))),C.a.createElement(G.a.Footer,null,C.a.createElement("button",{id:"cancelButton",type:"button",className:"btn btn-link",onClick:this.handleOnHide},C.a.createElement(V.a,{id:"user.settings.import_theme.cancel",defaultMessage:"Cancel"})),C.a.createElement("button",{id:"submitButton",onClick:this.handleSubmit,type:"submit",className:"btn btn-primary"},C.a.createElement(V.a,{id:"user.settings.import_theme.submit",defaultMessage:"Submit"}))))))}}var ip=a(1486);function rp(e){return e.views.lhs.isOpen}var op=a(1214),lp=(a(183),a(1935));function cp(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class dp extends C.a.Component{constructor(...e){super(...e),cp(this,"copy",()=>{let e=this.props.link;-1===e.indexOf("http://")&&-1===e.indexOf("https://")&&(e=this.props.siteURL+e),this.props.actions.copyToClipboard(e)})}render(){const e=C.a.createElement(lp.a,{id:"copy-url-context-menu"+this.props.menuId},C.a.createElement(lp.c,{onClick:this.copy},C.a.createElement(V.a,{id:"copy_url_context_menu.getChannelLink",defaultMessage:"Copy Link"}))),t=C.a.createElement(lp.b,{id:"copy-url-context-menu"+this.props.menuId,holdToDisplay:-1},this.props.children);return C.a.createElement("span",null,e,t)}}cp(dp,"propTypes",{children:v.a.element,link:v.a.string.isRequired,menuId:v.a.string.isRequired,siteURL:v.a.string.isRequired,actions:v.a.shape({copyToClipboard:v.a.func.isRequired})});var mp=Object(n.connect)((function(e){return{siteURL:Object(d.getConfig)(e).SiteURL}}),(function(){return{actions:{copyToClipboard:I.g}}}))(dp),up=a(1204);function pp(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class hp extends C.a.Component{constructor(...e){super(...e),pp(this,"handleSwitch",e=>{e.preventDefault(),Object(Ie.b)("TeamLink#click"),Object(Ie.d)("ui","ui_team_sidebar_switch_team"),this.props.switchTeam(this.props.url)}),pp(this,"handleDisabled",e=>{e.preventDefault()})}render(){const{teamIconUrl:e,displayName:t,btnClass:a,mentions:n,unread:s}=this.props,{formatMessage:i}=this.props.intl;let r=this.props.active?"active":"";const o=this.props.disabled?"team-disabled":"",l=this.props.active||this.props.disabled?this.handleDisabled:this.handleSwitch;let c,d=i({id:"team.button.ariaLabel",defaultMessage:"{teamName} team"},{teamName:t});r||(r=s?"unread":"",d=i({id:"team.button.unread.ariaLabel",defaultMessage:"{teamName} team unread"},{teamName:t}),n&&(d=i({id:"team.button.mentions.ariaLabel",defaultMessage:"{teamName} team, {mentionCount} mentions"},{teamName:t,mentionCount:n}),c=C.a.createElement("span",{className:"badge pull-right small"},n))),d=d.toLowerCase();const m=C.a.createElement(up.a,{withHover:!0,name:this.props.content||t,url:e}),u=this.props.tip||Object(I.gb)("team.button.name_undefined","Name undefined"),p=C.a.createElement(ui.a,{delayShow:P.Q.OVERLAY_TIME_DELAY,placement:this.props.placement,overlay:C.a.createElement(mi.a,{id:"tooltip-".concat(this.props.url)},u)},C.a.createElement("div",{className:"team-btn "+a},c,m));let h;return Object(M.d)()?(h=C.a.createElement("button",{className:"btn btn-link "+o,onClick:l},p),this.props.url.endsWith("create_team")||this.props.url.endsWith("select_team")||(h=C.a.createElement(mp,{link:this.props.url,menuId:this.props.url},h))):h=C.a.createElement(In.a,{id:"".concat(this.props.url.slice(1),"TeamButton"),"aria-label":d,className:o,to:this.props.url,onClick:l},p),C.a.createElement("div",{className:"team-container ".concat(r)},h)}}pp(hp,"propTypes",{btnClass:v.a.string,url:v.a.string.isRequired,displayName:v.a.string,content:v.a.node,tip:v.a.node.isRequired,active:v.a.bool,disabled:v.a.bool,unread:v.a.bool,mentions:v.a.number,placement:v.a.oneOf(["left","right","top","bottom"]),teamIconUrl:v.a.string,switchTeam:v.a.func.isRequired,intl:Y.a.isRequired}),pp(hp,"defaultProps",{btnClass:"",tip:"",placement:"right",active:!1,disabled:!1,unread:!1,mentions:0});var gp=Object(W.c)(hp);function bp(e){return C.a.createElement("div",Object.assign({},e,{className:"scrollbar--view"}))}function fp(e){return C.a.createElement("div",Object.assign({},e,{className:"scrollbar--horizontal"}))}function _p(e){return C.a.createElement("div",Object.assign({},e,{className:"scrollbar--vertical"}))}class Ep extends C.a.PureComponent{componentDidMount(){this.props.actions.getTeams(0,200)}render(){const e=document.querySelector("#root");if(this.props.myTeams.length<=1)return e.classList.remove("multi-teams"),null;e.classList.add("multi-teams");const t=[],a=Object(op.a)(this.props.myTeams,this.props.locale).map(e=>{const t=this.props.myTeamMembers[e.id];return C.a.createElement(gp,{key:"switch_team_"+e.name,url:"/".concat(e.name),tip:e.display_name,active:e.id===this.props.currentTeamId,displayName:e.display_name,unread:t.msg_count>0,mentions:t.mention_count,teamIconUrl:I.L(e),switchTeam:this.props.actions.switchTeam})});return this.props.moreTeamsToJoin&&!this.props.experimentalPrimaryTeam?a.push(C.a.createElement(gp,{btnClass:"team-btn__add",key:"more_teams",url:"/select_team",tip:C.a.createElement(V.a,{id:"team_sidebar.join",defaultMessage:"Other teams you can join."}),content:"+",switchTeam:this.props.actions.switchTeam})):a.push(C.a.createElement(hm.a,{permissions:[yr.a.CREATE_TEAM],key:"more_teams"},C.a.createElement(gp,{btnClass:"team-btn__add",url:"/create_team",tip:C.a.createElement(V.a,{id:"navbar_dropdown.create",defaultMessage:"Create a Team"}),content:"+",switchTeam:this.props.actions.switchTeam}))),t.push(C.a.createElement("div",{key:"team-sidebar-bottom-plugin",className:"team-sidebar-bottom-plugin is-empty"},C.a.createElement(A.a,{pluggableName:"BottomTeamSidebar"}))),C.a.createElement("div",{className:Os()("team-sidebar",{"move--right":this.props.isOpen})},C.a.createElement("div",{className:"team-wrapper",id:"teamSidebarWrapper"},C.a.createElement(Ls.a,{autoHide:!0,autoHideTimeout:500,autoHideDuration:500,renderThumbHorizontal:fp,renderThumbVertical:_p,renderView:bp,onScroll:this.handleScroll},a)),t)}}!function(e,t,a){t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a}(Ep,"propTypes",{myTeams:v.a.array.isRequired,currentTeamId:v.a.string.isRequired,moreTeamsToJoin:v.a.bool.isRequired,myTeamMembers:v.a.object.isRequired,isOpen:v.a.bool.isRequired,experimentalPrimaryTeam:v.a.string,locale:v.a.string.isRequired,actions:v.a.shape({getTeams:v.a.func.isRequired,switchTeam:v.a.func.isRequired}).isRequired});var vp=Object(i.g)(Object(n.connect)((function(e){const t=Object(d.getConfig)(e).ExperimentalPrimaryTeam,a=Object(u.getJoinableTeamIds)(e),n=a&&a.length>0;return{currentTeamId:Object(u.getCurrentTeamId)(e),myTeams:Object(u.getMyTeams)(e),myTeamMembers:Object(u.getTeamMemberships)(e),isOpen:rp(e),experimentalPrimaryTeam:t,locale:Object(qs.a)(e),moreTeamsToJoin:n}}),(function(e){return{actions:Object(s.bindActionCreators)({getTeams:l.getTeams,switchTeam:b.e},e)}}))(Ep)),yp=a(1209),Cp=a(1708),wp=a(1709),Op=a.n(wp),Tp=a(1710),Sp=a.n(Tp),Pp=a(1711),Mp=a.n(Pp),Ip=a(1712),Np=a.n(Ip),jp=a(1713),Ap=a.n(jp),Rp=a(1714),kp=a.n(Rp);function Lp(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const Dp=500;class xp extends C.a.Component{static getDerivedStateFromProps(e,t){return{isSearch:e.isSearch,page:e.isSearch&&!t.isSearch?0:t.page}}constructor(e){super(e),Lp(this,"createChannelRow",e=>{const t="".concat(e.display_name,", ").concat(e.purpose).toLowerCase();let a;const{shouldShowArchivedChannels:n}=this.props;return n&&(a=C.a.createElement("div",{className:"more-modal__icon-container"},C.a.createElement(kc.a,{className:"icon icon__archive"}))),C.a.createElement("div",{className:"more-modal__row",key:e.id,id:"ChannelRow-".concat(e.name)},C.a.createElement("div",{className:"more-modal__details"},C.a.createElement("button",{onClick:this.handleJoin.bind(this,e),"aria-label":t,className:"style--none more-modal__name"},a,e.display_name),C.a.createElement("p",{className:"more-modal__description"},e.purpose)),C.a.createElement("div",{className:"more-modal__actions"},C.a.createElement("button",{onClick:this.handleJoin.bind(this,e),className:"btn btn-primary",disabled:this.state.joiningChannel},C.a.createElement(Gc.a,{loading:this.state.joiningChannel===e.id,text:Object(I.gb)("more_channels.joining","Joining...")},C.a.createElement(V.a,{id:n?"more_channels.view":"more_channels.join",defaultMessage:n?"View":"Join"})))))}),Lp(this,"nextPage",e=>{e.preventDefault(),this.setState({page:this.state.page+1,nextDisabled:!0}),this.nextTimeoutId=setTimeout(()=>this.setState({nextDisabled:!1}),Dp),this.props.nextPage(this.state.page+1),Rs()(Ai.a.findDOMNode(this.refs.channelListScroll)).scrollTop(0)}),Lp(this,"previousPage",e=>{e.preventDefault(),this.setState({page:this.state.page-1}),Rs()(Ai.a.findDOMNode(this.refs.channelListScroll)).scrollTop(0)}),Lp(this,"doSearch",()=>{const e=this.refs.filter.value;this.props.search(e),""===e&&this.setState({page:0})}),Lp(this,"toggleArchivedChannelsOn",()=>{this.props.toggleArchivedChannels(!0)}),Lp(this,"toggleArchivedChannelsOff",()=>{this.props.toggleArchivedChannels(!1)}),this.nextTimeoutId=0,this.state={joiningChannel:"",page:0,nextDisabled:!1}}componentDidMount(){!M.n()&&this.refs.filter&&this.refs.filter.focus()}handleJoin(e){this.setState({joiningChannel:e.id}),this.props.handleJoin(e,()=>{this.setState({joiningChannel:""})})}render(){const e=this.props.channels;let t,a,n;if(this.props.loading&&0===e.length)t=C.a.createElement(Eu.a,{style:{marginTop:"50%"}});else if(0===e.length)t=C.a.createElement("div",{className:"no-channel-message"},C.a.createElement("p",{className:"primary-message"},C.a.createElement(V.a,{id:"more_channels.noMore",defaultMessage:"No more channels to join"})),this.props.noResultsText);else{const e=this.state.page*this.props.channelsPerPage,s=e+this.props.channelsPerPage,i=this.props.channels.slice(e,s);t=i.map(this.createChannelRow),i.length>=this.props.channelsPerPage&&s<this.props.channels.length&&(a=C.a.createElement("button",{className:"btn btn-link filter-control filter-control__next",onClick:this.nextPage,disabled:this.state.nextDisabled},C.a.createElement(V.a,{id:"more_channels.next",defaultMessage:"Next"}))),this.state.page>0&&(n=C.a.createElement("button",{className:"btn btn-link filter-control filter-control__prev",onClick:this.previousPage},C.a.createElement(V.a,{id:"more_channels.prev",defaultMessage:"Previous"})))}let s,i=C.a.createElement("div",{className:"filter-row filter-row--full"},C.a.createElement("div",{className:"col-sm-12"},C.a.createElement(fu.a,{id:"searchChannelsTextbox",ref:"filter",className:"form-control filter-textbox",placeholder:{id:Object(de.b)("filtered_channels_list.search"),defaultMessage:"Search channels"},inputComponent:ce.a,onInput:this.doSearch})));return this.props.createChannelButton&&(i=C.a.createElement("div",{className:"channel_search"},C.a.createElement("div",{className:"search_input"},C.a.createElement(fu.a,{id:"searchChannelsTextbox",ref:"filter",className:"form-control filter-textbox",placeholder:{id:Object(de.b)("filtered_channels_list.search"),defaultMessage:"Search channels"},inputComponent:ce.a,onInput:this.doSearch})),C.a.createElement("div",{className:"create_button"},this.props.createChannelButton))),this.props.canShowArchivedChannels&&(s=C.a.createElement("div",{className:"more-modal__dropdown"},C.a.createElement(Ri.a,{id:"channelsMoreDropdown"},C.a.createElement("a",null,C.a.createElement("span",null,this.props.shouldShowArchivedChannels?Object(I.gb)("more_channels.show_archived_channels","Show: Archived Channels"):Object(I.gb)("more_channels.show_public_channels","Show: Public Channels")),C.a.createElement("span",{className:"caret"})),C.a.createElement(ki.a,{openLeft:!1,ariaLabel:Object(I.gb)("team_members_dropdown.menuAriaLabel","Team member role change")},C.a.createElement(ki.a.ItemAction,{id:"channelsMoreDropdownPublic",onClick:this.toggleArchivedChannelsOff,text:Object(I.gb)("suggestion.search.public","Public Channels")}),C.a.createElement(ki.a.ItemAction,{id:"channelsMoreDropdownArchived",onClick:this.toggleArchivedChannelsOn,text:Object(I.gb)("suggestion.archive","Archived Channels")}))))),C.a.createElement("div",{className:"filtered-user-list"},i,s,C.a.createElement("div",{role:"application",ref:"channelList",className:"more-modal__list"},C.a.createElement("div",{id:"moreChannelsList",ref:"channelListScroll"},t)),C.a.createElement("div",{className:"filter-controls"},n,a))}}function Up(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}xp.defaultProps={channels:[],isSearch:!1},xp.propTypes={channels:v.a.arrayOf(v.a.object),channelsPerPage:v.a.number,nextPage:v.a.func.isRequired,isSearch:v.a.bool,search:v.a.func.isRequired,handleJoin:v.a.func.isRequired,noResultsText:v.a.object,loading:v.a.bool,createChannelButton:v.a.element,toggleArchivedChannels:v.a.func.isRequired,shouldShowArchivedChannels:v.a.bool.isRequired,canShowArchivedChannels:v.a.bool.isRequired};const qp=50,Hp=50,Fp=100;class Bp extends C.a.Component{constructor(e){super(e),Up(this,"handleHide",()=>{this.setState({show:!1}),this.props.bodyOnly&&this.handleExit()}),Up(this,"handleExit",()=>{this.props.onModalDismissed&&this.props.onModalDismissed()}),Up(this,"onChange",e=>{this.state.search&&!e||this.setState({searchedChannels:[],serverError:null})}),Up(this,"nextPage",e=>{this.props.actions.getChannels(this.props.teamId,e+1,Hp)}),Up(this,"handleJoin",(e,t)=>{const{actions:a,currentUserId:n,teamId:s,teamName:i}=this.props;a.joinChannel(n,s,e.id).then(a=>{a.error?this.setState({serverError:a.error.message}):(K.a.push(Object(Un.b)(i,e.name)),this.handleHide()),t&&t()})}),Up(this,"search",e=>{if(clearTimeout(this.searchTimeoutId),""===e)return this.onChange(!0),this.setState({search:!1,searchedChannels:[],searching:!1,searchTerm:e}),void(this.searchTimeoutId="");this.setState({search:!0,searching:!0,searchTerm:e});const t=setTimeout(()=>{this.props.actions.searchMoreChannels(e,this.state.shouldShowArchivedChannels).then(e=>{t===this.searchTimeoutId&&(e.data?this.setSearchResults(e.data):this.setState({searchedChannels:[],searching:!1}))}).catch(()=>{this.setState({searchedChannels:[],searching:!1})})},Fp);this.searchTimeoutId=t}),Up(this,"setSearchResults",e=>{this.setState({searchedChannels:this.state.shouldShowArchivedChannels?e.filter(e=>0!==e.delete_at):e.filter(e=>0===e.delete_at),searching:!1})}),Up(this,"toggleArchivedChannels",e=>{this.search(this.state.searchTerm),this.setState({shouldShowArchivedChannels:e})}),this.searchTimeoutId=0,this.state={show:!0,shouldShowArchivedChannels:"private"===this.props.morePublicChannelsModalType,search:!1,searchedChannels:[],serverError:null,searching:!1,searchTerm:""}}componentDidMount(){this.props.actions.getChannels(this.props.teamId,0,2*qp),this.props.canShowArchivedChannels&&this.props.actions.getArchivedChannels(this.props.teamId,0,2*qp)}render(){const{channels:e,archivedChannels:t,teamId:a,channelsRequestStarted:n,bodyOnly:s}=this.props,{search:i,searchedChannels:r,serverError:o,show:l,searching:c,shouldShowArchivedChannels:d}=this.state;let m,u;m=d?i?r:t:i?r:e,o&&(u=C.a.createElement("div",{className:"form-group has-error"},C.a.createElement("label",{className:"control-label"},o)));const p=C.a.createElement(pm.a,{teamId:a,permissions:[yr.a.CREATE_PUBLIC_CHANNEL]},C.a.createElement("button",{id:"createNewChannel",type:"button",className:"btn btn-primary channel-create-btn",onClick:this.props.handleNewChannel},C.a.createElement(V.a,{id:"more_channels.create",defaultMessage:"Create Channel"}))),h=C.a.createElement(pm.a,{teamId:a,permissions:[yr.a.CREATE_PUBLIC_CHANNEL,yr.a.CREATE_PRIVATE_CHANNEL]},C.a.createElement("p",{className:"secondary-message"},C.a.createElement(V.a,{id:"more_channels.createClick",defaultMessage:"Click 'Create New Channel' to make a new one"}))),g=C.a.createElement(C.a.Fragment,null,C.a.createElement(xp,{channels:m,channelsPerPage:Hp,nextPage:this.nextPage,isSearch:i,search:this.search,handleJoin:this.handleJoin,noResultsText:h,loading:i?c:n,createChannelButton:s&&p,toggleArchivedChannels:this.toggleArchivedChannels,shouldShowArchivedChannels:this.state.shouldShowArchivedChannels,canShowArchivedChannels:this.props.canShowArchivedChannels}),u);return s?g:C.a.createElement(G.a,{dialogClassName:"a11y__modal more-modal more-modal--action",show:l,onHide:this.handleHide,onExited:this.handleExit,role:"dialog",id:"moreChannelsModal","aria-labelledby":"moreChannelsModalLabel"},C.a.createElement(G.a.Header,{id:"moreChannelsModalHeader",closeButton:!0},C.a.createElement(G.a.Title,{componentClass:"h1",id:"moreChannelsModalLabel"},C.a.createElement(V.a,{id:"more_channels.title",defaultMessage:"More Channels"})),p),C.a.createElement(G.a.Body,null,g))}}Up(Bp,"propTypes",{channels:v.a.array.isRequired,archivedChannels:v.a.array.isRequired,currentUserId:v.a.string.isRequired,teamId:v.a.string.isRequired,teamName:v.a.string.isRequired,onModalDismissed:v.a.func,handleNewChannel:v.a.func,channelsRequestStarted:v.a.bool,bodyOnly:v.a.bool,canShowArchivedChannels:v.a.bool,morePublicChannelsModalType:v.a.string,actions:v.a.shape({getChannels:v.a.func.isRequired,getArchivedChannels:v.a.func.isRequired,joinChannel:v.a.func.isRequired,searchMoreChannels:v.a.func.isRequired}).isRequired});const Gp=Object(Hs.createSelector)(p.getOtherChannels,e=>e&&e.filter(e=>0===e.delete_at)),Vp=Object(Hs.createSelector)(p.getChannelsInCurrentTeam,e=>e&&e.filter(e=>0!==e.delete_at));var Wp=Object(n.connect)((function(e){const t=Object(u.getCurrentTeam)(e)||{};return{channels:Gp(e)||[],archivedChannels:Vp(e)||[],currentUserId:Object(m.getCurrentUserId)(e),teamId:t.id,teamName:t.name,channelsRequestStarted:e.requests.channels.getChannels.status===L.RequestStatus.STARTED,canShowArchivedChannels:"true"===Object(d.getConfig)(e).ExperimentalViewArchivedChannels}}),(function(e){return{actions:Object(s.bindActionCreators)({getChannels:o.getChannels,getArchivedChannels:o.getArchivedChannels,joinChannel:o.joinChannel,searchMoreChannels:_a.g},e)}}))(Bp),zp=a(1208),Yp=a(1224);function Kp(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class Qp extends C.a.Component{constructor(...e){super(...e),Kp(this,"addValue",()=>{this.props.onAdd(this.props.channel.profiles)})}getStyle(){let e="mentions__name";return this.props.isSelected&&(e+=" suggestion--selected"),e}displayName(){return this.props.channel.profiles.map(e=>"@"+e.username).join(", ")}render(){return C.a.createElement("div",{key:this.props.channel.id,className:"more-modal__row clickable "+this.getStyle(),onClick:this.addValue},C.a.createElement("div",{className:"more-modal__gm-icon bg-text-200"},this.props.channel.profiles.length),C.a.createElement("div",{className:"more-modal__details"},C.a.createElement("div",{className:"more-modal__name"},this.displayName())),C.a.createElement("div",{className:"more-modal__actions"},C.a.createElement("div",{className:"more-modal__actions--round"},C.a.createElement(Yp.a,null))))}}function Jp(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function Zp(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?Jp(a,!0).forEach((function(t){Xp(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):Jp(a).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function Xp(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}Kp(Qp,"propTypes",{channel:v.a.object.isRequired,isSelected:v.a.bool.isRequired,onAdd:v.a.func.isRequired});const $p=50,eh=P.Q.MAX_USERS_IN_GM-1;class th extends C.a.Component{constructor(e){super(e),Xp(this,"loadProfilesMissingStatus",(e=[],t={})=>{const a=e.filter(e=>!t[e.id]).map(e=>e.id);a.length>0&&this.props.actions.getStatusesByIds(a)}),Xp(this,"handleHide",()=>{this.props.actions.setModalSearchTerm(""),this.setState({show:!1}),this.props.bodyOnly&&this.handleExit()}),Xp(this,"setUsersLoadingState",e=>{this.setState({loadingUsers:e})}),Xp(this,"handleExit",()=>{this.exitToChannel&&K.a.push(this.exitToChannel),this.props.onModalDismissed&&this.props.onModalDismissed(),this.props.onHide&&this.props.onHide()}),Xp(this,"handleSubmit",(e=this.state.values)=>{const{actions:t}=this.props;if(this.state.saving)return;const a=e.map(e=>e.id);if(0===a.length)return;this.setState({saving:!0});const n=e=>{const{data:t,error:a}=e;this.setState({saving:!1}),a||(this.exitToChannel="/"+this.props.currentTeamName+"/channels/"+t.name,this.handleHide())};1===a.length?t.openDirectChannelToUserId(a[0]).then(n):t.openGroupChannelToUserIds(a).then(n)}),Xp(this,"addValue",e=>{if(Array.isArray(e))this.addUsers(e);else if("profiles"in e)this.addUsers(e.profiles);else{const t=Object.assign([],this.state.values);-1===t.indexOf(e)&&t.push(e),this.setState({values:t})}}),Xp(this,"addUsers",e=>{const t=Object.assign([],this.state.values),a=t.map(e=>e.id);for(const n of e)-1===a.indexOf(n.id)&&t.push(n);this.setState({values:t})}),Xp(this,"getUserProfiles",e=>{const t=e?e+1:0;"any"===this.props.restrictDirectMessage?this.props.actions.getProfiles(t,2*$p).then(()=>{this.setUsersLoadingState(!1)}):this.props.actions.getProfilesInTeam(this.props.currentTeamId,t,2*$p).then(()=>{this.setUsersLoadingState(!1)})}),Xp(this,"handlePageChange",(e,t)=>{e>t&&(this.setUsersLoadingState(!0),this.getUserProfiles(e))}),Xp(this,"resetPaging",()=>{this.refs.multiselect&&this.refs.multiselect.resetPaging()}),Xp(this,"search",e=>{this.props.actions.setModalSearchTerm(e)}),Xp(this,"handleDelete",e=>{this.setState({values:e})}),Xp(this,"renderAriaLabel",e=>e?e.username:null),Xp(this,"renderOption",(e,t,a,n)=>{if(e.type&&"G"===e.type)return C.a.createElement(Qp,{key:e.id,channel:e,isSelected:t,onAdd:a});const s=Object(I.k)(e);let i=s;e.id===this.props.currentUserId?i=C.a.createElement(V.a,{id:"more_direct_channels.directchannel.you",defaultMessage:"{displayname} (you)",values:{displayname:s}}):e.delete_at&&(i=C.a.createElement(V.a,{id:"more_direct_channels.directchannel.deactivated",defaultMessage:"{displayname} - Deactivated",values:{displayname:s}}));var r="";t&&(r="more-modal__row--selected");const o=e.delete_at||e.is_bot?null:this.props.statuses[e.id],l=e.is_bot?null:e.email;return C.a.createElement("div",{key:e.id,ref:t?"selected":e.id,className:"more-modal__row clickable "+r,onClick:()=>a(e),onMouseMove:()=>n(e)},C.a.createElement(zr.a,{src:bn.Client4.getProfilePictureUrl(e.id,e.last_picture_update),status:o,size:"md"}),C.a.createElement("div",{className:"more-modal__details"},C.a.createElement("div",{className:"more-modal__name"},i,C.a.createElement(tn.a,{show:Boolean(e.is_bot),className:"badge-popoverlist"}),C.a.createElement(an.a,{show:Object(I.V)(e),className:"badge-popoverlist"})),C.a.createElement("div",{className:"more-modal__description"},l)),C.a.createElement("div",{className:"more-modal__actions"},C.a.createElement("div",{className:"more-modal__actions--round"},C.a.createElement(Yp.a,null))))}),Xp(this,"handleSubmitImmediatelyOn",e=>e.id===this.props.currentUserId||Boolean(e.delete_at)),this.searchTimeoutId=0;const t=[];if(e.currentChannelMembers)for(let a=0;a<e.currentChannelMembers.length;a++){const n=Object.assign({},e.currentChannelMembers[a]);n.id!==e.currentUserId&&t.push(n)}this.state={values:t,show:!0,search:!1,saving:!1,loadingUsers:!0}}componentDidMount(){this.getUserProfiles(),this.props.actions.getTotalUsersStats(),this.loadProfilesMissingStatus(this.props.users,this.props.statuses)}updateFromProps(e){if(e.searchTerm!==this.props.searchTerm){clearTimeout(this.searchTimeoutId);const e=this.props.searchTerm;if(""===e)this.resetPaging();else{const t="any"===this.props.restrictDirectMessage?"":this.props.currentTeamId;this.searchTimeoutId=setTimeout(async()=>{this.setUsersLoadingState(!0);const[{data:a},{data:n}]=await Promise.all([this.props.actions.searchProfiles(e,{team_id:t}),this.props.actions.searchGroupChannels(e)]);a&&this.props.actions.loadStatusesForProfilesList(a),n&&this.props.actions.loadProfilesForGroupChannels(n),this.resetPaging(),this.setUsersLoadingState(!1)},P.Q.SEARCH_TIMEOUT_MILLISECONDS)}}e.users.length===this.props.users.length&&Object.keys(e.statuses).length===Object.keys(this.props.statuses).length||this.loadProfilesMissingStatus(this.props.users,this.props.statuses)}componentDidUpdate(e){this.updateFromProps(e)}renderValue(e){return e.data.username}render(){let e;this.props.currentChannelMembers&&(this.state.values&&this.state.values.length>=eh?e=C.a.createElement(V.a,{id:"more_direct_channels.new_convo_note.full",defaultMessage:"You've reached the maximum number of people for this conversation. Consider creating a private channel instead."}):this.props.isExistingChannel&&(e=C.a.createElement(V.a,{id:"more_direct_channels.new_convo_note",defaultMessage:"This will start a new conversation. If you're adding a lot of people, consider creating a private channel instead."})));const t=Object(I.gb)("multiselect.go","Go"),a=Object(I.gb)("multiselect.loading","Loading.."),n=C.a.createElement(V.a,{id:"multiselect.numPeopleRemaining",defaultMessage:"Use ↑↓ to browse, ↵ to select. You can add {num, number} more {num, plural, one {person} other {people}}. ",values:{num:eh-this.state.values.length}});let s=this.props.users||[];if(this.state.values.length)s=s.filter(e=>0===e.delete_at&&e.id!==this.props.currentUserId);else{const e=[],t=[];for(const a of s)(a.delete_at?t:e).push(a);s=e.concat(t)}s=s.map(e=>Zp({label:e.username,value:e.id},e));let i=this.props.groupChannels||[];i=i.map(e=>Zp({label:e.display_name,value:e.id},e));const r=[...s,...i],o=C.a.createElement(zp.a,{key:"moreDirectChannelsList",ref:"multiselect",options:r,optionRenderer:this.renderOption,values:this.state.values,valueRenderer:this.renderValue,ariaLabelRenderer:this.renderAriaLabel,perPage:$p,handlePageChange:this.handlePageChange,handleInput:this.search,handleDelete:this.handleDelete,handleAdd:this.addValue,handleSubmit:this.handleSubmit,noteText:e,maxValues:eh,numRemainingText:n,buttonSubmitText:t,buttonSubmitLoadingText:a,submitImmediatelyOn:this.handleSubmitImmediatelyOn,saving:this.state.saving,loading:this.state.loadingUsers,users:this.props.users,totalCount:this.props.totalCount,placeholderText:Object(I.gb)("multiselect.placeholder","Search and add members")});return this.props.bodyOnly?o:C.a.createElement(G.a,{dialogClassName:"a11y__modal more-modal more-direct-channels",show:this.state.show,onHide:this.handleHide,onExited:this.handleExit,role:"dialog","aria-labelledby":"moreDmModalLabel",id:"moreDmModal"},C.a.createElement(G.a.Header,{closeButton:!0},C.a.createElement(G.a.Title,{componentClass:"h1",id:"moreDmModalLabel"},C.a.createElement(V.a,{id:"more_direct_channels.title",defaultMessage:"Direct Messages"}))),C.a.createElement(G.a.Body,{role:"application"},o),C.a.createElement(G.a.Footer,{className:"modal-footer--invisible"},C.a.createElement("button",{id:"closeModalButton",type:"button",className:"btn btn-link"},C.a.createElement(V.a,{id:"general_button.close",defaultMessage:"Close"}))))}}Xp(th,"propTypes",{currentUserId:v.a.string.isRequired,currentTeamId:v.a.string.isRequired,currentTeamName:v.a.string.isRequired,searchTerm:v.a.string.isRequired,users:v.a.arrayOf(v.a.object).isRequired,groupChannels:v.a.arrayOf(v.a.object).isRequired,statuses:v.a.object.isRequired,totalCount:v.a.number,currentChannelMembers:v.a.arrayOf(v.a.object),isExistingChannel:v.a.bool.isRequired,restrictDirectMessage:v.a.string,onModalDismissed:v.a.func,onHide:v.a.func,bodyOnly:v.a.bool,actions:v.a.shape({getProfiles:v.a.func.isRequired,getProfilesInTeam:v.a.func.isRequired,getStatusesByIds:v.a.func.isRequired,getTotalUsersStats:v.a.func.isRequired,loadStatusesForProfilesList:v.a.func.isRequired,loadProfilesForGroupChannels:v.a.func.isRequired,openDirectChannelToUserId:v.a.func.isRequired,openGroupChannelToUserIds:v.a.func.isRequired,searchProfiles:v.a.func.isRequired,searchGroupChannels:v.a.func.isRequired,setModalSearchTerm:v.a.func.isRequired}).isRequired});const ah=Object(Nd.memoizeResult)((e,t)=>e.filter(e=>{return Object($a.filterProfilesMatchingTerm)(e.profiles,t).length>0}));var nh=Object(n.connect)((function(e,t){const a=Object(m.getCurrentUserId)(e);let n=[];t.isExistingChannel&&(n=Object(m.getProfilesInCurrentChannel)(e));const s=Object(d.getConfig)(e).RestrictDirectMessage,i=e.views.search.modalSearch;let r;r=i?"any"===s?Object(m.searchProfiles)(e,i,!1):Object(m.searchProfilesInCurrentTeam)(e,i,!1):"any"===s?Object(m.getProfiles)(e):Object(m.getProfilesInCurrentTeam)(e);const o=ah(Object(p.getChannelsWithUserProfiles)(e),i),l=Object(u.getCurrentTeam)(e),c=Object(m.getTotalUsersStats)(e)||{total_users_count:0};return{currentTeamId:l.id,currentTeamName:l.name,searchTerm:i,users:r.sort($a.sortByUsername),groupChannels:o,statuses:e.entities.users.statuses,currentChannelMembers:n,currentUserId:a,restrictDirectMessage:s,totalCount:c.total_users_count}}),(function(e){return{actions:Object(s.bindActionCreators)({getProfiles:r.getProfiles,getProfilesInTeam:r.getProfilesInTeam,getStatusesByIds:r.getStatusesByIds,getTotalUsersStats:r.getTotalUsersStats,loadStatusesForProfilesList:g.b,loadProfilesForGroupChannels:cs.i,openDirectChannelToUserId:_a.e,openGroupChannelToUserIds:_a.f,searchProfiles:r.searchProfiles,searchGroupChannels:o.searchGroupChannels,setModalSearchTerm:vm.a},e)}}))(th);class sh extends C.a.PureComponent{render(){return C.a.createElement("span",Object.assign({},this.props,{id:"draftIcon"}),C.a.createElement(V.a,{id:"generic_icons.channel.draft",defaultMessage:"Channel Draft Icon"},e=>C.a.createElement("svg",{width:"14px",height:"14px",viewBox:"0 0 50 51",role:"img","aria-label":e},C.a.createElement("g",{stroke:"none",strokeWidth:"1",fillRule:"evenodd"},C.a.createElement("path",{d:"M11.980198,46.7136356 L14.9834983,43.7103353 L7.22772277,35.9545597 L4.22442244,38.95786 L4.22442244,42.4892132 L8.44884488,42.4892132 L8.44884488,46.7136356 L11.980198,46.7136356 Z M29.2409241,16.0865729 C29.2409241,15.6025221 28.9989023,15.3605003 28.5148515,15.3605003 C28.2948284,15.3605003 28.1078116,15.4375072 27.9537954,15.5915234 L10.0660066,33.4793122 C9.91199043,33.6333283 9.8349835,33.8203452 9.8349835,34.0403683 C9.8349835,34.5244191 10.0770053,34.7664409 10.5610561,34.7664409 C10.7810792,34.7664409 10.968096,34.6894339 11.1221122,34.5354178 L29.009901,16.647629 C29.1639172,16.4936128 29.2409241,16.306596 29.2409241,16.0865729 Z M27.4587459,9.74993922 L41.1881188,23.4793122 L13.7293729,50.938058 L0,50.938058 L0,37.2086851 L27.4587459,9.74993922 Z M50,12.9182561 C50,14.0843785 49.5929634,15.0744676 48.7788779,15.8885531 L43.30033,21.3671009 L29.5709571,7.637728 L35.049505,2.19218345 C35.8415881,1.35609566 36.8316772,0.938058036 38.019802,0.938058036 C39.1859244,0.938058036 40.1870145,1.35609566 41.0231023,2.19218345 L48.7788779,9.91495573 C49.5929634,10.7730458 50,11.7741359 50,12.9182561 Z"})))))}}function ih(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function rh(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const oh=pn.a.getState;class lh extends sn.a{static get propTypes(){return function(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?ih(a,!0).forEach((function(t){rh(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):ih(a).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}({},super.propTypes,{channelMember:v.a.object,hasDraft:v.a.bool})}render(){const{item:e,isSelection:t}=this.props,a=e.channel,n=a.delete_at&&0!==a.delete_at,s=this.props.channelMember;let i=null;s&&s.notify_props&&s.mention_count>0&&(i=C.a.createElement("span",{className:"badge"},s.mention_count));let r="mentions__name";t&&(r+=" suggestion--selected");const o=a.display_name;let l=null;l=n?C.a.createElement(kc.a,{className:"icon icon__archive"}):this.props.hasDraft?C.a.createElement(sh,{className:"icon icon__draft icon--body"}):a.type===P.j.OPEN_CHANNEL?C.a.createElement(Yd.a,{className:"icon icon__globe icon--body"}):a.type===P.j.PRIVATE_CHANNEL?C.a.createElement(Kd.a,{className:"icon icon__lock icon--body"}):a.type===P.j.GM_CHANNEL?C.a.createElement("div",{className:"status status--group"},"G"):C.a.createElement("div",{className:"pull-left"},C.a.createElement(nn.a,{size:"xs",url:I.M(a.userId)}));let c=null;if(a.type===P.j.DM_CHANNEL){var d=I.t(a.id);I.R(d)&&(d=Object(m.getUser)(oh(),a.userId)),c=C.a.createElement(C.a.Fragment,null,C.a.createElement(tn.a,{show:Boolean(d&&d.is_bot),className:"badge-autocomplete"}),C.a.createElement(an.a,{show:Boolean(d&&I.V(d)),className:"badge-autocomplete"}))}return C.a.createElement("div",Object.assign({onClick:this.handleClick,onMouseMove:this.handleMouseMove,className:r,ref:e=>{this.node=e},id:"switchChannel_".concat(a.name),"data-testid":a.name},sn.a.baseProps),l,C.a.createElement("span",null,o),c,i)}}const ch=Object(n.connect)((function(e,t){const a=t.item&&t.item.channel?t.item.channel.id:"",n=!!a&&Object(Cs.i)(e,P.I.DRAFT,a);return{channelMember:Object(p.getMyChannelMemberships)(e)[a],hasDraft:n&&Boolean(n.message.trim()||n.fileInfos.length||n.uploadsInProgress.length)}}))(lh);let dh="";function mh(e,t){const a=!!e.channel.delete_at&&0!==e.channel.delete_at,n=!!t.channel.delete_at&&0!==t.channel.delete_at;if(a&&!n)return 1;if(!a&&n)return-1;if(e.type===P.j.MENTION_CHANNELS&&t.type===P.j.MENTION_MORE_CHANNELS)return-1;if(t.type===P.j.MENTION_CHANNELS&&e.type===P.j.MENTION_MORE_CHANNELS)return 1;if(e.deactivated&&!t.deactivated)return 1;if(t.deactivated&&!e.deactivated)return-1;const s=e.channel,i=t.channel;let r=s.display_name.toLowerCase(),o=i.display_name.toLowerCase();s.type===P.j.DM_CHANNEL&&(r=r.substring(1)),i.type===P.j.DM_CHANNEL&&(o=o.substring(1));const l=r.startsWith(dh),c=o.startsWith(dh);return l&&c||!l&&!c?Object(un.sortChannelsByTypeAndDisplayName)("en",s,i):l?-1:1}class uh extends en.a{handlePretextChanged(e,t){if(e){dh=e,this.startNewRequest(e);const a=Object(p.getChannelsInCurrentTeam)(oh()).concat(Object(p.getDirectAndGroupChannels)(oh())),n=Object.assign([],Object(m.searchProfiles)(oh(),e,!1));this.formatChannelsAndDispatch(e,t,a,n,!0),this.fetchUsersAndChannels(e,t)}else this.formatUnreadChannelsAndDispatch(t);return!0}async fetchUsersAndChannels(e,t){const a=oh(),n=Object(u.getCurrentTeamId)(a);if(!n)return;let s;s="team"===Object(d.getConfig)(a).RestrictDirectMessage?bn.Client4.autocompleteUsers(e,n,""):bn.Client4.autocompleteUsers(e,"","");const i=o.searchChannels(n,e)(pn.a.dispatch,pn.a.getState);let r=[],l=[];try{r=await s;const{data:e}=await i;l=e}catch(e){pn.a.dispatch(Object(q.logError)(e))}if(this.shouldCancelDispatch(e))return;const c=Object.assign([],Object(m.searchProfiles)(a,e,!1)).concat(r.users),h=Object(m.getCurrentUserId)(a);pn.a.dispatch({type:Gs.UserTypes.RECEIVED_PROFILES_LIST,data:c.filter(e=>e.id!==h)});const g=Object(p.getChannelsInCurrentTeam)(a).concat(Object(p.getDirectAndGroupChannels)(a)).concat(l);this.formatChannelsAndDispatch(e,t,g,c)}userWrappedChannel(e,t){let a="@".concat(e.username);return(e.first_name||e.last_name)&&e.nickname?a+=" - ".concat(I.z(e)," (").concat(e.nickname,")"):e.nickname?a+=" - (".concat(e.nickname,")"):(e.first_name||e.last_name)&&(a+=" - ".concat(I.z(e))),e.delete_at&&(a+=" - "+I.gb("channel_switch_modal.deactivated","Deactivated")),{channel:{display_name:a,name:e.username,id:t?t.id:e.id,userId:e.id,update_at:e.update_at,type:P.j.DM_CHANNEL,last_picture_update:e.last_picture_update||0},name:e.username,deactivated:e.delete_at}}formatChannelsAndDispatch(e,t,a,n,s=!1){const i=[],r=Object(p.getMyChannelMemberships)(oh());if(this.shouldCancelDispatch(e))return;const o={},l=function(e){const t=e.toLowerCase(),a=oh(),n=Object(m.getUserIdsInChannels)(a),s={};return e=>{let i=e.display_name;if(e.type===P.j.GM_CHANNEL||e.type===P.j.DM_CHANNEL){const t=n[e.id]||new Set([]);if(!t.size&&e.type===P.j.DM_CHANNEL){const n=I.H(e.name);Object(m.getUser)(a,n)&&t.add(n)}for(const e of t){let t=s[e];if(!t){const n=Object(m.getUser)(a,e);if(!n)continue;const{nickname:i,username:r}=n;t="".concat(i).concat(r).concat(I.z(n)),s[e]=t}i+=t}}return i.toLowerCase().includes(t)}}(e),u=oh(),h=Object(d.getConfig)(u),g="true"===h.ExperimentalViewArchivedChannels;for(const t of Object.keys(a)){const d=a[t];if(!o[d.id]&&l(d)){const t=Object.assign({},d),a=0!==d.delete_at;let l={channel:t,name:t.name,deactivated:!1};if(!g&&a)continue;if(a&&r[d.id])l.type=P.j.ARCHIVED_CHANNEL;else{if(a&&!r[d.id])continue;if(t.type===P.j.GM_CHANNEL){if(t.name=t.display_name,l.name=t.name,Object(un.isGroupChannelVisible)(h,Object(c.getMyPreferences)(u),d,Object(qa.getLastPostPerChannel)(u)[d.id],Object(un.isUnreadChannel)(Object(p.getMyChannelMemberships)(u),d)))l.type=P.j.MENTION_CHANNELS;else if(l.type=P.j.MENTION_MORE_CHANNELS,s)continue}else if(t.type===P.j.DM_CHANNEL){const e=I.H(t.name),a=n.find(t=>t.id===e);if(!a)continue;if(o[a.id]=!0,l=this.userWrappedChannel(a,t),Object(un.isDirectChannelVisible)(a.id,h,Object(c.getMyPreferences)(u),d,Object(qa.getLastPostPerChannel)(u)[d.id],Object(un.isUnreadChannel)(Object(p.getMyChannelMemberships)(u),d)))l.type=P.j.MENTION_CHANNELS;else if(l.type=P.j.MENTION_MORE_CHANNELS,s)continue}else if(r[d.id])l.type=P.j.MENTION_CHANNELS;else if(l.type=P.j.MENTION_MORE_CHANNELS,s||!t.display_name.toLowerCase().startsWith(e))continue}o[d.id]=!0,i.push(l)}}for(let e=0;e<n.length;e++){const t=n[e];if(o[t.id])continue;const a=Object(c.getBool)(oh(),L.Preferences.CATEGORY_DIRECT_CHANNEL_SHOW,t.id,!1),r=this.userWrappedChannel(t);if(a)r.type=P.j.MENTION_CHANNELS;else if(r.type=P.j.MENTION_MORE_CHANNELS,s)continue;o[t.id]=!0,i.push(r)}const b=i.sort(mh).map(e=>e.channel.name);s&&i.push({type:P.j.MENTION_MORE_CHANNELS,loading:!0}),t({matchedPretext:e,terms:b,items:i,component:ch})}formatUnreadChannelsAndDispatch(e){const t=Object(p.makeGetChannel)(),a=Object(p.getSortedUnreadChannelIds)(oh(),!1),n=[];for(let e=0;e<a.length;e++){const s=t(oh(),{id:a[e]})||{};let i={channel:s,name:s.name,deactivated:!1};if(s.type===P.j.GM_CHANNEL)i.name=s.display_name;else if(s.type===P.j.DM_CHANNEL){const e=Object(m.getUser)(oh(),I.H(s.name));if(!e)continue;i=this.userWrappedChannel(e,s)}i.type=P.j.MENTION_UNREAD_CHANNELS,n.push(i)}e({matchedPretext:"",terms:n.map(e=>e.channel.name),items:n,component:ch})}}const ph=pn.a.getState;class hh extends sn.a{render(){const{item:e,isSelection:t}=this.props;let a="mentions__name";return t&&(a+=" suggestion--selected"),C.a.createElement("div",Object.assign({onClick:this.handleClick,className:a,onMouseMove:this.handleMouseMove,ref:e=>{this.node=e}},sn.a.baseProps),C.a.createElement("div",{className:"status"},C.a.createElement(V.a,{id:"general_tab.teamIcon",defaultMessage:"Team Icon"},e=>C.a.createElement("i",{className:"fa fa-group",title:e}))),e.display_name)}}let gh="";function bh(e,t){const a=e.display_name.toLowerCase(),n=t.display_name.toLowerCase(),s=a.startsWith(gh),i=n.startsWith(gh);if(s&&i){const s=Object(qs.a)(ph());return a!==n?a.localeCompare(n,s,{numeric:!0}):e.name.localeCompare(t.name,s,{numeric:!0})}return s?-1:1}class fh extends en.a{handlePretextChanged(e,t){if(e){gh=e,this.startNewRequest(e);const a=u.getMyTeams(ph()).filter(t=>-1!==t.display_name.toLowerCase().indexOf(e)||-1!==t.name.indexOf(e)),n=a.sort(bh).map(e=>e.name);return t({matchedPretext:e,terms:n,items:a,component:hh}),!0}return!1}}function _h(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const Eh="channel",vh="team";class yh extends C.a.PureComponent{constructor(e){super(e),_h(this,"focusTextbox",()=>{if(null==this.switchBox)return;const e=this.switchBox.getTextbox();document.activeElement!==e&&(e.focus(),I.kb(e))}),_h(this,"setSwitchBoxRef",e=>{this.switchBox=e,this.focusTextbox()}),_h(this,"onShow",()=>{this.setState({text:""})}),_h(this,"onHide",()=>{this.focusPostTextbox(),this.setState({text:""}),this.props.onHide()}),_h(this,"focusPostTextbox",()=>{M.n()||setTimeout(()=>{const e=document.querySelector("#post_textbox");e&&e.focus()})}),_h(this,"onChange",e=>{this.setState({text:e.target.value})}),_h(this,"handleKeyDown",e=>{I.W(e,P.Q.KeyCodes.TAB)&&(e.preventDefault(),this.switchMode())}),_h(this,"handleSubmit",async e=>{if(e)if(this.state.mode===Eh){const{joinChannelById:t,switchToChannel:a}=this.props.actions,n=e.channel;e.type===P.Q.MENTION_MORE_CHANNELS&&n.type===P.Q.OPEN_CHANNEL&&await t(n.id),a(n).then(e=>{e.data&&this.onHide()})}else K.a.push("/"+e.name),this.onHide()}),_h(this,"enableChannelProvider",()=>{this.channelProviders[0].disableDispatches=!1,this.teamProviders[0].disableDispatches=!0}),_h(this,"enableTeamProvider",()=>{this.teamProviders[0].disableDispatches=!1,this.channelProviders[0].disableDispatches=!0}),_h(this,"switchMode",()=>{this.state.mode===Eh&&this.props.showTeamSwitcher?(this.enableTeamProvider(),this.setState({mode:vh})):this.state.mode===vh&&(this.enableChannelProvider(),this.setState({mode:Eh}))}),_h(this,"handleOnClick",e=>{e.preventDefault();const t=e.currentTarget.getAttribute("data-mode");this.enableChannelProvider(),this.setState({mode:t}),this.focusTextbox()}),this.channelProviders=[new uh],this.teamProviders=[new fh],this.switchBox=null,this.state={text:"",mode:Eh}}render(){let e,t=this.channelProviders,a=!0,n=Object(de.b)("quick_switch_modal.channelsShortcut.windows"),s="CTRL+K";I.X()&&(n=Object(de.b)("quick_switch_modal.channelsShortcut.mac"),s="CMD+K");let i,r=Object(de.b)("quick_switch_modal.teamsShortcut.windows"),o="CTRL+ALT+K";if(I.X()&&(r=Object(de.b)("quick_switch_modal.teamsShortcut.mac"),o="CMD+ALT+K"),this.props.showTeamSwitcher){let i="",l="";this.state.mode===vh?(t=this.teamProviders,a=!1,l="active"):i="active",e=C.a.createElement("div",{className:"nav nav-tabs"},C.a.createElement("li",{className:i},C.a.createElement("a",{"data-mode":"channel",href:"#",onClick:this.handleOnClick},C.a.createElement(V.a,{id:"quick_switch_modal.channels",defaultMessage:"Channels"}),C.a.createElement("span",{className:"small"},C.a.createElement(V.a,{id:n,defaultMessage:s})))),C.a.createElement("li",{className:l},C.a.createElement("a",{"data-mode":"team",href:"#",onClick:this.handleOnClick},C.a.createElement(V.a,{id:"quick_switch_modal.teams",defaultMessage:"Teams"}),C.a.createElement("span",{className:"small"},C.a.createElement(V.a,{id:r,defaultMessage:o})))))}return i=I.Y()?C.a.createElement(V.a,{id:"quick_switch_modal.help_mobile",defaultMessage:"Type to find a channel."}):this.props.showTeamSwitcher?C.a.createElement(V.a,{id:"quick_switch_modal.help",defaultMessage:"Start typing then use TAB to toggle channels/teams, ↑↓ to browse, ↵ to select, and ESC to dismiss."}):C.a.createElement(V.a,{id:"quick_switch_modal.help_no_team",defaultMessage:"Type to find a channel. Use ↑↓ to browse, ↵ to select, ESC to dismiss."}),C.a.createElement(G.a,{dialogClassName:"a11y__modal channel-switch__modal",ref:"modal",show:!0,onHide:this.onHide,enforceFocus:!1,restoreFocus:!1,role:"dialog","aria-labelledby":"quickSwitchModalLabel",animation:!1},C.a.createElement(G.a.Header,{id:"quickSwitchModalLabel",closeButton:!0}),C.a.createElement(G.a.Body,null,e,C.a.createElement("div",{id:"quickSwitchHint",className:"modal__hint"},i),C.a.createElement("div",{className:"channel-switch__suggestion-box"},C.a.createElement(On.a,{id:"quickSwitchInput",ref:this.setSwitchBoxRef,className:"form-control focused",onChange:this.onChange,value:this.state.text,onKeyDown:this.handleKeyDown,onItemSelected:this.handleSubmit,listComponent:Tn.a,maxLength:"64",providers:t,listStyle:"bottom",completeOnTab:!1,spellCheck:"false",renderDividers:a,delayInputUpdate:!0,openWhenEmpty:!0}))))}}_h(yh,"propTypes",{onHide:v.a.func.isRequired,showTeamSwitcher:v.a.bool,actions:v.a.shape({joinChannelById:v.a.func.isRequired,switchToChannel:v.a.func.isRequired}).isRequired});var Ch=Object(n.connect)((function(){return{showTeamSwitcher:!1}}),(function(e){return{actions:Object(s.bindActionCreators)({joinChannelById:f.d,switchToChannel:f.l},e)}}))(yh);function wh(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class Oh extends C.a.PureComponent{static getDerivedStateFromProps(e){return!1===e.show?{displayNameError:""}:null}constructor(e){super(e),wh(this,"onEnterKeyDown",e=>{const t=I.W(e,P.Q.KeyCodes.ENTER),{ctrlSend:a}=this.props;a&&t&&!e.ctrlKey?e.preventDefault():(a&&t&&e.ctrlKey||!a&&t&&!e.shiftKey&&!e.altKey)&&this.handleSubmit(e)}),wh(this,"handleSubmit",e=>{e.preventDefault(),this.displayNameInput.current.value.trim().length<P.Q.MIN_CHANNELNAME_LENGTH?this.setState({displayNameError:!0}):this.props.onSubmitChannel()}),wh(this,"handleChange",()=>{const e={displayName:this.displayNameInput.current.value,header:this.channelHeaderInput.current.value,purpose:this.channelPurposeInput.current.value};this.props.onDataChanged(e)}),wh(this,"handleOnURLChange",e=>{e.preventDefault(),this.props.onChangeURLPressed&&this.props.onChangeURLPressed()}),wh(this,"handlePublicTypeSelect",()=>{this.props.onTypeSwitched("O")}),wh(this,"handlePrivateTypeSelect",()=>{this.props.onTypeSwitched("P")}),this.state={displayNameError:""},this.channelHeaderInput=C.a.createRef(),this.channelPurposeInput=C.a.createRef(),this.displayNameInput=C.a.createRef()}componentDidMount(){(M.g()||M.e())&&Rs()("body").addClass("browser--ie")}render(){const{canCreatePublicChannel:e,canCreatePrivateChannel:t}=this.props,a=e&&t;var n=null,s=null,i="form-group";this.state.displayNameError&&(n=C.a.createElement("p",{className:"input__help error"},C.a.createElement(V.a,{id:"channel_modal.displayNameError",defaultMessage:"Channel name must be 2 or more characters"}),this.state.displayNameError),i+=" has-error"),this.props.serverError&&(s=C.a.createElement("div",{className:"form-group has-error"},C.a.createElement("div",{className:"col-sm-12"},C.a.createElement("p",{id:"createChannelError",className:"input__help error"},this.props.serverError))));const r=C.a.createElement("div",{className:"flex-parent"},C.a.createElement(Yd.a,{className:"icon icon__globe icon--body type-icon"}),C.a.createElement(V.a,{id:"channel_modal.publicName",defaultMessage:"Public"}),C.a.createElement(V.a,{id:"channel_modal.publicHint",defaultMessage:" - Anyone can join this channel."})),o=C.a.createElement("div",{className:"flex-parent"},C.a.createElement(Kd.a,{className:"icon icon__lock icon--body type-icon"}),C.a.createElement(V.a,{id:"channel_modal.privateName",defaultMessage:"Private"}),C.a.createElement(V.a,{id:"channel_modal.privateHint",defaultMessage:" - Only invited members can join this channel."}));let l=null;l=a?C.a.createElement("fieldset",{key:"channelType",className:"multi-select__radio"},C.a.createElement("div",{className:"radio"},C.a.createElement("label",null,C.a.createElement("input",{id:"public",type:"radio",name:"channelType",checked:"O"===this.props.channelType,onChange:this.handlePublicTypeSelect,"aria-labelledby":"channelModalTypeLabel"}),r)),C.a.createElement("div",{className:"radio"},C.a.createElement("label",null,C.a.createElement("input",{id:"private",type:"radio",name:"channelType",checked:"P"===this.props.channelType,onChange:this.handlePrivateTypeSelect,"aria-labelledby":"channelModalTypeLabel"}),o))):C.a.createElement("div",{className:"type-container multi-select__radio"},C.a.createElement("div",{className:"radio"},e?r:null,t?o:null));const c=Object(Un.d)();return C.a.createElement("span",null,C.a.createElement(G.a,{dialogClassName:"a11y__modal new-channel__modal new-channel",show:this.props.show,bsSize:"large",onHide:this.props.onModalDismissed,onExited:this.props.onModalExited,autoFocus:!0,restoreFocus:!0,role:"dialog","aria-labelledby":"newChannelModalLabel"},C.a.createElement(G.a.Header,null,C.a.createElement("button",{type:"button",className:"close",onClick:this.props.onModalDismissed,"aria-label":"Close",title:"Close"},C.a.createElement("span",{"aria-hidden":"true"},"×")),C.a.createElement(G.a.Title,{componentClass:"h1",id:"newChannelModalLabel"},C.a.createElement(V.a,{id:"channel_modal.modalTitle",defaultMessage:"New Channel"}))),C.a.createElement("form",{role:"form",className:"form-horizontal"},C.a.createElement(G.a.Body,null,C.a.createElement("div",{className:"form-group"},C.a.createElement("label",{className:"col-sm-3 form__label control-label",id:"channelModalTypeLabel"},C.a.createElement(V.a,{id:"channel_modal.type",defaultMessage:"Type"})),C.a.createElement("div",{className:"col-sm-9"},l)),C.a.createElement("div",{className:i},C.a.createElement("label",{className:"col-sm-3 form__label control-label",htmlFor:"newChannelName"},C.a.createElement(V.a,{id:"channel_modal.name",defaultMessage:"Name"})),C.a.createElement("div",{className:"col-sm-9"},C.a.createElement(ce.a,{id:"newChannelName",onChange:this.handleChange,type:"text",ref:this.displayNameInput,className:"form-control",placeholder:{id:Object(de.b)("channel_modal.nameEx"),defaultMessage:'E.g.: "Bugs", "Marketing", "客户支持"'},maxLength:P.Q.MAX_CHANNELNAME_LENGTH,value:this.props.channelData.displayName,autoFocus:!0,onKeyDown:this.onEnterKeyDown}),n,C.a.createElement("p",{className:"input__help dark"},"URL: "+c+this.props.channelData.name+" (",C.a.createElement("button",{className:"color--link style--none",onClick:this.handleOnURLChange},C.a.createElement(V.a,{id:"channel_modal.edit",defaultMessage:"Edit"})),")"))),C.a.createElement("div",{className:"form-group"},C.a.createElement("div",{className:"col-sm-3"},C.a.createElement("label",{className:"form__label control-label",htmlFor:"newChannelPurpose"},C.a.createElement(V.a,{id:"channel_modal.purpose",defaultMessage:"Purpose"})),C.a.createElement("label",{className:"form__label light"},C.a.createElement(V.a,{id:"channel_modal.optional",defaultMessage:"(optional)"}))),C.a.createElement("div",{className:"col-sm-9"},C.a.createElement("textarea",{id:"newChannelPurpose",className:"form-control no-resize",ref:this.channelPurposeInput,rows:"4",placeholder:I.gb("channel_modal.purposeEx",'E.g.: "A channel to file bugs and improvements"'),maxLength:"250",value:this.props.channelData.purpose,onChange:this.handleChange}),C.a.createElement("p",{className:"input__help"},C.a.createElement(V.a,{id:"channel_modal.descriptionHelp",defaultMessage:"Describe how this channel should be used."})))),C.a.createElement("div",{className:"form-group less"},C.a.createElement("div",{className:"col-sm-3"},C.a.createElement("label",{className:"form__label control-label",htmlFor:"newChannelHeader"},C.a.createElement(V.a,{id:"channel_modal.header",defaultMessage:"Header"})),C.a.createElement("label",{className:"form__label light"},C.a.createElement(V.a,{id:"channel_modal.optional",defaultMessage:"(optional)"}))),C.a.createElement("div",{className:"col-sm-9"},C.a.createElement("textarea",{id:"newChannelHeader",className:"form-control no-resize",ref:this.channelHeaderInput,rows:"4",placeholder:I.gb("channel_modal.headerEx",'E.g.: "[Link Title](http://example.com)"'),maxLength:"1024",value:this.props.channelData.header,onChange:this.handleChange}),C.a.createElement("p",{className:"input__help"},C.a.createElement(V.a,{id:"channel_modal.headerHelp",defaultMessage:"Set text that will appear in the header of the channel beside the channel name. For example, include frequently used links by typing [Link Title](http://example.com)."})),s))),C.a.createElement(G.a.Footer,null,C.a.createElement("button",{id:"cancelNewChannel",type:"button",className:"btn btn-link",onClick:this.props.onModalDismissed,onBlur:()=>document.getElementById("newChannelName").focus()},C.a.createElement(V.a,{id:"channel_modal.cancel",defaultMessage:"Cancel"})),C.a.createElement("button",{id:"submitNewChannel",onClick:this.handleSubmit,type:"submit",className:"btn btn-primary"},C.a.createElement(V.a,{id:"channel_modal.createNew",defaultMessage:"Create Channel"}))))))}}wh(Oh,"propTypes",{show:v.a.bool.isRequired,currentTeamId:v.a.string.isRequired,channelType:v.a.string.isRequired,channelData:v.a.object.isRequired,ctrlSend:v.a.bool,serverError:v.a.node,onSubmitChannel:v.a.func.isRequired,onModalDismissed:v.a.func.isRequired,onModalExited:v.a.func,onTypeSwitched:v.a.func.isRequired,onChangeURLPressed:v.a.func.isRequired,onDataChanged:v.a.func.isRequired,canCreatePublicChannel:v.a.bool.isRequired,canCreatePrivateChannel:v.a.bool.isRequired});var Th=Object(n.connect)((function(e){return{ctrlSend:Object(c.getBool)(e,L.Preferences.CATEGORY_ADVANCED_SETTINGS,"send_on_ctrl_enter"),currentTeamId:Object(u.getCurrentTeamId)(e)}}))(Oh);function Sh(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class Ph extends C.a.PureComponent{constructor(e){super(e),Sh(this,"onURLChanged",e=>{const t=e.target.value.trim();this.setState({currentURL:t.replace(/[^A-Za-z0-9-_]/g,"").toLowerCase(),userEdit:!0})}),Sh(this,"formattedError",(e,t,a)=>C.a.createElement("span",{key:e},C.a.createElement(V.a,{id:t,defaultMessage:a}),C.a.createElement("br",null))),Sh(this,"getURLError",e=>{let t=[];return e.length<2&&t.push(this.formattedError("error1",Object(de.b)("change_url.longer"),"URL must be two or more characters.")),"-"!==e.charAt(0)&&"_"!==e.charAt(0)||t.push(this.formattedError("error2",Object(de.b)("change_url.startWithLetter"),"URL must start with a letter or number.")),e.length>1&&("-"===e.charAt(e.length-1)||"_"===e.charAt(e.length-1))&&t.push(this.formattedError("error3",Object(de.b)("change_url.endWithLetter"),"URL must end with a letter or number.")),e.indexOf("__")>-1&&t.push(this.formattedError("error4",Object(de.b)("change_url.noUnderscore"),"URL can not contain two underscores in a row.")),0===t.length&&t.push(this.formattedError("errorlast",Object(de.b)("change_url.invalidUrl"),"Invalid URL")),t}),Sh(this,"onSubmit",e=>{e.preventDefault();const t=this.refs.urlinput.value;Object(Un.a)(t)!==t||t.length<2||t.indexOf("__")>-1?this.setState({urlError:this.getURLError(t)}):(this.setState({urlError:"",userEdit:!1}),this.props.onModalSubmit(t))}),Sh(this,"onCancel",()=>{this.setState({urlError:"",userEdit:!1}),this.props.onModalDismissed()}),this.state={currentURL:e.currentURL,urlError:"",userEdit:!1}}static getDerivedStateFromProps(e,t){return t.userEdit?null:{currentURL:e.currentURL}}render(){let e="input-group input-group--limit",t=null;this.state.urlError&&(e+=" has-error"),(this.props.serverError||this.state.urlError)&&(t=C.a.createElement("div",{className:"has-error"},C.a.createElement("p",{className:"input__help error"},this.state.urlError||this.props.serverError)));const a=this.props.currentTeamURL+"/channels",n=Object(Un.d)(a),s=C.a.createElement(mi.a,{id:"urlTooltip"},a);return C.a.createElement(G.a,{dialogClassName:"a11y__modal",show:this.props.show,onHide:this.onCancel,onExited:this.props.onModalExited,role:"dialog","aria-labelledby":"changeUrlModalLabel"},C.a.createElement(G.a.Header,{closeButton:!0},C.a.createElement(G.a.Title,{componentClass:"h1",id:"changeUrlModalLabel"},this.props.title)),C.a.createElement("form",{role:"form",className:"form-horizontal"},C.a.createElement(G.a.Body,null,C.a.createElement("div",{className:"modal-intro"},C.a.createElement(V.a,{id:"channel_flow.changeUrlDescription",defaultMessage:"Some characters are now allowed in URLs and may be removed."})),C.a.createElement("div",{className:"form-group"},C.a.createElement("label",{className:"col-sm-3 form__label control-label"},C.a.createElement(V.a,{id:"change_url.urlLabel",defaultMessage:"Channel URL"})),C.a.createElement("div",{className:"col-sm-9"},C.a.createElement("div",{className:e},C.a.createElement(ui.a,{delayShow:P.Q.OVERLAY_TIME_DELAY,placement:"top",overlay:s},C.a.createElement("span",{className:"input-group-addon"},n)),C.a.createElement("input",{type:"text",ref:"urlinput",className:"form-control",maxLength:P.Q.MAX_CHANNELNAME_LENGTH,onChange:this.onURLChanged,value:this.state.currentURL,autoFocus:!0})),t))),C.a.createElement(G.a.Footer,null,C.a.createElement("button",{type:"button",className:"btn btn-link",onClick:this.onCancel},C.a.createElement(V.a,{id:"change_url.close",defaultMessage:"Close"})),C.a.createElement("button",{onClick:this.onSubmit,type:"submit",className:"btn btn-primary"},this.props.submitButtonText))))}}Sh(Ph,"propTypes",{show:v.a.bool.isRequired,title:v.a.node,submitButtonText:v.a.node,currentURL:v.a.string,currentTeamURL:v.a.string.isRequired,serverError:v.a.node,onModalSubmit:v.a.func.isRequired,onModalExited:v.a.func,onModalDismissed:v.a.func.isRequired}),Sh(Ph,"defaultProps",{show:!1,title:"Change URL",submitButtonText:"Save",currentURL:"",serverError:null});var Mh=Object(n.connect)((function(e){const t=Object(u.getCurrentTeam)(e);return{currentTeamURL:"".concat(Object(Un.e)(),"/").concat(t.name)}}))(Ph);function Ih(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const Nh=1,jh=2,Ah=3;function Rh(e){let t=e.channelType||P.Q.OPEN_CHANNEL;return e.canCreatePublicChannel||t!==P.Q.OPEN_CHANNEL||(t=P.Q.PRIVATE_CHANNEL),e.canCreatePrivateChannel||t!==P.Q.PRIVATE_CHANNEL||(t=P.Q.OPEN_CHANNEL),t}class kh extends C.a.Component{static getDerivedStateFromProps(e,t){return!0===e.show&&!1===t.show?{serverError:"",channelType:Rh(e),flowState:Nh,channelDisplayName:"",channelName:"",channelPurpose:"",channelHeader:"",nameModified:!1,show:e.show}:{show:e.show}}constructor(e){super(e),Ih(this,"onSubmit",()=>{if(!this.state.channelDisplayName)return void this.setState({serverError:I.gb("channel_flow.invalidName","Invalid Channel Name")});if(this.state.channelName.length<2)return void this.setState({flowState:Ah});const{actions:e,currentTeamId:t}=this.props,a={team_id:t,name:this.state.channelName,display_name:this.state.channelDisplayName,purpose:this.state.channelPurpose,header:this.state.channelHeader,type:this.state.channelType};e.createChannel(a).then(t=>{t.error?this.onCreateChannelError(t.error):(this.props.onModalDismissed(),e.switchToChannel(t.data))})}),Ih(this,"onCreateChannelError",e=>{"model.channel.is_valid.2_or_more.app_error"===e.id?this.setState({flowState:Ah,serverError:C.a.createElement(V.a,{id:"channel_flow.handleTooShort",defaultMessage:"Channel URL must be 2 or more lowercase alphanumeric characters"})}):"store.sql_channel.update.exists.app_error"===e.id?this.setState({serverError:I.gb("channel_flow.alreadyExist","A channel with that URL already exists")}):this.setState({serverError:e.message})}),Ih(this,"typeSwitched",e=>{this.setState({channelType:e,serverError:""})}),Ih(this,"urlChangeRequested",e=>{e&&e.preventDefault(),this.setState({flowState:jh})}),Ih(this,"urlChangeSubmitted",e=>{this.state.flowState===Ah?this.setState({channelName:e,nameModified:!0},this.onSubmit):this.setState({flowState:Nh,serverError:null,channelName:e,nameModified:!0})}),Ih(this,"urlChangeDismissed",()=>{this.setState({flowState:Nh})}),Ih(this,"channelDataChanged",e=>{this.setState({channelDisplayName:e.displayName,channelPurpose:e.purpose,channelHeader:e.header}),this.state.nameModified||this.setState({channelName:Object(Un.a)(e.displayName.trim())})}),this.state={serverError:"",channelType:Rh(e),flowState:Nh,channelDisplayName:"",channelName:"",channelPurpose:"",channelHeader:"",nameModified:!1,show:e.show}}render(){const e={name:this.state.channelName,displayName:this.state.channelDisplayName,purpose:this.state.channelPurpose,header:this.state.channelHeader};let t=!1,a=!1,n="",s="";if(this.props.show)switch(this.state.flowState){case Nh:t=!0;break;case jh:a=!0,s=n=C.a.createElement(V.a,{id:"channel_flow.changeUrlTitle",defaultMessage:"Change Channel URL"});break;case Ah:a=!0,n=C.a.createElement(V.a,{id:"channel_flow.set_url_title",defaultMessage:"Set Channel URL"}),s=C.a.createElement(V.a,{id:"channel_flow.create",defaultMessage:"Create Channel"})}return C.a.createElement("span",null,C.a.createElement(Th,{show:t,channelType:this.state.channelType,canCreatePublicChannel:this.props.canCreatePublicChannel,canCreatePrivateChannel:this.props.canCreatePrivateChannel,channelData:e,serverError:this.state.serverError,onSubmitChannel:this.onSubmit,onModalDismissed:this.props.onModalDismissed,onTypeSwitched:this.typeSwitched,onChangeURLPressed:this.urlChangeRequested,onDataChanged:this.channelDataChanged}),C.a.createElement(Mh,{show:a,title:n,submitButtonText:s,currentURL:this.state.channelName,serverError:this.state.serverError,onModalSubmit:this.urlChangeSubmitted,onModalDismissed:this.urlChangeDismissed}))}}Ih(kh,"propTypes",{show:v.a.bool.isRequired,channelType:v.a.string.isRequired,onModalDismissed:v.a.func.isRequired,currentTeamId:v.a.string.isRequired,canCreatePublicChannel:v.a.bool.isRequired,canCreatePrivateChannel:v.a.bool.isRequired,actions:v.a.shape({createChannel:v.a.func.isRequired,switchToChannel:v.a.func.isRequired})}),Ih(kh,"defaultProps",{show:!1,channelType:P.Q.OPEN_CHANNEL});var Lh=Object(n.connect)((function(e){return{currentTeamId:Object(u.getCurrentTeamId)(e)}}),(function(e){return{actions:Object(s.bindActionCreators)({createChannel:o.createChannel,switchToChannel:f.l},e)}}))(kh);class Dh extends C.a.PureComponent{render(){return C.a.createElement("span",this.props,C.a.createElement(V.a,{id:"generic_icons.arrow.down",defaultMessage:"Down Arrow Icon"},e=>C.a.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24px",height:"24px",role:"img","aria-label":e},C.a.createElement("path",{d:"M6 12l1.058-1.057 4.192 4.184V6h1.5v9.127l4.185-4.192L18 12l-6 6z"}))))}}function xh(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class Uh extends C.a.PureComponent{render(){let e="nav-pills__unread-indicator ";return this.props.show&&(e+="nav-pills__unread-indicator--visible "),C.a.createElement("div",{id:"unreadIndicator"+this.props.name,className:e+this.props.extraClass,onClick:this.props.onClick},this.props.content,C.a.createElement(Dh,{className:"icon icon__unread"}))}}xh(Uh,"propTypes",{onClick:v.a.func.isRequired,show:v.a.bool,extraClass:v.a.string,content:v.a.node,name:v.a.string}),xh(Uh,"defaultProps",{show:!1,extraClass:"",content:""});var qh=a(1237);function Hh(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class Fh extends C.a.Component{constructor(...e){super(...e),Hh(this,"isUserOutOfOffice",()=>this.props.status===P.O.OUT_OF_OFFICE),Hh(this,"setStatus",e=>{this.props.actions.setStatus({user_id:this.props.userId,status:e})}),Hh(this,"setOnline",e=>{e.preventDefault(),this.setStatus(P.O.ONLINE)}),Hh(this,"setOffline",e=>{e.preventDefault(),this.setStatus(P.O.OFFLINE)}),Hh(this,"setAway",e=>{e.preventDefault(),this.setStatus(P.O.AWAY)}),Hh(this,"setDnd",e=>{e.preventDefault(),this.setStatus(P.O.DND)}),Hh(this,"showStatusChangeConfirmation",e=>{const t={ModalId:P.u.RESET_STATUS,dialogType:hs,dialogProps:{newStatus:e}};this.props.actions.openModal(t)}),Hh(this,"renderProfilePicture",()=>this.props.profilePicture?C.a.createElement(nn.a,{size:"lg",url:this.props.profilePicture}):null),Hh(this,"renderDropdownIcon",()=>C.a.createElement(V.a,{id:"generic_icons.dropdown",defaultMessage:"Dropdown Icon"},e=>C.a.createElement("i",{className:"fa fa-caret-down",title:e})))}render(){const e=this.isUserOutOfOffice()&&""===this.props.autoResetPref,t=this.renderProfilePicture(),a=this.renderDropdownIcon(),n=e?()=>this.showStatusChangeConfirmation("online"):this.setOnline,s=e?()=>this.showStatusChangeConfirmation("dnd"):this.setDnd,i=e?()=>this.showStatusChangeConfirmation("away"):this.setAway,r=e?()=>this.showStatusChangeConfirmation("offline"):this.setOffline;return C.a.createElement(Ri.a,{onToggle:this.onToggle,style:this.props.style},C.a.createElement("div",{className:"status-wrapper status-selector"},t,C.a.createElement("button",{className:"status style--none","aria-label":Object(I.gb)("status_dropdown.menuAriaLabel","set status")},C.a.createElement(qh.a,{status:this.props.status,button:!0})),C.a.createElement("span",{className:"status status-edit edit"},a)),C.a.createElement(ki.a,{ariaLabel:Object(I.gb)("status_dropdown.menuAriaLabel","set status")},C.a.createElement(ki.a.Group,null,C.a.createElement(ki.a.ItemAction,{show:this.isUserOutOfOffice(),onClick:()=>null,ariaLabel:Object(I.gb)("status_dropdown.set_ooo","Out of office").toLowerCase(),text:Object(I.gb)("status_dropdown.set_ooo","Out of office"),extraText:Object(I.gb)("status_dropdown.set_ooo.extra","Automatic Replies are enabled")})),C.a.createElement(ki.a.Group,null,C.a.createElement(ki.a.ItemAction,{onClick:n,ariaLabel:Object(I.gb)("status_dropdown.set_online","Online").toLowerCase(),text:Object(I.gb)("status_dropdown.set_online","Online")}),C.a.createElement(ki.a.ItemAction,{onClick:i,ariaLabel:Object(I.gb)("status_dropdown.set_away","Away").toLowerCase(),text:Object(I.gb)("status_dropdown.set_away","Away")}),C.a.createElement(ki.a.ItemAction,{onClick:s,ariaLabel:"".concat(Object(I.gb)("status_dropdown.set_dnd","Do not disturb").toLowerCase(),". ").concat(Object(I.gb)("status_dropdown.set_dnd.extra","Disables desktop, email and push notifications").toLowerCase()),text:Object(I.gb)("status_dropdown.set_dnd","Do not disturb"),extraText:Object(I.gb)("status_dropdown.set_dnd.extra","Disables desktop, email and push notifications")}),C.a.createElement(ki.a.ItemAction,{onClick:r,ariaLabel:Object(I.gb)("status_dropdown.set_offline","Offline").toLowerCase(),text:Object(I.gb)("status_dropdown.set_offline","Offline")}))))}}Hh(Fh,"propTypes",{style:v.a.object,status:v.a.string,userId:v.a.string.isRequired,profilePicture:v.a.string,autoResetPref:v.a.string,actions:v.a.shape({openModal:v.a.func.isRequired,setStatus:v.a.func.isRequired}).isRequired}),Hh(Fh,"defaultProps",{userId:"",profilePicture:"",status:P.O.OFFLINE});var Bh=Object(n.connect)((function(e){const t=Object(m.getCurrentUser)(e);if(!t)return{};const a=t.id;return{userId:a,profilePicture:bn.Client4.getProfilePictureUrl(a,t.last_picture_update),autoResetPref:Object(c.get)(e,L.Preferences.CATEGORY_AUTO_RESET_MANUAL_STATUS,a,""),status:Object(m.getStatusForUserId)(e,a)}}),(function(e){return{actions:Object(s.bindActionCreators)({openModal:x.b,setStatus:r.setStatus},e)}}))(Fh),Gh=a(1260);class Vh extends C.a.PureComponent{render(){const e=C.a.createElement(mi.a,{id:"main-menu__tooltip"},C.a.createElement(V.a,{id:"sidebar.mainMenu",defaultMessage:"Main menu"}));let t=null;this.props.showTutorialTip&&(t=C.a.createElement(hd,{onBottom:!1}));let a=C.a.createElement("h1",{id:"headerTeamName",className:"team__name","data-teamid":this.props.teamId},this.props.teamDisplayName);return this.props.teamDescription&&(a=C.a.createElement(ui.a,{delayShow:P.Q.OVERLAY_TIME_DELAY,placement:"bottom",overlay:C.a.createElement(mi.a,{id:"team-name__tooltip"},this.props.teamDescription)},a)),C.a.createElement("div",{className:"SidebarHeaderDropdownButton",id:"sidebarHeaderDropdownButton"},t,C.a.createElement(ui.a,{delayShow:P.Q.OVERLAY_TIME_DELAY,placement:"right",overlay:e},C.a.createElement("div",{id:"headerInfo",className:"header__info"},a,C.a.createElement("div",{id:"headerUsername",className:"user__name"},"@"+this.props.currentUser.username),C.a.createElement("button",{className:"style--none sidebar-header-dropdown__icon","aria-label":Object(I.gb)("navbar_dropdown.menuAriaLabel","main menu")},C.a.createElement(Gh.a,null)))))}}function Wh(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}!function(e,t,a){t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a}(Vh,"propTypes",{showTutorialTip:v.a.bool.isRequired,teamDescription:v.a.string.isRequired,teamId:v.a.string.isRequired,currentUser:v.a.object.isRequired,teamDisplayName:v.a.string.isRequired});class zh extends C.a.PureComponent{constructor(...e){super(...e),Wh(this,"toggleShortcutsModal",e=>{e.preventDefault(),S.n()}),Wh(this,"handleKeyDown",e=>{Object(I.e)(e)&&e.shiftKey&&Object(I.W)(e,P.j.KeyCodes.A)&&this.props.actions.openModal({ModalId:P.u.USER_SETTINGS,dialogType:Vs.a})}),Wh(this,"handleEmitUserLoggedOutEvent",()=>{S.e()})}componentDidMount(){document.addEventListener("keydown",this.handleKeyDown)}componentWillUnmount(){document.removeEventListener("keydown",this.handleKeyDown)}render(){return this.props.currentUser?C.a.createElement(Ri.a,null,C.a.createElement(Vh,{showTutorialTip:this.props.showTutorialTip,teamDescription:this.props.teamDescription,currentUser:this.props.currentUser,teamDisplayName:this.props.teamDisplayName,teamId:this.props.teamId}),C.a.createElement(Zu,{id:"sidebarDropdownMenu"})):null}}Wh(zh,"propTypes",{teamDescription:v.a.string.isRequired,teamDisplayName:v.a.string.isRequired,teamId:v.a.string.isRequired,currentUser:v.a.object,showTutorialTip:v.a.bool.isRequired,actions:v.a.shape({openModal:v.a.func.isRequred}).isRequired}),Wh(zh,"defaultProps",{teamType:"",pluginMenuItems:[]});var Yh=Object(n.connect)((function(e){const t=Object(u.getCurrentTeam)(e),a=Object(m.getCurrentUser)(e),n=Object(c.getInt)(e,P.B.TUTORIAL_STEP,a.id)===P.K.MENU_POPOVER&&!I.Y();return{currentUser:a,teamDescription:t.description,teamDisplayName:t.display_name,teamId:t.id,showTutorialTip:n}}),(function(e){return{actions:Object(s.bindActionCreators)({openModal:x.b},e)}}))(zh);class Kh extends C.a.PureComponent{constructor(e){super(e),function(e,t,a){t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a}(this,"handleResize",()=>{const e=I.Y();this.setState({isMobile:e})}),this.state={isMobile:I.Y()}}componentDidMount(){window.addEventListener("resize",this.handleResize)}componentWillUnmount(){window.removeEventListener("resize",this.handleResize)}render(){const e=I.gb("accessibility.sections.lhsHeader","team menu region");return C.a.createElement("div",{id:"lhsHeader","aria-label":e,tabIndex:"-1",role:"application",className:"SidebarHeader team__header theme a11y__region","data-a11y-sort-order":"5"},C.a.createElement("div",{className:"d-flex"},!this.state.isMobile&&C.a.createElement(Bh,null),C.a.createElement(Yh,null)))}}var Qh=Object(n.connect)((function(e){const t=Object(d.getConfig)(e),a=Object(m.getCurrentUser)(e);return{enableTutorial:"true"===t.EnableTutorial,showTutorialTip:Object(c.getInt)(e,P.B.TUTORIAL_STEP,a.id)===P.K.MENU_POPOVER&&!I.Y()}}))(Kh),Jh=a(101),Zh=a(1715),Xh=a.n(Zh);class $h extends C.a.PureComponent{render(){return C.a.createElement("span",this.props,C.a.createElement(V.a,{id:"generic_icons.bot",defaultMessage:"Bot Icon"},e=>C.a.createElement("svg",{width:"16",height:"13",viewBox:"0 0 36 30",role:"img","aria-label":e},C.a.createElement("path",{d:"M0,15.7391304 L0,23.0434783 C0,24.0535326 0.786888587,24.8695652 1.76086957,24.8695652 L3.52173913,24.8695652 L3.52173913,13.9130435 L1.76086957,13.9130435 C0.786888587,13.9130435 0,14.7290761 0,15.7391304 Z M26.0496894,6.50271739 L19.7888199,6.50271739 L19.7888199,2.83423913 C19.7888199,1.81967561 18.989441,1 18,1 C17.010559,1 16.2111801,1.81967561 16.2111801,2.83423913 L16.2111801,6.50271739 L9.95031056,6.50271739 C7.47950311,6.50271739 5.47826087,8.55477242 5.47826087,11.0883152 L5.47826087,26.6793478 C5.47826087,28.7027429 7.0826087,30.3478261 9.05590062,30.3478261 L26.9440994,30.3478261 C28.9173913,30.3478261 30.5217391,28.7027429 30.5217391,26.6793478 L30.5217391,11.0883152 C30.5217391,8.55477242 28.5204969,6.50271739 26.0496894,6.50271739 Z M14.4782609,24.8695652 L10.9565217,24.8695652 L10.9565217,22.9130435 L14.4782609,22.9130435 L14.4782609,24.8695652 Z M12.5217391,17.826087 C11.2245652,17.826087 10.173913,16.7754348 10.173913,15.4782609 C10.173913,14.181087 11.2245652,13.1304348 12.5217391,13.1304348 C13.818913,13.1304348 14.8695652,14.181087 14.8695652,15.4782609 C14.8695652,16.7754348 13.818913,17.826087 12.5217391,17.826087 Z M19.9565217,24.8695652 L16.4347826,24.8695652 L16.4347826,22.9130435 L19.9565217,22.9130435 L19.9565217,24.8695652 Z M25.0434783,24.8695652 L21.5217391,24.8695652 L21.5217391,22.9130435 L25.0434783,22.9130435 L25.0434783,24.8695652 Z M23.2826087,17.826087 C22.0935326,17.826087 21.1304348,16.7754348 21.1304348,15.4782609 C21.1304348,14.181087 22.0935326,13.1304348 23.2826087,13.1304348 C24.4716848,13.1304348 25.4347826,14.181087 25.4347826,15.4782609 C25.4347826,16.7754348 24.4716848,17.826087 23.2826087,17.826087 Z M34.2391304,13.9130435 L32.4782609,13.9130435 L32.4782609,24.8695652 L34.2391304,24.8695652 C35.2131114,24.8695652 36,24.0535326 36,23.0434783 L36,15.7391304 C36,14.7290761 35.2131114,13.9130435 34.2391304,13.9130435 Z"}))))}}function eg(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class tg extends C.a.PureComponent{constructor(e){super(e),eg(this,"onSvgLoadError",()=>{this.setState({svgErrorUrl:this.props.botIconUrl})}),eg(this,"onSvgLoad",()=>{this.setState({svgErrorUrl:null})}),this.state={svgErrorUrl:null}}render(){let e=null;return this.props.channelIsArchived?e=C.a.createElement(kc.a,{className:"icon icon__archive"}):this.props.hasDraft?e=C.a.createElement(sh,{className:"icon icon__draft"}):this.props.channelType===P.j.OPEN_CHANNEL?e=C.a.createElement(Yd.a,{className:"icon icon__globe"}):this.props.channelType===P.j.PRIVATE_CHANNEL?e=C.a.createElement(Kd.a,{className:"icon icon__lock"}):this.props.channelType===P.j.GM_CHANNEL?e=C.a.createElement("div",{className:"status status--group"},this.props.membersCount):this.props.channelType===P.j.DM_CHANNEL&&(this.props.teammateId&&this.props.teammateDeletedAt?e=C.a.createElement(kc.a,{className:"icon icon__archive"}):this.props.teammateId&&this.props.teammateIsBot?(e=C.a.createElement($h,{className:"icon icon__bot"}),this.props.botIconUrl&&this.props.botIconUrl!==this.state.svgErrorUrl&&(e=C.a.createElement(Xh.a,{className:"icon icon__bot",src:this.props.botIconUrl,onLoad:this.onSvgLoad,onError:this.onSvgLoadError}))):e=C.a.createElement(qh.a,{type:"avatar",status:this.props.channelStatus})),e}}function ag(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}eg(tg,"propTypes",{botIconUrl:v.a.string,channelIsArchived:v.a.bool.isRequired,channelType:v.a.string.isRequired,channelStatus:v.a.string,hasDraft:v.a.bool.isRequired,membersCount:v.a.number,teammateId:v.a.string,teammateDeletedAt:v.a.number,teammateIsBot:v.a.bool});class ng extends C.a.PureComponent{constructor(...e){super(...e),ag(this,"handleClose",e=>{e.stopPropagation(),e.preventDefault(),this.props.handleClose()})}render(){let e=null;if(this.props.handleClose&&!this.props.badge){let t=C.a.createElement(mi.a,{id:"remove-dm-tooltip"},C.a.createElement(V.a,{id:"sidebar.removeList",defaultMessage:"Remove from list"}));this.props.channelType!==P.j.OPEN_CHANNEL&&this.props.channelType!==P.j.PRIVATE_CHANNEL||(t=C.a.createElement(mi.a,{id:"remove-dm-tooltip"},C.a.createElement(V.a,{id:"sidebar.leave",defaultMessage:"Leave channel"}))),e=C.a.createElement(ui.a,{delayShow:1e3,placement:"top",overlay:t},C.a.createElement("span",{onClick:this.handleClose,className:"btn-close"},"×"))}return e}}function sg(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}ag(ng,"propTypes",{handleClose:v.a.func,channelId:v.a.string.isRequired,channelType:v.a.string.isRequired,teammateId:v.a.string,badge:v.a.bool});class ig extends C.a.PureComponent{constructor(e){super(e),sg(this,"state",{showTooltip:!1}),sg(this,"enableToolTipIfNeeded",()=>{const e=this.displayNameRef.current;e&&e.offsetWidth<e.scrollWidth?this.setState({showTooltip:!0}):this.setState({showTooltip:!1})}),sg(this,"trackChannelSelectedEvent",()=>{Object(Ie.b)("SidebarChannelLink#click"),Object(Ie.d)("ui","ui_channel_selected")}),sg(this,"handleClick",()=>{this.trackChannelSelectedEvent(),K.a.push(this.props.link)}),sg(this,"removeTooltipLink",()=>{this.gmItemRef.current.removeAttribute("aria-describedby")}),sg(this,"render",()=>{let e=null;this.props.badge&&(e=C.a.createElement("span",{id:"unreadMentions",className:"badge"},this.props.unreadMentions));const t=C.a.createElement(C.a.Fragment,null,C.a.createElement(tg,{channelStatus:this.props.channelStatus,channelType:this.props.channelType,botIconUrl:this.props.botIconUrl,channelIsArchived:this.props.channelIsArchived,hasDraft:this.props.hasDraft,membersCount:this.props.membersCount,teammateId:this.props.teammateId,teammateDeletedAt:this.props.teammateDeletedAt,teammateIsBot:this.props.teammateIsBot}),C.a.createElement("span",{className:"sidebar-item__name"},C.a.createElement("span",{ref:this.displayNameRef},this.props.displayName)),e,C.a.createElement(ng,{handleClose:this.props.handleClose,channelId:this.props.channelId,channelType:this.props.channelType,teammateId:this.props.teammateId,badge:this.props.badge}));let a,n=this.props.displayName;if(this.props.channelType===P.Q.OPEN_CHANNEL?n+=" ".concat(Object(I.gb)("accessibility.sidebar.types.public","public channel")):this.props.channelType===P.Q.PRIVATE_CHANNEL&&(n+=" ".concat(Object(I.gb)("accessibility.sidebar.types.private","private channel"))),1===this.props.unreadMentions?n+=" ".concat(this.props.unreadMentions," ").concat(Object(I.gb)("accessibility.sidebar.types.mention","mention")):this.props.unreadMentions>1&&(n+=" ".concat(this.props.unreadMentions," ").concat(Object(I.gb)("accessibility.sidebar.types.mentions","mentions"))),this.props.unreadMsgs>0&&this.props.showUnreadForMsgs&&0===this.props.unreadMentions&&(n+=" ".concat(Object(I.gb)("accessibility.sidebar.types.unread","unread"))),n=n.toLowerCase(),a=Object(M.d)()?C.a.createElement("div",null,C.a.createElement(mp,{link:this.props.link,menuId:this.props.channelId},C.a.createElement("button",{className:"btn btn-link "+this.props.rowClass,"aria-label":n,onClick:this.handleClick},t))):C.a.createElement(In.a,{id:"sidebarItem_".concat(this.props.channelName),"aria-label":n,to:this.props.link,className:this.props.rowClass,onClick:this.trackChannelSelectedEvent},t),this.state.showTooltip){const e=C.a.createElement(mi.a,{id:"channel-displayname__tooltip",style:rg.channelTooltip},this.props.displayName);a=C.a.createElement(ui.a,{delayShow:P.Q.OVERLAY_TIME_DELAY,placement:"top",overlay:e,onEntering:this.removeTooltipLink},C.a.createElement("div",{ref:this.gmItemRef},a))}return a}),this.gmItemRef=C.a.createRef(),this.displayNameRef=C.a.createRef()}componentDidMount(){this.enableToolTipIfNeeded()}componentDidUpdate(e){e.displayName!==this.props.displayName&&this.enableToolTipIfNeeded()}}sg(ig,"propTypes",{link:v.a.string.isRequired,rowClass:v.a.string.isRequired,channelType:v.a.string.isRequired,channelId:v.a.string.isRequired,channelName:v.a.string.isRequired,displayName:v.a.string.isRequired,botIconUrl:v.a.string,channelStatus:v.a.string,handleClose:v.a.func,hasDraft:v.a.bool.isRequired,badge:v.a.bool,membersCount:v.a.number.isRequired,showUnreadForMsgs:v.a.bool.isRequired,unreadMsgs:v.a.number.isRequired,unreadMentions:v.a.number.isRequired,teammateId:v.a.string,teammateDeletedAt:v.a.number,teammateIsBot:v.a.bool,channelIsArchived:v.a.bool.isRequired});const rg={channelTooltip:{paddingLeft:"8px",maxWidth:"228px"}};function og(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class lg extends C.a.PureComponent{constructor(...e){super(...e),og(this,"render",()=>{const e=[];let t=P.j.DEFAULT_CHANNEL_UI_NAME;this.props.townSquareDisplayName&&(t=this.props.townSquareDisplayName);let a=P.j.OFFTOPIC_CHANNEL_UI_NAME;return this.props.offTopicDisplayName&&(a=this.props.offTopicDisplayName),e.push(C.a.createElement("div",null,C.a.createElement("h4",null,C.a.createElement(V.a,{id:"sidebar.tutorialScreen1.title",defaultMessage:"Channels"})),C.a.createElement("p",null,C.a.createElement(Ji.b,{id:"sidebar.tutorialScreen1.body",defaultMessage:"**Channels** organize conversations across different topics. They're open to everyone on your team. To send private communications use **Direct Messages** for a single person or **Private Channels** for multiple people."})))),e.push(C.a.createElement("div",null,C.a.createElement("h4",null,C.a.createElement(V.a,{id:"sidebar.tutorialScreen2.title",defaultMessage:'"{townsquare}" and "{offtopic}" channels',values:{townsquare:t,offtopic:a}})),C.a.createElement("p",null,C.a.createElement(V.a,{id:"sidebar.tutorialScreen2.body1",defaultMessage:"Here are two public channels to start:"})),C.a.createElement("p",null,C.a.createElement(Ji.b,{id:"sidebar.tutorialScreen2.body2",defaultMessage:"**{townsquare}** is a place for team-wide communication. Everyone in your team is a member of this channel.",values:{townsquare:t}})),C.a.createElement("p",null,C.a.createElement(Ji.b,{id:"sidebar.tutorialScreen2.body3",defaultMessage:"**{offtopic}** is a place for fun and humor outside of work-related channels. You and your team can decide what other channels to create.",values:{offtopic:a}})))),e.push(C.a.createElement("div",null,C.a.createElement("h4",null,C.a.createElement(V.a,{id:"sidebar.tutorialScreen3.title",defaultMessage:"Creating and Joining Channels"})),C.a.createElement("p",null,C.a.createElement(Ji.b,{id:"sidebar.tutorialScreen3.body1",defaultMessage:'Click **"More..."** to create a new channel or join an existing one.'})),C.a.createElement("p",null,C.a.createElement(Ji.b,{id:"sidebar.tutorialScreen3.body2",defaultMessage:'You can also create a new channel by clicking the **"+" symbol** next to the public or private channel header.'})))),C.a.createElement(ud,{placement:"right",screens:e,overlayClass:"tip-overlay--sidebar",diagnosticsTag:"tutorial_tip_2_channels"})})}componentDidMount(){(this.props.townSquareDisplayName||this.props.offTopicDisplayName)&&this.props.openLhs()}}function cg(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}og(lg,"propTypes",{townSquareDisplayName:v.a.string,offTopicDisplayName:v.a.string,openLhs:v.a.func});class dg extends C.a.PureComponent{constructor(...e){super(...e),cg(this,"isLeaving",!1),cg(this,"handleLeavePublicChannel",()=>{this.props.actions.leaveChannel(this.props.channelId),Object(Ie.d)("ui","ui_public_channel_x_button_clicked")}),cg(this,"handleLeavePrivateChannel",()=>{S.l({id:this.props.channelId,display_name:this.props.channelDisplayName}),Object(Ie.d)("ui","ui_private_channel_x_button_clicked")}),cg(this,"handleLeaveDirectChannel",()=>{if(!this.isLeaving){let e,t;this.isLeaving=!0,this.props.channelType===P.j.DM_CHANNEL?(e=this.props.channelTeammateId,t=P.j.Preferences.CATEGORY_DIRECT_CHANNEL_SHOW):(e=this.props.channelId,t=P.j.Preferences.CATEGORY_GROUP_CHANNEL_SHOW);const a=this.props.currentUserId;this.props.actions.savePreferences(a,[{user_id:a,category:t,name:e,value:"false"}]).then(()=>{this.isLeaving=!1}),Object(Ie.d)("ui","ui_direct_channel_x_button_clicked")}this.props.active&&K.a.push("/".concat(this.props.currentTeamName,"/channels/").concat(this.props.redirectChannel))}),cg(this,"showChannelAsUnread",()=>this.props.unreadMentions>0||this.props.unreadMsgs>0&&this.props.showUnreadForMsgs),cg(this,"render",()=>{if(this.props.channelIsArchived&&!this.props.active)return null;if(!this.props.channelDisplayName||!this.props.channelType)return C.a.createElement("div",null);let e=null;if(!this.showChannelAsUnread()){if(this.props.shouldHideChannel)return"";this.props.channelType===P.j.DM_CHANNEL||this.props.channelType===P.j.GM_CHANNEL?e=this.handleLeaveDirectChannel:"true"===this.props.config.EnableXToLeaveChannelsFromLHS&&(this.props.channelType===P.j.OPEN_CHANNEL&&this.props.channelName!==P.j.DEFAULT_CHANNEL?e=this.handleLeavePublicChannel:this.props.channelType===P.j.PRIVATE_CHANNEL&&(e=this.handleLeavePrivateChannel))}let t="";this.props.active&&(t="active");let a="sidebar-item",n=!1;this.showChannelAsUnread()&&(a+=" unread-title"),this.props.unreadMentions>0&&(a+=" has-badge",n=!0),this.props.channelMuted&&(a+=" muted"),e&&!n&&(a+=" has-close");let s=null;this.props.showTutorialTip&&this.props.channelName===P.j.DEFAULT_CHANNEL&&(s=C.a.createElement(lg,{townSquareDisplayName:this.props.townSquareDisplayName,offTopicDisplayName:this.props.offTopicDisplayName,openLhs:this.props.actions.openLhs}));let i="";i=this.props.channelFake?"/".concat(this.props.currentTeamName,"/channels/").concat(this.props.channelName,"?fakechannel=").concat(encodeURIComponent(this.props.channelStringified)):this.props.channelType===P.j.DM_CHANNEL?"/".concat(this.props.currentTeamName,"/messages/@").concat(this.props.channelTeammateUsername):this.props.channelType===P.j.GM_CHANNEL?"/".concat(this.props.currentTeamName,"/messages/").concat(this.props.channelName):"/".concat(this.props.currentTeamName,"/channels/").concat(this.props.channelName);let r="";return r=this.props.currentUserId===this.props.channelTeammateId?this.props.intl.formatMessage({id:"sidebar.directchannel.you",defaultMessage:"{displayname} (you)"},{displayname:this.props.channelDisplayName}):this.props.channelDisplayName,C.a.createElement("li",{key:this.props.channelName,ref:"channel",className:t},C.a.createElement(ig,{link:i,rowClass:a,channelId:this.props.channelId,channelName:this.props.channelName,botIconUrl:this.props.botIconUrl,channelStatus:this.props.channelStatus,channelType:this.props.channelType,displayName:r,handleClose:e,hasDraft:this.props.hasDraft,badge:n,showUnreadForMsgs:this.props.showUnreadForMsgs,unreadMentions:this.props.unreadMentions,unreadMsgs:this.props.unreadMsgs,membersCount:this.props.membersCount,teammateId:this.props.channelTeammateId,teammateDeletedAt:this.props.channelTeammateDeletedAt,teammateIsBot:this.props.channelTeammateIsBot,channelIsArchived:this.props.channelIsArchived}),s)})}}cg(dg,"propTypes",{config:v.a.object.isRequired,channelId:v.a.string.isRequired,channelName:v.a.string.isRequired,channelDisplayName:v.a.string.isRequired,botIconUrl:v.a.string,channelMuted:v.a.bool,channelType:v.a.string.isRequired,channelStatus:v.a.string,channelFake:v.a.bool,channelStringified:v.a.string,channelTeammateId:v.a.string,channelTeammateUsername:v.a.string,channelTeammateDeletedAt:v.a.number,channelTeammateIsBot:v.a.bool,hasDraft:v.a.bool.isRequired,intl:Y.a.isRequired,showUnreadForMsgs:v.a.bool.isRequired,unreadMsgs:v.a.number.isRequired,unreadMentions:v.a.number.isRequired,active:v.a.bool.isRequired,currentTeamName:v.a.string.isRequired,currentUserId:v.a.string.isRequired,showTutorialTip:v.a.bool.isRequired,townSquareDisplayName:v.a.string,offTopicDisplayName:v.a.string,membersCount:v.a.number.isRequired,shouldHideChannel:v.a.bool.isRequired,channelIsArchived:v.a.bool.isRequired,redirectChannel:v.a.string.isRequired,actions:v.a.shape({savePreferences:v.a.func.isRequired,leaveChannel:v.a.func.isRequired,openLhs:v.a.func.isRequired}).isRequired});const mg=Object(W.c)(dg,{forwardRef:!0});mg.displayName="injectIntl(SidebarChannel)";var ug=mg;var pg=Object(n.connect)((function(){const e=Object(p.makeGetChannel)();return(t,a)=>{const n=a.channelId,s=Object(d.getConfig)(t),i=Object(p.getCurrentChannelId)(t),r=e(t,{id:n})||{},o=!!r.id&&Object(Cs.i)(t,P.I.DRAFT,r.id),l="true"===s.EnableTutorial,h=Object(c.getInt)(t,P.j.Preferences.TUTORIAL_STEP,a.currentUserId,P.j.TutorialSteps.FINISHED),g=Object(p.getChannelsNameMapInCurrentTeam)(t),b=Object(m.getUserIdsInChannels)(t);let f=0;b&&b[r.id]&&(f=b[r.id].size,b[r.id].has(a.currentUserId)&&f--);const _=Object(Jh.getMyChannelMemberships)(t)[n];let E=0,v=0,y=!0;_&&(E=_.mention_count,r&&(v=Math.max(r.total_msg_count-_.msg_count,0)),_.notify_props&&(y=_.notify_props.mark_unread!==P.v.MENTION));const C=Object(c.getTeammateNameDisplaySetting)(t);let w=null,O="",T=0,S="",M=!1,I=0,N=r.display_name,j=null;r.type===P.j.DM_CHANNEL&&((w=Object(m.getUser)(t,r.teammate_id))&&(O=w.id,T=w.delete_at,S=w.username,M=w.is_bot,I=void 0===(I=w.bot_last_icon_update)?0:I),M&&0!==I&&(j=function(e){return"".concat(bn.Client4.getBotRoute(e.id),"/icon?_=").concat(e.bot_last_icon_update||0)}(w)),N=Object($a.displayUsername)(w,C,!1));let A=!1;return r.name!==P.j.DEFAULT_CHANNEL||a.active||!Object(p.shouldHideDefaultChannel)(t,r)||Object(un.isFavoriteChannel)(t.entities.preferences.myPreferences,r.id)||(A=!0),{config:s,channelId:n,channelName:r.name,channelDisplayName:N,botIconUrl:j,channelType:r.type,channelStatus:r.status,channelFake:r.fake,channelMuted:Object(un.isChannelMuted)(_),channelStringified:r.fake&&JSON.stringify(r),channelTeammateId:O,channelTeammateUsername:S,channelTeammateDeletedAt:T,channelTeammateIsBot:M,hasDraft:o&&Boolean(o.message.trim()||o.fileInfos.length||o.uploadsInProgress.length)&&i!==r.id,showTutorialTip:l&&h===P.j.TutorialSteps.CHANNEL_POPOVER,townSquareDisplayName:g[P.j.DEFAULT_CHANNEL]&&g[P.j.DEFAULT_CHANNEL].display_name,offTopicDisplayName:g[P.j.OFFTOPIC_CHANNEL]&&g[P.j.OFFTOPIC_CHANNEL].display_name,showUnreadForMsgs:y,unreadMsgs:v,unreadMentions:E,membersCount:f,shouldHideChannel:A,channelIsArchived:0!==r.delete_at,redirectChannel:Object(p.getRedirectChannelNameForTeam)(t,Object(u.getCurrentTeamId)(t))}}}),(function(e){return{actions:Object(s.bindActionCreators)({savePreferences:ls.savePreferences,leaveChannel:f.e,openLhs:yp.b},e)}}),null,{withRef:!0})(ug);function hg(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class gg extends C.a.PureComponent{constructor(...e){super(...e),hg(this,"renderPublic",()=>{if(!this.props.canCreatePublicChannel)return null;const e="".concat(I.gb("sidebar.createChannel","Create new public channel").toLowerCase()),t=C.a.createElement(mi.a,{id:"new-channel-tooltip"},C.a.createElement(V.a,{id:"sidebar.createChannel",defaultMessage:"Create new public channel"}));return C.a.createElement("button",{id:"createPublicChannel","aria-label":e,type:"button",className:"add-channel-btn cursor--pointer style--none",onClick:this.props.createPublicChannel},C.a.createElement(ui.a,{delayShow:500,placement:"top",overlay:t},C.a.createElement("span",null,"+")))}),hg(this,"renderPrivate",()=>{if(!this.props.canCreatePrivateChannel)return null;const e="".concat(I.gb("sidebar.createGroup","Create new private channel").toLowerCase()),t=C.a.createElement(mi.a,{id:"new-group-tooltip"},C.a.createElement(V.a,{id:"sidebar.createGroup",defaultMessage:"Create new private channel"}));return C.a.createElement("button",{id:"createPrivateChannel","aria-label":e,type:"button",className:"add-channel-btn cursor--pointer style--none",onClick:this.props.createPrivateChannel},C.a.createElement(ui.a,{delayShow:500,placement:"top",overlay:t},C.a.createElement("span",null,"+")))}),hg(this,"renderDirect",()=>{const e=I.gb("sidebar.createDirectMessage","Create new direct message").toLowerCase(),t=C.a.createElement(mi.a,{id:"new-group-tooltip",className:"hidden-xs"},C.a.createElement(V.a,{id:"sidebar.createDirectMessage",defaultMessage:"Create new direct message"}));return C.a.createElement("button",{id:"addDirectChannel","aria-label":e,className:"add-channel-btn cursor--pointer style--none",onClick:this.props.createDirectMessage},C.a.createElement(ui.a,{className:"hidden-xs",delayShow:500,placement:"top",overlay:t},C.a.createElement("span",null,"+")))}),hg(this,"renderCombined",()=>{const{canCreatePublicChannel:e,canCreatePrivateChannel:t}=this.props;if(e&&!t)return this.renderPublic();if(t&&!e)return this.renderPrivate();if(!e&&!t)return null;const a=C.a.createElement(mi.a,{id:"new-group-tooltip",className:"hidden-xs"},C.a.createElement(V.a,{id:"sidebar.createPublicPrivateChannel",defaultMessage:"Create new public or private channel"}));return C.a.createElement("button",{type:"button",className:"add-channel-btn cursor--pointer style--none",onClick:this.props.createPublicDirectChannel},C.a.createElement(ui.a,{className:"hidden-xs",delayShow:500,placement:"top",overlay:a},C.a.createElement("span",null,"+")))})}render(){const{sectionType:e}=this.props;switch(e){case"public":return this.renderPublic();case"private":return this.renderPrivate();case"direct":return this.renderDirect();case"recent":case"alpha":return this.renderCombined()}return null}}function bg(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}hg(gg,"propTypes",{sectionType:E.PropTypes.string.isRequired,createPublicChannel:E.PropTypes.func.isRequired,createPrivateChannel:E.PropTypes.func.isRequired,createDirectMessage:E.PropTypes.func.isRequired,createPublicDirectChannel:E.PropTypes.func.isRequired,canCreatePublicChannel:E.PropTypes.bool.isRequired,canCreatePrivateChannel:E.PropTypes.bool.isRequired});class fg extends C.a.PureComponent{constructor(...e){super(...e),bg(this,"moreChannelsPublic",()=>{this.props.moreChannels("public")}),bg(this,"moreChannelsPrivate",()=>{this.props.moreChannels("private")})}render(){const{sectionType:e,moreDirectMessages:t,browsePublicDirectChannels:a,viewArchivedChannels:n}=this.props,{formatMessage:s}=this.props.intl;switch(e){case"public":return C.a.createElement(pm.a,{teamId:this.props.currentTeamId,permissions:[L.Permissions.JOIN_PUBLIC_CHANNELS]},C.a.createElement("li",{key:"public-channel-more","data-testid":"morePublicButton"},C.a.createElement("button",{id:"sidebarPublicChannelsMore","aria-label":s({id:"sidebar.morePublicAria",defaultMessage:"more public channels"}),className:"nav-more cursor--pointer style--none btn--block",onClick:this.moreChannelsPublic},C.a.createElement(V.a,{id:"sidebar.moreElips",defaultMessage:"More..."}))));case"private":return n?C.a.createElement(pm.a,{teamId:this.props.currentTeamId,permissions:[L.Permissions.JOIN_PUBLIC_CHANNELS]},C.a.createElement("li",{key:"public-channel-more","data-testid":"morePublicButton"},C.a.createElement("button",{id:"sidebarPrivateChannelsMore","aria-label":s({id:"sidebar.morePublicAria",defaultMessage:"more public channels"}),className:"nav-more cursor--pointer style--none btn--block",onClick:this.moreChannelsPrivate},C.a.createElement(V.a,{id:"sidebar.moreElips",defaultMessage:"More..."})))):null;case"direct":return C.a.createElement("li",{key:"dm-more",id:"moreDMButton"},C.a.createElement("button",{id:"moreDirectMessage","aria-label":s({id:"sidebar.moreDmAria",defaultMessage:"more direct messages"}),className:"nav-more cursor--pointer style--none btn--block",onClick:t},C.a.createElement(V.a,{id:"sidebar.moreElips",defaultMessage:"More..."})));case"recent":case"alpha":return C.a.createElement("li",{key:"public-dm-more",id:"moreRecentAlphaButton"},C.a.createElement("button",{id:"morePublicDirectChannels","aria-label":s({id:"sidebar.morePublicDmAria",defaultMessage:"more public channels direct messages"}),className:"nav-more cursor--pointer style--none btn--block",onClick:a},C.a.createElement(V.a,{id:"sidebar.moreElips",defaultMessage:"More..."})))}return null}}bg(fg,"propTypes",{currentTeamId:E.PropTypes.string.isRequired,intl:Y.a.isRequired,sectionType:E.PropTypes.string.isRequired,moreChannels:E.PropTypes.func.isRequired,moreDirectMessages:E.PropTypes.func.isRequired,browsePublicDirectChannels:E.PropTypes.func.isRequired,viewArchivedChannels:E.PropTypes.bool});var _g=Object(W.c)(fg);function Eg(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const vg=["recent","alpha"];class yg extends C.a.PureComponent{constructor(...e){super(...e),Eg(this,"sectionTypeFormatMessageId",e=>{switch(e){case"public":return Object(de.b)("sidebar.types.public");case"private":return Object(de.b)("sidebar.types.private");case"direct":return Object(de.b)("sidebar.types.direct");case"favorite":return Object(de.b)("sidebar.types.favorite");case"unreads":return Object(de.b)("sidebar.types.unreads");case"recent":return Object(de.b)("sidebar.types.recent");default:return Object(de.b)("sidebar.types.alpha")}})}render(){const{sectionType:e,channelName:t,browsePublicDirectChannels:a}=this.props;let n=["hover","focus"];I.Y()&&(n=[]);const s=this.sectionTypeFormatMessageId(e);let i=C.a.createElement(V.a,{id:s,defaultMessage:t});if(-1!==vg.indexOf(e)){const e=C.a.createElement(mi.a,{id:"new-group-tooltip",className:"hidden-xs"},C.a.createElement(V.a,{id:"sidebar.browseChannelDirectChannel",defaultMessage:"Browse Channels and Direct Messages"}));i=C.a.createElement(ui.a,{trigger:n,delayShow:500,placement:"top",overlay:e},C.a.createElement("div",{role:"presentation",className:"public_direct_name",onClick:a},i))}return i}}function Cg(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}Eg(yg,"propTypes",{sectionType:E.PropTypes.string.isRequired,channelName:E.PropTypes.string.isRequired,browsePublicDirectChannels:E.PropTypes.func.isRequired});class wg extends C.a.PureComponent{constructor(...e){super(...e),Cg(this,"state",{show:!0,key:"channels"}),Cg(this,"handleHide",()=>{this.setState({show:!1})}),Cg(this,"handleExit",()=>{this.props.onModalDismissed&&this.props.onModalDismissed()}),Cg(this,"handleSelect",e=>{this.setState({key:e})})}render(){return C.a.createElement(G.a,{dialogClassName:"a11y__modal more-modal more-direct-channels more-public-direct-channels",show:this.state.show,onHide:this.handleHide,onExited:this.handleExit,role:"dialog","aria-labelledby":"morePublicModalLabel"},C.a.createElement(G.a.Header,{closeButton:!0},C.a.createElement(G.a.Title,{componentClass:"h1",id:"morePublicModalLabel"},C.a.createElement(V.a,{id:"more_public_direct_channels.title",defaultMessage:"Channels and Direct Messages"}))),C.a.createElement(G.a.Body,null,C.a.createElement(ee.a,{id:"morePublicDirectChannelTabs",className:"modal-tabs",defaultActiveKey:"channels",activeKey:this.state.key,onSelect:this.handleSelect,unmountOnExit:!0},C.a.createElement(te.a,{eventKey:"channels",title:Object(I.gb)("more_public_direct_channels.channels","Channels")},C.a.createElement(Wp,{handleNewChannel:this.props.handleNewChannel,onModalDismissed:this.handleHide,bodyOnly:!0})),C.a.createElement(te.a,{eventKey:"dm",title:Object(I.gb)("more_public_direct_channels.direct_messages","Direct Messages")},C.a.createElement(nh,{onModalDismissed:this.handleHide,isExistingChannel:!1,bodyOnly:!0})))))}}function Og(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function Tg(e){return C.a.createElement("div",Object.assign({},e,{className:"scrollbar--view"}))}function Sg(e){return C.a.createElement("div",Object.assign({},e,{className:"scrollbar--horizontal"}))}function Pg(e){return C.a.createElement("div",Object.assign({},e,{className:"scrollbar--vertical"}))}Cg(wg,"propTypes",{handleNewChannel:v.a.func,onModalDismissed:v.a.func});const Mg=15,Ig=60;class Ng extends C.a.PureComponent{constructor(e){super(e),Og(this,"updateFavicon",e=>{const t=document.querySelector('link[rel="icon"][sizes="16x16"]'),a=document.querySelector('link[rel="icon"][sizes="32x32"]'),n=document.querySelector('link[rel="icon"][sizes="96x96"]');e?(t.href="string"==typeof Np.a?Np.a:"",a.href="string"==typeof Ap.a?Ap.a:"",n.href="string"==typeof kp.a?kp.a:""):(t.href="string"==typeof Op.a?Op.a:"",a.href="string"==typeof Sp.a?Sp.a:"",n.href="string"==typeof Mp.a?Mp.a:"")}),Og(this,"handleOpenMoreDirectChannelsModal",e=>{e.preventDefault(),this.state.showDirectChannelsModal?this.hideMoreDirectChannelsModal():this.showMoreDirectChannelsModal()}),Og(this,"updateTitle",()=>{const{config:e,currentChannel:t,currentTeam:a,currentTeammate:n,unreads:s}=this.props,{formatMessage:i}=this.props.intl,r=e.SiteName||"";if(t&&a&&t.id){let e=t.display_name;t.type===P.j.DM_CHANNEL&&null!=n&&(e=n.display_name);const a=s.mentionCount>0?"("+s.mentionCount+") ":"",i=s.messageCount>0?"* ":"";document.title=a+i+e+" - "+this.props.currentTeam.display_name+" "+r}else document.title=i({id:"sidebar.team_select",defaultMessage:"{siteName} - Join a team"},{siteName:r||"Mattermost"})}),Og(this,"onScroll",()=>{this.updateUnreadIndicators()}),Og(this,"handleScrollAnimationUpdate",e=>{const{scrollbar:t}=this.refs,a=e.getCurrentValue();t.scrollTop(a)}),Og(this,"scrollToFirstUnreadChannel",()=>{this.scrollToChannel(this.firstUnreadChannel,!0)}),Og(this,"scrollToLastUnreadChannel",()=>{this.scrollToChannel(this.lastUnreadChannel,!0)}),Og(this,"scrollToChannel",(e,t=!1)=>{const a=Rs()(Ai.a.findDOMNode(this.refs[e]));if(!a)return;const n=a.position();if(!n)return;const s=n.top,i=s+a.height(),r=this.refs.scrollbar.getScrollTop(),o=this.refs.scrollbar.getClientHeight();if(s<r){const a=t||!this.state.showTopUnread?Mg:Ig;let n;const i=this.getDisplayedChannels(this.state.orderedChannelIds);n=i.length>0&&i[0]===e?Cp.MathUtil.mapValueInRange(0,0,1,0,1):Cp.MathUtil.mapValueInRange(s-a,0,1,0,1),this.scrollToPosition(n)}else if(i>r+o){const e=i-o+(t||!this.state.showBottomUnread?Mg:Ig);this.scrollToPosition(e)}}),Og(this,"scrollToPosition",e=>{this.scrollAnimation.setCurrentValue(this.refs.scrollbar.getScrollTop()).setAtRest(),this.scrollAnimation.setEndValue(e)}),Og(this,"updateUnreadIndicators",()=>{let e=!1,t=!1;if(this.firstUnreadChannel){const t=Rs()(Ai.a.findDOMNode(this.refs[this.firstUnreadChannel])),a=t?t.position():null;a&&a.top+t.height()-Mg<this.refs.scrollbar.getScrollTop()&&(e=!0)}if(this.lastUnreadChannel){const e=Rs()(Ai.a.findDOMNode(this.refs[this.lastUnreadChannel])),a=e?e.position():null;a&&a.top+Mg>this.refs.scrollbar.getScrollTop()+this.refs.scrollbar.getClientHeight()&&(t=!0)}e===this.state.showTopUnread&&t===this.state.showBottomUnread||this.setState({showTopUnread:e,showBottomUnread:t})}),Og(this,"navigateChannelShortcut",e=>{if(e.altKey&&!e.shiftKey&&(I.W(e,P.j.KeyCodes.UP)||I.W(e,P.j.KeyCodes.DOWN))){if(e.preventDefault(),this.isSwitchingChannel)return;this.isSwitchingChannel=!0;const t=this.getDisplayedChannels(this.state.orderedChannelIds),a=this.props.currentChannel.id;let n=-1;for(let e=0;e<t.length;e++)t[e]===a&&(n=e);let s=n;s=I.W(e,P.j.KeyCodes.DOWN)?n+1:n-1;const i=t[I.hb(s,t.length)];this.props.actions.switchToChannelById(i),this.scrollToChannel(i),this.isSwitchingChannel=!1}else I.e(e)&&e.shiftKey&&I.W(e,P.j.KeyCodes.K)&&this.handleOpenMoreDirectChannelsModal(e)}),Og(this,"navigateUnreadChannelShortcut",e=>{if(e.altKey&&e.shiftKey&&(I.W(e,P.j.KeyCodes.UP)||I.W(e,P.j.KeyCodes.DOWN))){if(e.preventDefault(),this.isSwitchingChannel)return;this.isSwitchingChannel=!0;const t=this.getDisplayedChannels(this.state.orderedChannelIds);let a=0;a=I.W(e,P.j.KeyCodes.UP)?-1:1;const n=ya.b(this.props.currentChannel.id,t,this.props.unreadChannelIds,a);if(-1!==n){const e=t[n];this.props.actions.switchToChannelById(e),this.scrollToChannel(e)}this.isSwitchingChannel=!1}}),Og(this,"getDisplayedChannels",(e=[])=>e.reduce((e,t)=>(e.push(...t.items),e),[])),Og(this,"channelIdIsDisplayedForProps",(e=[],t)=>{const a=this.getDisplayedChannels(e);for(let e=0;e<a.length;e++)if(a[e]===t)return!0;return!1}),Og(this,"showMorePublicDirectChannelsModal",()=>{this.setState({showMorePublicChannelsModal:!0}),Object(Ie.d)("ui","ui_channels_more_public_direct")}),Og(this,"hideMorePublicDirectChannelsModal",()=>{this.setState({showMorePublicChannelsModal:!1})}),Og(this,"onHandleNewChannel",()=>{this.hideMorePublicDirectChannelsModal(),this.showNewChannelModal(P.j.OPEN_CHANNEL)}),Og(this,"showMoreChannelsModal",e=>{this.setState({showMoreChannelsModal:!0,morePublicChannelsModalType:e}),Object(Ie.d)("ui","ui_channels_more_public")}),Og(this,"hideMoreChannelsModal",()=>{this.setState({showMoreChannelsModal:!1})}),Og(this,"showNewPublicChannelModal",()=>{this.showNewChannelModal(P.j.OPEN_CHANNEL)}),Og(this,"showNewPrivateChannelModal",()=>{this.showNewChannelModal(P.j.PRIVATE_CHANNEL)}),Og(this,"showNewChannelModal",e=>{this.setState({newChannelModalType:e})}),Og(this,"hideNewChannelModal",()=>{this.setState({newChannelModalType:""})}),Og(this,"showMoreDirectChannelsModal",()=>{Object(Ie.d)("ui","ui_channels_more_direct"),this.setState({showDirectChannelsModal:!0})}),Og(this,"hideMoreDirectChannelsModal",()=>{this.setState({showDirectChannelsModal:!1})}),Og(this,"openQuickSwitcher",e=>{e.preventDefault(),this.props.actions.openModal({modalId:P.u.QUICK_SWITCH,dialogType:Ch})}),Og(this,"createSidebarChannel",e=>C.a.createElement(pg,{key:e,ref:e,channelId:e,active:e===this.props.currentChannel.id,currentTeamName:this.props.currentTeam.name,currentUserId:this.props.currentUser.id})),Og(this,"renderOrderedChannels",()=>{const{orderedChannelIds:e}=this.state,t=[P.F.UNREADS,P.F.FAVORITE];return C.a.createElement(Ls.a,{ref:"scrollbar",autoHide:!0,autoHideTimeout:500,autoHideDuration:500,renderThumbHorizontal:Sg,renderThumbVertical:Pg,renderView:Tg,onScroll:this.onScroll,style:{position:"absolute"}},C.a.createElement("div",{id:"sidebarChannelContainer",className:"nav-pills__container"},e.map(e=>{const a={type:e.type,name:e.name,items:e.items.map(this.createSidebarChannel)};if(-1!==t.indexOf(a.type)&&0===a.items.length)return null;const n="".concat(a.type,"Channel"),s=a.name.toLowerCase();return C.a.createElement("ul",{key:a.type,"aria-label":s,className:"nav nav-pills nav-stacked a11y__section",id:n+"List",tabIndex:"-1"},C.a.createElement("li",{className:"sidebar-section__header"},C.a.createElement("h4",{role:"presentation",id:n},C.a.createElement(yg,{sectionType:a.type,channelName:a.name,browsePublicDirectChannels:this.showMorePublicDirectChannelsModal})),C.a.createElement(gg,{sectionType:a.type,canCreatePublicChannel:this.props.canCreatePublicChannel,canCreatePrivateChannel:this.props.canCreatePrivateChannel,createPublicChannel:this.showNewPublicChannelModal,createPrivateChannel:this.showNewPrivateChannelModal,createDirectMessage:this.handleOpenMoreDirectChannelsModal,createPublicDirectChannel:this.showNewPublicChannelModal})),a.items,C.a.createElement(_g,{currentTeamId:this.props.currentTeam.id,sectionType:a.type,moreChannels:this.showMoreChannelsModal,moreDirectMessages:this.handleOpenMoreDirectChannelsModal,browsePublicDirectChannels:this.showMorePublicDirectChannelsModal,viewArchivedChannels:this.props.viewArchivedChannels}))})))}),this.badgesActive=!1,this.firstUnreadChannel=null,this.lastUnreadChannel=null,this.isLeaving=new Map,this.isSwitchingChannel=!1,this.closedDirectChannel=!1,this.state={newChannelModalType:"",orderedChannelIds:e.orderedChannelIds,showDirectChannelsModal:!1,showMoreChannelsModal:!1,showMorePublicChannelsModal:!1,morePublicChannelsModalType:"public"},this.animate=new Cp.SpringSystem,this.scrollAnimation=this.animate.createSpring(),this.scrollAnimation.setOvershootClampingEnabled(!0),this.scrollAnimation.addListener({onSpringUpdate:this.handleScrollAnimationUpdate})}static getDerivedStateFromProps(e,t){return e.orderedChannelIds[0].type===P.F.UNREADS&&t.orderedChannelIds[0].type===P.F.UNREADS&&t.orderedChannelIds[0].items.length===e.orderedChannelIds[0].items.length&&t.orderedChannelIds[0].items.includes(e.currentChannel.id)?null:e.orderedChannelIds!==t.orderedChannelIds?{orderedChannelIds:e.orderedChannelIds}:null}componentDidMount(){this.updateUnreadIndicators(),document.addEventListener("keydown",this.navigateChannelShortcut),document.addEventListener("keydown",this.navigateUnreadChannelShortcut)}componentDidUpdate(e){if(this.props.currentTeam===e.currentTeam&&this.props.currentChannel.id===e.currentChannel.id&&!this.channelIdIsDisplayedForProps(this.props.orderedChannelIds,this.props.currentChannel.id)&&this.channelIdIsDisplayedForProps(e.orderedChannelIds,this.props.currentChannel.id))return this.closedDirectChannel=!0,void Object(S.f)();this.props.currentTeam!==e.currentTeam&&this.refs.scrollbar.scrollToTop(),this.props.currentChannel.id,e.currentChannel.id,this.props.currentChannel.id!==e.currentChannel.id&&(this.closedDirectChannel?this.closedDirectChannel=!1:this.props.actions.close()),this.updateTitle(),this.setBadgesActiveAndFavicon(),this.setFirstAndLastUnreadChannels(),this.updateUnreadIndicators()}componentWillUnmount(){document.removeEventListener("keydown",this.navigateChannelShortcut),document.removeEventListener("keydown",this.navigateUnreadChannelShortcut),this.animate.deregisterSpring(this.scrollAnimation),this.animate.removeAllListeners(),this.scrollAnimation.destroy()}setBadgesActiveAndFavicon(){if(!M.f()&&!M.c())return;document.querySelector('link[rel="icon"]')&&(this.lastBadgesActive=this.badgesActive,this.badgesActive=this.props.unreads.mentionCount>0,this.lastBadgesActive!==this.badgesActive&&this.updateFavicon(this.badgesActive))}setFirstAndLastUnreadChannels(){const{currentChannel:e,unreadChannelIds:t}=this.props,{orderedChannelIds:a}=this.state;this.getDisplayedChannels(a).map(a=>(a!==e.id&&t.includes(a)&&(this.firstUnreadChannel||(this.firstUnreadChannel=a),this.lastUnreadChannel=a),null))}render(){const{channelSwitcherOption:e}=this.props,t=I.gb("accessibility.sections.lhsList","channel sidebar region");if(null==this.props.currentTeam||null==this.props.currentUser)return C.a.createElement("div",null);this.firstUnreadChannel=null,this.lastUnreadChannel=null;let a=!1;""!==this.state.newChannelModalType&&(a=!0);const n=C.a.createElement(V.a,{id:"sidebar.unreads",defaultMessage:"More unreads"}),s=C.a.createElement(V.a,{id:"sidebar.unreads",defaultMessage:"More unreads"});let i,r;this.state.showDirectChannelsModal&&(i=C.a.createElement(nh,{onModalDismissed:this.hideMoreDirectChannelsModal,isExistingChannel:!1})),this.state.showMoreChannelsModal&&(r=C.a.createElement(Wp,{onModalDismissed:this.hideMoreChannelsModal,handleNewChannel:()=>{this.hideMoreChannelsModal(),this.showNewChannelModal(P.j.OPEN_CHANNEL)},morePublicChannelsModalType:this.state.morePublicChannelsModalType}));let o,l=null;if(e){let e=Object(de.b)("quick_switch_modal.channelsShortcut.windows"),t="- CTRL+K";I.X()&&(e=Object(de.b)("quick_switch_modal.channelsShortcut.mac"),t="- ⌘K");const a=C.a.createElement("span",{className:"switch__shortcut hidden-xs"},C.a.createElement(V.a,{id:e,defaultMessage:t}));l=C.a.createElement("div",{className:"sidebar__switcher"},C.a.createElement("button",{id:"sidebarSwitcherButton",className:"btn btn-link",onClick:this.openQuickSwitcher},C.a.createElement(V.a,{id:"channel_switch_modal.title",defaultMessage:"Switch Channels"}),a))}return this.state.showMorePublicChannelsModal&&(o=C.a.createElement(wg,{onModalDismissed:this.hideMorePublicDirectChannelsModal,handleNewChannel:this.onHandleNewChannel,isExistingChannel:!1})),C.a.createElement("div",{className:Os()("sidebar--left",{"move--right":this.props.isOpen&&I.Y()}),id:"sidebar-left",key:"sidebar-left"},C.a.createElement(Lh,{show:a,canCreatePublicChannel:this.props.canCreatePublicChannel,canCreatePrivateChannel:this.props.canCreatePrivateChannel,channelType:this.state.newChannelModalType,onModalDismissed:this.hideNewChannelModal}),o,i,r,C.a.createElement(Qh,null),C.a.createElement("div",{className:"sidebar--left__icons"},C.a.createElement(A.a,{pluggableName:"LeftSidebarHeader"})),C.a.createElement("div",{id:"lhsList",role:"application","aria-label":t,tabIndex:"-1",className:"sidebar--left__list a11y__region","data-a11y-sort-order":"6"},C.a.createElement(Uh,{name:"Top",show:this.state.showTopUnread,onClick:this.scrollToFirstUnreadChannel,extraClass:"nav-pills__unread-indicator-top",content:n}),C.a.createElement(Uh,{name:"Bottom",show:this.state.showBottomUnread,onClick:this.scrollToLastUnreadChannel,extraClass:"nav-pills__unread-indicator-bottom",content:s}),this.renderOrderedChannels()),l)}}Og(Ng,"propTypes",{config:E.PropTypes.object.isRequired,isOpen:E.PropTypes.bool.isRequired,unreadChannelIds:E.PropTypes.array,orderedChannelIds:E.PropTypes.arrayOf(E.PropTypes.shape({type:E.PropTypes.string.isRequired,name:E.PropTypes.string.isRequired,items:E.PropTypes.array.isRequired})),currentChannel:E.PropTypes.object,currentTeammate:E.PropTypes.object,currentTeam:E.PropTypes.object,currentUser:E.PropTypes.object,intl:Y.a.isRequired,unreads:E.PropTypes.object.isRequired,canCreatePublicChannel:E.PropTypes.bool.isRequired,canCreatePrivateChannel:E.PropTypes.bool.isRequired,channelSwitcherOption:E.PropTypes.bool.isRequired,viewArchivedChannels:E.PropTypes.bool,actions:E.PropTypes.shape({close:E.PropTypes.func.isRequired,switchToChannelById:E.PropTypes.func.isRequired,openModal:E.PropTypes.func.isRequired}).isRequired}),Og(Ng,"defaultProps",{currentChannel:{}});var jg=Object(W.c)(Ng);var Ag=Object(n.connect)((function(e){const t=Object(d.getConfig)(e),a=Object(p.getCurrentChannel)(e),n=a&&a.teammate_id&&Object(p.getCurrentChannel)(e,a.teammate_id),s=Object(u.getCurrentTeam)(e);let i=!1,r=!1;s&&(i=Object(D.haveITeamPermission)(e,{team:s.id,permission:yr.a.CREATE_PUBLIC_CHANNEL}),r=Object(D.haveITeamPermission)(e,{team:s.id,permission:yr.a.CREATE_PRIVATE_CHANNEL}));const o=Object(c.getSidebarPreferences)(e),l=e.views.channel.keepChannelIdAsUnread;return{config:t,unreadChannelIds:Object(p.getSortedUnreadChannelIds)(e,l),orderedChannelIds:Object(p.getOrderedChannelIds)(e,l,o.grouping,o.sorting,"true"===o.unreads_at_top,"true"===o.favorite_at_top),channelSwitcherOption:Object(c.getBool)(e,L.Preferences.CATEGORY_SIDEBAR_SETTINGS,"channel_switcher_section","true"),currentChannel:a,currentTeammate:n,currentTeam:s,currentUser:Object(m.getCurrentUser)(e),canCreatePublicChannel:i,canCreatePrivateChannel:r,isOpen:rp(e),unreads:Object(p.getUnreads)(e),viewArchivedChannels:"true"===Object(d.getConfig)(e).ExperimentalViewArchivedChannels}}),(function(e){return{actions:Object(s.bindActionCreators)({close:yp.a,switchToChannelById:f.m,openModal:x.b},e)}}))(jg),Rg=a(1275);function kg(e,t=""){return async(a,n)=>{const{data:s}=await a(Object(k.getPostThread)(e));if(!s)return void K.a.replace("/error?type=".concat(P.l.PERMALINK_NOT_FOUND,"&returnTo=").concat(t));const i=n(),r=s.posts[s.order[0]].channel_id;let l=i.entities.channels.channels[r];const c=Object(u.getCurrentTeamId)(i);if(!l){const{data:e}=await a(Object(o.getChannel)(r));if(!e)return void K.a.replace("/error?type=".concat(P.l.PERMALINK_NOT_FOUND,"&returnTo=").concat(t));l=e}if(!i.entities.channels.myMembers[r]){if(l.type===P.j.DM_CHANNEL||l.type===P.j.GM_CHANNEL)return void K.a.replace("/error?type=".concat(P.l.PERMALINK_NOT_FOUND,"&returnTo=").concat(t));await a(Object(o.joinChannel)(Object(m.getCurrentUserId)(n()),null,r))}l.team_id&&l.team_id!==c?K.a.replace("/error?type=".concat(P.l.PERMALINK_NOT_FOUND,"&returnTo=").concat(t)):(l&&l.type===P.j.DM_CHANNEL?Object(cs.d)(l.id):l&&l.type===P.j.GM_CHANNEL&&Object(cs.e)(l.id),a(Object(o.selectChannel)(r)),a({type:P.f.RECEIVED_FOCUSED_POST,data:e,channelId:r}),a(Object(_a.d)()),a(Object(o.getChannelStats)(r)))}}a(1427);function Lg(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const Dg=P.Q.KeyCodes,xg=Object(gs.defineMessages)({error:{id:Object(de.b)("edit_channel_header_modal.error"),defaultMessage:"This channel header is too long, please enter a shorter one"}});class Ug extends C.a.PureComponent{constructor(e){super(e),Lg(this,"handleModalKeyDown",e=>{Object(I.W)(e,Dg.ESCAPE)&&this.hideModal()}),Lg(this,"updatePreview",e=>{this.setState({preview:e})}),Lg(this,"handleChange",e=>{this.setState({header:e.target.value})}),Lg(this,"handleSave",async()=>{const{header:e}=this.state;if(e===this.props.channel.header)return void this.hideModal();this.setState({saving:!0});const{channel:t,actions:a}=this.props,{error:n}=await a.patchChannel(t.id,{header:e});n?this.setState({serverError:n,saving:!1}):this.hideModal()}),Lg(this,"hideModal",()=>{this.props.actions.closeModal(P.u.EDIT_CHANNEL_HEADER)}),Lg(this,"focusTextbox",()=>{this.refs.editChannelHeaderTextbox&&this.refs.editChannelHeaderTextbox.getWrappedInstance().focus()}),Lg(this,"blurTextbox",()=>{this.refs.editChannelHeaderTextbox&&this.refs.editChannelHeaderTextbox.getWrappedInstance().blur()}),Lg(this,"handleEntering",()=>{this.focusTextbox()}),Lg(this,"handleKeyDown",e=>{const{ctrlSend:t}=this.props;t&&Object(I.W)(e,Dg.ENTER)&&!0===e.ctrlKey&&this.handleKeyPress(e)}),Lg(this,"handleKeyPress",e=>{const{ctrlSend:t}=this.props;!Object(M.n)()&&(t&&e.ctrlKey||!t)&&(!Object(I.W)(e,Dg.ENTER)||e.shiftKey||e.altKey||(e.preventDefault(),this.blurTextbox(),this.handleSave(e)))}),Lg(this,"renderError",()=>{const{serverError:e}=this.state;if(!e)return null;let t;return t="model.channel.is_valid.header.app_error"===e.server_error_id?this.props.intl.formatMessage(xg.error):e.message,C.a.createElement("div",{className:"form-group has-error"},C.a.createElement("br",null),C.a.createElement("label",{className:"control-label"},t))}),this.state={preview:!1,header:e.channel.header,saving:!1}}render(){let e=null;return e=this.props.channel.type===P.Q.DM_CHANNEL?C.a.createElement(V.a,{id:"edit_channel_header_modal.title_dm",defaultMessage:"Edit Header"}):C.a.createElement(V.a,{id:"edit_channel_header_modal.title",defaultMessage:"Edit Header for {channel}",values:{channel:this.props.channel.display_name}}),C.a.createElement(G.a,{dialogClassName:"a11y__modal",show:this.props.show,keyboard:!1,onKeyDown:this.handleModalKeyDown,onHide:this.hideModal,onEntering:this.handleEntering,onExited:this.hideModal,role:"dialog","aria-labelledby":"editChannelHeaderModalLabel"},C.a.createElement(G.a.Header,{closeButton:!0},C.a.createElement(G.a.Title,{componentClass:"h1",id:"editChannelHeaderModalLabel"},e)),C.a.createElement(G.a.Body,{bsClass:"modal-body edit-modal-body"},C.a.createElement("div",null,C.a.createElement("p",null,C.a.createElement(V.a,{id:"edit_channel_header_modal.description",defaultMessage:"Edit the text appearing next to the channel name in the channel header."})),C.a.createElement("div",{className:"textarea-wrapper"},C.a.createElement(Mn,{value:this.state.header,onChange:this.handleChange,onKeyPress:this.handleKeyPress,onKeyDown:this.handleKeyDown,supportsCommands:!1,suggestionListStyle:"bottom",createMessage:Object(I.gb)("edit_channel_header.editHeader","Edit the Channel Header..."),previewMessageLink:Object(I.gb)("edit_channel_header.previewHeader","Edit Header"),handlePostError:this.handlePostError,id:"edit_textbox",ref:"editChannelHeaderTextbox",characterLimit:1024,preview:this.state.preview})),C.a.createElement("div",{className:"post-create-footer"},C.a.createElement(An,{characterLimit:1024,showPreview:this.state.preview,ref:this.setTextboxLinksRef,updatePreview:this.updatePreview,message:this.state.header})),C.a.createElement("br",null),this.renderError())),C.a.createElement(G.a.Footer,null,C.a.createElement("button",{type:"button",className:"btn btn-link cancel-button",onClick:this.hideModal},C.a.createElement(V.a,{id:"edit_channel_header_modal.cancel",defaultMessage:"Cancel"})),C.a.createElement("button",{disabled:this.state.saving,type:"button",className:"btn btn-primary save-button",onClick:this.handleSave},C.a.createElement(V.a,{id:"edit_channel_header_modal.save",defaultMessage:"Save"}))))}}Lg(Ug,"propTypes",{intl:Y.a.isRequired,channel:v.a.object.isRequired,show:v.a.bool.isRequired,ctrlSend:v.a.bool.isRequired,actions:v.a.shape({closeModal:v.a.func.isRequired,patchChannel:v.a.func.isRequired}).isRequired});var qg=Object(W.c)(Ug);var Hg=Object(n.connect)((function(e){return{show:Object(gd.a)(e,P.u.EDIT_CHANNEL_HEADER),ctrlSend:Object(c.getBool)(e,L.Preferences.CATEGORY_ADVANCED_SETTINGS,"send_on_ctrl_enter")}}),(function(e){return{actions:Object(s.bindActionCreators)({closeModal:x.a,patchChannel:o.patchChannel},e)}}))(qg);function Fg(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const Bg=50,Gg=20;class Vg extends C.a.Component{constructor(e){super(e),Fg(this,"addValue",e=>{const t=Object.assign([],this.state.values);-1===t.indexOf(e)&&t.push(e),this.setState({values:t})}),Fg(this,"onHide",()=>{this.setState({show:!1})}),Fg(this,"handleInviteError",e=>{e&&this.setState({saving:!1,inviteError:e.message})}),Fg(this,"handleDelete",e=>{this.setState({values:e})}),Fg(this,"setUsersLoadingState",e=>{this.setState({loadingUsers:e})}),Fg(this,"handlePageChange",(e,t)=>{e>t&&(this.setUsersLoadingState(!0),this.props.actions.getProfilesNotInChannel(this.props.channel.team_id,this.props.channel.id,this.props.channel.group_constrained,e+1,Bg).then(()=>{this.setUsersLoadingState(!1)}))}),Fg(this,"handleSubmit",e=>{const{actions:t,channel:a}=this.props;e&&e.preventDefault();const n=this.state.values.map(e=>e.id);0!==n.length&&(this.setState({saving:!0}),t.addUsersToChannel(a.id,n).then(e=>{e.error?this.handleInviteError(e.error):(this.setState({saving:!1,inviteError:null}),this.onHide())}))}),Fg(this,"search",e=>{const t=e.trim();clearTimeout(this.searchTimeoutId),this.setState({term:t}),this.searchTimeoutId=setTimeout(async()=>{this.setUsersLoadingState(!0);const e={team_id:this.props.channel.team_id,not_in_channel_id:this.props.channel.id,group_constrained:this.props.channel.group_constrained};await this.props.actions.searchProfiles(t,e),this.setUsersLoadingState(!1)},P.Q.SEARCH_TIMEOUT_MILLISECONDS)}),Fg(this,"renderAriaLabel",e=>e?e.username:null),Fg(this,"renderOption",(e,t,a,n)=>{var s="";return t&&(s="more-modal__row--selected"),C.a.createElement("div",{key:e.id,ref:t?"selected":e.id,className:"more-modal__row clickable "+s,onClick:()=>a(e),onMouseMove:()=>n(e)},C.a.createElement(zr.a,{src:bn.Client4.getProfilePictureUrl(e.id,e.last_picture_update),size:"md"}),C.a.createElement("div",{className:"more-modal__details"},C.a.createElement("div",{className:"more-modal__name"},Object(I.k)(e),C.a.createElement(tn.a,{show:Boolean(e.is_bot),className:"badge-popoverlist"}),C.a.createElement(an.a,{show:Object(I.V)(e),className:"popoverlist"}))),C.a.createElement("div",{className:"more-modal__actions"},C.a.createElement("div",{className:"more-modal__actions--round"},C.a.createElement(Yp.a,null))))}),this.searchTimeoutId=0,this.state={values:[],term:"",show:!0,saving:!1,loadingUsers:!0}}componentDidMount(){this.props.actions.getProfilesNotInChannel(this.props.channel.team_id,this.props.channel.id,this.props.channel.group_constrained,0).then(()=>{this.setUsersLoadingState(!1)}),this.props.actions.getTeamStats(this.props.channel.team_id)}renderValue(e){return e.data.username}render(){let e=null;this.state.inviteError&&(e=C.a.createElement("label",{className:"has-error control-label"},this.state.inviteError));const t=C.a.createElement(V.a,{id:"multiselect.numPeopleRemaining",defaultMessage:"Use ↑↓ to browse, ↵ to select. You can add {num, number} more {num, plural, one {person} other {people}}. ",values:{num:Gg-this.state.values.length}}),a=Object(I.gb)("multiselect.add","Add"),n=Object(I.gb)("multiselect.adding","Adding..."),s=Object($a.filterProfilesMatchingTerm)(this.props.profilesNotInCurrentChannel,this.state.term).filter(e=>0===e.delete_at&&!this.props.profilesNotInCurrentTeam.includes(e)),i=C.a.createElement(zp.a,{key:"addUsersToChannelKey",options:s,optionRenderer:this.renderOption,values:this.state.values,valueRenderer:this.renderValue,ariaLabelRenderer:this.renderAriaLabel,perPage:Bg,handlePageChange:this.handlePageChange,handleInput:this.search,handleDelete:this.handleDelete,handleAdd:this.addValue,handleSubmit:this.handleSubmit,maxValues:Gg,numRemainingText:t,buttonSubmitText:a,buttonSubmitLoadingText:n,saving:this.state.saving,loading:this.state.loadingUsers,placeholderText:Object(I.gb)("multiselect.placeholder","Search and add members")});return C.a.createElement(G.a,{id:"addUsersToChannelModal",dialogClassName:"a11y__modal more-modal",show:this.state.show,onHide:this.onHide,onExited:this.props.onHide,role:"dialog","aria-labelledby":"channelInviteModalLabel"},C.a.createElement(G.a.Header,{closeButton:!0},C.a.createElement(G.a.Title,{componentClass:"h1",id:"channelInviteModalLabel"},C.a.createElement(V.a,{id:"channel_invite.addNewMembers",defaultMessage:"Add New Members to "}),C.a.createElement("span",{className:"name"},this.props.channel.display_name))),C.a.createElement(G.a.Body,{role:"application"},e,i))}}Fg(Vg,"propTypes",{profilesNotInCurrentChannel:v.a.array.isRequired,profilesNotInCurrentTeam:v.a.array.isRequired,onHide:v.a.func.isRequired,channel:v.a.object.isRequired,actions:v.a.shape({addUsersToChannel:v.a.func.isRequired,getProfilesNotInChannel:v.a.func.isRequired,getTeamStats:v.a.func.isRequired,searchProfiles:v.a.func.isRequired}).isRequired});var Wg=Object(n.connect)((function(e){return{profilesNotInCurrentChannel:Object(m.getProfilesNotInCurrentChannel)(e),profilesNotInCurrentTeam:Object(m.getProfilesNotInCurrentTeam)(e)}}),(function(e){return{actions:Object(s.bindActionCreators)({addUsersToChannel:_a.a,getProfilesNotInChannel:r.getProfilesNotInChannel,getTeamStats:l.getTeamStats,searchProfiles:r.searchProfiles},e)}}))(Vg);function zg(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const Yg=3;class Kg extends C.a.Component{constructor(e){super(e),zg(this,"handleRemoveFromChannel",()=>{if(this.state.removing)return;const{actions:e,channel:t,user:a}=this.props;this.setState({removing:!0}),e.removeChannelMember(t.id,a.id).then(a=>{a.error?this.setState({serverError:a.error.message,removing:!1}):(this.setState({removing:!1}),e.getChannelStats(t.id))})}),zg(this,"handleMakeChannelMember",async()=>{const{error:e}=await this.props.actions.updateChannelMemberSchemeRoles(this.props.channel.id,this.props.user.id,!0,!1);e?this.setState({serverError:e.message}):(this.props.actions.getChannelStats(this.props.channel.id),this.props.actions.getChannelMember(this.props.channel.id,this.props.user.id))}),zg(this,"handleMakeChannelAdmin",async()=>{const{error:e}=await this.props.actions.updateChannelMemberSchemeRoles(this.props.channel.id,this.props.user.id,!0,!0);e?this.setState({serverError:e.message}):(this.props.actions.getChannelStats(this.props.channel.id),this.props.actions.getChannelMember(this.props.channel.id,this.props.user.id))}),this.state={serverError:null,removing:!1}}renderRole(e,t){return e?C.a.createElement(V.a,{id:"channel_members_dropdown.channel_admin",defaultMessage:"Channel Admin"}):t?C.a.createElement(V.a,{id:"channel_members_dropdown.channel_guest",defaultMessage:"Channel Guest"}):C.a.createElement(V.a,{id:"channel_members_dropdown.channel_member",defaultMessage:"Channel Member"})}render(){const{index:e,totalUsers:t,isLicensed:a,channelMember:n,user:s,channel:i,currentUserId:r,canChangeMemberRoles:o,canRemoveMember:l}=this.props,{serverError:c}=this.state,d=I.P(a,n.roles,n.scheme_admin),m=I.V(s),u=!d&&!m,p=i.name===P.j.DEFAULT_CHANNEL,h=this.renderRole(d,m);if(s.id===r)return null;const g=o&&d,b=o&&a&&u,f=l&&!i.group_constrained&&(!p||m);return g||b||f?C.a.createElement(Ri.a,null,C.a.createElement("button",{className:"dropdown-toggle theme color--link style--none",type:"button"},C.a.createElement("span",{className:"sr-only"},s.username),C.a.createElement("span",null,h," "),C.a.createElement(Om,null)),C.a.createElement(ki.a,{openLeft:!0,openUp:t>Yg&&t-e<=Yg,ariaLabel:I.gb("channel_members_dropdown.menuAriaLabel","Channel member role change")},C.a.createElement(ki.a.ItemAction,{show:g,onClick:this.handleMakeChannelMember,text:I.gb("channel_members_dropdown.make_channel_member","Make Channel Member")}),C.a.createElement(ki.a.ItemAction,{show:b,onClick:this.handleMakeChannelAdmin,text:I.gb("channel_members_dropdown.make_channel_admin","Make Channel Admin")}),C.a.createElement(ki.a.ItemAction,{show:f,onClick:this.handleRemoveFromChannel,text:I.gb("channel_members_dropdown.remove_from_channel","Remove from Channel")}),c&&C.a.createElement("div",{className:"has-error"},C.a.createElement("label",{className:"has-error control-label"},c)))):p?C.a.createElement("div",null):C.a.createElement("div",null,h)}}zg(Kg,"propTypes",{channel:v.a.object.isRequired,user:v.a.object.isRequired,currentUserId:v.a.string.isRequired,channelMember:v.a.object.isRequired,isLicensed:v.a.bool.isRequired,canChangeMemberRoles:v.a.bool.isRequired,canRemoveMember:v.a.bool.isRequired,index:v.a.number.isRequired,totalUsers:v.a.number.isRequired,actions:v.a.shape({getChannelStats:v.a.func.isRequired,updateChannelMemberSchemeRoles:v.a.func.isRequired,removeChannelMember:v.a.func.isRequired,getChannelMember:v.a.func.isRequired}).isRequired});var Qg=Object(n.connect)((function(e,t){const{channel:a}=t,n=Object(D.haveIChannelPermission)(e,{channel:a.id,team:a.team_id,permission:L.Permissions.MANAGE_CHANNEL_ROLES}),s="true"===Object(d.getLicense)(e).IsLicensed,i=Object(ya.a)(a);return{currentUserId:Object(m.getCurrentUserId)(e),isLicensed:s,canChangeMemberRoles:n,canRemoveMember:i}}),(function(e){return{actions:Object(s.bindActionCreators)({getChannelMember:o.getChannelMember,getChannelStats:o.getChannelStats,updateChannelMemberSchemeRoles:o.updateChannelMemberSchemeRoles,removeChannelMember:o.removeChannelMember},e)}}))(Kg);function Jg(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const Zg=50;class Xg extends C.a.PureComponent{constructor(e){super(e),Jg(this,"loadComplete",()=>{this.setState({loading:!1})}),Jg(this,"nextPage",e=>{this.props.actions.loadProfilesAndTeamMembersAndChannelMembers(e+1,Zg)}),Jg(this,"handleSearch",e=>{this.props.actions.setModalSearchTerm(e)}),this.searchTimeoutId=0,this.state={loading:!0}}componentDidMount(){const{actions:e,currentChannelId:t,currentTeamId:a}=this.props;e.loadProfilesAndTeamMembersAndChannelMembers(0,P.Q.PROFILE_CHUNK_SIZE,a,t).then(({data:e})=>{e&&this.loadComplete()}),e.getChannelStats(t)}componentWillUnmount(){this.props.actions.setModalSearchTerm("")}componentDidUpdate(e){if(e.searchTerm!==this.props.searchTerm){clearTimeout(this.searchTimeoutId);const t=this.props.searchTerm;if(""===t)return this.loadComplete(),void(this.searchTimeoutId=0);const a=setTimeout(async()=>{const{data:n}=await e.actions.searchProfiles(t,{team_id:this.props.currentTeamId,in_channel_id:this.props.currentChannelId});a===this.searchTimeoutId&&(this.props.actions.loadStatusesForProfilesList(n),this.props.actions.loadTeamMembersAndChannelMembersForProfilesList(n,this.props.currentTeamId,this.props.currentChannelId).then(({data:e})=>{e&&this.loadComplete()}))},P.Q.SEARCH_TIMEOUT_MILLISECONDS);this.searchTimeoutId=a}}render(){if(this.state.loading)return C.a.createElement(Eu.a,null);const e=0!==this.props.channel.delete_at;return C.a.createElement(wm,{users:this.props.usersToDisplay,usersPerPage:Zg,total:this.props.totalChannelMembers,nextPage:this.nextPage,search:this.handleSearch,actions:e?[]:[Qg],actionUserProps:this.props.actionUserProps,focusOnMount:!M.n()})}}function $g(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function eb(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}Jg(Xg,"propTypes",{currentTeamId:v.a.string.isRequired,currentChannelId:v.a.string.isRequired,searchTerm:v.a.string.isRequired,usersToDisplay:v.a.arrayOf(v.a.object).isRequired,actionUserProps:v.a.object.isRequired,totalChannelMembers:v.a.number.isRequired,channel:v.a.object.isRequired,actions:v.a.shape({searchProfiles:v.a.func.isRequired,getChannelStats:v.a.func.isRequired,setModalSearchTerm:v.a.func.isRequired,loadProfilesAndTeamMembersAndChannelMembers:v.a.func.isRequired,loadStatusesForProfilesList:v.a.func.isRequired,loadTeamMembersAndChannelMembersForProfilesList:v.a.func.isRequired}).isRequired});const tb=Object(Hs.createSelector)((e,t)=>t,u.getMembersInCurrentTeam,p.getMembersInCurrentChannel,p.getCurrentChannel,(e=[],t={},a={},n={})=>{const s={},i=[];for(let r=0;r<e.length;r++){const o=e[r];t[o.id]&&a[o.id]&&0===o.delete_at&&(i.push(o),s[o.id]={channel:n,teamMember:t[o.id],channelMember:a[o.id]})}return{usersToDisplay:i.sort($a.sortByUsername),actionUserProps:s}});var ab=Object(n.connect)((function(e){const t=e.views.search.modalSearch;let a;a=t?Object(m.searchProfilesInCurrentChannel)(e,t):Object(m.getProfilesInCurrentChannel)(e);const n=Object(p.getCurrentChannelStats)(e)||{member_count:0};return function(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?$g(a,!0).forEach((function(t){eb(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):$g(a).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}({},tb(e,a),{currentTeamId:e.entities.teams.currentTeamId,currentChannelId:e.entities.channels.currentChannelId,searchTerm:t,totalChannelMembers:n.member_count})}),(function(e){return{actions:Object(s.bindActionCreators)({searchProfiles:r.searchProfiles,getChannelStats:o.getChannelStats,setModalSearchTerm:vm.a,loadProfilesAndTeamMembersAndChannelMembers:cs.h,loadStatusesForProfilesList:g.b,loadTeamMembersAndChannelMembersForProfilesList:cs.l},e)}}))(Xg);function nb(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class sb extends C.a.PureComponent{constructor(e){super(e),nb(this,"handleHide",()=>{this.setState({show:!1})}),nb(this,"handleExit",()=>{this.props.onHide()}),nb(this,"onAddNewMembersButton",()=>{const{channel:e,actions:t}=this.props;t.openModal({modalId:P.u.CHANNEL_INVITE,dialogType:Wg,dialogProps:{channel:e}}),this.handleExit()}),this.state={show:!0}}render(){const e=0!==this.props.channel.delete_at;return C.a.createElement("div",null,C.a.createElement(G.a,{dialogClassName:"a11y__modal more-modal more-modal--action",show:this.state.show,onHide:this.handleHide,onExited:this.handleExit,role:"dialog","aria-labelledby":"channelMembersModalLabel",id:"channelMembersModal"},C.a.createElement(G.a.Header,{closeButton:!0},C.a.createElement(G.a.Title,{componentClass:"h1",id:"channelMembersModalLabel"},C.a.createElement("span",{className:"name"},this.props.channel.display_name),C.a.createElement(V.a,{id:"channel_members_modal.members",defaultMessage:" Members"})),this.props.canManageChannelMembers&&!e&&C.a.createElement("a",{id:"showInviteModal",className:"btn btn-md btn-primary",href:"#",onClick:this.onAddNewMembersButton},C.a.createElement(V.a,{id:"channel_members_modal.addNew",defaultMessage:" Add Members"}))),C.a.createElement(G.a.Body,null,C.a.createElement(ab,{channel:this.props.channel}))))}}nb(sb,"propTypes",{canManageChannelMembers:v.a.bool.isRequired,channel:v.a.object.isRequired,onHide:v.a.func.isRequired,actions:v.a.shape({openModal:v.a.func.isRequired}).isRequired});var ib=Object(n.connect)(e=>({canManageChannelMembers:Object(p.canManageChannelMembers)(e)}),e=>({actions:Object(s.bindActionCreators)({openModal:x.b},e)}))(sb);class rb extends C.a.PureComponent{render(){return C.a.createElement("span",this.props,C.a.createElement(V.a,{id:"generic_icons.member",defaultMessage:"Member Icon"},e=>C.a.createElement("svg",{width:"14px",height:"14px",viewBox:"0 0 16 16",role:"img","aria-label":e},C.a.createElement("g",{stroke:"none",strokeWidth:"1",fill:"inherit",fillRule:"evenodd"},C.a.createElement("g",{transform:"translate(-725.000000, -32.000000)",fillRule:"nonzero",fill:"inherit"},C.a.createElement("g",null,C.a.createElement("g",{transform:"translate(676.000000, 22.000000)"},C.a.createElement("path",{d:"M64.9481342,24 C64.6981342,20.955 63.2551342,19.076 60.6731342,18.354 C61.4831342,17.466 61.9881342,16.296 61.9881342,15 C61.9881342,12.238 59.7501342,10 56.9881342,10 C54.2261342,10 51.9881342,12.238 51.9881342,15 C51.9881342,16.297 52.4941342,17.467 53.3031342,18.354 C50.7221342,19.076 49.2771342,20.955 49.0271342,24 C49.0161342,24.146 49.0061342,24.577 49.0001342,25.001 C48.9911342,25.553 49.4361342,26 49.9881342,26 L63.9881342,26 C64.5411342,26 64.9851342,25.553 64.9761342,25.001 C64.9701342,24.577 64.9601342,24.146 64.9481342,24 Z M56.9881342,12 C58.6421342,12 59.9881342,13.346 59.9881342,15 C59.9881342,16.654 58.6421342,18 56.9881342,18 C55.3341342,18 53.9881342,16.654 53.9881342,15 C53.9881342,13.346 55.3341342,12 56.9881342,12 Z M51.0321342,24 C51.2981342,21.174 52.7911342,20 55.9881342,20 L57.9881342,20 C61.1851342,20 62.6781342,21.174 62.9441342,24 L51.0321342,24 Z",id:"User_4_x2C__Profile_5-Copy-9"}))))))))}}class ob extends C.a.PureComponent{render(){return C.a.createElement("button",Object.assign({},this.props,{"aria-label":Object(I.gb)("members_popover.button.message","message"),className:"style--none icon icon__message"}),C.a.createElement(V.a,{id:"generic_icons.message",defaultMessage:"Message Icon"},e=>C.a.createElement("svg",{width:"18px",height:"16px",viewBox:"0 0 18 16",role:"img","aria-label":e},C.a.createElement("g",{stroke:"none",strokeWidth:"1",fill:"inherit",fillRule:"evenodd"},C.a.createElement("g",{transform:"translate(-200.000000, -174.000000)",fill:"inherit"},C.a.createElement("g",{transform:"translate(200.000000, 174.000000)"},C.a.createElement("path",{d:"M7.2546625,1.42801356 C10.458475,1.42801356 12.999475,3.24528136 12.999475,5.52023729 C12.9895,8.04188475 10.6062625,9.89326102 7.40245,9.89326102 C7.40245,9.89326102 6.9134125,9.91229831 6.4115125,9.83747119 L5.82535,9.79622373 L5.15335,10.3586169 C4.997425,10.5397356 4.3199125,11.1095322 3.736375,11.4794373 C4.0915375,10.4598847 4.07605,10.1370441 4.07605,10.1370441 L4.1251375,9.49004068 L3.55315,9.19549153 C2.0986375,8.44616271 1.4444875,6.88616271 1.4444875,5.52023729 C1.4444875,3.24528136 4.05085,1.42801356 7.2546625,1.42801356 M7.2546625,0.370386441 C3.465475,0.370386441 0.3944875,2.65829831 0.3944875,5.52023729 C0.3944875,7.3028678 1.2623125,9.20342373 3.0751375,10.1370441 C3.0751375,10.1478847 3.07225,10.1560814 3.07225,10.1679797 C3.07225,10.9426915 2.43175,12.0048136 2.1794875,12.4429356 L2.1805375,12.4429356 C2.1605875,12.4902644 2.148775,12.5420881 2.148775,12.5973492 C2.148775,12.8141627 2.322025,12.9881424 2.5375375,12.9881424 C2.5693,12.9881424 2.6210125,12.9815322 2.6393875,12.9815322 C2.6446375,12.9815322 2.6467375,12.9815322 2.6462125,12.9831186 C3.986275,12.762339 5.9642125,11.2435864 6.2576875,10.8837288 C6.5585125,10.928678 6.761425,10.9358169 7.0136875,10.9358169 C7.120525,10.9358169 7.2347125,10.9342305 7.3696375,10.9342305 C11.1583,10.9342305 14.094625,8.75446102 14.049475,5.52023729 C14.049475,2.65829831 11.0435875,0.370386441 7.2546625,0.370386441"}),C.a.createElement("path",{d:"M17.2055125,9.79172881 C17.2055125,8.35811525 16.6498,7.26532203 15.2624875,6.4451322 C15.228625,6.82614237 15.120475,7.23517966 15.0031375,7.59477288 C15.8998375,8.21903729 16.1555125,8.85995932 16.1555125,9.79172881 C16.1555125,10.9323797 15.62815,11.7597085 14.40175,12.3919051 L13.879375,12.653139 C13.879375,12.653139 13.9337125,14.0082237 14.0140375,14.3511593 C12.9895,13.5946915 12.6374875,12.9630237 12.6374875,12.9630237 L12.08545,13.0486915 C11.86705,13.0809492 11.276425,13.0812136 11.276425,13.0812136 C9.85,13.0812136 8.7929125,12.7388068 7.8909625,12.0278169 C8.135875,12.0124814 6.42805,12.0132746 6.3899875,12.0468542 C7.4326375,13.3297559 9.1373125,14.1388407 11.276425,14.1388407 C11.3927125,14.1388407 11.49115,14.1398983 11.58355,14.1398983 C11.801425,14.1398983 11.9773,14.1338169 12.237175,14.095478 C12.491275,14.4058915 13.914025,15.7728746 15.0724375,15.9629831 C15.0719125,15.9619254 15.073225,15.9619254 15.078475,15.9619254 C15.0939625,15.9619254 15.13885,15.967478 15.16615,15.967478 C15.3522625,15.967478 15.5024125,15.8167661 15.5024125,15.6293017 C15.5024125,15.5817085 15.49165,15.5367593 15.47485,15.4960407 L15.4759,15.4960407 C15.258025,15.117939 14.9159875,14.0129831 14.9159875,13.3435051 C14.9159875,13.3331932 14.9128375,13.3260542 14.9128375,13.3168 C16.4797,12.5095661 17.2055125,11.3321627 17.2055125,9.79172881"})))))))}}function lb(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class cb extends C.a.PureComponent{constructor(...e){super(...e),lb(this,"handleClick",()=>{this.props.onItemClick(this.props.user)})}render(){if(!this.props.user)return null;const e=I.v(this.props.user);if(!e)return null;let t;this.props.showMessageIcon&&(t=C.a.createElement(ob,{"aria-hidden":"true"}));const a=this.props.user.is_bot?" more-modal__row--bot":"",n=this.props.user.is_bot?null:this.props.status;return C.a.createElement("div",{"data-testid":"popoverListMembersItem",tabIndex:"0","aria-label":e.toLowerCase(),className:"more-modal__row"+a,onClick:this.handleClick},C.a.createElement(zr.a,{src:bn.Client4.getProfilePictureUrl(this.props.user.id,this.props.user.last_picture_update),status:n,size:"md"}),C.a.createElement("div",{className:"more-modal__details d-flex whitespace--nowrap"},C.a.createElement("div",{className:"more-modal__name"},e),C.a.createElement(tn.a,{show:Boolean(this.props.user.is_bot),className:"badge-popoverlist"}),C.a.createElement(an.a,{show:I.V(this.props.user),className:"badge-popoverlist"})),C.a.createElement("div",{className:"more-modal__actions"},t))}}function db(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}lb(cb,"propTypes",{showMessageIcon:v.a.bool.isRequired,onItemClick:v.a.func.isRequired,status:v.a.string.isRequired,user:v.a.object.isRequired}),lb(cb,"defaultProps",{status:P.O.OFFLINE});class mb extends C.a.Component{constructor(e){super(e),db(this,"sortUsers",(e,t)=>I.pb(e,t)),db(this,"handleShowDirectChannel",e=>{const{actions:t}=this.props,a=e.id;a&&t.openDirectChannelToUserId(a).then(({data:e})=>{e&&K.a.push(this.props.teamUrl+"/channels/"+e.name),this.closePopover()})}),db(this,"closePopover",()=>{this.setState({showPopover:!1})}),db(this,"showMembersModal",e=>{e.preventDefault(),this.setState({showPopover:!1,showChannelMembersModal:!0})}),db(this,"hideChannelMembersModal",()=>{this.setState({showChannelMembersModal:!1})}),db(this,"showChannelInviteModal",()=>{this.setState({showChannelInviteModal:!0})}),db(this,"hideChannelInviteModal",()=>{this.setState({showChannelInviteModal:!1})}),db(this,"hideTeamMembersModal",()=>{this.setState({showTeamMembersModal:!1})}),db(this,"handleGetProfilesInChannel",e=>{this.setState({popoverTarget:e.target,showPopover:!this.state.showPopover}),this.props.actions.loadProfilesAndStatusesInChannel(this.props.channel.id,0,void 0,"status")}),db(this,"getTargetPopover",()=>(this.membersList.current.focus(),this.state.popoverTarget)),this.membersList=C.a.createRef(),this.state={showPopover:!1,showTeamMembersModal:!1,showChannelMembersModal:!1,showChannelInviteModal:!1,users:e.users,statuses:e.statuses,sortedUsers:this.sortUsers(e.users,e.statuses)}}static getDerivedStateFromProps(e,t){return e.users!==t.users||e.statuses!==t.statuses?{users:e.users,statuses:e.statuses,sortedUsers:I.pb(e.users,e.statuses)}:null}render(){const e=this.props.channel.type===P.j.DM_CHANNEL,t=this.state.sortedUsers.map(t=>C.a.createElement(cb,{key:t.id,onItemClick:this.handleShowDirectChannel,showMessageIcon:this.props.currentUserId!==t.id&&!e,status:this.props.statuses[t.id],user:t})),a=0!==this.props.channel.delete_at;let n;if(this.props.channel.type!==P.j.GM_CHANNEL&&!a){let e=C.a.createElement(V.a,{id:"members_popover.manageMembers",defaultMessage:"Manage Members"});const t=Object(ya.a)(this.props.channel);!(this.props.channel.name===P.j.DEFAULT_CHANNEL)&&t||(e=C.a.createElement(V.a,{id:"members_popover.viewMembers",defaultMessage:"View Members"})),n=C.a.createElement("div",{className:"more-modal__button",key:"popover-member-more"},C.a.createElement("button",{className:"btn btn-link","data-testid":"membersModal",onClick:this.showMembersModal},e))}const s=this.props.memberCount;let i="-";s>0&&(i=s.toString());const r=C.a.createElement(V.a,{id:"members_popover.title",defaultMessage:"Channel Members"});let o,l,c;this.state.showChannelMembersModal&&(o=C.a.createElement(ib,{onHide:this.hideChannelMembersModal,showInviteModal:this.showChannelInviteModal,channel:this.props.channel})),this.state.showTeamMembersModal&&(l=C.a.createElement(Lm,{onHide:this.hideTeamMembersModal})),this.state.showChannelInviteModal&&(c=C.a.createElement(Wg,{onHide:this.hideChannelInviteModal,channel:this.props.channel}));const d=C.a.createElement(mi.a,{id:"channelMembersTooltip"},C.a.createElement(V.a,{id:"channel_header.channelMembers",defaultMessage:"Members"})),m="".concat(I.gb("channel_header.channelMembers","Members")).toLowerCase();return C.a.createElement("div",{id:"channelMember"},C.a.createElement("button",{id:"member_popover","aria-label":m,className:"style--none member-popover__trigger channel-header__icon wide "+(this.state.showPopover?"active":""),ref:"member_popover_target",onClick:this.handleGetProfilesInChannel},C.a.createElement(ui.a,{delayShow:P.j.OVERLAY_TIME_DELAY,placement:"bottom",overlay:d},C.a.createElement("div",null,C.a.createElement("span",{id:"channelMemberCountText",className:"icon__text"},i),C.a.createElement(rb,{id:"channelMemberIcon",className:"icon icon__members","aria-hidden":"true"})))),C.a.createElement(X.a,{rootClose:!0,onHide:this.closePopover,show:this.state.showPopover,target:this.getTargetPopover,placement:"bottom"},C.a.createElement(nc.a,{className:"member-list__popover",id:"member-list-popover"},C.a.createElement("div",{className:"more-modal__header"},r,this.props.channel.group_constrained&&C.a.createElement("div",{className:"subhead"},C.a.createElement(V.a,{id:"channel_header.groupConstrained",defaultMessage:"Members managed by linked groups."}))),C.a.createElement("div",{className:"more-modal__body"},C.a.createElement("div",{tabIndex:"-1",role:"presentation",ref:this.membersList,className:"more-modal__list"},t)),n)),o,l,c)}}db(mb,"propTypes",{channel:v.a.object.isRequired,statuses:v.a.object.isRequired,users:v.a.array.isRequired,memberCount:v.a.number,currentUserId:v.a.string.isRequired,teamUrl:v.a.string,actions:v.a.shape({openModal:v.a.func.isRequired,loadProfilesAndStatusesInChannel:v.a.func.isRequired,openDirectChannelToUserId:v.a.func.isRequired}).isRequired});var ub=Object(n.connect)((function(){const e=Object(m.makeGetProfilesInChannel)();return function(t,a){const n=Object(p.getAllChannelStats)(t)[a.channel.id]||{},s=e(t,a.channel.id,!0);return{currentUserId:Object(m.getCurrentUserId)(t),memberCount:n.member_count,users:s,statuses:Object(m.getUserStatuses)(t),teamUrl:Object(u.getCurrentRelativeTeamUrl)(t)}}}),(function(e){return{actions:Object(s.bindActionCreators)({openModal:x.b,loadProfilesAndStatusesInChannel:cs.f,openDirectChannelToUserId:_a.e},e)}}))(mb);class pb extends C.a.PureComponent{render(){return C.a.createElement("span",this.props,C.a.createElement(V.a,{id:"generic_icons.pin",defaultMessage:"Pin Icon"},e=>C.a.createElement("svg",{width:"14px",height:"14px",viewBox:"0 0 16 16",version:"1.1",role:"img","aria-label":e},C.a.createElement("g",{stroke:"inherit",strokeWidth:"1",fill:"inherit",fillRule:"evenodd"},C.a.createElement("g",{transform:"translate(-775.000000, -32.000000)",fillRule:"nonzero",fill:"inherit"},C.a.createElement("g",null,C.a.createElement("g",{transform:"translate(764.000000, 22.000000)"},C.a.createElement("g",{transform:"translate(10.000000, 10.000000)"},C.a.createElement("path",{d:"M16.456,7.291 L9.483,0.25 C9.31,0.078 9.178,0 9.08,0 C8.896,0 8.831,0.276 8.831,0.732 L8.831,3.044 L5.831,5.96 L2.578,6.268 C1.887,6.405 1.668,6.917 2.167,7.41 L4.781,10.011 L3.83,10.961 L1.05,15.511 C0.93,15.761 1.03,15.862 1.28,15.74 L5.83,12.961 L6.786,12.005 L9.359,14.565 C9.556,14.76 9.754,14.854 9.929,14.854 C10.197,14.854 10.413,14.634 10.497,14.219 L10.83,10.961 L13.746,7.961 L16.082,7.961 C16.788,7.961 16.955,7.785 16.456,7.291 Z M12.312,6.567 L9.396,9.567 L8.911,10.065 L8.84,10.757 L8.797,11.184 L5.589,7.992 L6.018,7.952 L6.72,7.886 L7.225,7.396 L10.225,4.48 L10.547,4.167 L12.616,6.256 L12.312,6.567 Z"})))))))))}}class hb extends C.a.PureComponent{render(){return C.a.createElement(ki.a,{id:"channelHeaderDropdownMenu",ariaLabel:Object(I.gb)("channel_header.menuAriaLabel","Channel Menu").toLowerCase()},C.a.createElement(Sf,{isMobile:!1}))}}function gb(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class bb extends C.a.PureComponent{constructor(...e){super(...e),gb(this,"createButton",e=>{const t=()=>this.fireAction(e);return this.props.isDropdown?C.a.createElement("li",{key:"mobileChannelHeaderItem"+e.id,role:"presentation",className:"MenuItem"},C.a.createElement("a",{role:"menuitem",href:"#",onClick:t},e.dropdownText)):C.a.createElement("li",{className:"flex-parent--center"},C.a.createElement("button",{className:"navbar-toggle navbar-right__icon",onClick:t},C.a.createElement("span",{className:"icon navbar-plugin-button"},e.icon)))})}createList(e){return e.map(this.createButton)}fireAction(e){return e.action(this.props.channel,this.props.channelMember)}render(){const e=this.props.components||[];return 0===e.length?null:1===e.length?this.createButton(e[0]):this.props.isDropdown?this.createList(e):null}}gb(bb,"propTypes",{components:v.a.array,isDropdown:v.a.bool.isRequired,channel:v.a.object.isRequired,channelMember:v.a.object.isRequired,theme:v.a.object.isRequired});var fb=Object(n.connect)((function(e){return{channelMember:Object(p.getMyCurrentChannelMembership)(e),components:e.plugins.components.MobileChannelHeaderButton,theme:Object(c.getTheme)(e)}}))(bb);function _b({section:e,isCollapsed:t,memberNotifyLevel:a,globalNotifyLevel:n,ignoreChannelMentions:s}){if(a===P.v.DEFAULT&&n){Object(de.b)("channel_notifications.levels.default"),Object(de.b)("channel_notifications.levels.all"),Object(de.b)("channel_notifications.levels.mention"),Object(de.b)("channel_notifications.levels.none");const e="channel_notifications.levels."+n,t=C.a.createElement(V.a,{id:e,defaultMessage:n});return C.a.createElement(V.a,{id:"channel_notifications.globalDefault",defaultMessage:"Global default ({notifyLevel})",values:{notifyLevel:t}})}return a===P.v.MENTION&&e===P.w.MARK_UNREAD?t?C.a.createElement(V.a,{id:"channel_notifications.muteChannel.on.title.collapse",defaultMessage:"Mute is enabled. Desktop, email and push notifications will not be sent for this channel."}):C.a.createElement(V.a,{id:"channel_notifications.muteChannel.on.title",defaultMessage:"On"}):e===P.w.IGNORE_CHANNEL_MENTIONS&&s===P.o.ON?C.a.createElement(V.a,{id:"channel_notifications.ignoreChannelMentions.on.title",defaultMessage:"On"}):e===P.w.IGNORE_CHANNEL_MENTIONS&&s===P.o.OFF?C.a.createElement(V.a,{id:"channel_notifications.ignoreChannelMentions.off.title",defaultMessage:"Off"}):a===P.v.MENTION?C.a.createElement(V.a,{id:"channel_notifications.onlyMentions",defaultMessage:"Only for mentions"}):e!==P.w.DESKTOP&&e!==P.w.PUSH||a!==P.v.ALL?e===P.w.MARK_UNREAD&&a===P.v.ALL?C.a.createElement(V.a,{id:"channel_notifications.muteChannel.off.title",defaultMessage:"Off"}):C.a.createElement(V.a,{id:"channel_notifications.never",defaultMessage:"Never"}):C.a.createElement(V.a,{id:"channel_notifications.allActivity",defaultMessage:"For all activity"})}function Eb({section:e}){return e===P.w.DESKTOP?C.a.createElement(V.a,{id:"channel_notifications.sendDesktop",defaultMessage:"Send desktop notifications"}):e===P.w.PUSH?C.a.createElement(V.a,{id:"channel_notifications.push",defaultMessage:"Send mobile push notifications"}):e===P.w.MARK_UNREAD?C.a.createElement(V.a,{id:"channel_notifications.muteChannel.settings",defaultMessage:"Mute Channel"}):e===P.w.IGNORE_CHANNEL_MENTIONS?C.a.createElement(V.a,{id:"channel_notifications.ignoreChannelMentions",defaultMessage:"Ignore mentions for @channel, @here and @all"}):null}function vb({onExpandSection:e,globalNotifyLevel:t,memberNotifyLevel:a,section:n,ignoreChannelMentions:s}){return C.a.createElement(Um.a,{title:C.a.createElement(Eb,{section:n}),describe:C.a.createElement(_b,{section:n,ignoreChannelMentions:s,memberNotifyLevel:a,globalNotifyLevel:t,isCollapsed:!0}),updateSection:e,section:n})}function yb({section:e}){switch(e){case P.w.DESKTOP:return C.a.createElement("span",null,C.a.createElement(V.a,{id:"channel_notifications.override",defaultMessage:'Selecting an option other than "Default" will override the global notification settings. Desktop notifications are available on Firefox, Safari, and Chrome.'}));case P.w.PUSH:return C.a.createElement("span",null,C.a.createElement(V.a,{id:"channel_notifications.overridePush",defaultMessage:'Selecting an option other than "Global default" will override the global notification settings for mobile push notifications in account settings. Push notifications must be enabled by the System Admin.'}));case P.w.MARK_UNREAD:return C.a.createElement("span",null,C.a.createElement(V.a,{id:"channel_notifications.muteChannel.help",defaultMessage:"Muting turns off desktop, email and push notifications for this channel. The channel will not be marked as unread unless you are mentioned."}));case P.w.IGNORE_CHANNEL_MENTIONS:return C.a.createElement("span",null,C.a.createElement(V.a,{id:"channel_notifications.ignoreChannelMentions.help",defaultMessage:"When enabled, @channel, @here and @all will not trigger mentions or mention notifications in this channel."}));default:return null}}function Cb({section:e,memberNotifyLevel:t,globalNotifyLevel:a,onChange:n,onSubmit:s,serverError:i,onCollapseSection:r,ignoreChannelMentions:o}){const l=[C.a.createElement("div",{key:"channel-notification-level-radio"},(e===P.w.DESKTOP||e===P.w.PUSH)&&C.a.createElement("fieldset",null,C.a.createElement("div",{className:"radio"},C.a.createElement("label",{className:""},C.a.createElement("input",{id:"channelNotificationGlobalDefault",name:"channelDesktopNotifications",type:"radio",value:P.v.DEFAULT,checked:t===P.v.DEFAULT,onChange:n}),C.a.createElement(_b,{section:e,memberNotifyLevel:P.v.DEFAULT,globalNotifyLevel:a}))),C.a.createElement("div",{className:"radio"},C.a.createElement("label",{className:""},C.a.createElement("input",{id:"channelNotificationAllActivity",name:"channelDesktopNotifications",type:"radio",value:P.v.ALL,checked:t===P.v.ALL,onChange:n}),C.a.createElement(_b,{section:e,memberNotifyLevel:P.v.ALL}))),C.a.createElement("div",{className:"radio"},C.a.createElement("label",{className:""},C.a.createElement("input",{id:"channelNotificationMentions",name:"channelDesktopNotifications",type:"radio",value:P.v.MENTION,checked:t===P.v.MENTION,onChange:n}),C.a.createElement(_b,{section:e,memberNotifyLevel:P.v.MENTION}))),C.a.createElement("div",{className:"radio"},C.a.createElement("label",null,C.a.createElement("input",{id:"channelNotificationNever",name:"channelDesktopNotifications",type:"radio",value:P.v.NONE,checked:t===P.v.NONE,onChange:n}),C.a.createElement(_b,{section:e,memberNotifyLevel:P.v.NONE})))),e===P.w.IGNORE_CHANNEL_MENTIONS&&C.a.createElement("fieldset",null,C.a.createElement("div",{className:"radio"},C.a.createElement("label",null,C.a.createElement("input",{id:"ignoreChannelMentionsOn",name:"ignoreChannelMentions",type:"radio",value:P.o.ON,checked:o===P.o.ON,onChange:n}),C.a.createElement(_b,{section:e,ignoreChannelMentions:P.o.ON,memberNotifyLevel:t,globalNotifyLevel:a}))),C.a.createElement("div",{className:"radio"},C.a.createElement("label",null,C.a.createElement("input",{id:"ignoreChannelMentionsOff",name:"ignoreChannelMentions",type:"radio",value:P.o.OFF,checked:o===P.o.OFF,onChange:n}),C.a.createElement(_b,{section:e,ignoreChannelMentions:P.o.OFF,memberNotifyLevel:t,globalNotifyLevel:a})))),e===P.w.MARK_UNREAD&&C.a.createElement("fieldset",null,C.a.createElement("div",{className:"radio"},C.a.createElement("label",{className:""},C.a.createElement("input",{id:"channelNotificationUnmute",name:"channelNotificationMute",type:"radio",value:P.v.MENTION,checked:t===P.v.MENTION,onChange:n}),C.a.createElement(_b,{section:e,memberNotifyLevel:P.v.MENTION}))),C.a.createElement("div",{className:"radio"},C.a.createElement("label",{className:""},C.a.createElement("input",{id:"channelNotificationMute",name:"channelNotificationMute",type:"radio",value:P.v.ALL,checked:t===P.v.ALL,onChange:n}),C.a.createElement(_b,{section:e,memberNotifyLevel:P.v.ALL})))))];return C.a.createElement(xm.a,{title:C.a.createElement(Eb,{section:e}),inputs:l,submit:s,server_error:i,updateSection:r,extraInfo:C.a.createElement(yb,{section:e})})}function wb(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}_b.propTypes={globalNotifyLevel:v.a.string,ignoreChannelMentions:v.a.string,memberNotifyLevel:v.a.string.isRequired,section:v.a.string.isRequired,isCollapsed:v.a.bool},Eb.propTypes={section:v.a.string.isRequired},vb.propTypes={ignoreChannelMentions:v.a.string,onExpandSection:v.a.func.isRequired,globalNotifyLevel:v.a.string,memberNotifyLevel:v.a.string.isRequired,section:v.a.string.isRequired},yb.propTypes={section:v.a.string.isRequired},Cb.propTypes={ignoreChannelMentions:v.a.string,onChange:v.a.func.isRequired,onCollapseSection:v.a.func.isRequired,onSubmit:v.a.func.isRequired,globalNotifyLevel:v.a.string,memberNotifyLevel:v.a.string.isRequired,section:v.a.string.isRequired,serverError:v.a.string};class Ob extends C.a.PureComponent{constructor(...e){super(...e),wb(this,"handleOnChange",e=>{this.props.onChange(e.target.value)}),wb(this,"handleExpandSection",()=>{this.props.onUpdateSection(this.props.section)}),wb(this,"handleCollapseSection",()=>{this.props.onUpdateSection(P.w.NONE)})}render(){const{expand:e,globalNotificationLevel:t,memberNotificationLevel:a,ignoreChannelMentions:n,onSubmit:s,section:i,serverError:r}=this.props;return e?C.a.createElement(Cb,{section:i,memberNotifyLevel:a,globalNotifyLevel:t,ignoreChannelMentions:n,onChange:this.handleOnChange,onSubmit:s,serverError:r,onCollapseSection:this.handleCollapseSection}):C.a.createElement(vb,{section:i,onExpandSection:this.handleExpandSection,memberNotifyLevel:a,globalNotifyLevel:t,ignoreChannelMentions:n})}}function Tb(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function Sb(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}wb(Ob,"propTypes",{section:v.a.string.isRequired,expand:v.a.bool.isRequired,memberNotificationLevel:v.a.string.isRequired,ignoreChannelMentions:v.a.string,globalNotificationLevel:v.a.string,onChange:v.a.func.isRequired,onSubmit:v.a.func.isRequired,onUpdateSection:v.a.func.isRequired,serverError:v.a.string});class Pb extends C.a.PureComponent{constructor(e){super(e),Sb(this,"handleHide",()=>{this.setState({show:!1})}),Sb(this,"handleExit",()=>{this.updateSection(P.w.NONE),this.props.onHide()}),Sb(this,"updateSection",(e=P.w.NONE)=>{if(this.setState({activeSection:e}),e===P.w.NONE){const e=this.props.channelMember&&this.props.channelMember.notify_props;this.resetStateFromNotifyProps(e,this.props.currentUser.notify_props)}}),Sb(this,"handleUpdateChannelNotifyProps",async e=>{const{actions:t,channel:a,currentUser:n}=this.props,{error:s}=await t.updateChannelNotifyProps(n.id,a.id,e);s?this.setState({serverError:s.message}):this.updateSection(P.w.NONE)}),Sb(this,"handleSubmitDesktopNotifyLevel",()=>{const e=this.props.channelMember&&this.props.channelMember.notify_props,{desktopNotifyLevel:t}=this.state;if(e.desktop===t)return void this.updateSection(P.w.NONE);const a={desktop:t};this.handleUpdateChannelNotifyProps(a)}),Sb(this,"handleUpdateDesktopNotifyLevel",e=>{this.setState({desktopNotifyLevel:e})}),Sb(this,"handleSubmitMarkUnreadLevel",()=>{const e=this.props.channelMember&&this.props.channelMember.notify_props,{markUnreadNotifyLevel:t}=this.state;if(e.mark_unread===t)return void this.updateSection(P.w.NONE);const a={mark_unread:t};this.handleUpdateChannelNotifyProps(a)}),Sb(this,"handleUpdateMarkUnreadLevel",e=>{this.setState({markUnreadNotifyLevel:e})}),Sb(this,"handleSubmitPushNotificationLevel",()=>{const e=this.props.channelMember&&this.props.channelMember.notify_props,{pushNotifyLevel:t}=this.state;if(e.push===t)return void this.updateSection(P.w.NONE);const a={push:t};this.handleUpdateChannelNotifyProps(a)}),Sb(this,"handleUpdatePushNotificationLevel",e=>{this.setState({pushNotifyLevel:e})}),Sb(this,"handleUpdateIgnoreChannelMentions",e=>{this.setState({ignoreChannelMentions:e})}),Sb(this,"handleSubmitIgnoreChannelMentions",()=>{const e=this.props.channelMember&&this.props.channelMember.notify_props,{ignoreChannelMentions:t}=this.state;if(e.ignore_channel_mentions===t)return void this.updateSection("");const a={ignore_channel_mentions:t};this.handleUpdateChannelNotifyProps(a)});const t=e.channelMember&&e.channelMember.notify_props;this.state=function(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?Tb(a,!0).forEach((function(t){Sb(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):Tb(a).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}({show:!0,activeSection:P.w.NONE,serverError:null},this.getStateFromNotifyProps(t,e.currentUser.notify_props))}componentDidUpdate(e){const t=e.channelMember&&e.channelMember.notify_props,a=this.props.channelMember&&this.props.channelMember.notify_props;I.c(a,t)||this.resetStateFromNotifyProps(a,this.props.currentUser.notify_props)}resetStateFromNotifyProps(e,t){this.setState(this.getStateFromNotifyProps(e,t))}getStateFromNotifyProps(e,t){let a=P.o.OFF;t.channel&&"false"===t.channel&&(a=P.o.ON);let n=e.ignore_channel_mentions;return n&&n!==P.o.DEFAULT||(n=a),{desktopNotifyLevel:e.desktop||P.v.DEFAULT,markUnreadNotifyLevel:e.mark_unread||P.v.ALL,pushNotifyLevel:e.push||P.v.DEFAULT,ignoreChannelMentions:n}}render(){const{activeSection:e,desktopNotifyLevel:t,markUnreadNotifyLevel:a,pushNotifyLevel:n,ignoreChannelMentions:s,serverError:i}=this.state,{channel:r,channelMember:o,currentUser:l,sendPushNotifications:c}=this.props;let d=null;return i&&(d=C.a.createElement("div",{className:"form-group has-error"},C.a.createElement("label",{className:"control-label"},i))),C.a.createElement(G.a,{dialogClassName:"a11y__modal settings-modal settings-modal--tabless",show:this.state.show,onHide:this.handleHide,onExited:this.handleExit,role:"dialog","aria-labelledby":"channelNotificationModalLabel"},C.a.createElement(G.a.Header,{closeButton:!0},C.a.createElement(G.a.Title,{componentClass:"h1",id:"channelNotificationModalLabel"},C.a.createElement(V.a,{id:"channel_notifications.preferences",defaultMessage:"Notification Preferences for "}),C.a.createElement("span",{className:"name"},r.display_name))),C.a.createElement(G.a.Body,null,C.a.createElement("div",{className:"settings-table"},C.a.createElement("div",{className:"settings-content"},C.a.createElement("div",{ref:"wrapper",className:"user-settings"},C.a.createElement("br",null),C.a.createElement("div",{className:"divider-dark first"}),C.a.createElement(Ob,{section:P.w.MARK_UNREAD,expand:e===P.w.MARK_UNREAD,memberNotificationLevel:a,onChange:this.handleUpdateMarkUnreadLevel,onSubmit:this.handleSubmitMarkUnreadLevel,onUpdateSection:this.updateSection,serverError:i}),C.a.createElement("div",{className:"divider-light"}),C.a.createElement(Ob,{section:P.w.IGNORE_CHANNEL_MENTIONS,expand:e===P.w.IGNORE_CHANNEL_MENTIONS,memberNotificationLevel:a,ignoreChannelMentions:s,onChange:this.handleUpdateIgnoreChannelMentions,onSubmit:this.handleSubmitIgnoreChannelMentions,onUpdateSection:this.updateSection,serverError:i}),!Object(un.isChannelMuted)(o)&&C.a.createElement("div",null,C.a.createElement("div",{className:"divider-light"}),C.a.createElement(Ob,{section:P.w.DESKTOP,expand:e===P.w.DESKTOP,memberNotificationLevel:t,globalNotificationLevel:l.notify_props?l.notify_props.desktop:P.v.ALL,onChange:this.handleUpdateDesktopNotifyLevel,onSubmit:this.handleSubmitDesktopNotifyLevel,onUpdateSection:this.updateSection,serverError:i}),C.a.createElement("div",{className:"divider-light"}),c&&C.a.createElement(Ob,{section:P.w.PUSH,expand:e===P.w.PUSH,memberNotificationLevel:n,globalNotificationLevel:l.notify_props?l.notify_props.push:P.v.ALL,onChange:this.handleUpdatePushNotificationLevel,onSubmit:this.handleSubmitPushNotificationLevel,onUpdateSection:this.updateSection,serverError:i})),C.a.createElement("div",{className:"divider-dark"})))),d))}}Sb(Pb,"propTypes",{onHide:v.a.func.isRequired,channel:v.a.object.isRequired,channelMember:v.a.object.isRequired,currentUser:v.a.object.isRequired,sendPushNotifications:v.a.bool.isRequired,actions:v.a.shape({updateChannelNotifyProps:v.a.func.isRequired})});var Mb=Object(n.connect)(e=>({channelMember:Object(p.getMyCurrentChannelMembership)(e),sendPushNotifications:"true"===Object(d.getConfig)(e).SendPushNotifications}),e=>({actions:Object(s.bindActionCreators)({updateChannelNotifyProps:o.updateChannelNotifyProps},e)}))(Pb);function Ib(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function Nb(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const jb={singleline:!1,mentionHighlight:!1};class Ab extends C.a.PureComponent{constructor(e){super(e),Nb(this,"onHide",()=>{this.setState({show:!1})}),this.state={show:!0},this.getHeaderMarkdownOptions=Object(Nd.memoizeResult)(e=>(function(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?Ib(a,!0).forEach((function(t){Nb(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):Ib(a).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e})({},jb,{channelNamesMap:e}))}render(){let e=this.props.channel;const t=0!==e.delete_at;let a;if(!e){const t=I.gb("channel_info.notFound","No Channel Found");e={display_name:t,name:t,purpose:t,header:t,id:t}}const n=this.props.channel.props&&this.props.channel.props.channel_mentions;t?a=C.a.createElement(kc.a,{className:"icon icon__archive"}):"O"===e.type?a=C.a.createElement(Yd.a,{className:"icon icon__globe icon--body"}):"P"===e.type&&(a=C.a.createElement(Kd.a,{className:"icon icon__globe icon--body"}));const s=Object(Un.e)()+"/"+this.props.currentTeam.name+"/channels/"+e.name;let i,r;e.purpose?i=e.purpose:e.name===P.Q.DEFAULT_CHANNEL&&(i=C.a.createElement(V.a,{id:"default_channel.purpose",defaultMessage:"Post messages here that you want everyone to see. Everyone automatically becomes a permanent member of this channel when they join the team."})),i&&(r=C.a.createElement("div",{className:"form-group"},C.a.createElement("div",{className:"info__label"},C.a.createElement(V.a,{id:"channel_info.purpose",defaultMessage:"Purpose:"})),C.a.createElement("div",{className:"info__value"},i)));let o=null;return e.header&&(o=C.a.createElement("div",{className:"form-group"},C.a.createElement("div",{className:"info__label"},C.a.createElement(V.a,{id:"channel_info.header",defaultMessage:"Header:"})),C.a.createElement("div",{className:"info__value"},C.a.createElement(va.a,{message:e.header,options:this.getHeaderMarkdownOptions(n)})))),C.a.createElement(G.a,{dialogClassName:"a11y__modal about-modal",show:this.state.show,onHide:this.onHide,onExited:this.props.onHide,role:"dialog","aria-labelledby":"channelInfoModalLabel"},C.a.createElement(G.a.Header,{closeButton:!0},C.a.createElement(G.a.Title,{componentClass:"h1",id:"channelInfoModalLabel"},C.a.createElement(V.a,{id:"channel_info.about",defaultMessage:"About"}),C.a.createElement("strong",null,a,e.display_name))),C.a.createElement(G.a.Body,null,r,o,C.a.createElement("div",{className:"form-group"},C.a.createElement("div",{className:"info__label"},C.a.createElement(V.a,{id:"channel_info.url",defaultMessage:"URL:"})),C.a.createElement("div",{className:"info__value"},s)),C.a.createElement("div",{className:"about-modal__hash form-group padding-top x2"},C.a.createElement("p",null,C.a.createElement(V.a,{id:"channel_info.id",defaultMessage:"ID: "}),e.id))))}}Nb(Ab,"propTypes",{onHide:v.a.func.isRequired,channel:v.a.object.isRequired,currentTeam:v.a.object.isRequired});var Rb=Object(n.connect)((function(e){return{currentTeam:Object(u.getCurrentTeam)(e)}}))(Ab);function kb(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class Lb extends C.a.PureComponent{constructor(e){super(e),kb(this,"setError",e=>{"api.context.invalid_param.app_error"===e.id?this.setState({serverError:I.gb("edit_channel_purpose_modal.error","This channel purpose is too long, please enter a shorter one")}):this.setState({serverError:e.message})}),kb(this,"unsetError",()=>{this.setState({serverError:""})}),kb(this,"handleEntering",()=>{I.kb(this.purpose)}),kb(this,"onHide",()=>{this.setState({show:!1})}),kb(this,"handleKeyDown",e=>{const{ctrlSend:t}=this.props;t&&I.W(e,P.Q.KeyCodes.ENTER)&&e.ctrlKey?(e.preventDefault(),this.handleSave(e)):t||!I.W(e,P.Q.KeyCodes.ENTER)||e.shiftKey||e.altKey||(e.preventDefault(),this.handleSave(e))}),kb(this,"handleSave",async()=>{const{channel:e,actions:{patchChannel:t}}=this.props,{purpose:a}=this.state;if(!e)return;this.setState({requestStarted:!0});const{data:n,error:s}=await t(e.id,{purpose:a});this.setState({requestStarted:!1}),n?(this.unsetError(),this.onHide()):s&&this.setError(s)}),kb(this,"handleChange",e=>{e.preventDefault(),this.setState({purpose:e.target.value})}),kb(this,"getPurpose",e=>{this.purpose=e}),this.state={purpose:e.channel.purpose||"",serverError:"",show:!0,submitted:!1,requestStarted:!1}}render(){let e=null;this.state.serverError&&(e=C.a.createElement("div",{className:"form-group has-error"},C.a.createElement("br",null),C.a.createElement("label",{className:"control-label"},this.state.serverError)));let t=C.a.createElement("span",null,C.a.createElement(V.a,{id:"edit_channel_purpose_modal.title1",defaultMessage:"Edit Purpose"}));this.props.channel.display_name&&(t=C.a.createElement("span",null,C.a.createElement(V.a,{id:"edit_channel_purpose_modal.title2",defaultMessage:"Edit Purpose for "}),C.a.createElement("span",{className:"name"},this.props.channel.display_name)));let a=C.a.createElement(V.a,{id:"edit_channel_purpose_modal.body",defaultMessage:'Describe how this channel should be used. This text appears in the channel list in the "More..." menu and helps others decide whether to join.'});return"P"===this.props.channel.type&&(a=C.a.createElement(V.a,{id:"edit_channel_private_purpose_modal.body",defaultMessage:'This text appears in the \\"View Info\\" modal of the private channel.'})),C.a.createElement(G.a,{dialogClassName:"a11y__modal",show:this.state.show,onHide:this.onHide,onEntering:this.handleEntering,onExited:this.props.onHide,role:"dialog","aria-labelledby":"editChannelPurposeModalLabel"},C.a.createElement(G.a.Header,{closeButton:!0},C.a.createElement(G.a.Title,{componentClass:"h1",id:"editChannelPurposeModalLabel"},t)),C.a.createElement(G.a.Body,null,C.a.createElement("p",null,a),C.a.createElement("textarea",{ref:this.getPurpose,className:"form-control no-resize",rows:"6",maxLength:"250",value:this.state.purpose,onKeyDown:this.handleKeyDown,onChange:this.handleChange}),e),C.a.createElement(G.a.Footer,null,C.a.createElement("button",{type:"button",className:"btn btn-link cancel-button",onClick:this.onHide},C.a.createElement(V.a,{id:"edit_channel_purpose_modal.cancel",defaultMessage:"Cancel"})),C.a.createElement("button",{type:"button",className:"btn btn-primary save-button",disabled:this.state.requestStarted,onClick:this.handleSave},C.a.createElement(V.a,{id:"edit_channel_purpose_modal.save",defaultMessage:"Save"}))))}}kb(Lb,"propTypes",{onHide:v.a.func.isRequired,channel:v.a.object,ctrlSend:v.a.bool.isRequired,actions:v.a.shape({patchChannel:v.a.func.isRequired}).isRequired});var Db=Object(n.connect)((function(e){return{ctrlSend:Object(c.getBool)(e,P.Q.Preferences.CATEGORY_ADVANCED_SETTINGS,"send_on_ctrl_enter")}}),(function(e){return{actions:{patchChannel:Object(s.bindActionCreators)(o.patchChannel,e)}}}))(Lb);function xb(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const Ub=Object(gs.defineMessages)({required:{id:Object(de.b)("rename_channel.required"),defaultMessage:"This field is required"},maxLength:{id:Object(de.b)("rename_channel.maxLength"),defaultMessage:"This field must be less than {maxLength, number} characters"},lowercase:{id:Object(de.b)("rename_channel.lowercase"),defaultMessage:"Must be lowercase alphanumeric characters"},url:{id:Object(de.b)("rename_channel.url"),defaultMessage:"URL"},defaultError:{id:Object(de.b)("rename_channel.defaultError"),defaultMessage:" - Cannot be changed for the default channel"},displayNameHolder:{id:Object(de.b)("rename_channel.displayNameHolder"),defaultMessage:"Enter display name"},handleHolder:{id:Object(de.b)("rename_channel.handleHolder"),defaultMessage:"lowercase alphanumeric characters"}});class qb extends C.a.PureComponent{constructor(e){super(e),xb(this,"setError",e=>{this.setState({serverError:e.message})}),xb(this,"unsetError",()=>{this.setState({serverError:""})}),xb(this,"handleEntering",()=>{I.kb(this.textbox)}),xb(this,"handleHide",e=>{e&&e.preventDefault(),this.setState({serverError:"",nameError:"",displayNameError:"",invalid:!1,show:!1})}),xb(this,"handleSubmit",async e=>{e&&e.preventDefault();const t=Object.assign({},this.props.channel),a=t.name,n=t.display_name,s={serverError:""},{formatMessage:i}=this.props.intl,{actions:{patchChannel:r}}=this.props;if(t.display_name=this.state.displayName.trim(),t.display_name?t.display_name.length>P.Q.MAX_CHANNELNAME_LENGTH?(s.displayNameError=i(Ub.maxLength,{maxLength:P.Q.MAX_CHANNELNAME_LENGTH}),s.invalid=!0):t.display_name.length<P.Q.MIN_CHANNELNAME_LENGTH?(s.displayNameError=C.a.createElement(V.a,{id:"rename_channel.minLength",defaultMessage:"Channel name must be {minLength, number} or more characters",values:{minLength:P.Q.MIN_CHANNELNAME_LENGTH}}),s.invalid=!0):s.displayNameError="":(s.displayNameError=i(Ub.required),s.invalid=!0),t.name=this.state.channelName.trim(),t.name)if(t.name.length>P.Q.MAX_CHANNELNAME_LENGTH)s.nameError=i(Ub.maxLength,{maxLength:P.Q.MAX_CHANNELNAME_LENGTH}),s.invalid=!0;else{Object(Un.a)(t.name)===t.name?s.nameError="":(s.nameError=i(Ub.lowercase),s.invalid=!0)}else s.nameError=i(Ub.required),s.invalid=!0;if(this.setState(s),s.invalid)return;if(a===t.name&&n===t.display_name)return void this.onSaveSuccess();const{data:o,error:l}=await r(t.id,t);o?this.onSaveSuccess():l&&this.setError(l)}),xb(this,"onSaveSuccess",()=>{this.handleHide(),this.unsetError(),K.a.push("/"+this.props.team.name+"/channels/"+this.state.channelName)}),xb(this,"handleCancel",e=>{this.setState({displayName:this.props.channel.display_name,channelName:this.props.channel.name}),this.handleHide(e)}),xb(this,"onNameChange",e=>{this.setState({channelName:e.target.value})}),xb(this,"onDisplayNameChange",e=>{this.setState({displayName:e.target.value})}),xb(this,"getTextbox",e=>{this.textbox=e}),this.state={displayName:e.channel.display_name,channelName:e.channel.name,serverError:"",nameError:"",displayNameError:"",invalid:!1,show:!0}}render(){let e=null,t="form-group";this.state.displayNameError&&(e=C.a.createElement("label",{className:"control-label"},this.state.displayNameError),t+=" has-error");let a=null,n="form-group";this.state.nameError&&(a=C.a.createElement("label",{className:"control-label"},this.state.nameError),n+=" has-error");let s=null;this.state.serverError&&(s=C.a.createElement("div",{className:"form-group has-error"},C.a.createElement("label",{className:"control-label"},this.state.serverError)));const{formatMessage:i}=this.props.intl;let r=i(Ub.url);let o=!1;this.props.channel.name===P.Q.DEFAULT_CHANNEL&&(r+=i(Ub.defaultError),o=!0);const l=this.props.currentTeamUrl+"/channels",c=Object(Un.d)(l,35),d=C.a.createElement(mi.a,{id:"urlTooltip"},l);return C.a.createElement(G.a,{dialogClassName:"a11y__modal",show:this.state.show,onHide:this.handleCancel,onEntering:this.handleEntering,onExited:this.props.onHide,role:"dialog","aria-labelledby":"renameChannelModalLabel"},C.a.createElement(G.a.Header,{closeButton:!0},C.a.createElement(G.a.Title,{componentClass:"h1",id:"renameChannelModalLabel"},C.a.createElement(V.a,{id:"rename_channel.title",defaultMessage:"Rename Channel"}))),C.a.createElement("form",{role:"form"},C.a.createElement(G.a.Body,null,C.a.createElement("div",{className:t},C.a.createElement("label",{className:"control-label"},C.a.createElement(V.a,{id:"rename_channel.displayName",defaultMessage:"Display Name"})),C.a.createElement(ce.a,{onChange:this.onDisplayNameChange,type:"text",ref:this.getTextbox,id:"display_name",className:"form-control",placeholder:Ub.displayNameHolder,value:this.state.displayName,maxLength:P.Q.MAX_CHANNELNAME_LENGTH}),e),C.a.createElement("div",{className:n},C.a.createElement("label",{className:"control-label"},r),C.a.createElement("div",{className:"input-group input-group--limit"},C.a.createElement(ui.a,{delayShow:P.Q.OVERLAY_TIME_DELAY,placement:"top",overlay:d},C.a.createElement("span",{className:"input-group-addon"},c)),C.a.createElement(ce.a,{onChange:this.onNameChange,type:"text",className:"form-control",id:"channel_name",placeholder:Ub.handleHolder,value:this.state.channelName,maxLength:P.Q.MAX_CHANNELNAME_LENGTH,readOnly:o})),a),s),C.a.createElement(G.a.Footer,null,C.a.createElement("button",{type:"button",className:"btn btn-link",onClick:this.handleCancel},C.a.createElement(V.a,{id:"rename_channel.cancel",defaultMessage:"Cancel"})),C.a.createElement("button",{onClick:this.handleSubmit,type:"submit",id:"save-button",className:"btn btn-primary"},C.a.createElement(V.a,{id:"rename_channel.save",defaultMessage:"Save"})))))}}xb(qb,"propTypes",{intl:Y.a.isRequired,onHide:v.a.func.isRequired,channel:v.a.object.isRequired,team:v.a.object.isRequired,currentTeamUrl:v.a.string.isRequired,actions:v.a.shape({patchChannel:v.a.func.isRequired}).isRequired});var Hb=Object(W.c)(qb);function Fb(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function Bb(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const Gb=Object(Hs.createSelector)(e=>{const t=e.entities.teams.currentTeamId,a=Object(u.getTeam)(e,t);return{currentTeamUrl:"".concat(Object(Un.e)(),"/").concat(a.name),team:a}},e=>(function(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?Fb(a,!0).forEach((function(t){Bb(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):Fb(a).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e})({},e));var Vb=Object(n.connect)(Gb,(function(e){return{actions:{patchChannel:Object(s.bindActionCreators)(o.patchChannel,e)}}}))(Hb);function Wb(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class zb extends C.a.PureComponent{constructor(e){super(e),Wb(this,"handleConvert",()=>{const{actions:e,channelId:t}=this.props;t.length===P.Q.CHANNEL_ID_LENGTH&&(e.convertChannelToPrivate(t),Object(Ie.d)("actions","convert_to_private_channel",{channel_id:t}),this.onHide())}),Wb(this,"onHide",()=>{this.setState({show:!1})}),this.state={show:!0}}render(){const{channelDisplayName:e,onHide:t}=this.props;return C.a.createElement(G.a,{dialogClassName:"a11y__modal",show:this.state.show,onHide:this.onHide,onExited:t,role:"dialog","aria-labelledby":"convertChannelModalLabel"},C.a.createElement(G.a.Header,{closeButton:!0},C.a.createElement(G.a.Title,{componentClass:"h1",id:"convertChannelModalLabel"},C.a.createElement(V.a,{id:"convert_channel.title",defaultMessage:"Convert {display_name} to a private channel?",values:{display_name:e}}))),C.a.createElement(G.a.Body,null,C.a.createElement("p",null,C.a.createElement(Ji.b,{id:"convert_channel.question1",defaultMessage:"When you convert **{display_name}** to a private channel, history and membership are preserved. Publicly shared files remain accessible to anyone with the link. Membership in a private channel is by invitation only.",values:{display_name:e}})),C.a.createElement("p",null,C.a.createElement(Cu.a,{id:"convert_channel.question2",defaultMessage:"The change is permanent and cannot be undone."})),C.a.createElement("p",null,C.a.createElement(Ji.b,{id:"convert_channel.question3",defaultMessage:"Are you sure you want to convert **{display_name}** to a private channel?",values:{display_name:e}}))),C.a.createElement(G.a.Footer,null,C.a.createElement("button",{type:"button",className:"btn btn-link",onClick:this.onHide},C.a.createElement(V.a,{id:"convert_channel.cancel",defaultMessage:"No, cancel"})),C.a.createElement("button",{type:"button",className:"btn btn-primary","data-dismiss":"modal",onClick:this.handleConvert,autoFocus:!0},C.a.createElement(V.a,{id:"convert_channel.confirm",defaultMessage:"Yes, convert to private channel"}))))}}Wb(zb,"propTypes",{onHide:v.a.func.isRequired,channelId:v.a.string.isRequired,channelDisplayName:v.a.string.isRequired,actions:v.a.shape({convertChannelToPrivate:v.a.func.isRequired})});var Yb=Object(n.connect)((function(e){return{currentTeamDetails:Object(u.getCurrentTeam)(e)}}),(function(e){return{actions:Object(s.bindActionCreators)({convertChannelToPrivate:o.convertChannelToPrivate},e)}}))(zb);function Kb(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class Qb extends C.a.PureComponent{constructor(e){super(e),Kb(this,"handleDelete",()=>{if(this.props.channel.id.length===P.Q.CHANNEL_ID_LENGTH){if(!this.props.canViewArchivedChannels){const{penultimateViewedChannelName:e}=this.props;K.a.push("/"+this.props.currentTeamDetails.name+"/channels/"+e)}this.props.actions.deleteChannel(this.props.channel.id),this.onHide()}}),Kb(this,"onHide",()=>{this.setState({show:!1})}),this.state={show:!0}}render(){const{canViewArchivedChannels:e}=this.props;return C.a.createElement(G.a,{dialogClassName:"a11y__modal",show:this.state.show,onHide:this.onHide,onExited:this.props.onHide,role:"dialog","aria-labelledby":"deleteChannelModalLabel",id:"deleteChannelModal"},C.a.createElement(G.a.Header,{closeButton:!0},C.a.createElement(G.a.Title,{componentClass:"h1",id:"deleteChannelModalLabel"},C.a.createElement(V.a,{id:"delete_channel.confirm",defaultMessage:"Confirm ARCHIVE Channel"}))),C.a.createElement(G.a.Body,null,C.a.createElement("div",{className:"alert alert-danger"},!e&&C.a.createElement(Ji.b,{id:"delete_channel.question",defaultMessage:"This will archive the channel from the team and make its contents inaccessible for all users. \\n \\nAre you sure you wish to archive the **{display_name}** channel?",values:{display_name:this.props.channel.display_name}}),e&&C.a.createElement(Ji.b,{id:"delete_channel.viewArchived.question",defaultMessage:"This will archive the channel from the team. Channel contents will still be accessible by channel members.\n \nAre you sure you wish to archive the **{display_name}** channel?",values:{display_name:this.props.channel.display_name}}))),C.a.createElement(G.a.Footer,null,C.a.createElement("button",{type:"button",className:"btn btn-link",onClick:this.onHide},C.a.createElement(V.a,{id:"delete_channel.cancel",defaultMessage:"Cancel"})),C.a.createElement("button",{type:"button",className:"btn btn-danger","data-dismiss":"modal",onClick:this.handleDelete,autoFocus:!0,id:"deleteChannelModalDeleteButton"},C.a.createElement(V.a,{id:"delete_channel.del",defaultMessage:"Archive"}))))}}Kb(Qb,"propTypes",{onHide:v.a.func.isRequired,channel:v.a.object.isRequired,currentTeamDetails:v.a.object.isRequired,canViewArchivedChannels:v.a.bool,penultimateViewedChannelName:v.a.string.isRequired,actions:v.a.shape({deleteChannel:v.a.func.isRequired})});var Jb=Object(n.connect)((function(e){return{canViewArchivedChannels:"true"===Object(d.getConfig)(e).ExperimentalViewArchivedChannels,currentTeamDetails:Object(u.getCurrentTeam)(e)}}),(function(e){return{actions:Object(s.bindActionCreators)({deleteChannel:o.deleteChannel},e)}}))(Qb),Zb=a(1273);function Xb(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class $b extends C.a.PureComponent{constructor(...e){super(...e),Xb(this,"loadItems",async(e,t)=>{const{data:a}=await this.props.actions.getGroupsAssociatedToChannel(this.props.channel.id,t,e,Hu);return{items:a.groups,totalCount:a.totalGroupCount}}),Xb(this,"onClickRemoveGroup",(e,t)=>this.props.actions.unlinkGroupSyncable(e.id,this.props.channel.id,L.Groups.SYNCABLE_TYPE_CHANNEL).then(async()=>{t.setState({loading:!0});const{items:e,totalCount:a}=await t.props.loadItems(t.setState.page,t.state.searchTerm);t.setState({loading:!1,items:e,totalCount:a})})),Xb(this,"onHide",()=>{this.props.actions.closeModal(P.u.MANAGE_CHANNEL_GROUPS)}),Xb(this,"titleButtonOnClick",()=>{this.onHide(),this.props.actions.openModal({modalId:P.u.ADD_GROUPS_TO_TEAM,dialogType:Zb.a})}),Xb(this,"setChannelMemberStatus",async(e,t,a)=>{this.props.actions.patchGroupSyncable(e.id,this.props.channel.id,L.Groups.SYNCABLE_TYPE_CHANNEL,{scheme_admin:a}).then(async()=>{t.setState({loading:!0});const{items:e,totalCount:a}=await t.props.loadItems(t.setState.page,t.state.searchTerm);await this.props.actions.getMyChannelMember(this.props.channel.id),t.setState({loading:!1,items:e,totalCount:a})})}),Xb(this,"renderRow",(e,t)=>{let a;return a=e.scheme_admin?I.gb("channel_members_dropdown.channel_admins","Channel Admins"):I.gb("channel_members_dropdown.channel_members","Channel Members"),C.a.createElement("div",{key:e.id,className:"more-modal__row"},C.a.createElement("img",{className:"more-modal__image",src:Gu.a,alt:"group picture",width:"32",height:"32"}),C.a.createElement("div",{className:"more-modal__details"},C.a.createElement("div",{className:"more-modal__name"},e.display_name," ","-"," ",C.a.createElement("span",{className:"more-modal__name_count"},C.a.createElement(V.a,{id:"numMembers",defaultMessage:"{num, number} {num, plural, one {member} other {members}}",values:{num:e.member_count}})))),C.a.createElement("div",{className:"more-modal__actions"},C.a.createElement(Ri.a,null,C.a.createElement("button",{id:"teamGroupsDropdown_".concat(e.display_name),className:"dropdown-toggle theme color--link style--none",type:"button","aria-expanded":"true"},C.a.createElement("span",null,a," "),C.a.createElement(Om,null)),C.a.createElement(ki.a,{openLeft:!0,ariaLabel:I.gb("channel_members_dropdown.menuAriaLabel","Channel member role change")},C.a.createElement(ki.a.ItemAction,{show:!e.scheme_admin,onClick:()=>this.setChannelMemberStatus(e,t,!0),text:I.gb("channel_members_dropdown.make_channel_admins","Make Channel Admins")}),C.a.createElement(ki.a.ItemAction,{show:Boolean(e.scheme_admin),onClick:()=>this.setChannelMemberStatus(e,t,!1),text:I.gb("channel_members_dropdown.make_channel_members","Make Channel Members")}),C.a.createElement(ki.a.ItemAction,{onClick:()=>this.onClickRemoveGroup(e,t),text:I.gb("group_list_modal.removeGroupButton","Remove Group")})))))})}render(){const{formatMessage:e}=this.props.intl;return C.a.createElement(Fu,{titleText:e({id:"groups",defaultMessage:"{channel} Groups"},{channel:this.props.channel.display_name}),searchPlaceholderText:e({id:"manage_channel_groups_modal.search_placeholder",defaultMessage:"Search groups"}),renderRow:this.renderRow,loadItems:this.loadItems,onHide:this.onHide,titleBarButtonText:e({id:"group_list_modal.addGroupButton",defaultMessage:"Add Groups"}),titleBarButtonOnClick:this.titleButtonOnClick})}}Xb($b,"propTypes",{channel:v.a.object.isRequired,intl:Y.a.isRequired,actions:v.a.shape({getGroupsAssociatedToChannel:v.a.func.isRequired,unlinkGroupSyncable:v.a.func.isRequired,patchGroupSyncable:v.a.func.isRequired,getMyChannelMember:v.a.func.isRequired,closeModal:v.a.func.isRequired,openModal:v.a.func.isRequired}).isRequired});var ef=Object(W.c)($b);var tf=Object(n.connect)((e,t)=>({channel:e.entities.channels.channels[t.channelID]}),e=>({actions:Object(s.bindActionCreators)({getGroupsAssociatedToChannel:Uu.getGroupsAssociatedToChannel,closeModal:x.a,openModal:x.b,unlinkGroupSyncable:Uu.unlinkGroupSyncable,patchGroupSyncable:Uu.patchGroupSyncable,getMyChannelMember:o.getMyChannelMember},e)}))(ef);function af(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class nf extends C.a.PureComponent{constructor(...e){super(...e),af(this,"handleLeave",e=>{e.preventDefault();const{channel:t,actions:{leaveChannel:a}}=this.props;t.type===P.j.PRIVATE_CHANNEL?Object(S.l)(t):a(t.id)})}render(){const{channel:e,isDefault:t,isGuestUser:a,id:n}=this.props;return C.a.createElement(ki.a.ItemAction,{id:n,show:(!t||a)&&e.type!==P.j.DM_CHANNEL&&e.type!==P.j.GM_CHANNEL,onClick:this.handleLeave,text:Object(I.gb)("channel_header.leave","Leave Channel")})}}af(nf,"propTypes",{channel:v.a.object.isRequired,isDefault:v.a.bool.isRequired,isGuestUser:v.a.bool.isRequired,id:v.a.string,actions:v.a.shape({leaveChannel:v.a.func.isRequired}).isRequired}),af(nf,"defaultProps",{isGuestUser:!1});var sf=Object(n.connect)(null,e=>({actions:Object(s.bindActionCreators)({leaveChannel:f.e},e)}))(nf);function rf(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class of extends C.a.PureComponent{constructor(...e){super(...e),rf(this,"handleClose",()=>{this.props.actions.goToLastViewedChannel()})}render(){return C.a.createElement(ki.a.ItemAction,{show:this.props.isArchived,onClick:this.handleClose,text:Object(I.gb)("center_panel.archived.closeChannel","Close Channel")})}}rf(of,"propTypes",{isArchived:v.a.bool.isRequired,actions:v.a.shape({goToLastViewedChannel:v.a.func.isRequired}).isRequired});var lf=Object(n.connect)(null,e=>({actions:Object(s.bindActionCreators)({goToLastViewedChannel:f.c},e)}))(of);function cf(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class df extends C.a.PureComponent{constructor(...e){super(...e),cf(this,"handleClick",()=>{const{user:e,channel:t,isMuted:a,actions:{updateChannelNotifyProps:n}}=this.props;n(e.id,t.id,{mark_unread:a?P.v.ALL:P.v.MENTION})})}render(){const{id:e,isMuted:t}=this.props;let a;return a=t?Object(I.gb)("channel_header.unmute","Unmute Channel"):Object(I.gb)("channel_header.mute","Mute Channel"),C.a.createElement(ki.a.ItemAction,{id:e,onClick:this.handleClick,text:a})}}cf(df,"propTypes",{user:v.a.object.isRequired,channel:v.a.object.isRequired,isMuted:v.a.bool.isRequired,id:v.a.string,actions:v.a.shape({updateChannelNotifyProps:v.a.func.isRequired}).isRequired});var mf=Object(n.connect)(null,e=>({actions:Object(s.bindActionCreators)({updateChannelNotifyProps:o.updateChannelNotifyProps},e)}))(df);function uf(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class pf extends C.a.PureComponent{constructor(...e){super(...e),uf(this,"toggleFavoriteChannel",e=>{const{isFavorite:t,actions:{favoriteChannel:a,unfavoriteChannel:n}}=this.props;return t?n(e):a(e)}),uf(this,"handleClick",e=>{e.preventDefault(),this.toggleFavoriteChannel(this.props.channel.id)})}render(){let e;return e=this.props.isFavorite?Object(I.gb)("channelHeader.removeFromFavorites","Remove from Favorites"):Object(I.gb)("channelHeader.addToFavorites","Add to Favorites"),C.a.createElement(ki.a.ItemAction,{show:this.props.show,onClick:this.handleClick,text:e})}}uf(pf,"propTypes",{show:v.a.bool.isRequired,channel:v.a.object.isRequired,isFavorite:v.a.bool.isRequired,actions:v.a.shape({favoriteChannel:v.a.func.isRequired,unfavoriteChannel:v.a.func.isRequired}).isRequired}),uf(pf,"defaultProps",{show:!0});var hf=Object(n.connect)(null,e=>({actions:Object(s.bindActionCreators)({favoriteChannel:o.favoriteChannel,unfavoriteChannel:o.unfavoriteChannel},e)}))(pf);function gf(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class bf extends C.a.PureComponent{constructor(...e){super(...e),gf(this,"handleClick",e=>{e.preventDefault();const{channel:t,hasPinnedPosts:a,actions:{closeRightHandSide:n,showPinnedPosts:s}}=this.props;a?n():s(t.id)})}render(){return C.a.createElement(ki.a.ItemAction,{show:this.props.show,onClick:this.handleClick,text:Object(I.gb)("navbar.viewPinnedPosts","View Pinned Posts")})}}gf(bf,"propTypes",{show:v.a.bool,channel:v.a.object.isRequired,hasPinnedPosts:v.a.bool.isRequired,actions:v.a.shape({closeRightHandSide:v.a.func.isRequired,showPinnedPosts:v.a.func.isRequired}).isRequired});var ff=Object(n.connect)(e=>({hasPinnedPosts:Object(Cs.k)(e)===P.C.PIN}),e=>({actions:Object(s.bindActionCreators)({closeRightHandSide:ys.b,showPinnedPosts:ys.n},e)}))(bf);class _f extends C.a.PureComponent{render(){const{user:e,channel:t,isDefault:a,isFavorite:n,isMuted:s,isReadonly:i,isArchived:r,isMobile:o,penultimateViewedChannelName:l,isLicensedForLDAPGroups:c}=this.props,d=t.type===P.j.PRIVATE_CHANNEL,m=!0===t.group_constrained,u=d?L.Permissions.MANAGE_PRIVATE_CHANNEL_MEMBERS:L.Permissions.MANAGE_PUBLIC_CHANNEL_MEMBERS,p=d?L.Permissions.MANAGE_PRIVATE_CHANNEL_PROPERTIES:L.Permissions.MANAGE_PUBLIC_CHANNEL_PROPERTIES,h=d?L.Permissions.DELETE_PRIVATE_CHANNEL:L.Permissions.DELETE_PUBLIC_CHANNEL;let g;o&&(g=C.a.createElement("li",{className:"MenuGroup mobile-menu-divider"},C.a.createElement("hr",null)));const b=this.props.pluginMenuItems.map(e=>C.a.createElement(ki.a.ItemAction,{id:e.id+"_pluginmenuitem",key:e.id+"_pluginmenuitem",onClick:()=>{e.action&&e.action(this.props.channel.id)},text:e.text}));return C.a.createElement(C.a.Fragment,null,C.a.createElement(ki.a.Group,{divider:g},C.a.createElement(ki.a.ItemToggleModalRedux,{id:"channelViewInfo",show:t.type!==P.j.DM_CHANNEL&&t.type!==P.j.GM_CHANNEL,modalId:P.u.CHANNEL_INFO,dialogType:Rb,dialogProps:{channel:t},text:Object(I.gb)("navbar.viewInfo","View Info")}),C.a.createElement(hf,{id:"channelToggleFavorite",show:o,channel:t,isFavorite:n}),C.a.createElement(ff,{id:"channelViewPinnedPosts",show:o,channel:t}),C.a.createElement(ki.a.ItemToggleModalRedux,{id:"channelNotificationPreferences",show:t.type!==P.j.DM_CHANNEL&&!r,modalId:P.u.CHANNEL_NOTIFICATIONS,dialogType:Mb,dialogProps:{channel:t,currentUser:e},text:Object(I.gb)("navbar.preferences","Notification Preferences")}),C.a.createElement(mf,{id:"channelToggleMuteChannel",user:e,channel:t,isMuted:s,isArchived:r})),C.a.createElement(ki.a.Group,{divider:g},C.a.createElement(Or,{channelId:t.id,teamId:t.team_id,permissions:[u]},C.a.createElement(ki.a.ItemToggleModalRedux,{id:"channelAddMembers",show:t.type!==P.j.DM_CHANNEL&&t.type!==P.j.GM_CHANNEL&&!r&&!a&&!m,modalId:P.u.CHANNEL_INVITE,dialogType:Wg,dialogProps:{channel:t},text:Object(I.gb)("navbar.addMembers","Add Members")}),C.a.createElement(ki.a.ItemToggleModalRedux,{id:"channelAddMembers",show:t.type===P.j.GM_CHANNEL&&!r&&!m,modalId:P.u.CREATE_DM_CHANNEL,dialogType:nh,dialogProps:{isExistingChannel:!0},text:Object(I.gb)("navbar.addMembers","Add Members")})),C.a.createElement(ki.a.ItemToggleModalRedux,{id:"channelViewMembers",show:t.type!==P.j.DM_CHANNEL&&t.type!==P.j.GM_CHANNEL&&(r||a),modalId:P.u.CHANNEL_MEMBERS,dialogType:ib,dialogProps:{channel:t},text:Object(I.gb)("channel_header.viewMembers","View Members")}),C.a.createElement(Or,{channelId:t.id,teamId:t.team_id,permissions:[u]},C.a.createElement(ki.a.ItemToggleModalRedux,{id:"channelAddGroups",show:t.type!==P.j.DM_CHANNEL&&t.type!==P.j.GM_CHANNEL&&!r&&!a&&m&&c,modalId:P.u.ADD_GROUPS_TO_CHANNEL,dialogType:Zb.a,text:Object(I.gb)("navbar.addGroups","Add Groups")}),C.a.createElement(ki.a.ItemToggleModalRedux,{id:"channelManageGroups",show:t.type!==P.j.DM_CHANNEL&&t.type!==P.j.GM_CHANNEL&&!r&&!a&&m&&c,modalId:P.u.MANAGE_CHANNEL_GROUPS,dialogType:tf,dialogProps:{channelID:t.id},text:Object(I.gb)("navbar_dropdown.manageGroups","Manage Groups")}),C.a.createElement(ki.a.ItemToggleModalRedux,{id:"channelManageMembers",show:t.type!==P.j.DM_CHANNEL&&t.type!==P.j.GM_CHANNEL&&!r&&!a,modalId:P.u.CHANNEL_MEMBERS,dialogType:ib,dialogProps:{channel:t},text:Object(I.gb)("channel_header.manageMembers","Manage Members")})),C.a.createElement(Or,{channelId:t.id,teamId:t.team_id,permissions:[u],invert:!0},C.a.createElement(ki.a.ItemToggleModalRedux,{id:"channelViewMembers",show:t.type!==P.j.DM_CHANNEL&&t.type!==P.j.GM_CHANNEL&&!r&&!a,modalId:P.u.CHANNEL_MEMBERS,dialogType:ib,dialogProps:{channel:t},text:Object(I.gb)("channel_header.viewMembers","View Members")}))),C.a.createElement(ki.a.Group,{divider:g},C.a.createElement(ki.a.ItemToggleModalRedux,{id:"channelEditHeader",show:!(t.type!==P.j.DM_CHANNEL&&t.type!==P.j.GM_CHANNEL||r||i),modalId:P.u.EDIT_CHANNEL_HEADER,dialogType:Hg,dialogProps:{channel:t},text:Object(I.gb)("channel_header.setHeader","Edit Channel Header")}),C.a.createElement(Or,{channelId:t.id,teamId:t.team_id,permissions:[p]},C.a.createElement(ki.a.ItemToggleModalRedux,{id:"channelEditHeader",show:t.type!==P.j.DM_CHANNEL&&t.type!==P.j.GM_CHANNEL&&!r&&!i,modalId:P.u.EDIT_CHANNEL_HEADER,dialogType:Hg,dialogProps:{channel:t},text:Object(I.gb)("channel_header.setHeader","Edit Channel Header")}),C.a.createElement(ki.a.ItemToggleModalRedux,{id:"channelEditPurpose",show:!r&&!i&&t.type!==P.j.DM_CHANNEL&&t.type!==P.j.GM_CHANNEL,modalId:P.u.EDIT_CHANNEL_PURPOSE,dialogType:Db,dialogProps:{channel:t},text:Object(I.gb)("channel_header.setPurpose","Edit Channel Purpose")}),C.a.createElement(ki.a.ItemToggleModalRedux,{id:"channelRename",show:!r&&t.type!==P.j.DM_CHANNEL&&t.type!==P.j.GM_CHANNEL,modalId:P.u.RENAME_CHANNEL,dialogType:Vb,dialogProps:{channel:t},text:Object(I.gb)("channel_header.rename","Rename Channel")})),C.a.createElement(pm.a,{teamId:t.team_id,permissions:[L.Permissions.MANAGE_TEAM]},C.a.createElement(ki.a.ItemToggleModalRedux,{id:"channelCovertToPrivate",show:!r&&!a&&t.type===P.j.OPEN_CHANNEL,modalId:P.u.CONVERT_CHANNEL,dialogType:Yb,dialogProps:{channelId:t.id,channelDisplayName:t.display_name},text:Object(I.gb)("channel_header.convert","Convert to Private Channel")})),C.a.createElement(Or,{channelId:t.id,teamId:t.team_id,permissions:[h]},C.a.createElement(ki.a.ItemToggleModalRedux,{id:"channelArchiveChannel",show:!r&&!a&&t.type!==P.j.DM_CHANNEL&&t.type!==P.j.GM_CHANNEL,modalId:P.u.DELETE_CHANNEL,dialogType:Jb,dialogProps:{channel:t,penultimateViewedChannelName:l},text:Object(I.gb)("channel_header.delete","Archive Channel")}))),C.a.createElement(ki.a.Group,null,b),C.a.createElement(ki.a.Group,{divider:g},o&&C.a.createElement(fb,{channel:t,isDropdown:!0}),C.a.createElement(sf,{id:"channelLeaveChannel",channel:t,isDefault:a,isGuestUser:Object(I.V)(e)}),C.a.createElement(lf,{id:"channelCloseChannel",isArchived:r})))}}!function(e,t,a){t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a}(_f,"propTypes",{user:v.a.object.isRequired,channel:v.a.object.isRequired,isDefault:v.a.bool.isRequired,isFavorite:v.a.bool.isRequired,isReadonly:v.a.bool.isRequired,isMuted:v.a.bool.isRequired,isArchived:v.a.bool.isRequired,isMobile:v.a.bool.isRequired,penultimateViewedChannelName:v.a.string.isRequired,pluginMenuItems:v.a.arrayOf(v.a.object),isLicensedForLDAPGroups:v.a.bool});const Ef=350;class vf extends C.a.PureComponent{render(){return C.a.createElement(nd.a,{in:this.props.show,classNames:"mobile-channel-header-dropdown",enter:!0,exit:!0,mountOnEnter:!0,unmountOnExit:!0,timeout:{enter:Ef,exit:Ef}},this.props.children)}}function yf(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}!function(e,t,a){t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a}(vf,"propTypes",{children:v.a.node,show:v.a.bool.isRequired});class Cf extends C.a.PureComponent{constructor(...e){super(...e),yf(this,"getChannelTitle",()=>{const{user:e,channel:t,teammateId:a}=this.props;if(t.type===P.j.DM_CHANNEL){const t=Object(I.w)(a);return e.id===a?C.a.createElement(V.a,{id:"channel_header.directchannel.you",defaultMessage:"{displayname} (you)",values:{displayname:t}}):t}return t.display_name})}render(){const{teammateIsBot:e,teammateStatus:t}=this.props;let a;return e||(a=C.a.createElement(qh.a,{status:t})),C.a.createElement(Ri.a,{animationComponent:vf},C.a.createElement("a",null,C.a.createElement("span",{className:"heading"},a,this.getChannelTitle()),C.a.createElement(V.a,{id:"generic_icons.dropdown",defaultMessage:"Dropdown Icon"},e=>C.a.createElement("span",{className:"fa fa-angle-down header-dropdown__icon",title:e}))),C.a.createElement(V.a,{id:"channel_header.menuAriaLabel",defaultMessage:"Channel Menu"},e=>C.a.createElement(ki.a,{ariaLabel:e},C.a.createElement(Sf,{isMobile:!0}),C.a.createElement("div",{className:"Menu__close visible-xs-block"},"×"))))}}yf(Cf,"propTypes",{user:v.a.object.isRequired,channel:v.a.object.isRequired,teammateId:v.a.string,teammateIsBot:v.a.bool,teammateStatus:v.a.string});const wf=Object(Hs.createSelector)(p.getCurrentChannel,e=>e.type!==P.j.DM_CHANNEL?null:I.I(e)),Of=Object(Hs.createSelector)(m.getUserStatuses,wf,(e,t)=>t?e[t]:null),Tf=hb,Sf=Object(n.connect)(e=>({user:Object(m.getCurrentUser)(e),channel:Object(p.getCurrentChannel)(e),isDefault:Object(p.isCurrentChannelDefault)(e),isFavorite:Object(p.isCurrentChannelFavorite)(e),isMuted:Object(p.isCurrentChannelMuted)(e),isReadonly:Object(p.isCurrentChannelReadOnly)(e),isArchived:Object(p.isCurrentChannelArchived)(e),penultimateViewedChannelName:Object(Rg.c)(e)||Object(p.getRedirectChannelNameForTeam)(e,Object(u.getCurrentTeamId)(e)),pluginMenuItems:e.plugins.components.ChannelHeader||[],isLicensedForLDAPGroups:"true"===e.entities.general.license.LDAPGroups}))(_f),Pf=Object(n.connect)(e=>{const t=Object(m.getCurrentUser)(e),a=Object(p.getCurrentChannel)(e),n=wf(e);let s=!1;if(n){const t=Object(m.getUser)(e,n);s=t&&t.is_bot}return{user:t,channel:a,teammateId:n,teammateIsBot:s,teammateStatus:Of(e)}})(Cf);var Mf=a(1238),If=a(1934);class Nf extends C.a.PureComponent{render(){return C.a.createElement("span",this.props,C.a.createElement(V.a,{id:"generic_icons.plugins",defaultMessage:"Plugins"},e=>C.a.createElement("svg",{width:"14px",height:"14px",viewBox:"0 0 16 16",version:"1.1",role:"img","aria-label":e},C.a.createElement("path",{fillRule:"evenodd",d:"M10.2500542,0.707106781 C10.6987855,0.707106781 11.0625542,1.07087542 11.0625542,1.51960678 L11.0615542,3.50610678 L12.8042208,3.50710678 C13.4301435,3.50710678 13.9375542,4.0145174 13.9375542,4.64044011 C13.9375542,5.26636283 13.4301435,5.77377345 12.8042208,5.77377345 L12.8125542,5.77377345 L12.8125542,8.97377345 L12.8125542,8.97377345 C12.8125542,11.2921636 10.8653399,13.2156919 8.31338929,13.5787961 L8.31255416,15.8946068 C8.31255416,16.3433381 7.94878552,16.7071068 7.50005416,16.7071068 C7.0513228,16.7071068 6.68755416,16.3433381 6.68755416,15.8946068 L6.68783265,13.5954057 C4.14942691,13.2878302 2.17885387,11.4410225 2.06752014,9.17620376 L2.06255416,8.97377345 L2.06255416,8.97377345 L2.06255416,5.77377345 L2.07088749,5.77377345 C1.44496478,5.77377345 0.937554159,5.26636283 0.937554159,4.64044011 C0.937554159,4.0145174 1.44496478,3.50710678 2.07088749,3.50710678 L3.81155416,3.50610678 L3.81255416,1.51960678 C3.81255416,1.07087542 4.1763228,0.707106781 4.62505416,0.707106781 C5.07378552,0.707106781 5.43755416,1.07087542 5.43755416,1.51960678 L5.43655416,3.50610678 L9.43655416,3.50610678 L9.43755416,1.51960678 C9.43755416,1.07087542 9.8013228,0.707106781 10.2500542,0.707106781 Z M11,6 L4,6 L4,9.3 L4.07019791,9.30071649 C4.39483943,10.5555917 5.80705165,11.5 7.5,11.5 C9.19294835,11.5 10.6051606,10.5555917 10.9298021,9.30071649 L10.9298021,9.30071649 L11,9.3 L11,6 Z",transform:"rotate(45 7.707 6.793)"}))))}}function jf(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class Af extends C.a.PureComponent{constructor(...e){super(...e),jf(this,"handleRootClose",()=>{this.props.onClose()})}render(){const{open:e,rootCloseEvent:t,children:a}=this.props;return C.a.createElement(If.a,{disabled:!e,onRootClose:this.handleRootClose,event:t},C.a.createElement("ul",{role:"menu",className:"dropdown-menu channel-header_plugin-dropdown"},a))}}jf(Af,"propTypes",{open:v.a.bool,children:v.a.node,onClose:v.a.func.isRequired,rootCloseEvent:v.a.oneOf(["click","mousedown"])});class Rf extends C.a.PureComponent{constructor(...e){super(...e),jf(this,"handleClick",e=>{this.props.onClick(e)})}render(){const{children:e}=this.props;let t="";return this.props.dropdownOpen&&(t=" active"),C.a.createElement("button",{id:"pluginChannelHeaderButtonDropdown",className:"wide channel-header__icon style--none"+t,type:"button",onClick:this.handleClick},e)}}jf(Rf,"propTypes",{children:v.a.element,dropdownOpen:v.a.bool,onClick:v.a.func});class kf extends C.a.PureComponent{constructor(e){super(e),jf(this,"toggleDropdown",e=>{this.setState({dropdownOpen:e})}),jf(this,"onClose",()=>{this.toggleDropdown(!1)}),jf(this,"fireActionAndClose",e=>{e(this.props.channel,this.props.channelMember),this.onClose()}),jf(this,"createButton",e=>C.a.createElement(bc,{buttonClass:"channel-header__icon style--none",iconComponent:e.icon,onClick:()=>e.action(this.props.channel,this.props.channelMember),buttonId:e.id,tooltipKey:"plugin",tooltipText:e.tooltipText?e.tooltipText:e.dropdownText})),jf(this,"createDropdown",e=>{const t=e.map(e=>C.a.createElement("li",{key:"channelHeaderPlug"+e.id},C.a.createElement("a",{href:"#",className:"d-flex align-items-center",onClick:()=>this.fireActionAndClose(e.action)},C.a.createElement("span",{className:"d-flex align-items-center overflow--ellipsis"},e.icon),C.a.createElement("span",null,e.dropdownText))));return C.a.createElement("div",{className:"flex-child"},C.a.createElement(Mf.a,{id:"channelHeaderPlugDropdown",onToggle:this.toggleDropdown,onSelect:this.onSelect,open:this.state.dropdownOpen},C.a.createElement(Rf,{dropdownOpen:this.state.dropdownOpen,bsRole:"toggle"},C.a.createElement("div",null,C.a.createElement("span",{id:"pluginCount",className:"icon__text"},e.length),C.a.createElement(Nf,{id:"pluginChannelHeaderIcon",className:"icon icon__pluginChannelHeader","aria-hidden":"true"}))),C.a.createElement(Af,{bsRole:"menu",open:this.state.dropdownOpen,onClose:this.onClose},t)))}),this.state={dropdownOpen:!1}}render(){const e=this.props.components||[];return 0===e.length?null:1===e.length?this.createButton(e[0]):this.createDropdown(e)}}jf(kf,"propTypes",{components:v.a.array,channel:v.a.object.isRequired,channelMember:v.a.object.isRequired,theme:v.a.object.isRequired});var Lf=Object(n.connect)((function(e){return{components:e.plugins.components.ChannelHeaderButton,theme:Object(c.getTheme)(e)}}))(kf);function Df(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function xf(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?Df(a,!0).forEach((function(t){Uf(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):Df(a).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function Uf(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const qf={singleline:!0,mentionHighlight:!1,atMentions:!0},Hf={singleline:!1,mentionHighlight:!1,atMentions:!0},Ff=1140;class Bf extends C.a.PureComponent{constructor(e){super(e),Uf(this,"handleResize",()=>{this.setState({showSearchBar:Bf.getShowSearchBar(this.props)})}),Uf(this,"handleClose",()=>{this.props.actions.goToLastViewedChannel()}),Uf(this,"toggleFavorite",e=>{e.stopPropagation(),this.props.isFavorite?this.props.actions.unfavoriteChannel(this.props.channel.id):this.props.actions.favoriteChannel(this.props.channel.id)}),Uf(this,"unmute",()=>{const{actions:e,channel:t,channelMember:a,currentUser:n}=this.props;if(!a||!n||!t)return;const s={mark_unread:P.v.ALL};e.updateChannelNotifyProps(n.id,t.id,s)}),Uf(this,"mute",()=>{const{actions:e,channel:t,channelMember:a,currentUser:n}=this.props;if(!a||!n||!t)return;const s={mark_unread:P.v.MENTION};e.updateChannelNotifyProps(n.id,t.id,s)}),Uf(this,"searchMentions",e=>{e.preventDefault(),this.props.rhsState===P.C.MENTION?this.props.actions.closeRightHandSide():this.props.actions.showMentions()}),Uf(this,"showPinnedPosts",e=>{e.preventDefault(),this.props.rhsState===P.C.PIN?this.props.actions.closeRightHandSide():this.props.actions.showPinnedPosts()}),Uf(this,"getFlagged",e=>{e.preventDefault(),this.props.rhsState===P.C.FLAG?this.props.actions.closeRightHandSide():this.props.actions.showFlaggedPosts()}),Uf(this,"searchButtonClick",e=>{e.preventDefault(),this.props.actions.openRHSSearch()}),Uf(this,"handleShortcut",e=>{I.e(e)&&e.shiftKey&&(I.W(e,P.j.KeyCodes.M)&&(e.preventDefault(),this.props.actions.closeModal(P.u.QUICK_SWITCH),this.searchMentions(e)),I.W(e,P.j.KeyCodes.L)&&this.props.actions.closeModal(P.u.QUICK_SWITCH))}),Uf(this,"handleOnMouseOver",()=>{this.refs.headerOverlay&&this.refs.headerOverlay.show()}),Uf(this,"handleOnMouseOut",()=>{this.refs.headerOverlay&&this.refs.headerOverlay.hide()}),Uf(this,"handleQuickSwitchKeyPress",e=>{I.e(e)&&!e.shiftKey&&I.W(e,P.j.KeyCodes.K)&&(e.altKey||(e.preventDefault(),this.toggleQuickSwitchModal()))}),Uf(this,"toggleQuickSwitchModal",()=>{const{isQuickSwitcherOpen:e}=this.props;e?this.props.actions.closeModal(P.u.QUICK_SWITCH):this.props.actions.openModal({modalId:P.u.QUICK_SWITCH,dialogType:Ch})}),Uf(this,"removeTooltipLink",()=>{this.toggleFavoriteRef.current.removeAttribute("aria-describedby")}),Uf(this,"showEditChannelHeaderModal",()=>{this.refs.headerOverlay&&this.refs.headerOverlay.hide();const{actions:e,channel:t}=this.props,a={modalId:P.u.EDIT_CHANNEL_HEADER,dialogType:Hg,dialogProps:{channel:t}};e.openModal(a)}),this.toggleFavoriteRef=C.a.createRef(),this.state={showSearchBar:Bf.getShowSearchBar(e)},this.getHeaderMarkdownOptions=Object(Nd.memoizeResult)(e=>xf({},qf,{channelNamesMap:e})),this.getPopoverMarkdownOptions=Object(Nd.memoizeResult)(e=>xf({},Hf,{channelNamesMap:e}))}componentDidMount(){this.props.actions.getCustomEmojisInText(this.props.channel?this.props.channel.header:""),document.addEventListener("keydown",this.handleShortcut),document.addEventListener("keydown",this.handleQuickSwitchKeyPress),window.addEventListener("resize",this.handleResize)}componentWillUnmount(){document.removeEventListener("keydown",this.handleShortcut),document.removeEventListener("keydown",this.handleQuickSwitchKeyPress),window.removeEventListener("resize",this.handleResize)}componentDidUpdate(e){const t=this.props.channel?this.props.channel.header:"";t!==(e.channel?e.channel.header:"")&&this.props.actions.getCustomEmojisInText(t)}static getDerivedStateFromProps(e){return{showSearchBar:Bf.getShowSearchBar(e)}}static getShowSearchBar(e){return I.sb()>Ff||e.rhsOpen}render(){const{teamId:e,currentUser:t,gmMembers:a,channel:n,channelMember:s,isMuted:i,isReadOnly:r,isFavorite:o,dmUser:l,rhsState:c,hasGuests:d}=this.props,{formatMessage:m}=this.props.intl,u=I.gb("accessibility.sections.channelHeader","channel header region");let p="";d&&(p=C.a.createElement("span",{className:"has-guest-header"},C.a.createElement(V.a,{id:"channel_header.channelHasGuests",defaultMessage:"This channel has guests"})));const h=0!==n.delete_at;if(I.R(n)||I.R(s)||I.R(t)||!l&&n.type===P.j.DM_CHANNEL)return C.a.createElement("div",{className:"channel-header"});const g=n.props&&n.props.channel_mentions;let b=n.display_name,f=null;h&&(f=C.a.createElement(kc.a,{className:"icon icon__archive icon channel-header-archived-icon svg-text-color"}));const _=n.type===P.j.DM_CHANNEL,E=n.type===P.j.GM_CHANNEL,v=n.type===P.j.PRIVATE_CHANNEL;if(_){const e=l.id;b=t.id===e?C.a.createElement(V.a,{id:"channel_header.directchannel.you",defaultMessage:"{displayname} (you) ",values:{displayname:I.w(e)}}):I.w(e)+" ",b=C.a.createElement(C.a.Fragment,null,b,C.a.createElement(an.a,{show:I.V(l)}))}if(E){const e={};for(const n of a){if(n.id===t.id)continue;const a=I.w(n.id);e[a]||(e[a]=[]),e[a].push(n)}b=n.display_name.split(", ").map((t,a)=>{if(!e[t])return t;const n=e[t].shift();return C.a.createElement(C.a.Fragment,{key:n.id},a>0&&", ",t,C.a.createElement(an.a,{show:I.V(n)}))}),d&&(p=C.a.createElement("span",{className:"has-guest-header"},C.a.createElement(V.a,{id:"channel_header.groupMessageHasGuests",defaultMessage:"This group message has guests"})))}let y,w,O,T;_||(y=C.a.createElement(ub,{channel:n})),!_||l.delete_at||l.is_bot||(w=C.a.createElement(qh.a,{type:"avatar",status:n.status}),O=C.a.createElement("span",{className:"header-status__text"},C.a.createElement(V.a,{id:"status_dropdown.set_".concat(n.status),defaultMessage:I.qb(n.status)})));const S=_&&l.is_bot?l.bot_description:n.header;if(S){const e=C.a.createElement(nc.a,{id:"header-popover",popoverStyle:"info",popoverSize:"lg",placement:"bottom",className:"channel-header__popover",onMouseOver:this.handleOnMouseOver,onMouseOut:this.handleOnMouseOut},C.a.createElement(va.a,{message:S,options:this.getPopoverMarkdownOptions(g)}));T=C.a.createElement(ui.a,{trigger:"click",placement:"bottom",rootClose:!0,overlay:e,ref:"headerOverlay"},C.a.createElement("div",{id:"channelHeaderDescription",className:"channel-header__description"},w,O,p,C.a.createElement("span",{className:"header-description__text",onClick:I.J},C.a.createElement(va.a,{message:S,options:this.getHeaderMarkdownOptions(g)}))))}else{let t;r||h||(_||E?_&&l.is_bot||(t=C.a.createElement("button",{className:"style--none",onClick:this.showEditChannelHeaderModal},C.a.createElement(V.a,{id:"channel_header.addChannelHeader",defaultMessage:"Add a channel description"}))):t=C.a.createElement(Or,{channelId:n.id,teamId:e,permissions:[v?L.Permissions.MANAGE_PRIVATE_CHANNEL_PROPERTIES:L.Permissions.MANAGE_PUBLIC_CHANNEL_PROPERTIES]},C.a.createElement("button",{className:"style--none",onClick:this.showEditChannelHeaderModal},C.a.createElement(V.a,{id:"channel_header.addChannelHeader",defaultMessage:"Add a channel description"})))),T=C.a.createElement("div",{id:"channelHeaderDescription",className:"channel-header__description light"},w,O,p,t)}let M,N=null,j="";h||(o?(M=C.a.createElement(mi.a,{id:"favoriteTooltip"},C.a.createElement(V.a,{id:"channelHeader.removeFromFavorites",defaultMessage:"Remove from Favorites"})),j=m({id:"channelHeader.removeFromFavorites",defaultMessage:"Remove from Favorites"}).toLowerCase()):(M=C.a.createElement(mi.a,{id:"favoriteTooltip"},C.a.createElement(V.a,{id:"channelHeader.addToFavorites",defaultMessage:"Add to Favorites"})),j=m({id:"channelHeader.addToFavorites",defaultMessage:"Add to Favorites"}).toLowerCase()),N=C.a.createElement(ui.a,{delayShow:P.j.OVERLAY_TIME_DELAY,placement:"bottom",overlay:M,onEntering:this.removeTooltipLink},C.a.createElement("button",{id:"toggleFavorite",ref:this.toggleFavoriteRef,onClick:this.toggleFavorite,className:"style--none color--link channel-header__favorites "+(this.props.isFavorite?"active":"inactive"),"aria-label":j},C.a.createElement("i",{className:"icon fa "+(this.props.isFavorite?"fa-star":"fa-star-o")}))));const A=C.a.createElement(mi.a,{id:"channelMutedTooltip"},C.a.createElement(V.a,{id:"channelHeader.unmute",defaultMessage:"Unmute"}));let R;i&&(R=C.a.createElement(ui.a,{delayShow:P.j.OVERLAY_TIME_DELAY,placement:"bottom",overlay:A},C.a.createElement("button",{id:"toggleMute",onClick:this.unmute,className:"style--none color--link channel-header__mute inactive","aria-label":m({id:"generic_icons.muted",defaultMessage:"Muted Icon"})},C.a.createElement("i",{className:"icon fa fa-bell-slash-o"}))));let k="channel-header__icon";c===P.C.PIN&&(k+=" active");let D="channel-header__icon";c===P.C.MENTION&&(D+=" active");let x="channel-header__icon";c===P.C.FLAG&&(x+=" active");let U=C.a.createElement(C.a.Fragment,null,N,C.a.createElement(Ri.a,null,C.a.createElement("div",{id:"channelHeaderDropdownButton",className:"channel-header__top"},C.a.createElement("button",{className:"channel-header__trigger style--none","aria-label":m({id:"channel_header.menuAriaLabel",defaultMessage:"Channel Menu"}).toLowerCase()},C.a.createElement("strong",{role:"heading","aria-level":"2",id:"channelHeaderTitle",className:"heading"},C.a.createElement("span",null,f,b)),C.a.createElement("span",{id:"channelHeaderDropdownIcon",className:"fa fa-angle-down header-dropdown__icon","aria-label":m({id:"generic_icons.dropdown",defaultMessage:"Dropdown Icon"}).toLowerCase()}))),C.a.createElement(Tf,null)));return _&&l.is_bot&&(U=C.a.createElement("div",{id:"channelHeaderDropdownButton",className:"channel-header__top"},N,C.a.createElement("strong",{role:"heading","aria-level":"2",id:"channelHeaderTitle",className:"heading"},C.a.createElement("span",null,f,b)),C.a.createElement(tn.a,{className:"badge-popoverlist"}))),C.a.createElement("div",{id:"channel-header","aria-label":u,role:"application",tabIndex:"-1","data-channelid":"".concat(n.id),className:"channel-header alt a11y__region","data-a11y-sort-order":"7"},C.a.createElement("div",{className:"flex-parent"},C.a.createElement("div",{className:"flex-child"},C.a.createElement("div",{id:"channelHeaderInfo",className:"channel-header__info"},C.a.createElement("div",{className:"channel-header__title dropdown"},C.a.createElement("div",null,U),R),T)),C.a.createElement("div",{className:"flex-child"},y),C.a.createElement(Lf,{channel:n,channelMember:s}),C.a.createElement(bc,{iconComponent:C.a.createElement(pb,{className:"icon icon__pin","aria-hidden":"true"}),ariaLabel:!0,buttonClass:"style--none "+k,buttonId:"channelHeaderPinButton",onClick:this.showPinnedPosts,tooltipKey:"pinnedPosts"}),this.state.showSearchBar?C.a.createElement("div",{id:"searchbarContainer",className:"flex-child search-bar__container"},C.a.createElement(Tc,{showMentionFlagBtns:!1,isFocus:I.Y()||this.props.rhsOpen&&this.props.rhsState})):C.a.createElement(bc,{iconComponent:C.a.createElement(Ec.a,{className:"icon icon__search icon--stroke","aria-hidden":"true"}),ariaLabel:!0,buttonId:"channelHeaderSearchButton",onClick:this.searchButtonClick,tooltipKey:"search"}),C.a.createElement(bc,{iconComponent:C.a.createElement(_c,{className:"icon icon__mentions","aria-hidden":"true"}),ariaLabel:!0,buttonClass:"style--none "+D,buttonId:"channelHeaderMentionButton",onClick:this.searchMentions,tooltipKey:"recentMentions"}),C.a.createElement(bc,{iconComponent:C.a.createElement(to,{className:"icon icon__flag"}),ariaLabel:!0,buttonClass:"style--none "+x,buttonId:"channelHeaderFlagButton",onClick:this.getFlagged,tooltipKey:"flaggedPosts"})))}}Uf(Bf,"propTypes",{teamId:v.a.string.isRequired,currentUser:v.a.object.isRequired,channel:v.a.object,channelMember:v.a.object,dmUser:v.a.object,gmMembers:v.a.array,isFavorite:v.a.bool,isReadOnly:v.a.bool,isMuted:v.a.bool,hasGuests:v.a.bool,rhsState:v.a.oneOf(Object.values(P.C)),rhsOpen:v.a.bool,isQuickSwitcherOpen:v.a.bool,intl:Y.a.isRequired,actions:v.a.shape({favoriteChannel:v.a.func.isRequired,unfavoriteChannel:v.a.func.isRequired,showFlaggedPosts:v.a.func.isRequired,showPinnedPosts:v.a.func.isRequired,showMentions:v.a.func.isRequired,openRHSSearch:v.a.func.isRequired,closeRightHandSide:v.a.func.isRequired,getCustomEmojisInText:v.a.func.isRequired,updateChannelNotifyProps:v.a.func.isRequired,goToLastViewedChannel:v.a.func.isRequired,openModal:v.a.func.isRequired,closeModal:v.a.func.isRequired}).isRequired});var Gf=Object(W.c)(Bf);var Vf=Object(i.g)(Object(n.connect)((function(){const e=Object(m.makeGetProfilesInChannel)();return function(t){const a=Object(p.getCurrentChannel)(t)||{},n=Object(m.getCurrentUser)(t);let s,i;if(a&&a.type===L.General.DM_CHANNEL){const e=Object(un.getUserIdFromChannelName)(n.id,a.name);s=Object(m.getUser)(t,e)}else a&&a.type===L.General.GM_CHANNEL&&(i=e(t,a.id,!1));const r=Object(p.getCurrentChannelStats)(t)||{member_count:0,guest_count:0};return{teamId:Object(u.getCurrentTeamId)(t),channel:a,channelMember:Object(p.getMyCurrentChannelMembership)(t),currentUser:n,dmUser:s,gmMembers:i,rhsState:Object(Cs.k)(t),rhsOpen:Object(Cs.c)(t),isFavorite:Object(p.isCurrentChannelFavorite)(t),isReadOnly:Object(p.isCurrentChannelReadOnly)(t),isMuted:Object(p.isCurrentChannelMuted)(t),isQuickSwitcherOpen:Object(gd.a)(t,P.u.QUICK_SWITCH),hasGuests:r.guest_count>0}}}),e=>({actions:Object(s.bindActionCreators)({favoriteChannel:o.favoriteChannel,unfavoriteChannel:o.unfavoriteChannel,showFlaggedPosts:ys.l,showPinnedPosts:ys.n,showMentions:ys.m,openRHSSearch:ys.e,closeRightHandSide:ys.b,getCustomEmojisInText:yt.getCustomEmojisInText,updateChannelNotifyProps:o.updateChannelNotifyProps,goToLastViewedChannel:f.c,openModal:x.b,closeModal:x.a},e)}))(Gf)),Wf=a(1137),zf=a(1744),Yf=a(1959),Kf=a(316),Qf=a.n(Kf),Jf=a(82);class Zf extends C.a.PureComponent{render(){if(!this.props.fileInfos||0===this.props.fileInfos.length)return null;let e=null;return this.props.fileInfos.length>1&&(e=C.a.createElement(V.a,{id:"post_body.plusMore",defaultMessage:" plus {count, number} other {count, plural, one {file} other {files}}",values:{count:this.props.fileInfos.length-1}})),C.a.createElement("span",null,this.props.fileInfos[0].name,e)}}!function(e,t,a){t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a}(Zf,"propTypes",{parentPostId:v.a.string.isRequired,fileInfos:v.a.arrayOf(v.a.object)});var Xf=Object(n.connect)((function(){const e=Object(es.makeGetFilesForPost)();return function(t,a){let n;return a.parentPostId&&(n=e(t,a.parentPostId)),{fileInfos:n}}}))(Zf);function $f(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class e_ extends y.PureComponent{constructor(...e){super(...e),$f(this,"handleOnClick",()=>{const{actions:e}=this.props,t=this.makeUsername();e.updateSearchTerms(t),e.showSearchResults()}),$f(this,"makeUsername",()=>{const e=this.props.post.props;let t=this.props.displayName;return this.props.enablePostUsernameOverride&&e&&"true"===e.from_webhook&&e.override_username&&(t=e.override_username),t}),$f(this,"makeCommentedOnMessage",()=>{const{post:e}=this.props;let t="";if(e.message)t=I.mb(e.message);else if(e.file_ids&&e.file_ids.length>0)t=C.a.createElement(Xf,{parentPostId:e.id});else if(e.props&&e.props.attachments&&e.props.attachments.length>0){const a=e.props.attachments[0],n=a.pretext||a.title||a.text||a.fallback||"";t=I.mb(n)}return t})}render(){const e=this.makeUsername(),t=this.makeCommentedOnMessage(),a=C.a.createElement("a",{className:"theme",onClick:this.handleOnClick},e);return C.a.createElement("div",{"data-testid":"post-link",className:"post__link"},C.a.createElement("span",null,C.a.createElement(V.a,{id:"post_body.commentedOn",defaultMessage:"Commented on {name}'s message: ",values:{name:a}}),C.a.createElement("a",{className:"theme",onClick:this.props.onCommentClick},Object(Jf.c)(t))))}}$f(e_,"propTypes",{displayName:v.a.string,enablePostUsernameOverride:v.a.bool,onCommentClick:v.a.func.isRequired,post:v.a.object.isRequired,actions:v.a.shape({showSearchResults:v.a.func.isRequired,updateSearchTerms:v.a.func.isRequired}).isRequired});var t_=Object(n.connect)((function(e,t){let a="";if(t.post){const n=Object(m.getUser)(e,t.post.user_id);a=Object(I.v)(n)}return{displayName:a,enablePostUsernameOverride:"true"===Object(d.getConfig)(e).EnablePostUsernameOverride}}),(function(e){return{actions:Object(s.bindActionCreators)({showSearchResults:ys.p,updateSearchTerms:ys.u},e)}}))(e_);function a_(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const n_=3e3;class s_ extends C.a.PureComponent{constructor(e){super(e),this.sendingAction=new xs(()=>{const e=this.props.post;e&&e.id===e.pending_post_id&&this.setState({sending:!0})}),this.state={sending:!1}}static getDerivedStateFromProps(e,t){return t.sending&&e.post&&e.post.id!==e.post.pending_post_id?{sending:!1}:null}componentDidUpdate(){!1===this.state.sending&&this.sendingAction.cancel()}componentDidMount(){const e=this.props.post;e&&e.id===e.pending_post_id&&this.sendingAction.fireAfter(n_)}componentWillUnmount(){this.sendingAction.cancel()}render(){const e=this.props.post,t=this.props.parentPost;let a,n="";const s=I.Z(e);let i;this.props.isFirstReply&&t&&!s&&(a=C.a.createElement(t_,{post:t,onCommentClick:this.props.handleCommentClick})),this.props.post.failed&&(n+=" post--fail",i=C.a.createElement(eo,{post:this.props.post})),z.k(this.props.post)&&(n+=" post--edited");let r=null;(e.file_ids&&e.file_ids.length>0||e.filenames&&e.filenames.length>0)&&this.props.post.state!==L.Posts.POST_DELETED&&(r=C.a.createElement(Wr,{post:e,compactDisplay:this.props.compactDisplay})),this.state.sending&&(n+=" post-waiting");const o=C.a.createElement(C.a.Fragment,null,i,this.state.sending&&C.a.createElement(vc.a,null),C.a.createElement(bl,{post:this.props.post,compactDisplay:this.props.compactDisplay,hasMention:!0})),l=e.type&&this.props.pluginPostTypes.hasOwnProperty(e.type)||e.props&&e.props.type&&this.props.pluginPostTypes.hasOwnProperty(e.props.type);let c;c=this.props.post.state===L.Posts.POST_DELETED||l?o:C.a.createElement(pl,{post:this.props.post,isEmbedVisible:this.props.isEmbedVisible},o);let d="";this.props.isCommentMention&&(d="mention-comment");let m="";return s&&(m="post--ephemeral"),C.a.createElement("div",null,a,C.a.createElement("div",{id:"".concat(e.id,"_message"),className:"post__body ".concat(d," ").concat(m," ").concat(n)},c,r,C.a.createElement(To,{post:e,isReadOnly:this.props.isReadOnly})))}}a_(s_,"propTypes",{post:v.a.object.isRequired,parentPost:v.a.object,parentPostUser:v.a.object,handleCommentClick:v.a.func.isRequired,compactDisplay:v.a.bool,isCommentMention:v.a.bool,isFirstReply:v.a.bool,pluginPostTypes:v.a.object,isEmbedVisible:v.a.bool,enablePostUsernameOverride:v.a.bool.isRequired,isReadOnly:v.a.bool}),a_(s_,"defaultProps",{isReadOnly:!1});var i_=Object(n.connect)((function(e,t){let a,n;t.post.root_id&&(n=(a=Object(qa.getPost)(e,t.post.root_id))?Object(m.getUser)(e,a.user_id):null);const s="true"===Object(d.getConfig)(e).EnablePostUsernameOverride,i=0!==Object(p.getCurrentChannel)(e).delete_at;return{parentPost:a,parentPostUser:n,pluginPostTypes:e.plugins.postTypes,enablePostUsernameOverride:s,isReadOnly:Object(p.isCurrentChannelReadOnly)(e)||i}}))(s_);function r_(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class o_ extends C.a.PureComponent{constructor(e){super(e),r_(this,"toggleEmojiPicker",()=>{const e=!this.state.showEmojiPicker;this.setState({showEmojiPicker:e}),this.props.handleDropdownOpened(e||this.state.showDotMenu)}),r_(this,"removePost",()=>{this.props.actions.removePost(this.props.post)}),r_(this,"createRemovePostButton",()=>C.a.createElement("button",{className:"post__remove theme color--link style--none",type:"button",onClick:this.removePost},"×")),r_(this,"handleDotMenuOpened",e=>{this.setState({showDotMenu:e}),this.props.handleDropdownOpened(e||this.state.showEmojiPicker)}),r_(this,"getDotMenu",()=>this.refs.dotMenu),r_(this,"buildOptions",(e,t,a)=>{if(!z.s(e))return null;const{isMobile:n,isReadOnly:s}=this.props,i=this.props.hover||this.state.showEmojiPicker||this.state.showDotMenu,r=n?"":"pull-right";let o;let l;let c;return(a||!t&&(n||i||!e.root_id&&Boolean(this.props.replyCount)||this.props.isFirstReply))&&(o=C.a.createElement(Rc,{handleCommentClick:this.props.handleCommentClick,commentCount:this.props.replyCount,postId:e.id,extraClass:r})),!t&&i&&!s&&this.props.enableEmojiPicker&&(l=C.a.createElement(ho,{channelId:e.channel_id,postId:e.id,teamId:this.props.teamId,getDotMenuRef:this.getDotMenu,showEmojiPicker:this.state.showEmojiPicker,toggleEmojiPicker:this.toggleEmojiPicker})),(n||i)&&(c=C.a.createElement(Ir,{post:e,commentCount:this.props.replyCount,isFlagged:this.props.isFlagged,handleCommentClick:this.props.handleCommentClick,handleDropdownOpened:this.handleDotMenuOpened,handleAddReactionClick:this.toggleEmojiPicker,isReadOnly:s,enableEmojiPicker:this.props.enableEmojiPicker})),C.a.createElement("div",{ref:"dotMenu",className:"col col__reply"},c,l,o)}),this.state={showEmojiPicker:!1}}render(){const e=this.props.post,t=I.Z(e),a=z.o(e),n=z.e(e);let s,i,r,o,l;let c;if(!t&&!e.failed&&!a&&(this.props.hover||this.props.isFlagged)&&(s=C.a.createElement(io,{postId:e.id,isFlagged:this.props.isFlagged,isEphemeral:t})),e.props&&e.props.card&&(i=C.a.createElement(ui.a,{delayShow:P.Q.OVERLAY_TIME_DELAY,placement:"top",overlay:C.a.createElement(mi.a,null,C.a.createElement(V.a,{id:"post_info.info.view_additional_info",defaultMessage:"View additional info"}))},C.a.createElement("button",{className:"card-icon__container icon--show style--none "+(this.props.isCardOpen?"active":""),onClick:e=>{e.preventDefault(),this.props.handleCardClick(this.props.post)}},C.a.createElement(El,{className:"icon icon__info","aria-hidden":"true"})))),t?r=C.a.createElement("div",{className:"col col__remove"},this.createRemovePostButton()):e.failed||(r=this.buildOptions(e,a,n)),t&&!this.props.compactDisplay&&e.state!==L.Posts.POST_DELETED&&(o=C.a.createElement("span",{className:"post__visibility"},C.a.createElement(V.a,{id:"post_info.message.visible",defaultMessage:"(Only visible to you)"}))),e.is_pinned&&(l=C.a.createElement("span",{className:"post__pinned-badge"},C.a.createElement(V.a,{id:"post_info.pinned",defaultMessage:"Pinned"}))),this.props.hover||this.props.showTimeWithoutHover){const a=!(t||L.Posts.POST_DELETED===e.state||Bs.isPostPendingOrFailed(e)||e.type===L.Posts.POST_TYPES.COMBINED_USER_ACTIVITY);c=C.a.createElement(co,{isPermalink:a,eventTime:e.create_at,postId:e.id})}return C.a.createElement("div",{className:"post__header--info"},C.a.createElement("div",{className:"col"},c,l,i,s,o),r)}}r_(o_,"propTypes",{post:v.a.object.isRequired,teamId:v.a.string,handleCommentClick:v.a.func.isRequired,handleCardClick:v.a.func.isRequired,handleDropdownOpened:v.a.func.isRequired,isFlagged:v.a.bool,isCardOpen:v.a.bool,replyCount:v.a.number,isFirstReply:v.a.bool,isMobile:v.a.bool,compactDisplay:v.a.bool,hover:v.a.bool.isRequired,showTimeWithoutHover:v.a.bool.isRequired,enableEmojiPicker:v.a.bool.isRequired,isReadOnly:v.a.bool,actions:v.a.shape({removePost:v.a.func.isRequired}).isRequired});var l_=Object(n.connect)((function(e,t){const a=Object(Cs.p)(e),n=Object(d.getConfig)(e),s=e.entities.channels.channels[t.post.channel_id],i=s?0!==s.delete_at:null,r="true"===n.EnableEmojiPicker&&!i;return{teamId:Object(u.getCurrentTeamId)(e),isFlagged:null!=Object(c.get)(e,P.B.CATEGORY_FLAGGED_POST,t.post.id,null),isMobile:e.views.channel.mobileView,isCardOpen:a&&a.id===t.post.id,enableEmojiPicker:r,isReadOnly:Object(p.isCurrentChannelReadOnly)(e)||i}}),(function(e){return{actions:Object(s.bindActionCreators)({removePost:k.removePost},e)}}))(o_);class c_ extends C.a.PureComponent{render(){const{post:e}=this.props,t=z.o(e),a=z.e(e),n=e&&e.props&&"true"===e.props.from_webhook;let s,i,r=C.a.createElement(wl,{userId:e.user_id,hasMention:!0});return n&&!this.props.isBot?(r=e.props.override_username&&this.props.enablePostUsernameOverride?C.a.createElement(wl,{userId:e.user_id,hideStatus:!0,overwriteName:e.props.override_username}):C.a.createElement(wl,{userId:e.user_id,hideStatus:!0}),s=C.a.createElement(tn.a,null)):a?(r=C.a.createElement(wl,{userId:e.user_id,hideStatus:!0,hasMention:!0}),s=C.a.createElement(_l.a,null,C.a.createElement(V.a,{id:"post_info.auto_responder",defaultMessage:"AUTOMATIC REPLY"}))):t&&this.props.isBot?r=C.a.createElement(wl,{userId:e.user_id,hideStatus:!0}):t&&(r=C.a.createElement(wl,{overwriteName:C.a.createElement(V.a,{id:"post_info.system",defaultMessage:"System"}),overwriteImage:P.Q.SYSTEM_MESSAGE_PROFILE_IMAGE,disablePopover:!0})),this.props.compactDisplay&&(i=C.a.createElement("strong",{className:"colon"},":")),C.a.createElement("div",{className:"post__header"},C.a.createElement("div",{className:"col col__name"},r,i,s),C.a.createElement("div",{className:"col"},C.a.createElement(l_,{post:e,handleCommentClick:this.props.handleCommentClick,handleCardClick:this.props.handleCardClick,handleDropdownOpened:this.props.handleDropdownOpened,compactDisplay:this.props.compactDisplay,replyCount:this.props.replyCount,isFirstReply:this.props.isFirstReply,showTimeWithoutHover:this.props.showTimeWithoutHover,hover:this.props.hover})))}}!function(e,t,a){t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a}(c_,"propTypes",{post:v.a.object.isRequired,handleCommentClick:v.a.func.isRequired,handleCardClick:v.a.func.isRequired,handleDropdownOpened:v.a.func.isRequired,compactDisplay:v.a.bool,replyCount:v.a.number,isFirstReply:v.a.bool,hover:v.a.bool.isRequired,showTimeWithoutHover:v.a.bool,enablePostUsernameOverride:v.a.bool.isRequired,isBot:v.a.bool.isRequired,isGuest:v.a.bool.isRequired});var d_=Object(n.connect)((function(e,t){const a="true"===Object(d.getConfig)(e).EnablePostUsernameOverride,n=Object(m.getUser)(e,t.post.user_id);return{enablePostUsernameOverride:a,isBot:Boolean(n&&n.is_bot),isGuest:Boolean(n&&Object(I.V)(n))}}))(c_);function m_(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class u_ extends C.a.PureComponent{constructor(e){super(e),m_(this,"handleCommentClick",e=>{e.preventDefault();const t=this.props.post;t&&this.props.actions.selectPost(t)}),m_(this,"handleCardClick",e=>{e&&this.props.actions.selectPostCard(e)}),m_(this,"handlePostClick",e=>{const t=this.props.post;t&&(this.props.channelIsArchived||e.altKey&&this.props.actions.markPostAsUnread(t))}),m_(this,"handleDropdownOpened",e=>{this.props.togglePostMenu&&this.props.togglePostMenu(e),this.setState({dropdownOpened:e})}),m_(this,"hasSameRoot",e=>{const t=e.post;return!e.isFirstReply&&(!(t.root_id||e.previousPostIsComment||!e.consecutivePostByUser)||!!t.root_id)}),m_(this,"getClassName",(e,t,a,n,s,i)=>{let r="post";(e.failed||e.state===L.Posts.POST_DELETED)&&(r+=" post--hide-controls"),this.props.shouldHighlight&&(r+=" post--highlight");let o="";o=this.hasSameRoot(this.props)&&!i?"same--root":"other--root";let l="";this.props.currentUserId!==e.user_id||n||t||(l="current--user");let c="";this.props.consecutivePostByUser&&(c="same--user");let d="";return e.root_id&&e.root_id.length>0?d="post--comment":this.props.replyCount>0&&(d="post--root",c="",o=""),(t||a)&&(r+=" post--system",t&&(l="",d="",o="")),s&&(d="post--comment same--root"),this.props.compactDisplay&&(r+=" post--compact"),(this.state.dropdownOpened||this.state.a11yActive)&&(r+=" post--hovered"),e.is_pinned&&(r+=" post--pinned"),this.state.alt&&!this.props.channelIsArchived&&(r+=" cursor--pointer"),r+" "+c+" "+o+" "+d+" "+l}),m_(this,"setHover",()=>{this.setState({hover:!0})}),m_(this,"unsetHover",()=>{this.setState({hover:!1})}),m_(this,"handleAlt",e=>{this.state.alt!==e.altKey&&this.setState({alt:e.altKey})}),m_(this,"handleA11yActivateEvent",()=>{this.setState({a11yActive:!0,ariaHidden:!1})}),m_(this,"handleA11yDeactivateEvent",()=>{this.setState({a11yActive:!1,ariaHidden:!0})}),m_(this,"handlePostFocus",()=>{this.setState({currentAriaLabel:this.props.createAriaLabel(this.props.intl)})}),this.postRef=C.a.createRef(),this.state={dropdownOpened:!1,hover:!1,alt:!1,a11yActive:!1,currentAriaLabel:"",ariaHidden:!0}}componentDidMount(){document.addEventListener("keydown",this.handleAlt),document.addEventListener("keyup",this.handleAlt),this.postRef.current&&(this.postRef.current.addEventListener(P.c.ACTIVATE,this.handleA11yActivateEvent),this.postRef.current.addEventListener(P.c.DEACTIVATE,this.handleA11yDeactivateEvent))}componentWillUnmount(){document.removeEventListener("keydown",this.handleAlt),document.removeEventListener("keyup",this.handleAlt),this.postRef.current&&(this.postRef.current.removeEventListener(P.c.ACTIVATE,this.handleA11yActivateEvent),this.postRef.current.removeEventListener(P.c.DEACTIVATE,this.handleA11yDeactivateEvent))}componentDidUpdate(){this.state.a11yActive&&this.postRef.current.dispatchEvent(new Event(P.c.UPDATE))}render(){const{post:e}=this.props;if(!e.id)return null;const t=z.o(e),a=Object(Bs.isMeMessage)(e),n=z.e(e),s=e&&e.props&&"true"===e.props.from_webhook,i=e&&e.props&&"true"===e.props.from_bot;let r;const o=this.hasSameRoot(this.props)&&this.props.consecutivePostByUser&&!e.root_id&&0===this.props.replyCount&&!i;o||(r=C.a.createElement(Jr,{compactDisplay:this.props.compactDisplay,post:e,userId:e.user_id}),n&&(r=C.a.createElement("span",{className:"auto-responder"},r)));let l="";return this.props.center&&(l="center"),C.a.createElement(Ho.Provider,{value:{handlePopupOpened:this.handleDropdownOpened}},C.a.createElement("div",{ref:this.postRef,id:"post_"+e.id,"data-testid":"postView",role:"listitem",className:"a11y__section ".concat(this.getClassName(e,t,a,s,n,i)),tabIndex:"0",onFocus:this.handlePostFocus,onBlur:this.removeFocus,onMouseOver:this.setHover,onMouseLeave:this.unsetHover,onTouchStart:this.setHover,onClick:this.handlePostClick,"aria-label":this.state.currentAriaLabel,"aria-atomic":!0},C.a.createElement("div",{role:"application","data-testid":"postContent",className:"post__content "+l,"aria-hidden":this.state.ariaHidden},C.a.createElement("div",{className:"post__img"},r),C.a.createElement("div",null,C.a.createElement(d_,{post:e,handleCommentClick:this.handleCommentClick,handleCardClick:this.handleCardClick,handleDropdownOpened:this.handleDropdownOpened,compactDisplay:this.props.compactDisplay,isFirstReply:this.props.isFirstReply,replyCount:this.props.replyCount,showTimeWithoutHover:!o,hover:this.state.hover||this.state.a11yActive}),C.a.createElement(i_,{post:e,handleCommentClick:this.handleCommentClick,compactDisplay:this.props.compactDisplay,isCommentMention:this.props.isCommentMention,isFirstReply:this.props.isFirstReply})))))}}m_(u_,"propTypes",{post:v.a.object.isRequired,createAriaLabel:v.a.func.isRequired,currentUserId:v.a.string.isRequired,center:v.a.bool,compactDisplay:v.a.bool,isFirstReply:v.a.bool,shouldHighlight:v.a.bool,consecutivePostByUser:v.a.bool,previousPostIsComment:v.a.bool,togglePostMenu:v.a.func,isCommentMention:v.a.bool,replyCount:v.a.number,channelIsArchived:v.a.bool.isRequired,intl:Y.a.isRequired,actions:v.a.shape({selectPost:v.a.func.isRequired,selectPostCard:v.a.func.isRequired,markPostAsUnread:v.a.func.isRequired}).isRequired}),m_(u_,"defaultProps",{post:{}});var p_=Object(W.c)(u_);function h_(e,t){return!!e.root_id&&(!t||e.root_id!==t.id&&e.root_id!==t.root_id)}var g_=Object(n.connect)((function(){const e=Object(Hs.createSelector)(e=>e.entities.posts.posts,(e,t)=>e.entities.posts.postsInThread[t.root_id||t.id],(e,t)=>t?t.map(t=>e[t]).filter(e=>e&&!Object(Bs.isPostEphemeral)(e)).length:0),t=Object(qa.makeIsPostCommentMention)(),a=Object(z.p)();return(n,s)=>{const i=s.post||Object(qa.getPost)(n,s.postId),r=Object(p.getChannel)(n,i.channel_id);let o=null;s.previousPostId&&(o=Object(qa.getPost)(n,s.previousPostId));let l=!1,d=!1;return o&&(l=!(!(i.user_id===o.user_id&&i.create_at-o.create_at<=L.Posts.POST_COLLAPSE_TIMEOUT)||i.props&&i.props.from_webhook||o.props&&o.props.from_webhook||Object(Bs.isSystemMessage)(i)||Object(Bs.isSystemMessage)(o)),d=Boolean(o.root_id)),{post:i,createAriaLabel:a(n,i),currentUserId:Object(m.getCurrentUserId)(n),isFirstReply:h_(i,o),consecutivePostByUser:l,previousPostIsComment:d,replyCount:e(n,i),isCommentMention:t(n,i.id),center:Object(c.get)(n,P.B.CATEGORY_DISPLAY_SETTINGS,P.B.CHANNEL_DISPLAY_MODE,P.B.CHANNEL_DISPLAY_MODE_DEFAULT)===P.B.CHANNEL_DISPLAY_MODE_CENTERED,compactDisplay:Object(c.get)(n,P.B.CATEGORY_DISPLAY_SETTINGS,P.B.MESSAGE_DISPLAY,P.B.MESSAGE_DISPLAY_DEFAULT)===P.B.MESSAGE_DISPLAY_COMPACT,channelIsArchived:Object(ya.d)(r)}}}),(function(e){return{actions:Object(s.bindActionCreators)({selectPost:ys.f,selectPostCard:ys.g,markPostAsUnread:U.g},e)}}))(p_);var b_=Object(n.connect)((function(){const e=Object(fr.makeGenerateCombinedPost)();return(t,a)=>({post:e(t,a.combinedId),postId:a.combinedId})}))(g_);a(1745);class f_ extends C.a.PureComponent{render(){const{children:e}=this.props;return C.a.createElement("div",{className:"Separator NotificationSeparator","data-testid":"NotificationSeparator"},C.a.createElement("hr",{className:"separator__hr"}),e&&C.a.createElement("div",{className:"separator__text"},e))}}class __ extends C.a.PureComponent{render(){return C.a.createElement(f_,{id:this.props.separatorId},C.a.createElement(V.a,{id:"posts_view.newMsg",defaultMessage:"New Messages"}))}}!function(e,t,a){t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a}(__,"propTypes",{separatorId:v.a.string.isRequired});var E_=a(1269),v_=a(1225),y_=a(1424);class C_ extends C.a.PureComponent{render(){const{currentUserId:e,channel:t,fullWidth:a,locale:n,enableUserCreation:s,isReadOnly:i,channelProfiles:r,teamIsGroupConstrained:o}=this.props;let l="";return a||(l="channel-intro--centered"),t.type===P.j.DM_CHANNEL?function(e,t){var a=I.t(e.id);if(a){var n=a.username;return a.nickname.length>0&&(n=a.nickname),C.a.createElement("div",{id:"channelIntro",className:"channel-intro "+t},C.a.createElement("div",{className:"post-profile-img__container channel-intro-img"},C.a.createElement(zr.a,{src:I.M(a),size:"xl",userId:a.id,username:a.username,hasMention:!0})),C.a.createElement("div",{className:"channel-intro-profile d-flex"},C.a.createElement(wl,{userId:a.id,disablePopover:!1,hasMention:!0})),C.a.createElement("p",{className:"channel-intro-text"},C.a.createElement(Ji.b,{id:"intro_messages.DM",defaultMessage:"This is the start of your direct message history with {teammate}.\\nDirect messages and files shared here are not shown to people outside this area.",values:{teammate:n}})),a.is_bot?null:O_(e))}return C.a.createElement("div",{id:"channelIntro",className:"channel-intro "+t},C.a.createElement("p",{className:"channel-intro-text"},C.a.createElement(V.a,{id:"intro_messages.teammate",defaultMessage:"This is the start of your direct message history with this teammate. Direct messages and files shared here are not shown to people outside this area."})))}(t,l):t.type===P.j.GM_CHANNEL?function(e,t,a,n){if(a.length>0){const s=a.filter(e=>e.id!==n).map(e=>C.a.createElement(zr.a,{key:"introprofilepicture"+e.id,src:I.M(e),size:"xl",userId:e.id,username:e.username}));return C.a.createElement("div",{id:"channelIntro",className:"channel-intro "+t},C.a.createElement("div",{className:"post-profile-img__container channel-intro-img"},s),C.a.createElement("p",{className:"channel-intro-text"},C.a.createElement(Ji.b,{id:"intro_messages.GM",defaultMessage:"This is the start of your group message history with {names}.\\nMessages and files shared here are not shown to people outside this area.",values:{names:e.display_name}})),O_(e))}return C.a.createElement("div",{id:"channelIntro",className:"channel-intro "+t},C.a.createElement("p",{className:"channel-intro-text"},C.a.createElement(V.a,{id:"intro_messages.group_message",defaultMessage:"This is the start of your group message history with these teammates. Messages and files shared here are not shown to people outside this area."})))}(t,l,r,e):t.name===P.j.DEFAULT_CHANNEL?function(e,t,a,n,s){let i=null;!n&&a&&(i=C.a.createElement(pm.a,{teamId:e.team_id,permissions:[L.Permissions.INVITE_USER]},C.a.createElement(pm.a,{teamId:e.team_id,permissions:[L.Permissions.ADD_USER_TO_TEAM]},!s&&C.a.createElement(V.a,{id:"intro_messages.inviteOthers",defaultMessage:"Invite others to this team"},e=>C.a.createElement(E_.a,{accessibilityLabel:e,id:"introTextInvite",className:"intro-links color--link cursor--pointer",modalId:P.u.INVITATION,dialogType:um},C.a.createElement(V.a,{id:"generic_icons.add",defaultMessage:"Add Icon"},e=>C.a.createElement("i",{className:"fa fa-user-plus",title:e})),e)),s&&C.a.createElement(v_.a,{className:"intro-links color--link",dialogType:ou.a,dialogProps:{channel:e}},C.a.createElement(V.a,{id:"generic_icons.add",defaultMessage:"Add Icon"},e=>C.a.createElement("i",{className:"fa fa-user-plus",title:e})),C.a.createElement(V.a,{id:"intro_messages.addGroupsToTeam",defaultMessage:"Add other groups to this team"})))));const r=e.type===P.j.PRIVATE_CHANNEL;let o=null;if(!n){const t=O_(e);t&&(o=C.a.createElement(Or,{teamId:e.team_id,channelId:e.id,permissions:[r?L.Permissions.MANAGE_PRIVATE_CHANNEL_PROPERTIES:L.Permissions.MANAGE_PUBLIC_CHANNEL_PROPERTIES]},t))}return C.a.createElement("div",{id:"channelIntro",className:"channel-intro "+t},C.a.createElement("h2",{className:"channel-intro__title"},C.a.createElement(V.a,{id:"intro_messages.beginning",defaultMessage:"Beginning of {name}",values:{name:e.display_name}})),C.a.createElement("p",{className:"channel-intro__content"},!n&&C.a.createElement(Ji.b,{id:"intro_messages.default",defaultMessage:"**Welcome to {display_name}!**\\n \\nPost messages here that you want everyone to see. Everyone automatically becomes a permanent member of this channel when they join the team.",values:{display_name:e.display_name}}),n&&C.a.createElement(Ji.b,{id:"intro_messages.readonly.default",defaultMessage:"**Welcome to {display_name}!**\\n \\nMessages can only be posted by system admins. Everyone automatically becomes a permanent member of this channel when they join the team.",values:{display_name:e.display_name}})),i,o,C.a.createElement("br",null))}(t,l,s,i,o):t.name===P.j.OFFTOPIC_CHANNEL?function(e,t){const a=e.type===P.j.PRIVATE_CHANNEL,n=O_(e);let s=null;n&&(s=C.a.createElement(Or,{teamId:e.team_id,channelId:e.id,permissions:[a?L.Permissions.MANAGE_PRIVATE_CHANNEL_PROPERTIES:L.Permissions.MANAGE_PUBLIC_CHANNEL_PROPERTIES]},n));const i=w_(e);return C.a.createElement("div",{id:"channelIntro",className:"channel-intro "+t},C.a.createElement("h2",{className:"channel-intro__title"},C.a.createElement(V.a,{id:"intro_messages.beginning",defaultMessage:"Beginning of {name}",values:{name:e.display_name}})),C.a.createElement("p",{className:"channel-intro__content"},C.a.createElement(V.a,{id:"intro_messages.offTopic",defaultMessage:"This is the start of {display_name}, a channel for non-work-related conversations.",values:{display_name:e.display_name}})),i,s)}(t,l):t.type===P.j.OPEN_CHANNEL||t.type===P.j.PRIVATE_CHANNEL?function(e,t,a){var n,s=e.display_name,i=I.w(e.creator_id);n=0!==e.delete_at?"":e.type===P.j.PRIVATE_CHANNEL?C.a.createElement(V.a,{id:"intro_messages.onlyInvited",defaultMessage:" Only invited members can see this private channel."}):C.a.createElement(V.a,{id:"intro_messages.anyMember",defaultMessage:" Any member can join and read this channel."});const r=C.a.createElement(Dm.a,{value:e.create_at,month:Object(de.a)(a),day:"2-digit",year:"numeric"});var o;""===i?e.type===P.j.PRIVATE_CHANNEL?o=C.a.createElement(V.a,{id:"intro_messages.noCreatorPrivate",defaultMessage:"This is the start of the {name} private channel, created on {date}.",values:{name:s,date:r}}):e.type===P.j.OPEN_CHANNEL&&(o=C.a.createElement(V.a,{id:"intro_messages.noCreator",defaultMessage:"This is the start of the {name} channel, created on {date}.",values:{name:s,date:r}})):e.type===P.j.PRIVATE_CHANNEL?o=C.a.createElement("span",null,C.a.createElement(V.a,{id:"intro_messages.creatorPrivate",defaultMessage:"This is the start of the {name} private channel, created by {creator} on {date}.",values:{name:s,creator:i,date:r}})):e.type===P.j.OPEN_CHANNEL&&(o=C.a.createElement("span",null,C.a.createElement(V.a,{id:"intro_messages.creator",defaultMessage:"This is the start of the {name} channel, created by {creator} on {date}.",values:{name:s,creator:i,date:r}})));var l="";e.purpose&&""!==e.purpose&&(e.type===P.j.PRIVATE_CHANNEL?l=C.a.createElement("span",null,C.a.createElement(V.a,{id:"intro_messages.purposePrivate",defaultMessage:" This private channel's purpose is: {purpose}",values:{purpose:e.purpose}})):e.type===P.j.OPEN_CHANNEL&&(l=C.a.createElement("span",null,C.a.createElement(V.a,{id:"intro_messages.purpose",defaultMessage:" This channel's purpose is: {purpose}",values:{purpose:e.purpose}}))));const c=e.type===P.j.PRIVATE_CHANNEL;let d=null;const m=O_(e);m&&(d=C.a.createElement(Or,{teamId:e.team_id,channelId:e.id,permissions:[c?L.Permissions.MANAGE_PRIVATE_CHANNEL_PROPERTIES:L.Permissions.MANAGE_PUBLIC_CHANNEL_PROPERTIES]},m));const u=w_(e);return C.a.createElement("div",{id:"channelIntro",className:"channel-intro "+t},C.a.createElement("h2",{className:"channel-intro__title"},C.a.createElement(V.a,{id:"intro_messages.beginning",defaultMessage:"Beginning of {name}",values:{name:s}})),C.a.createElement("p",{className:"channel-intro__content"},o,n,l,C.a.createElement("br",null)),u,d)}(t,l,n):null}}function w_(e){const t=e.group_constrained?Zb.a:Wg;if(0!==e.delete_at)return null;const a=e.type===P.j.PRIVATE_CHANNEL;return C.a.createElement(Or,{channelId:e.id,teamId:e.team_id,permissions:[a?L.Permissions.MANAGE_PRIVATE_CHANNEL_MEMBERS:L.Permissions.MANAGE_PUBLIC_CHANNEL_MEMBERS]},C.a.createElement(v_.a,{className:"intro-links color--link",dialogType:t,dialogProps:{channel:e}},C.a.createElement(V.a,{id:"generic_icons.add",defaultMessage:"Add Icon"},e=>C.a.createElement("i",{className:"fa fa-user-plus",title:e})),a&&e.group_constrained&&C.a.createElement(V.a,{id:"intro_messages.addGroups",defaultMessage:"Add groups to this private channel"}),a&&!e.group_constrained&&C.a.createElement(V.a,{id:"intro_messages.invitePrivate",defaultMessage:"Invite others to this private channel"}),!a&&C.a.createElement(V.a,{id:"intro_messages.invite",defaultMessage:"Invite others to this channel"})))}function O_(e){return 0!==e.delete_at?null:C.a.createElement(V.a,{id:"intro_messages.setHeader",defaultMessage:"Set a Header"},t=>C.a.createElement(E_.a,{modalId:P.u.EDIT_CHANNEL_HEADER,accessibilityLabel:t,className:"intro-links color--link",dialogType:Hg,dialogProps:{channel:e}},C.a.createElement(y_.a,null),t))}!function(e,t,a){t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a}(C_,"propTypes",{currentUserId:v.a.string.isRequired,channel:v.a.object.isRequired,fullWidth:v.a.bool.isRequired,locale:v.a.string.isRequired,channelProfiles:v.a.array.isRequired,enableUserCreation:v.a.bool,isReadOnly:v.a.bool,teamIsGroupConstrained:v.a.bool});var T_=Object(n.connect)((function(e){const t="true"===Object(d.getConfig)(e).EnableUserCreation,a=Object(p.isCurrentChannelReadOnly)(e),n=Object(u.getCurrentTeam)(e);return{currentUserId:Object(m.getCurrentUserId)(e),channel:Object(p.getCurrentChannel)(e),locale:Object(qs.a)(e),channelProfiles:Object(m.getProfilesInCurrentChannel)(e),enableUserCreation:t,isReadOnly:a,fullWidth:Object(c.get)(e,P.B.CATEGORY_DISPLAY_SETTINGS,P.B.CHANNEL_DISPLAY_MODE,P.B.CHANNEL_DISPLAY_MODE_DEFAULT)===P.B.CHANNEL_DISPLAY_MODE_FULL_SCREEN,teamIsGroupConstrained:Boolean(n.group_constrained)}}))(C_);class S_ extends C.a.PureComponent{render(){const{listId:e,previousListId:t}=this.props;if(fr.isDateLine(e)){const t=fr.getDateForDateLine(e);return C.a.createElement(br,{key:t,date:t})}if(fr.isStartOfNewMessages(e))return C.a.createElement(__,{separatorId:e});if(e===P.y.CHANNEL_INTRO_MESSAGE)return C.a.createElement(T_,null);if(e===P.y.LOAD_OLDER_MESSAGES_TRIGGER||e===P.y.LOAD_NEWER_MESSAGES_TRIGGER)return C.a.createElement("button",{className:"more-messages-text theme style--none color--link",onClick:e===P.y.LOAD_OLDER_MESSAGES_TRIGGER?this.props.loadOlderPosts:this.props.loadNewerPosts},C.a.createElement(V.a,{id:"posts_view.loadMore",defaultMessage:"Load More Messages"}));if(e===P.y.OLDER_MESSAGES_LOADER||e===P.y.NEWER_MESSAGES_LOADER)return C.a.createElement("div",{className:"loading-screen"},C.a.createElement("div",{className:"loading__content"},C.a.createElement("div",{className:"round round-1"}),C.a.createElement("div",{className:"round round-2"}),C.a.createElement("div",{className:"round round-3"})));const a={previousPostId:t,shouldHighlight:this.props.shouldHighlight,togglePostMenu:this.props.togglePostMenu};return fr.isCombinedUserActivityPost(e)?C.a.createElement(b_,Object.assign({combinedId:e},a)):C.a.createElement(g_,Object.assign({postId:e},a))}}!function(e,t,a){t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a}(S_,"propTypes",{listId:v.a.string.isRequired,previousListId:v.a.string,fullWidth:v.a.bool,shouldHighlight:v.a.bool,loadOlderPosts:v.a.func,loadNewerPosts:v.a.func,togglePostMenu:v.a.func});var P_=Object(n.connect)((function(e,t){return{post:t.post,channel:t.channel}}))(S_);class M_ extends C.a.PureComponent{render(){return C.a.createElement("span",this.props,C.a.createElement(V.a,{id:"generic_icons.arrow.down",defaultMessage:"Down Arrow Icon"},e=>C.a.createElement("svg",{x:"0px",y:"0px",viewBox:"-239 239 21 23",style:I_,role:"img","aria-label":e},C.a.createElement("path",{d:"M-239,241.4l2.4-2.4l8.1,8.2l8.1-8.2l2.4,2.4l-10.5,10.6L-239,241.4z M-228.5,257.2l8.1-8.2l2.4,2.4l-10.5,10.6l-10.5-10.6 l2.4-2.4L-228.5,257.2z"}))))}}const I_={enableBackground:"new -239 239 21 23"};class N_ extends C.a.PureComponent{render(){if(Rs()(window).width()>768)return null;let e="post-list__arrows";return this.props.isScrolling&&!1===this.props.atBottom&&(e+=" scrolling"),C.a.createElement("div",{className:e,onClick:this.props.onClick},C.a.createElement(M_,null))}}!function(e,t,a){t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a}(N_,"propTypes",{isScrolling:v.a.bool.isRequired,atBottom:v.a.bool,onClick:v.a.func.isRequired});a(1746);function j_(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class A_ extends C.a.PureComponent{constructor(...e){super(...e),j_(this,"handleDismiss",()=>{"function"==typeof this.props.onDismiss&&this.props.onDismiss()})}componentDidMount(){this.mounted=!0}componentWillUnmount(){this.mounted=!1}render(){let e="toast";const{show:t}=this.props;t&&(e+=" toast__visible");let a="toast__message";this.props.showActions&&(a+=" toast__pointer");let n=C.a.createElement("div",null);return this.props.showActions&&t&&(n=C.a.createElement(mi.a,{id:"toast-close__tooltip"},C.a.createElement(V.a,{id:"general_button.close",defaultMessage:"Close"}),C.a.createElement("div",{className:"tooltip__shortcut--txt"},C.a.createElement(V.a,{id:"general_button.esc",defaultMessage:"esc"})))),C.a.createElement("div",{className:e},C.a.createElement("div",{className:a,onClick:this.props.showActions?this.props.onClick:null},this.props.showActions&&(()=>C.a.createElement("div",{className:"toast__jump"},C.a.createElement(Dh,null),this.props.width>P.Q.MOBILE_SCREEN_WIDTH&&this.props.onClickMessage))(),this.props.children),C.a.createElement("div",{className:"toast__dismiss",onClick:this.handleDismiss},C.a.createElement(Xl.a,{delayShow:P.Q.OVERLAY_TIME_DELAY,placement:"bottom",overlay:n},C.a.createElement(_d,{className:"close-btn",id:"dismissToast"}))))}}function R_(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function k_(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?R_(a,!0).forEach((function(t){L_(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):R_(a).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function L_(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}j_(A_,"propTypes",{onClick:v.a.func,onClickMessage:v.a.string,onDismiss:v.a.func,children:v.a.element,show:v.a.bool.isRequired,showActions:v.a.bool,width:v.a.number});const D_=500;class x_ extends C.a.PureComponent{constructor(e){super(e),L_(this,"handleShortcut",e=>{I.W(e,P.Q.KeyCodes.ESCAPE)&&(this.state.showUnreadToast?this.hideUnreadToast():this.state.showNewMessagesToast&&this.hideNewMessagesToast())}),L_(this,"hideUnreadToast",()=>{this.state.showUnreadToast&&this.setState({showUnreadToast:!1})}),L_(this,"hideNewMessagesToast",(e=!0)=>{this.state.showNewMessagesToast&&(this.setState({showNewMessagesToast:!1}),e&&this.props.updateLastViewedBottomAt())}),L_(this,"newMessagesToastText",(e,t)=>this.props.width>D_&&void 0!==t?C.a.createElement(V.a,{id:"postlist.toast.newMessagesSince",defaultMessage:"{count, number} new {count, plural, one {message} other {messages}} since {date} at {time}",values:{count:e,date:C.a.createElement(Dm.a,{value:t,weekday:"short",day:"2-digit",month:"short"}),time:C.a.createElement(ro.a,{eventTime:t})}}):C.a.createElement(V.a,{id:"postlist.toast.newMessages",defaultMessage:"{count, number} new {count, plural, one {message} other {messages}}",values:{count:e}})),L_(this,"scrollToNewMessage",()=>{this.props.scrollToNewMessage(),this.props.updateLastViewedBottomAt(),this.hideNewMessagesToast()}),L_(this,"scrollToLatestMessages",()=>{this.props.scrollToLatestMessages(),this.hideUnreadToast()}),this.state={unreadCountInChannel:e.unreadCountInChannel}}static getDerivedStateFromProps(e,t){let a,{showUnreadToast:n,showNewMessagesToast:s}=t;return a=e.atLatestPost?x_.countNewMessages(e.postListIds):e.channelMarkedAsUnread?t.unreadCountInChannel:t.unreadCountInChannel+e.newRecentMessagesCount,void 0===n&&null!==e.atBottom&&(n=a>0&&!e.atBottom),!e.channelMarkedAsUnread||e.atBottom||t.channelMarkedAsUnread||t.showUnreadToast||(n=!0),e.channelMarkedAsUnread&&e.lastViewedAt!==t.lastViewedAt&&!e.atBottom&&(n=!0),!n&&a>0&&!e.atBottom&&e.lastViewedBottom<e.latestPostTimeStamp&&(s=!0),a||(s=!1,n=!1),{unreadCount:a,showUnreadToast:n,showNewMessagesToast:s,lastViewedAt:e.lastViewedAt,channelMarkedAsUnread:e.channelMarkedAsUnread}}componentDidMount(){this.mounted=!0,document.addEventListener("keydown",this.handleShortcut)}componentDidUpdate(e){!e.atBottom&&this.props.atBottom&&this.props.atLatestPost&&(this.state.showNewMessagesToast&&this.hideNewMessagesToast(!1),this.state.showUnreadToast&&this.hideUnreadToast());const t=e.postListIds.length,a=this.props.postListIds.length,n=a!==t&&this.props.postListIds[0]!==e.postListIds[0],s=!this.props.atBottom&&this.props.atLatestPost&&a>0;n&&s&&!this.state.showUnreadToast&&this.props.updateNewMessagesAtInChannel(this.props.lastViewedBottom)}componentWillUnmount(){document.removeEventListener("keydown",this.handleShortcut)}render(){let e={countUnread:this.state.unreadCount,show:!1,width:this.props.width};return this.state.showUnreadToast?e=k_({},e,{onDismiss:this.hideUnreadToast,onClick:this.props.scrollToLatestMessages,onClickMessage:I.gb("postlist.toast.scrollToBottom","Jump to recents"),show:!0,showActions:!this.props.atLatestPost||this.props.atLatestPost&&!this.props.atBottom}):this.state.showNewMessagesToast&&(e=k_({},e,{onDismiss:this.hideNewMessagesToast,onClick:this.scrollToNewMessage,onClickMessage:I.gb("postlist.toast.scrollToLatest","Jump to new messages"),show:!0,showActions:!this.props.atLatestPost||this.props.atLatestPost&&!this.props.atBottom})),C.a.createElement(A_,e,this.newMessagesToastText(this.state.unreadCount,this.props.lastViewedAt))}}L_(x_,"propTypes",{unreadCountInChannel:v.a.number,newRecentMessagesCount:v.a.number,channelMarkedAsUnread:v.a.bool,atLatestPost:v.a.bool,postListIds:v.a.array,latestPostTimeStamp:v.a.number,atBottom:v.a.bool,lastViewedBottom:v.a.number,width:v.a.number,lastViewedAt:v.a.number,updateNewMessagesAtInChannel:v.a.func,scrollToNewMessage:v.a.func,scrollToLatestMessages:v.a.func,updateLastViewedBottomAt:v.a.func}),L_(x_,"countNewMessages",e=>{const t=Object(z.h)(e);return t<=0?0:e.slice(0,t).filter(e=>!Object(z.n)(e)).length});var U_=Object(W.c)(x_);var q_=Object(n.connect)((function(){const e=Object(Hs.createSelector)(qa.getAllPosts,m.getCurrentUserId,(e,t)=>t,(e,t,a)=>a,(e,t,a,n)=>a?a.map(t=>e[t]).filter(e=>e&&e.user_id!==t&&e.state!==L.Posts.POST_DELETED&&e.create_at>n).length:0),t=Object(fr.makePreparePostIdsForPostList)();return function(a,n){let s=0;const i=Object(p.isManuallyUnread)(a,n.channelId),r=a.views.channel.lastChannelViewTime[n.channelId];if(!n.atLatestPost){let i=Object(qa.getPostIdsInChannel)(a,n.channelId);i&&(i=t(a,{postIds:i,lastViewedAt:r,channelId:n.channelId})),s=e(a,i,r)}return{lastViewedAt:r,newRecentMessagesCount:s,unreadCountInChannel:Object(p.countCurrentChannelUnreadMessages)(a),channelMarkedAsUnread:i}}}))(U_);function H_(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function F_(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?H_(a,!0).forEach((function(t){B_(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):H_(a).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function B_(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const G_=window.OVERSCAN_COUNT_BACKWARD||80,V_=window.OVERSCAN_COUNT_FORWARD||80,W_=window.HEIGHT_TRIGGER_FOR_MORE_POSTS||1e3,z_=10,Y_={channel:50,permalink:100},K_={padding:"14px 0px 7px"},Q_={position:"absolute",bottom:"0",maxHeight:"100%"},J_=-50;class Z_ extends C.a.PureComponent{constructor(e){super(e),B_(this,"getNewMessagesSeparatorIndex",e=>e.findIndex(e=>0===e.indexOf(P.y.START_OF_NEW_MESSAGES))),B_(this,"handleWindowResize",()=>{this.props.actions.checkAndSetMobileView();const e=I.Y();if(e!==this.state.isMobile){const t=this.state.dynamicListStyle;this.state.postMenuOpened&&(e||"unset"!==t.willChange?e&&"transform"===t.willChange&&(t.willChange="unset"):t.willChange="transform"),this.setState({isMobile:e,dynamicListStyle:t}),this.scrollStopAction=new xs(this.handleScrollStop)}}),B_(this,"togglePostMenu",e=>{const t=this.state.dynamicListStyle;this.state.isMobile&&(t.willChange=e?"unset":"transform"),this.setState({postMenuOpened:e,dynamicListStyle:t})}),B_(this,"renderRow",({data:e,itemId:t,style:a})=>{const n=e.indexOf(t);let s="";const i=-1!==n&&n<e.length-1?e[n+1]:"",r=n>0&&n<e.length?e[n-1]:"";return(Object(fr.isDateLine)(r)||Object(fr.isStartOfNewMessages)(r))&&(s+="post-row__padding bottom"),(Object(fr.isDateLine)(i)||Object(fr.isStartOfNewMessages)(i))&&(s.includes("post-row__padding")?s+=" top":s+="post-row__padding top"),C.a.createElement("div",{style:a,className:s},C.a.createElement(P_,{listId:t,previousListId:Object(z.j)(e,n),shouldHighlight:t===this.props.focusedPostId,loadOlderPosts:this.props.actions.loadOlderPosts,loadNewerPosts:this.props.actions.loadNewerPosts,togglePostMenu:this.togglePostMenu}))}),B_(this,"itemKey",e=>{const{postListIds:t}=this.state;return t[e]?t[e]:e}),B_(this,"scrollToFailed",e=>{0===e?this.props.actions.changeUnreadChunkTimeStamp(""):this.props.actions.changeUnreadChunkTimeStamp(this.props.lastViewedAt)}),B_(this,"onScroll",({scrollDirection:e,scrollOffset:t,scrollUpdateWasRequested:a,clientHeight:n,scrollHeight:s})=>{if(s<=0)return;const i="forward"===e&&!a,r=s-n-t<W_;if("backward"===e&&!a&&t<W_&&!this.props.atOldestPost?this.props.actions.loadOlderPosts():i&&r&&!this.props.atLatestPost&&this.props.actions.loadNewerPosts(),this.state.isMobile&&(this.state.isScrolling||this.setState({isScrolling:!0}),this.scrollStopAction&&this.scrollStopAction.fireAfter(P.Q.SCROLL_DELAY)),this.checkBottom(t,s,n),a){this.listRef.current._getRangeToRender()[3]<=1&&!this.props.atLatestPost&&this.props.actions.canLoadMorePosts(P.z.AFTER_ID)}}),B_(this,"checkBottom",(e,t,a)=>{this.updateAtBottom(this.isAtBottom(e,t,a))}),B_(this,"isAtBottom",(e,t,a)=>{return t-a-e<=z_&&t>0}),B_(this,"updateAtBottom",e=>{if(e!==this.state.atBottom){let t=Date.now();this.props.latestPostTimeStamp>t&&(t=this.props.latestPostTimeStamp),this.setState({atBottom:e,lastViewedBottom:t})}}),B_(this,"updateLastViewedBottomAt",(e=Date.now())=>{this.setState({lastViewedBottom:e})}),B_(this,"handleScrollStop",()=>{this.mounted&&this.setState({isScrolling:!1})}),B_(this,"updateFloatingTimestamp",e=>{this.state.isMobile&&this.props.postListIds&&this.setState({topPostId:Object(z.g)(this.props.postListIds.slice(e))})}),B_(this,"onItemsRendered",({visibleStartIndex:e})=>{this.updateFloatingTimestamp(e)}),B_(this,"initScrollToIndex",()=>{if(this.props.focusedPostId){return{index:this.state.postListIds.findIndex(e=>e===this.props.focusedPostId),position:"center"}}const e=Object(z.h)(this.state.postListIds);return e>0?Object(fr.isDateLine)(this.state.postListIds[e+1])?{index:e+1,position:"start",offset:J_}:{index:e,position:"start",offset:J_}:{index:0,position:"end"}}),B_(this,"scrollToLatestMessages",()=>{this.props.atLatestPost?this.scrollToBottom():(this.updateNewMessagesAtInChannel(),this.props.actions.changeUnreadChunkTimeStamp(""))}),B_(this,"scrollToBottom",()=>{this.listRef.current.scrollToItem(0,"end")}),B_(this,"scrollToNewMessage",()=>{this.listRef.current.scrollToItem(Object(z.h)(this.state.postListIds),"start",J_)}),B_(this,"updateNewMessagesAtInChannel",(e=Date.now())=>{this.props.actions.updateNewMessagesAtInChannel(this.props.channelId,e)}),B_(this,"renderToasts",e=>C.a.createElement(q_,{atLatestPost:this.props.atLatestPost,postListIds:this.state.postListIds,atBottom:this.state.atBottom,width:e,lastViewedBottom:this.state.lastViewedBottom,latestPostTimeStamp:this.props.latestPostTimeStamp,scrollToNewMessage:this.scrollToNewMessage,scrollToLatestMessages:this.scrollToLatestMessages,updateNewMessagesAtInChannel:this.updateNewMessagesAtInChannel,updateLastViewedBottomAt:this.updateLastViewedBottomAt,channelId:this.props.channelId}));const t=P.y.CHANNEL_INTRO_MESSAGE,a=I.Y();this.state={isScrolling:!1,isMobile:a,atBottom:null,lastViewedBottom:Date.now(),postListIds:[t],topPostId:"",postMenuOpened:!1,dynamicListStyle:{willChange:"transform"}},this.listRef=C.a.createRef(),this.postListRef=C.a.createRef(),a&&(this.scrollStopAction=new xs(this.handleScrollStop)),this.initRangeToRender=this.props.focusedPostId?[0,Y_.permalink]:[0,Y_.channel];let n=0;n=e.focusedPostId?this.props.postListIds.findIndex(e=>e===this.props.focusedPostId):this.getNewMessagesSeparatorIndex(e.postListIds);const s=e.focusedPostId?Y_.permalink:Y_.channel;this.initRangeToRender=[Math.max(n-30,0),Math.max(n+30,Math.min(e.postListIds.length-1,s))]}componentDidMount(){this.mounted=!0,this.props.actions.checkAndSetMobileView(),window.addEventListener("resize",this.handleWindowResize),Qf.a.addListener(P.m.POST_LIST_SCROLL_TO_BOTTOM,this.scrollToLatestMessages)}getSnapshotBeforeUpdate(e){if(this.postListRef&&this.postListRef.current){const t=this.props.postListIds&&this.props.postListIds.length!==e.postListIds.length&&this.props.postListIds[0]===e.postListIds[0],a=this.props.atOldestPost!==e.atOldestPost;if((t||a)&&!1===this.state.atBottom){const e=this.postListRef.current;return{previousScrollTop:e.parentElement.scrollTop,previousScrollHeight:e.scrollHeight}}}return null}componentDidUpdate(e,t,a){if(!this.postListRef.current)return;const n=e.postListIds.length,s=this.props.postListIds.length;if(a){const t=this.postListRef.current.scrollHeight,i=s!==n&&this.props.postListIds[0]===e.postListIds[0],r=this.props.atOldestPost!==e.atOldestPost;if((i||r)&&!this.state.atBottom&&a){const e=a.previousScrollTop+(t-a.previousScrollHeight);0!==e&&e-a.previousScrollTop!=0&&this.listRef.current.scrollTo(e,e-a.previousScrollTop,!0)}}}componentWillUnmount(){this.mounted=!1,window.removeEventListener("resize",this.handleWindowResize),Qf.a.removeListener(P.m.POST_LIST_SCROLL_TO_BOTTOM,this.scrollToLatestMessages)}static getDerivedStateFromProps(e){const t=e.postListIds;let a;return a=e.atOldestPost?[...t,P.y.CHANNEL_INTRO_MESSAGE]:e.autoRetryEnable?[...t,P.y.OLDER_MESSAGES_LOADER]:[...t,P.y.LOAD_OLDER_MESSAGES_TRIGGER],e.atLatestPost||(a=e.autoRetryEnable?[P.y.NEWER_MESSAGES_LOADER,...a]:[P.y.LOAD_NEWER_MESSAGES_TRIGGER,...a]),{postListIds:a}}render(){const e=this.props.channelId;let t;this.props.latestAriaLabelFunc&&this.props.postListIds.indexOf(P.y.START_OF_NEW_MESSAGES)>=0&&(t=this.props.latestAriaLabelFunc(this.props.intl));const{dynamicListStyle:a}=this.state;return C.a.createElement("div",{role:"list",className:"a11y__region","data-a11y-sort-order":"1","data-a11y-focus-child":!0,"data-a11y-order-reversed":!0,"data-a11y-loop-navigation":!1,"aria-label":I.gb("accessibility.sections.centerContent","message list main region")},this.state.isMobile&&C.a.createElement(C.a.Fragment,null,C.a.createElement(Er,{isScrolling:this.state.isScrolling,isMobile:!0,postId:this.state.topPostId}),C.a.createElement(N_,{isScrolling:this.state.isScrolling,atBottom:this.state.atBottom,onClick:this.scrollToBottom})),C.a.createElement("div",{role:"presentation",className:"post-list-holder-by-time",key:"postlist-"+e},C.a.createElement("div",{role:"presentation",className:"post-list__table"},C.a.createElement("div",{id:"postListContent",className:"post-list__content"},C.a.createElement("span",{className:"sr-only","aria-live":"polite"},t),C.a.createElement(zf.a,null,({height:e,width:t})=>C.a.createElement(C.a.Fragment,null,C.a.createElement("div",null,this.renderToasts(t)),C.a.createElement(Yf.a,{ref:this.listRef,height:e,width:t,className:"post-list__dynamic",itemCount:this.state.postListIds.length,itemData:this.state.postListIds,itemKey:this.itemKey,overscanCountForward:V_,overscanCountBackward:G_,onScroll:this.onScroll,initScrollToIndex:this.initScrollToIndex,canLoadMorePosts:this.props.actions.canLoadMorePosts,skipResizeClass:"col__reply",innerRef:this.postListRef,style:F_({},Q_,{},a),innerListStyle:K_,initRangeToRender:this.initRangeToRender,loaderId:P.y.OLDER_MESSAGES_LOADER,correctScrollToBottom:this.props.atLatestPost,onItemsRendered:this.onItemsRendered,scrollToFailed:this.scrollToFailed},this.renderRow)))))))}}B_(Z_,"propTypes",{postListIds:v.a.array.isRequired,focusedPostId:v.a.string,channelId:v.a.string.isRequired,autoRetryEnable:v.a.bool,atOldestPost:v.a.bool,atLatestPost:v.a.bool,intl:Y.a.isRequired,latestPostTimeStamp:v.a.number,latestAriaLabelFunc:v.a.func,lastViewedAt:v.a.string,actions:v.a.shape({loadOlderPosts:v.a.func.isRequired,loadNewerPosts:v.a.func.isRequired,canLoadMorePosts:v.a.func.isRequired,checkAndSetMobileView:v.a.func.isRequired,changeUnreadChunkTimeStamp:v.a.func.isRequired,updateNewMessagesAtInChannel:v.a.func.isRequired}).isRequired});var X_=Object(W.c)(Z_);function $_(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const eE=3,tE=10;class aE extends C.a.PureComponent{constructor(e){super(e),$_(this,"postsOnLoad",async e=>{this.props.focusedPostId?await this.props.actions.loadPostsAround(e,this.props.focusedPostId):this.props.isFirstLoad?await this.props.actions.loadUnreads(e):this.props.latestPostTimeStamp?await this.props.actions.syncPostsInChannel(e,this.props.latestPostTimeStamp,!1):await this.props.actions.loadLatestPosts(e),this.props.focusedPostId||this.markChannelAsReadAndViewed(),this.setState({loadingOlderPosts:!1,loadingNewerPosts:!1})}),$_(this,"callLoadPosts",async(e,t,a)=>{const{error:n}=await this.props.actions.loadPosts({channelId:e,postId:t,type:a});return a===P.z.BEFORE_ID?this.setState({loadingOlderPosts:!1}):this.setState({loadingNewerPosts:!1}),n?this.autoRetriesCount<eE?(this.autoRetriesCount++,await this.callLoadPosts(e,t,a)):this.mounted&&this.setState({autoRetryEnable:!1}):(this.mounted&&this.setState({autoRetryEnable:!0}),this.state.autoRetryEnable||(this.autoRetriesCount=0)),{error:n}}),$_(this,"markChannelAsReadAndViewed",()=>{const e=this.props.channelId,t=this.props.prevChannelId;this.props.actions.markChannelAsViewed(e,t),this.props.actions.markChannelAsRead(e,t)}),$_(this,"getOldestVisiblePostId",()=>Object(z.i)(this.props.postListIds)),$_(this,"getLatestVisiblePostId",()=>Object(z.g)(this.props.postListIds)),$_(this,"canLoadMorePosts",async(e=P.z.BEFORE_ID)=>{if(this.props.postListIds&&!this.state.loadingOlderPosts&&!this.state.loadingNewerPosts)if(this.extraPagesLoaded>tE)this.state.autoRetryEnable&&this.setState({autoRetryEnable:!1});else{if(this.props.atOldestPost||e!==P.z.BEFORE_ID){if(!this.props.atLatestPost){const e=this.getLatestVisiblePostId();await this.getPostsAfter(e)}}else{const e=this.getOldestVisiblePostId();await this.getPostsBefore(e)}this.extraPagesLoaded+=1}}),$_(this,"getPostsBefore",async()=>{if(this.state.loadingOlderPosts)return;const e=this.getOldestVisiblePostId();this.setState({loadingOlderPosts:!0}),await this.callLoadPosts(this.props.channelId,e,P.z.BEFORE_ID)}),$_(this,"getPostsAfter",async()=>{if(this.state.loadingNewerPosts)return;const e=this.getLatestVisiblePostId();this.setState({loadingNewerPosts:!0}),await this.callLoadPosts(this.props.channelId,e,P.z.AFTER_ID)}),this.state={loadingNewerPosts:!1,loadingOlderPosts:!1,autoRetryEnable:!0},this.autoRetriesCount=0,this.loadingMorePosts=null,this.actionsForPostList={loadOlderPosts:this.getPostsBefore,loadNewerPosts:this.getPostsAfter,checkAndSetMobileView:e.actions.checkAndSetMobileView,canLoadMorePosts:this.canLoadMorePosts,changeUnreadChunkTimeStamp:e.changeUnreadChunkTimeStamp,updateNewMessagesAtInChannel:this.props.actions.updateNewMessagesAtInChannel}}componentDidMount(){this.mounted=!0,this.props.channelId&&this.postsOnLoad(this.props.channelId)}componentDidUpdate(e){this.props.channelId!==e.channelId&&this.postsOnLoad(this.props.channelId)}componentWillUnmount(){this.mounted=!1}render(){return this.props.postListIds?C.a.createElement("div",{ref:"postlist",className:"post-list-holder-by-time",key:"postlist-"+this.props.channelId},C.a.createElement("div",{className:"post-list__table"},C.a.createElement("div",{id:"virtualizedPostListContent",ref:"postListContent",className:"post-list__content"},C.a.createElement(X_,{loadingNewerPosts:this.state.loadingNewerPosts,loadingOlderPosts:this.state.loadingOlderPosts,atOldestPost:this.props.atOldestPost,atLatestPost:this.props.atLatestPost,focusedPostId:this.props.focusedPostId,channelId:this.props.channelId,autoRetryEnable:this.state.autoRetryEnable,actions:this.actionsForPostList,postListIds:this.props.formattedPostIds,latestPostTimeStamp:this.props.latestPostTimeStamp,latestAriaLabelFunc:this.props.latestAriaLabelFunc})))):C.a.createElement(Eu.a,{position:"absolute",key:"loading"})}}$_(aE,"propTypes",{formattedPostIds:v.a.array,postListIds:v.a.array,channelId:v.a.string,focusedPostId:v.a.string,atLatestPost:v.a.bool,atOldestPost:v.a.bool,isFirstLoad:v.a.bool,latestPostTimeStamp:v.a.number,latestAriaLabelFunc:v.a.func,changeUnreadChunkTimeStamp:v.a.func.isRequired,prevChannelId:v.a.string.isRequired,actions:v.a.shape({loadPostsAround:v.a.func.isRequired,loadUnreads:v.a.func.isRequired,loadPosts:v.a.func.isRequired,checkAndSetMobileView:v.a.func.isRequired,syncPostsInChannel:v.a.func.isRequired,loadLatestPosts:v.a.func.isRequired,markChannelAsViewed:v.a.func.isRequired,markChannelAsRead:v.a.func.isRequired,updateNewMessagesAtInChannel:v.a.func.isRequired}).isRequired});const nE=(e,t)=>!e.entities.posts.postsInChannel[t],sE=Object(Nd.memoizeResult)(e=>Object(z.g)(e));var iE=Object(i.g)(Object(n.connect)((function(){const e=Object(qa.makeGetPostsChunkAroundPost)(),t=Object(fr.makePreparePostIdsForPostList)(),a=Object(z.p)();return function(n,s){let i,r,o,l,c=0,d=!1,m=!1;const u=n.views.channel.lastChannelViewTime[s.channelId];if((r=s.match.params.postid?e(n,s.match.params.postid,s.channelId):s.unreadChunkTimeStamp?Object(qa.getUnreadPostsChunk)(n,s.channelId,s.unreadChunkTimeStamp):Object(qa.getRecentPostsChunkInChannel)(n,s.channelId))&&(i=r.order,d=r.recent,m=r.oldest),i&&(o=t(n,{postIds:i,lastViewedAt:u,indicateNewMessages:!0,channelId:s.channelId}),i.length)){const e=sE(i),t=Object(qa.getPost)(n,e);c=t.create_at,l=a(n,t)}return{lastViewedAt:u,isFirstLoad:nE(n,s.channelId),formattedPostIds:o,atLatestPost:d,atOldestPost:m,focusedPostId:s.match.params.postid,latestPostTimeStamp:c,postListIds:i,latestAriaLabelFunc:l}}}),(function(e){return{actions:Object(s.bindActionCreators)({loadUnreads:f.i,loadPosts:f.g,loadLatestPosts:f.f,loadPostsAround:f.h,checkAndSetMobileView:f.b,syncPostsInChannel:f.n,markChannelAsViewed:o.markChannelAsViewed,markChannelAsRead:o.markChannelAsRead,updateNewMessagesAtInChannel:S.p},e)}}))(aE));function rE(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class oE extends C.a.PureComponent{constructor(e){super(e),rE(this,"changeUnreadChunkTimeStamp",e=>{this.setState({unreadChunkTimeStamp:e,loaderForChangeOfPostsChunk:!0},()=>{window.requestAnimationFrame(()=>{this.setState({loaderForChangeOfPostsChunk:!1})})})}),this.state={unreadChunkTimeStamp:e.lastViewedAt,loaderForChangeOfPostsChunk:!1,channelLoading:e.channelLoading}}static getDerivedStateFromProps(e,t){return null===t.unreadChunkTimeStamp&&e.lastViewedAt?{unreadChunkTimeStamp:e.lastViewedAt}:e.channelLoading!==t.channelLoading?{unreadChunkTimeStamp:e.lastViewedAt,channelLoading:e.channelLoading}:null}render(){return this.props.channelLoading||this.state.loaderForChangeOfPostsChunk?C.a.createElement("div",{id:"post-list"},C.a.createElement(Eu.a,{position:"absolute",key:"loading"})):C.a.createElement("div",{id:"post-list"},C.a.createElement(iE,{unreadChunkTimeStamp:this.state.unreadChunkTimeStamp,channelId:this.props.channelId,changeUnreadChunkTimeStamp:this.changeUnreadChunkTimeStamp,focusedPostId:this.props.focusedPostId,prevChannelId:this.props.prevChannelId}))}}rE(oE,"propTypes",{lastViewedAt:v.a.number,channelLoading:v.a.bool,channelId:v.a.string,focusedPostId:v.a.string,prevChannelId:v.a.string.isRequired});const lE=(e,t,a,n,s)=>{if(e.postid)return!1;if(t&&a){if(t.type!==P.j.DM_CHANNEL&&t.name!==e.identifier)return!0;if(t.type===P.j.DM_CHANNEL&&n&&e.identifier!=="@".concat(n.username))return!0;const i=a.id;return!!(t.team_id&&t.team_id!==i||s&&!s[i])}return!0};var cE=Object(i.g)(Object(n.connect)((function(){return function(e,t){const a=Object(u.getTeamByName)(e,t.match.params.team);let n;const s=Object(p.getChannel)(e,t.channelId);let i=e.views.channel.lastChannelViewTime[t.channelId];s&&(s.type===P.j.DM_CHANNEL&&s.teammate_id&&(n=Object(m.getUser)(e,s.teammate_id)),i=s.last_post_at?i:s.last_post_at);const r=Object(u.getTeamMemberships)(e);return{lastViewedAt:i,channelLoading:lE(t.match.params,s,a,n,r),channel:s}}}))(oE));function dE(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function mE(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class uE extends C.a.PureComponent{static getDerivedStateFromProps(e,t){let a={postid:e.match.params.postid};return t.postid!==e.match.params.postid&&(a=function(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?dE(a,!0).forEach((function(t){mE(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):dE(a).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}({},a,{valid:!1})),a}constructor(e){super(e),mE(this,"doPermalinkEvent",async e=>{const t=e.match.params.postid;await this.props.actions.focusPost(t,this.props.returnTo),this.setState({valid:!0})}),mE(this,"isStateValid",()=>this.state.valid&&this.props.channelId&&this.props.teamName),mE(this,"onShortcutKeyDown",e=>{e.shiftKey&&I.e(e)&&I.W(e,P.Q.KeyCodes.L)&&this.permalink.current&&this.permalink.current.focus()}),this.state={valid:!1},this.permalink=C.a.createRef()}componentDidMount(){this.doPermalinkEvent(this.props),document.body.classList.add("app__body"),window.addEventListener("keydown",this.onShortcutKeyDown)}componentWillUnmount(){window.removeEventListener("keydown",this.onShortcutKeyDown)}componentDidUpdate(){this.state.valid||this.doPermalinkEvent(this.props)}render(){const{channelId:e,channelName:t,channelIsArchived:a,match:n,teamName:s}=this.props;return this.isStateValid()?C.a.createElement("div",{id:"app-content",className:"app__content"},C.a.createElement(Vf,{channelId:e}),C.a.createElement(cE,{channelId:e,focusedPostId:n.params.postid}),C.a.createElement("div",{id:"archive-link-home"},C.a.createElement(In.a,{to:"/"+s+"/channels/"+t,className:"a11y__region","data-a11y-sort-order":"2",innerRef:this.permalink},a&&C.a.createElement(Ji.b,{id:"center_panel.permalink.archivedChannel",defaultMessage:"You are viewing an **archived channel**. "}),C.a.createElement(V.a,{id:"center_panel.recent",defaultMessage:"Click here to jump to recent messages. "}),C.a.createElement(Wf.a,{className:"fa fa-arrow-down",title:{id:Object(de.b)("center_panel.recent.icon"),defaultMessage:"Jump to recent messages Icon"}})))):C.a.createElement("div",{id:"app-content",className:"app__content"})}}mE(uE,"propTypes",{channelId:v.a.string,channelName:v.a.string,channelIsArchived:v.a.bool,match:v.a.shape({params:v.a.shape({postid:v.a.string.isRequired}).isRequired}).isRequired,returnTo:v.a.string.isRequired,teamName:v.a.string,actions:v.a.shape({focusPost:v.a.func.isRequired}).isRequired});var pE=Object(n.connect)((function(e){const t=Object(u.getCurrentTeam)(e),a=Object(p.getCurrentChannel)(e);let n,s="",i="";a&&(s=a.id,i=a.name,n=0!==a.delete_at);let r="";return t&&(r=t.name),{channelId:s,channelName:i,teamName:r,channelIsArchived:n}}),(function(e){return{actions:Object(s.bindActionCreators)({focusPost:kg},e)}}))(uE);class hE extends C.a.PureComponent{render(){return this.props.mentionCount?C.a.createElement("span",{className:"badge badge-notify"},this.props.mentionCount):this.props.messageCount?C.a.createElement("span",{className:"badge badge-notify"},"•"):null}}!function(e,t,a){t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a}(hE,"propTypes",{mentionCount:v.a.number.isRequired,messageCount:v.a.number.isRequired});var gE=Object(n.connect)((function(e){const{mentionCount:t,messageCount:a}=Object(p.getUnreadsInCurrentTeam)(e);return{mentionCount:t,messageCount:a}}))(hE);const bE=({actions:{toggleLhs:e}})=>C.a.createElement("button",{key:"navbar-toggle-sidebar",type:"button",className:"navbar-toggle","data-toggle":"collapse","data-target":"#sidebar-nav",onClick:e},C.a.createElement("span",{className:"sr-only"},C.a.createElement(V.a,{id:"navbar.toggle2",defaultMessage:"Toggle sidebar"})),C.a.createElement(Gh.a,{className:"style--none icon icon__menu icon--sidebarHeaderTextColor"}),C.a.createElement(gE,null));bE.propTypes={actions:v.a.shape({toggleLhs:v.a.func.isRequired}).isRequired};var fE=bE;var _E=Object(n.connect)(null,e=>({actions:Object(s.bindActionCreators)({toggleLhs:yp.c},e)}))(fE);const EE=({actions:{toggleRhsMenu:e}})=>C.a.createElement("button",{key:"navbar-toggle-menu",type:"button",className:"navbar-toggle navbar-right__icon menu-toggle pull-right","data-toggle":"collapse","data-target":"#sidebar-nav",onClick:e},C.a.createElement(Gh.a,null));EE.propTypes={actions:v.a.shape({toggleRhsMenu:v.a.func.isRequired}).isRequired};var vE=EE;var yE=Object(n.connect)(null,e=>({actions:Object(s.bindActionCreators)({toggleRhsMenu:ys.q},e)}))(vE);class CE extends C.a.PureComponent{render(){return C.a.createElement("span",this.props,C.a.createElement(V.a,{id:"generic_icons.info",defaultMessage:"Info Icon"},e=>C.a.createElement("svg",{width:"18px",height:"18px",viewBox:"0 0 22 22",role:"img","aria-label":e},C.a.createElement("g",{stroke:"none",strokeWidth:"1",fill:"inherit",fillRule:"evenodd"},C.a.createElement("g",{transform:"translate(-388.000000, -18.000000)",fill:"inherit"},C.a.createElement("g",null,C.a.createElement("g",{transform:"translate(381.000000, 11.000000)"},C.a.createElement("g",{transform:"translate(7.000000, 7.000000)"},C.a.createElement("path",{d:"M11,22 C4.92486775,22 0,17.0751322 0,11 C0,4.92486775 4.92486775,0 11,0 C17.0751322,0 22,4.92486775 22,11 C22,17.0751322 17.0751322,22 11,22 Z M11,20.7924685 C16.408231,20.7924685 20.7924685,16.408231 20.7924685,11 C20.7924685,5.59176898 16.408231,1.20753149 11,1.20753149 C5.59176898,1.20753149 1.20753149,5.59176898 1.20753149,11 C1.20753149,16.408231 5.59176898,20.7924685 11,20.7924685 Z M10.1572266,16.0625 L10.1572266,8.69335938 L11.3466797,8.69335938 L11.3466797,16.0625 L10.1572266,16.0625 Z M10.7519531,7.50390625 C10.3417969,7.50390625 10,7.16210938 10,6.75195312 C10,6.33496094 10.3417969,6 10.7519531,6 C11.1689453,6 11.5039062,6.33496094 11.5039062,6.75195312 C11.5039062,7.16210938 11.1689453,7.50390625 10.7519531,7.50390625 Z"})))))))))}}function wE(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const OE={mentionHighlight:!1};class TE extends C.a.PureComponent{constructor(...e){super(...e),wE(this,"showEditChannelHeaderModal",()=>{this.refs.headerOverlay&&this.refs.headerOverlay.hide();const{actions:e,channel:t}=this.props,a={modalId:P.u.EDIT_CHANNEL_HEADER,dialogType:Hg,dialogProps:{channel:t}};e.openModal(a)}),wE(this,"hide",()=>{this.refs.headerOverlay&&this.refs.headerOverlay.hide()})}render(){const{channel:e,isReadOnly:t}=this.props;let a=null;if(e.header)a=C.a.createElement(va.a,{message:e.header,options:OE});else{let e;if(!t){const t=C.a.createElement("a",{href:"#",onClick:this.showEditChannelHeaderModal},C.a.createElement(V.a,{id:"navbar.click",defaultMessage:"Click here"}));e=C.a.createElement(C.a.Fragment,null,C.a.createElement("br",null),C.a.createElement(V.a,{id:"navbar.clickToAddHeader",defaultMessage:"{clickHere} to add one.",values:{clickHere:t}}))}a=C.a.createElement("div",null,C.a.createElement(V.a,{id:"navbar.noHeader",defaultMessage:"No channel header yet."}),e)}const n=C.a.createElement(nc.a,{popoverStyle:"info",placement:"bottom",className:"navbar__popover",id:"header-popover"},a,C.a.createElement("div",{className:"close visible-xs-block",onClick:this.hide},"×"));return C.a.createElement(ui.a,{ref:"headerOverlay",trigger:"click",placement:"bottom",overlay:n,className:"description",rootClose:!0},C.a.createElement("button",{className:"navbar-toggle navbar-right__icon navbar-info-button pull-right","aria-label":Object(I.gb)("accessibility.button.Info","Info")},C.a.createElement(CE,{className:"icon icon__info","aria-hidden":"true"})))}}wE(TE,"propTypes",{channel:v.a.object.isRequired,isReadOnly:v.a.bool.isRequired,actions:v.a.shape({openModal:v.a.func.isRequired}).isRequired});var SE=Object(n.connect)(null,(function(e){return{actions:Object(s.bindActionCreators)({openModal:x.b},e)}}))(TE);function PE(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class ME extends C.a.PureComponent{constructor(...e){super(...e),PE(this,"handleClick",()=>{this.props.actions.openRHSSearch()})}render(){return C.a.createElement("button",{type:"button",className:"navbar-toggle navbar-right__icon navbar-search pull-right",onClick:this.handleClick,"aria-label":Object(I.gb)("accessibility.button.Search","Search")},C.a.createElement(Ec.a,{className:"icon icon__search","aria-hidden":"true"}))}}PE(ME,"propTypes",{actions:v.a.shape({openRHSSearch:v.a.func.isRequired}).isRequired});var IE=Object(n.connect)(null,e=>({actions:Object(s.bindActionCreators)({openRHSSearch:ys.e},e)}))(ME);function NE(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class jE extends C.a.PureComponent{constructor(...e){super(...e),NE(this,"handleClick",()=>{const{user:e,channel:t,actions:{updateChannelNotifyProps:a}}=this.props;a(e.id,t.id,{mark_unread:P.v.ALL})})}render(){return C.a.createElement("button",{type:"button",className:"navbar-toggle icon icon__mute",onClick:this.handleClick},C.a.createElement("span",{className:"fa fa-bell-slash-o icon"}))}}NE(jE,"propTypes",{user:v.a.shape({id:v.a.string.isRequired}).isRequired,channel:v.a.shape({id:v.a.string.isRequired}).isRequired,actions:v.a.shape({updateChannelNotifyProps:v.a.func.isRequired}).isRequired});var AE=Object(n.connect)(null,e=>({actions:Object(s.bindActionCreators)({updateChannelNotifyProps:o.updateChannelNotifyProps},e)}))(jE);function RE(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class kE extends C.a.PureComponent{constructor(...e){super(...e),RE(this,"hideSidebars",e=>{I.Y()&&(this.props.actions.closeRhs(),"navbar-toggle"!==e.target.className&&"icon-bar"!==e.target.className&&(this.props.actions.closeLhs(),this.props.actions.closeRhsMenu()))})}componentDidMount(){document.querySelector(".inner-wrap").addEventListener("click",this.hideSidebars)}componentWillUnmount(){document.querySelector(".inner-wrap").removeEventListener("click",this.hideSidebars)}render(){const{user:e,channel:t,isMuted:a}=this.props;return C.a.createElement("nav",{id:"navbar",className:"navbar navbar-default navbar-fixed-top",role:"navigation"},C.a.createElement("div",{className:"container-fluid theme"},C.a.createElement("div",{className:"navbar-header"},C.a.createElement(_E,null),t&&C.a.createElement(C.a.Fragment,null,C.a.createElement("div",{className:"navbar-brand"},C.a.createElement(Pf,null),a&&C.a.createElement(AE,{user:e,channel:t})),C.a.createElement(SE,{ref:"headerOverlay",channel:t,isReadOnly:this.props.isReadOnly}),C.a.createElement(IE,null),C.a.createElement(fb,{channel:t,isDropdown:!1})),C.a.createElement(yE,null))))}}RE(kE,"propTypes",{user:v.a.object.isRequired,channel:v.a.object,isReadOnly:v.a.bool,isMuted:v.a.bool,actions:v.a.shape({closeLhs:v.a.func.isRequired,closeRhs:v.a.func.isRequired,closeRhsMenu:v.a.func.isRequired}).isRequired});const LE=Object(Hs.createSelector)(p.getMyCurrentChannelMembership,e=>Object(un.isChannelMuted)(e));var DE=Object(n.connect)(e=>({user:Object(m.getCurrentUser)(e),channel:Object(p.getCurrentChannel)(e),isMuted:LE(e),isReadOnly:Object(p.isCurrentChannelReadOnly)(e)}),e=>({actions:Object(s.bindActionCreators)({closeLhs:yp.a,closeRhs:ys.b,closeRhsMenu:ys.a},e)}))(kE);a(182);const xE=26,UE=40,qE=54,HE=new RegExp("^[a-zA-Z0-9]{".concat(xE,"}__[a-zA-Z0-9]{").concat(xE,"}$"));function FE({match:e,history:t}){return async(a,n)=>{const s=n(),{path:i,identifier:l,team:c}=e.params;if(!l)return;const d=Object(u.getTeamByName)(s,c);if(d)switch(function(e,t,a){if("channels"===t){if(a.length===xE){const t=Object(p.getChannelByName)(e,a),n=Object(p.getOtherChannels)(e).find(e=>e.name===a);return t||n?"channel_name":"channel_id"}return a.length===UE?"group_channel_group_id":function(e){return e.length===qE&&HE.test(e)}(a)?"direct_channel_user_ids":"channel_name"}if("messages"===t)return 0===a.indexOf("@")?"direct_channel_username":a.indexOf("@")>0?"direct_channel_email":a.length===xE?"direct_channel_user_id":a.length===UE?"group_channel_group_id":"error";return"error"}(s,i,l)){case"channel_name":a(function(e,t){return async(a,n)=>{const s=n(),{team:i,identifier:r}=e.params,l=r.toLowerCase(),c=Object(u.getTeamByName)(s,i);if(!c)return;let d,h=Object(p.getChannelsNameMapInTeam)(s,c.id)[l];if(h&&(d=s.entities.channels.myMembers[h.id]),!h||!d){const{data:n,error:r}=await a(Object(o.joinChannel)(Object(m.getCurrentUserId)(s),c.id,null,l));if(r){const{data:n,error:r}=await a(Object(o.getChannelByNameAndTeamName)(i,l,!0));if(r||0===n.delete_at)return await a(Object(o.fetchMyChannelsAndMembers)(c.id)),void zE(e,t,Object(p.getRedirectChannelNameForTeam)(s,c.id));h=n}else h=n.channel}h.type===P.j.DM_CHANNEL?a(GE(e,t)):h.type===P.j.GM_CHANNEL?t.replace("/".concat(i,"/messages/").concat(h.name)):VE(h)}}(e,t));break;case"channel_id":a(function(e,t){return async(a,n)=>{const s=n(),{team:i,identifier:r}=e.params,l=r.toLowerCase();let c=Object(p.getChannel)(s,l);const d=s.entities.channels.myMembers[l],h=Object(u.getTeamByName)(s,i);if(!c||!d){const{data:n,error:i}=await a(Object(o.joinChannel)(Object(m.getCurrentUserId)(s),h.id,l,null));if(i)return await a(Object(o.fetchMyChannelsAndMembers)(h.id)),void zE(e,t,Object(p.getRedirectChannelNameForTeam)(s,h.id));c=n.channel}c.type===P.j.DM_CHANNEL?a(BE(e,t,I.H(c.name))):c.type===P.j.GM_CHANNEL?t.replace("/".concat(i,"/messages/").concat(c.name)):t.replace("/".concat(i,"/channels/").concat(c.name))}}(e,t));break;case"group_channel_group_id":a(function(e,t){return async(a,n)=>{const s=n(),{identifier:i,team:r}=e.params,l=i.toLowerCase();t.replace(e.url.replace("/channels/","/messages/"));let c=Object(p.getChannelByName)(s,l);const d=Object(u.getTeamByName)(s,r);if(!c){const{data:n,error:i}=await a(Object(o.joinChannel)(Object(m.getCurrentUserId)(s),d.id,null,l));if(i)return await a(Object(o.fetchMyChannelsAndMembers)(d.id)),void WE(e,t,Object(p.getRedirectChannelNameForTeam)(s,d.id));c=n.channel}a(Object(o.markGroupChannelOpen)(c.id)),VE(c)}}(e,t));break;case"direct_channel_username":a(function(e,t){return async(a,n)=>{const s=n(),{team:i,identifier:l}=e.params,c=l.slice(1,l.length).toLowerCase(),d=Object(u.getTeamByName)(s,i);let h=Object(m.getUserByUsername)(s,c);if(!h){const{data:n,error:i}=await a(Object(r.getUserByUsername)(c));if(i)return await a(Object(o.fetchMyChannelsAndMembers)(d.id)),void WE(e,t,Object(p.getRedirectChannelNameForTeam)(s,d.id));h=n}const{error:g,data:b}=await a(Object(_a.e)(h.id));if(g)return await a(Object(o.fetchMyChannelsAndMembers)(d.id)),void WE(e,t,Object(p.getRedirectChannelNameForTeam)(s,d.id));VE(b)}}(e,t));break;case"direct_channel_email":a(function(e,t){return async(a,n)=>{const s=n(),{team:i,identifier:l}=e.params,c=l.toLowerCase(),d=Object(u.getTeamByName)(s,i);let h=Object(m.getUserByEmail)(s,c);if(!h){const{data:n,error:i}=await a(Object(r.getUserByEmail)(c));if(i)return await a(Object(o.fetchMyChannelsAndMembers)(d.id)),void WE(e,t,Object(p.getRedirectChannelNameForTeam)(s,d.id));h=n}t.replace("/".concat(i,"/messages/@").concat(h.username))}}(e,t));break;case"direct_channel_user_ids":a(GE(e,t));break;case"direct_channel_user_id":a(BE(e,t,l));break;case"error":await a(Object(o.fetchMyChannelsAndMembers)(d.id)),WE(e,t,Object(p.getRedirectChannelNameForTeam)(s,d.id))}}}function BE(e,t,a){return async(n,s)=>{const i=s(),{team:l}=e.params,c=Object(u.getTeamByName)(i,l);let d=Object(m.getUser)(i,a);if(!d){const{data:s,error:l}=await n(Object(r.getUser)(a));if(l)return await n(Object(o.fetchMyChannelsAndMembers)(c.id)),void WE(e,t,Object(p.getRedirectChannelNameForTeam)(i,c.id));d=s}t.replace("/".concat(l,"/messages/@").concat(d.username))}}function GE(e,t){return async(a,n)=>{const s=n(),{team:i,identifier:l}=e.params,c=I.H(l.toLowerCase(),Object(m.getCurrentUserId)(n())),d=Object(u.getTeamByName)(s,i);let h=Object(m.getUser)(s,c);if(!h){const{data:n,error:i}=await a(Object(r.getUser)(c));if(i)return await a(Object(o.fetchMyChannelsAndMembers)(d.id)),void WE(e,t,Object(p.getRedirectChannelNameForTeam)(s,d.id));h=n}t.replace("/".concat(i,"/messages/@").concat(h.username))}}function VE(e){S.b(e)}function WE(e,t,a){const{team:n}=e.params;t.push(n?"/".concat(n,"/channels/").concat(a):"/")}async function zE(e,t,a){const{team:n}=e.params;t.push(n?"/error?type=channel_not_found&returnTo=/".concat(n,"/channels/").concat(a):"/")}var YE=a(168),KE=a.n(YE);a(1747);function QE(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function JE(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?QE(a,!0).forEach((function(t){ZE(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):QE(a).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function ZE(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const XE=P.Q.KeyCodes;function $E(e){return String.prototype.trimRight?e.trimRight():e.replace(/\s*$/,"")}class ev extends C.a.PureComponent{static getDerivedStateFromProps(e,t){let a={currentChannel:e.currentChannel};return e.currentChannel.id!==t.currentChannel.id&&(a=JE({},a,{message:e.draft.message,submitting:!1,serverError:null,showPreview:!1})),a}constructor(e){super(e),ZE(this,"updatePreview",e=>{this.setState({showPreview:e})}),ZE(this,"setOrientationListeners",()=>{window.screen.orientation&&"onchange"in window.screen.orientation?window.screen.orientation.addEventListener("change",this.onOrientationChange):"onorientationchange"in window&&window.addEventListener("orientationchange",this.onOrientationChange)}),ZE(this,"removeOrientationListeners",()=>{window.screen.orientation&&"onchange"in window.screen.orientation?window.screen.orientation.removeEventListener("change",this.onOrientationChange):"onorientationchange"in window&&window.removeEventListener("orientationchange",this.onOrientationChange)}),ZE(this,"onOrientationChange",()=>{if(!M.l())return;let e="portrait";window.orientation&&(e=90===Math.abs(window.orientation)?"landscape":"portrait"),window.screen.orientation&&(e=window.screen.orientation.type.split("-")[0]),this.lastOrientation&&e!==this.lastOrientation&&"post_textbox"===(document.activeElement||{}).id&&this.refs.textbox.getWrappedInstance().blur(),this.lastOrientation=e}),ZE(this,"handlePostError",e=>{this.setState({postError:e})}),ZE(this,"toggleEmojiPicker",()=>{this.setState({showEmojiPicker:!this.state.showEmojiPicker})}),ZE(this,"hideEmojiPicker",()=>{this.handleEmojiClose()}),ZE(this,"doSubmit",async e=>{const t=this.props.currentChannel.id;if(e&&e.preventDefault(),this.props.draft.uploadsInProgress.length>0||this.state.submitting)return;let a=this.state.message,n=!1;const s=this.state.serverError;s&&Object(z.l)(s)&&s.submittedMessage===a&&(a=s.submittedMessage,n=!0);const i={file_ids:[]};if(i.message=a,0===i.message.trim().length&&0===this.props.draft.fileInfos.length)return;if(this.state.postError)return this.setState({errorClass:"animation--highlight"}),void setTimeout(()=>{this.setState({errorClass:null})},P.Q.ANIMATION_TIMEOUT);this.props.actions.addMessageIntoHistory(this.state.message),this.setState({submitting:!0,serverError:null});const r=I.a.exec(i.message);if(0!==i.message.indexOf("/")||n)if(r&&this.props.emojiMap.has(r[2]))this.sendReaction(r),this.setState({message:""});else{const{error:e}=await this.sendMessage(i);e||this.setState({message:""})}else{this.setState({message:"",postError:null});let e={};e.channel_id=t,e.team_id=this.props.currentTeamId;const a=await this.props.actions.runSlashCommandWillBePostedHooks(i.message,e);if(a.error)this.setState({serverError:JE({},a.error,{submittedMessage:i.message}),message:i.message});else if(a.data.message||a.data.args){i.message=a.data.message,e=a.data.args;const{error:t}=await this.props.actions.executeCommand(i.message,e);t&&(t.sendMessage?await this.sendMessage(i):this.setState({serverError:JE({},t,{submittedMessage:i.message}),message:i.message}))}else;}this.setState({submitting:!1,postError:null}),cancelAnimationFrame(this.saveDraftFrame),this.props.actions.setDraft(P.I.DRAFT+t,null),this.draftsForChannel[t]=null;const o=Date.now()-this.lastBlurAt<150;this.focusTextbox(o)}),ZE(this,"handleNotifyAllConfirmation",e=>{this.hideNotifyAllModal(),this.doSubmit(e)}),ZE(this,"hideNotifyAllModal",()=>{this.setState({showConfirmModal:!1})}),ZE(this,"showNotifyAllModal",()=>{this.setState({showConfirmModal:!0})}),ZE(this,"getStatusFromSlashCommand",()=>{const{message:e}=this.state,t=e.split(" ");return t.length>0?t[0].substring(1):""}),ZE(this,"isStatusSlashCommand",e=>"online"===e||"away"===e||"dnd"===e||"offline"===e),ZE(this,"handleSubmit",async e=>{const{currentChannel:t,userIsOutOfOffice:a}=this.props,n=this.props.currentChannelMembersCount;if(this.props.enableConfirmNotificationsToChannel&&n>P.Q.NOTIFY_ALL_MEMBERS&&Object(z.c)(this.state.message)){if(this.props.isTimezoneEnabled){const{data:e}=await this.props.actions.getChannelTimezones(this.props.currentChannel.id);e?this.setState({channelTimezoneCount:e.length}):this.setState({channelTimezoneCount:0})}return void this.showNotifyAllModal()}const s=this.getStatusFromSlashCommand();if(a&&this.isStatusSlashCommand(s)){const e={ModalId:P.u.RESET_STATUS,dialogType:hs,dialogProps:{newStatus:s}};return this.props.actions.openModal(e),void this.setState({message:""})}if("/header"===$E(this.state.message)){const e={modalId:P.u.EDIT_CHANNEL_HEADER,dialogType:Hg,dialogProps:{channel:t}};return this.props.actions.openModal(e),void this.setState({message:""})}const i=t.type===P.Q.DM_CHANNEL||t.type===P.Q.GM_CHANNEL;if(!i&&"/purpose"===$E(this.state.message)){const e={modalId:P.u.EDIT_CHANNEL_PURPOSE,dialogType:Db,dialogProps:{channel:t}};return this.props.actions.openModal(e),void this.setState({message:""})}if(!i&&"/rename"===$E(this.state.message))return S.i(t),void this.setState({message:""});await this.doSubmit(e)}),ZE(this,"sendMessage",async e=>{const{actions:t,currentChannel:a,currentUserId:n,draft:s}=this.props;let i=e;i.channel_id=a.id;const r=I.G(),o=n;i.pending_post_id="".concat(o,":").concat(r),i.user_id=o,i.create_at=r,i.parent_id=this.state.parentId,i.metadata={},i.props={};const l=await t.runMessageWillBePostedHooks(i);return l.error?(this.setState({serverError:l.error,submitting:!1}),l):(i=l.data,t.onSubmitPost(i,s.fileInfos),t.scrollPostListToBottom(),this.setState({submitting:!1}),{data:!0})}),ZE(this,"focusTextbox",(e=!1)=>{!this.refs.textbox||!e&&M.n()||this.refs.textbox.getWrappedInstance().focus()}),ZE(this,"postMsgKeyPress",e=>{const{ctrlSend:t,codeBlockOnCtrlEnter:a}=this.props,{allowSending:n,withClosedCodeBlock:s,ignoreKeyPress:i,message:r}=Object(z.q)(e,this.state.message,t,a,Date.now(),this.lastChannelSwitchAt,this.state.caretPosition);if(i)return e.preventDefault(),void e.stopPropagation();n&&(e.persist(),this.refs.textbox&&this.refs.textbox.getWrappedInstance().blur(),s&&r?this.setState({message:r},()=>this.handleSubmit(e)):this.handleSubmit(e),this.updatePreview(!1)),this.emitTypingEvent()}),ZE(this,"emitTypingEvent",()=>{const e=this.props.currentChannel.id;S.d(e,"")}),ZE(this,"handleChange",e=>{const t=e.target.value,a=this.props.currentChannel.id;let n=this.state.serverError;Object(z.l)(n)&&(n=null),this.setState({message:t,serverError:n});const s=JE({},this.props.draft,{message:t});cancelAnimationFrame(this.saveDraftFrame),this.saveDraftFrame=requestAnimationFrame(()=>{this.props.actions.setDraft(P.I.DRAFT+a,s)}),this.draftsForChannel[a]=s}),ZE(this,"pasteHandler",e=>{if(!e.clipboardData||!e.clipboardData.items||"post_textbox"!==e.target.id)return;const t=ri(e.clipboardData);if(!t)return;e.preventDefault();let a="";a=li(t.className)?"```\n"+oi(e.clipboardData)+"\n```":di(t,this.state.message.trim()),this.setState({message:a})}),ZE(this,"handleFileUploadChange",()=>{this.focusTextbox()}),ZE(this,"handleUploadStart",(e,t)=>{const a=[...this.props.draft.uploadsInProgress,...e],n=JE({},this.props.draft,{uploadsInProgress:a});this.props.actions.setDraft(P.I.DRAFT+t,n),this.draftsForChannel[t]=n,this.focusTextbox()}),ZE(this,"handleUploadProgress",({clientId:e,name:t,percent:a,type:n})=>{const s=JE({},this.state.uploadsProgressPercent,{[e]:{percent:a,name:t,type:n}});this.setState({uploadsProgressPercent:s})}),ZE(this,"handleFileUploadComplete",(e,t,a)=>{const n=JE({},this.draftsForChannel[a]);for(let e=0;e<t.length;e++)if(n.uploadsInProgress){const a=n.uploadsInProgress.indexOf(t[e]);-1!==a&&(n.uploadsInProgress=n.uploadsInProgress.filter((e,t)=>a!==t))}n.fileInfos&&(n.fileInfos=Object(ii.sortFileInfos)(n.fileInfos.concat(e),this.props.locale)),this.draftsForChannel[a]=n,this.props.actions.setDraft(P.I.DRAFT+a,n)}),ZE(this,"handleUploadError",(e,t,a)=>{const n=JE({},this.draftsForChannel[a]);let s=e;if("string"==typeof e&&(s=new Error(e)),-1!==t&&n.uploadsInProgress){const e=n.uploadsInProgress.indexOf(t);if(-1!==e){const t=n.uploadsInProgress.filter((t,a)=>e!==a),s=JE({},n,{uploadsInProgress:t});this.props.actions.setDraft(P.I.DRAFT+a,s),this.draftsForChannel[a]=s}}this.setState({serverError:s})}),ZE(this,"removePreview",e=>{let t={};const a=JE({},this.props.draft),n=this.props.currentChannel.id;this.setState({serverError:null});let s=a.fileInfos.findIndex(t=>t.id===e);if(-1===s){if(-1!==(s=a.uploadsInProgress.indexOf(e))){const n=a.uploadsInProgress.filter((e,t)=>s!==t);t=JE({},a,{uploadsInProgress:n}),this.refs.fileUpload&&this.refs.fileUpload.getWrappedInstance()&&this.refs.fileUpload.getWrappedInstance().cancelUpload(e)}}else{const e=a.fileInfos.filter((e,t)=>s!==t);t=JE({},a,{fileInfos:e})}this.props.actions.setDraft(P.I.DRAFT+n,t),this.draftsForChannel[n]=t,this.handleFileUploadChange()}),ZE(this,"focusTextboxIfNecessary",e=>{this.props.rhsExpanded||document.getElementsByClassName("channel-switch-modal").length||Object(z.r)(e,document.activeElement)&&this.focusTextbox()}),ZE(this,"documentKeyHandler",e=>{if((e.ctrlKey||e.metaKey)&&I.W(e,XE.FORWARD_SLASH))return e.preventDefault(),void S.n();this.focusTextboxIfNecessary(e)}),ZE(this,"getFileCount",()=>{const e=this.props.draft;return e.fileInfos.length+e.uploadsInProgress.length}),ZE(this,"getFileUploadTarget",()=>this.refs.textbox?this.refs.textbox.getWrappedInstance():null),ZE(this,"getCreatePostControls",()=>this.refs.createPostControls),ZE(this,"handleMouseUpKeyUp",e=>{const t=I.p(e.target);this.setState({caretPosition:t})}),ZE(this,"handleKeyDown",e=>{const t=e.ctrlKey||e.metaKey,a=0===this.state.message.length,n=0===this.props.draft.message.length,s=(this.props.ctrlSend||this.props.codeBlockOnCtrlEnter)&&I.W(e,XE.ENTER)&&t,i=!t&&!e.altKey&&!e.shiftKey&&I.W(e,XE.UP),r=!t&&!e.altKey&&e.shiftKey&&I.W(e,XE.UP),o=t&&!e.altKey&&!e.shiftKey;s?this.postMsgKeyPress(e):i&&a?this.editLastPost(e):r&&a?this.replyToLastPost(e):o&&n&&I.W(e,XE.UP)?this.loadPrevMessage(e):o&&n&&I.W(e,XE.DOWN)&&this.loadNextMessage(e)}),ZE(this,"editLastPost",e=>{e.preventDefault();const t=this.props.currentUsersLatestPost;if(!t)return;let a;a=t.root_id&&t.root_id.length>0?I.gb("create_post.comment",L.Posts.MESSAGE_TYPES.COMMENT):I.gb("create_post.post",L.Posts.MESSAGE_TYPES.POST),this.refs.textbox&&this.refs.textbox.getWrappedInstance().blur(),this.props.actions.setEditingPost(t.id,this.props.commentCountForPost,"post_textbox",a)}),ZE(this,"replyToLastPost",e=>{e.preventDefault();const t=this.props.latestReplyablePostId,a=document.getElementById("reply_textbox");a&&a.focus(),t&&this.props.actions.selectPostFromRightHandSideSearchByPostId(t)}),ZE(this,"loadPrevMessage",e=>{e.preventDefault(),this.props.actions.moveHistoryIndexBack(L.Posts.MESSAGE_TYPES.POST).then(()=>this.fillMessageFromHistory())}),ZE(this,"loadNextMessage",e=>{e.preventDefault(),this.props.actions.moveHistoryIndexForward(L.Posts.MESSAGE_TYPES.POST).then(()=>this.fillMessageFromHistory())}),ZE(this,"handleBlur",()=>{this.lastBlurAt=Date.now()}),ZE(this,"showPostDeletedModal",()=>{this.setState({showPostDeletedModal:!0})}),ZE(this,"hidePostDeletedModal",()=>{this.setState({showPostDeletedModal:!1})}),ZE(this,"handleEmojiClose",()=>{this.setState({showEmojiPicker:!1})}),ZE(this,"handleEmojiClick",e=>{const t=e.name||e.aliases[0];if(t){if(""===this.state.message)this.setState({message:":"+t+": "});else{const{message:e}=this.state,{firstPiece:a,lastPiece:n}=Object(z.t)(this.state.caretPosition,e),s=""===a?":".concat(t,": ").concat(n):"".concat(a," :").concat(t,": ").concat(n),i=""===a?":".concat(t,": ").length:"".concat(a," :").concat(t,": ").length,r=this.refs.textbox.getWrappedInstance().getInputBox();this.setState({message:s,caretPosition:i},()=>{I.ob(r,i)})}this.handleEmojiClose()}}),ZE(this,"handleGifClick",e=>{if(""===this.state.message)this.setState({message:e});else{const t=/\s+$/.test(this.state.message)?this.state.message+e:this.state.message+" "+e;this.setState({message:t})}this.handleEmojiClose()}),ZE(this,"handleHeightChange",(e,t)=>{this.setState({renderScrollbar:e>t})}),this.state={message:this.props.draft.message,caretPosition:this.props.draft.message.length,submitting:!1,showPostDeletedModal:!1,showEmojiPicker:!1,showConfirmModal:!1,channelTimezoneCount:0,showPreview:!1,uploadsProgressPercent:{},renderScrollbar:!1,currentChannel:e.currentChannel},this.lastBlurAt=0,this.lastChannelSwitchAt=0,this.draftsForChannel={},this.lastOrientation=null}componentDidMount(){this.onOrientationChange(),this.props.actions.clearDraftUploads(P.I.DRAFT,(e,t)=>t?JE({},t,{uploadsInProgress:[]}):t),this.focusTextbox(),document.addEventListener("paste",this.pasteHandler),document.addEventListener("keydown",this.documentKeyHandler),this.setOrientationListeners()}componentDidUpdate(e,t){e.currentChannel.id!==this.props.currentChannel.id&&(this.lastChannelSwitchAt=Date.now(),this.focusTextbox()),t.showEmojiPicker&&!this.state.showEmojiPicker&&this.focusTextbox()}componentWillUnmount(){if(document.removeEventListener("paste",this.pasteHandler),document.removeEventListener("keydown",this.documentKeyHandler),this.removeOrientationListeners(),this.saveDraftFrame){const e=this.props.currentChannel.id;this.props.actions.setDraft(P.I.DRAFT+e,this.draftsForChannel[e]),cancelAnimationFrame(this.saveDraftFrame)}}sendReaction(e){const t=this.props.currentChannel.id,a=e[1],n=e[2],s=this.props.latestReplyablePostId;s&&"+"===a?this.props.actions.addReaction(s,n):s&&"-"===a&&this.props.actions.removeReaction(s,n),this.props.actions.setDraft(P.I.DRAFT+t,null),this.draftsForChannel[t]=null}fillMessageFromHistory(){const e=this.props.messageInHistoryItem;e&&this.setState({message:e})}createTutorialTip(){const e=[];return e.push(C.a.createElement("div",null,C.a.createElement("h4",null,C.a.createElement(V.a,{id:"create_post.tutorialTip.title",defaultMessage:"Sending Messages"})),C.a.createElement("p",null,C.a.createElement(Ji.b,{id:"create_post.tutorialTip1",defaultMessage:"Type here to write a message and press **Enter** to post it."})),C.a.createElement("p",null,C.a.createElement(Ji.b,{id:"create_post.tutorialTip2",defaultMessage:"Click the **Attachment** button to upload an image or a file."})))),C.a.createElement(ud,{id:"postTextboxTipMessage",placement:"top",screens:e,overlayClass:"tip-overlay--chat",diagnosticsTag:"tutorial_tip_1_sending_messages"})}shouldEnableSendButton(){return 0!==this.state.message.trim().length||0!==this.props.draft.fileInfos.length}render(){const{currentChannel:e,currentChannelMembersCount:t,draft:a,fullWidthTextBox:n,showTutorialTip:s,readOnlyChannel:i}=this.props,{formatMessage:r}=this.props.intl,o=t-1,{renderScrollbar:l}=this.state,c=I.gb("accessibility.sections.centerFooter","message input complimentary region"),d=C.a.createElement(V.a,{id:"notify_all.title.confirm",defaultMessage:"Confirm sending notifications to entire channel"}),m=C.a.createElement(V.a,{id:"notify_all.confirm",defaultMessage:"Confirm"});let u="";u=this.state.channelTimezoneCount&&this.props.isTimezoneEnabled?C.a.createElement(Ji.b,{id:"notify_all.question_timezone",defaultMessage:"By using @all or @channel you are about to send notifications to **{totalMembers} people** in **{timezones, number} {timezones, plural, one {timezone} other {timezones}}**. Are you sure you want to do this?",values:{totalMembers:o,timezones:this.state.channelTimezoneCount}}):C.a.createElement(V.a,{id:"notify_all.question",defaultMessage:"By using @all or @channel you are about to send notifications to {totalMembers} people. Are you sure you want to do this?",values:{totalMembers:o}});let p=null;this.state.serverError&&(p=C.a.createElement($i,{id:"postServerError",error:this.state.serverError,submittedMessage:this.state.serverError.submittedMessage,handleSubmit:this.handleSubmit}));let h=null;if(this.state.postError){const e="post-error"+(this.state.errorClass?" "+this.state.errorClass:"");h=C.a.createElement("label",{className:e},this.state.postError)}let g=null;!i&&(a.fileInfos.length>0||a.uploadsInProgress.length>0)&&(g=C.a.createElement(Ci,{fileInfos:a.fileInfos,onRemove:this.removePreview,uploadsInProgress:a.uploadsInProgress,uploadsProgressPercent:this.state.uploadsProgressPercent}));let b="post-create-footer";h&&(b+=" has-error");let f=null;s&&(f=this.createTutorialTip());let _="";n||(_="center");let E="send-button theme";this.shouldEnableSendButton()||(E+=" disabled");let v,y="";this.props.canUploadFiles||(y=" post-create--attachment-disabled"),i||this.state.showPreview||(v=C.a.createElement(Vi,{ref:"fileUpload",fileCount:this.getFileCount(),getTarget:this.getFileUploadTarget,onFileUploadChange:this.handleFileUploadChange,onUploadStart:this.handleUploadStart,onFileUpload:this.handleFileUploadComplete,onUploadError:this.handleUploadError,onUploadProgress:this.handleUploadProgress,postType:"post"}));let w=null;const O=r({id:"emoji_picker.emojiPicker",defaultMessage:"Emoji Picker"}).toLowerCase();let T;!this.props.enableEmojiPicker||i||this.state.showPreview||(w=C.a.createElement("div",null,C.a.createElement(fa,{show:this.state.showEmojiPicker,target:this.getCreatePostControls,onHide:this.hideEmojiPicker,onEmojiClose:this.handleEmojiClose,onEmojiClick:this.handleEmojiClick,onGifClick:this.handleGifClick,enableGifPicker:this.props.enableGifPicker,topOffset:-7}),C.a.createElement("button",{type:"button","aria-label":O,onClick:this.toggleEmojiPicker,className:"style--none emoji-picker__container post-action"},C.a.createElement(_t,{id:"emojiPickerButton",className:"icon icon--emoji "+(this.state.showEmojiPicker?"active":"")})))),T=i?I.gb("create_post.read_only","This channel is read-only. Only members with permission can post here."):r({id:"create_post.write",defaultMessage:"Write to {channelDisplayName}"},{channelDisplayName:e.display_name});let S="";return l&&(S=" scroll"),C.a.createElement("form",{id:"create_post",ref:"topDiv",className:_,onSubmit:this.handleSubmit},C.a.createElement("div",{className:"post-create"+y+S},C.a.createElement("div",{className:"post-create-body"},C.a.createElement("div",{role:"application",id:"centerChannelFooter","aria-label":c,tabIndex:"-1",className:"post-body__cell a11y__region","data-a11y-sort-order":"2"},C.a.createElement(Mn,{onChange:this.handleChange,onKeyPress:this.postMsgKeyPress,onKeyDown:this.handleKeyDown,onMouseUp:this.handleMouseUpKeyUp,onKeyUp:this.handleMouseUpKeyUp,onComposition:this.emitTypingEvent,onHeightChange:this.handleHeightChange,handlePostError:this.handlePostError,value:i?"":this.state.message,onBlur:this.handleBlur,emojiEnabled:this.props.enableEmojiPicker,createMessage:T,channelId:e.id,id:"post_textbox",ref:"textbox",disabled:i,characterLimit:this.props.maxPostSize,preview:this.state.showPreview,badConnection:this.props.badConnection,listenForMentionKeyClick:!0}),C.a.createElement("span",{ref:"createPostControls",className:"post-body__actions"},v,w,C.a.createElement("a",{role:"button",tabIndex:"0","aria-label":r({id:"create_post.send_message",defaultMessage:"Send a message"}),className:E,onClick:this.handleSubmit},C.a.createElement(Wf.a,{className:"fa fa-paper-plane",title:{id:Object(de.b)("create_post.icon"),defaultMessage:"Send Post Icon"}})))),f),C.a.createElement("div",{id:"postCreateFooter",className:b},C.a.createElement("div",{className:"d-flex justify-content-between"},C.a.createElement(Ki,{channelId:e.id,postId:""}),C.a.createElement(An,{characterLimit:this.props.maxPostSize,showPreview:this.state.showPreview,updatePreview:this.updatePreview,message:i?"":this.state.message})),C.a.createElement("div",null,h,g,p))),C.a.createElement(Qi,{show:this.state.showPostDeletedModal,onHide:this.hidePostDeletedModal}),C.a.createElement(ss.a,{title:d,message:u,confirmButtonText:m,show:this.state.showConfirmModal,onConfirm:this.handleNotifyAllConfirmation,onCancel:this.hideNotifyAllModal}))}}ZE(ev,"propTypes",{getChannelView:v.a.func,currentChannelMembersCount:v.a.number,currentChannel:v.a.object,currentTeamId:v.a.string,currentUserId:v.a.string,codeBlockOnCtrlEnter:v.a.bool,ctrlSend:v.a.bool,fullWidthTextBox:v.a.bool,showTutorialTip:v.a.bool.isRequired,messageInHistoryItem:v.a.string,draft:v.a.shape({message:v.a.string.isRequired,uploadsInProgress:v.a.array.isRequired,fileInfos:v.a.array.isRequired}).isRequired,commentCountForPost:v.a.number,latestReplyablePostId:v.a.string,locale:v.a.string.isRequired,currentUsersLatestPost:v.a.object,readOnlyChannel:v.a.bool,canUploadFiles:v.a.bool.isRequired,enableEmojiPicker:v.a.bool.isRequired,enableGifPicker:v.a.bool.isRequired,enableConfirmNotificationsToChannel:v.a.bool.isRequired,maxPostSize:v.a.number.isRequired,emojiMap:v.a.object.isRequired,badConnection:v.a.bool.isRequired,userIsOutOfOffice:v.a.bool.isRequired,rhsExpanded:v.a.bool.isRequired,isTimezoneEnabled:v.a.bool.isRequired,intl:Y.a.isRequired,actions:v.a.shape({addMessageIntoHistory:v.a.func.isRequired,moveHistoryIndexBack:v.a.func.isRequired,moveHistoryIndexForward:v.a.func.isRequired,addReaction:v.a.func.isRequired,onSubmitPost:v.a.func.isRequired,removeReaction:v.a.func.isRequired,clearDraftUploads:v.a.func.isRequired,runMessageWillBePostedHooks:v.a.func.isRequired,runSlashCommandWillBePostedHooks:v.a.func.isRequired,setDraft:v.a.func.isRequired,setEditingPost:v.a.func.isRequired,selectPostFromRightHandSideSearchByPostId:v.a.func.isRequired,openModal:v.a.func.isRequired,executeCommand:v.a.func.isRequired,getChannelTimezones:v.a.func.isRequired,scrollPostListToBottom:v.a.func.isRequired}).isRequired}),ZE(ev,"defaultProps",{latestReplyablePostId:""});var tv=Object(W.c)(ev);function av(e,t){return a=>{a(Object(U.b)(e,t))}}var nv=Object(n.connect)((function(){const e=Object(qa.makeGetCommentCountForPost)(),t=Object(qa.makeGetMessageInHistoryItem)(L.Posts.MESSAGE_TYPES.POST);return(a,n)=>{const s=Object(d.getConfig)(a),i=Object(p.getCurrentChannel)(a)||{},r=Object(Cs.i)(a,P.I.DRAFT,i.id),o=Object(qa.getMostRecentPostIdInChannel)(a,i.id),l=Object(qa.getPost)(a,o),h=Object(qa.getLatestReplyablePostId)(a),g=Object(p.getCurrentChannelStats)(a)?Object(p.getCurrentChannelStats)(a).member_count:1,b="true"===s.EnableTutorial,f=Object(c.getInt)(a,P.B.TUTORIAL_STEP,Object(m.getCurrentUserId)(a),P.K.FINISHED),_="true"===s.EnableEmojiPicker,E="true"===s.EnableGifPicker,v="true"===s.EnableConfirmNotificationsToChannel,y=Object(m.getCurrentUserId)(a),C=Object(m.getStatusForUserId)(a,y)===P.O.OUT_OF_OFFICE,w=Us(a)>1,O="true"===s.ExperimentalTimezone;return{currentTeamId:Object(u.getCurrentTeamId)(a),currentChannel:i,currentChannelMembersCount:g,currentUserId:y,codeBlockOnCtrlEnter:Object(c.getBool)(a,L.Preferences.CATEGORY_ADVANCED_SETTINGS,"code_block_ctrl_enter",!0),ctrlSend:Object(c.getBool)(a,P.B.CATEGORY_ADVANCED_SETTINGS,"send_on_ctrl_enter"),fullWidthTextBox:Object(c.get)(a,P.B.CATEGORY_DISPLAY_SETTINGS,P.B.CHANNEL_DISPLAY_MODE,P.B.CHANNEL_DISPLAY_MODE_DEFAULT)===P.B.CHANNEL_DISPLAY_MODE_FULL_SCREEN,showTutorialTip:b&&f===P.K.POST_POPOVER,messageInHistoryItem:t(a),draft:r,commentCountForPost:e(a,{post:l}),latestReplyablePostId:h,locale:Object(qs.a)(a),currentUsersLatestPost:Object(qa.getCurrentUsersLatestPost)(a),readOnlyChannel:n.readOnlyChannel||!Object(m.isCurrentUserSystemAdmin)(a)&&"true"===s.ExperimentalTownSquareIsReadOnly&&i.name===P.j.DEFAULT_CHANNEL,canUploadFiles:Object(hi.b)(s),enableEmojiPicker:_,enableGifPicker:E,enableConfirmNotificationsToChannel:v,maxPostSize:parseInt(s.MaxPostSize,10)||P.j.DEFAULT_CHARACTER_LIMIT,userIsOutOfOffice:C,rhsExpanded:Object(Cs.a)(a),emojiMap:Object(wt.a)(a),badConnection:w,isTimezoneEnabled:O}}}),(function(e){return{actions:Object(s.bindActionCreators)({addMessageIntoHistory:k.addMessageIntoHistory,onSubmitPost:av,moveHistoryIndexBack:k.moveHistoryIndexBack,moveHistoryIndexForward:k.moveHistoryIndexForward,addReaction:U.a,removeReaction:k.removeReaction,setDraft:Ks.e,clearDraftUploads:Ks.a,selectPostFromRightHandSideSearchByPostId:ys.j,setEditingPost:U.k,openModal:x.b,executeCommand:Ws,getChannelTimezones:o.getChannelTimezones,runMessageWillBePostedHooks:zs,runSlashCommandWillBePostedHooks:Ys,scrollPostListToBottom:f.k},e)}}))(tv),sv=a(1748),iv=a.n(sv);function rv(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const ov=3;class lv extends C.a.Component{constructor(e){super(e),rv(this,"handleNext",()=>{switch(this.state.currentScreen){case 0:Object(Ie.d)("tutorial","tutorial_screen_1_welcome_to_mattermost_next");break;case 1:Object(Ie.d)("tutorial","tutorial_screen_2_how_mattermost_works_next");break;case 2:Object(Ie.d)("tutorial","tutorial_screen_3_youre_all_set_next")}if(this.state.currentScreen<2)return void this.setState({currentScreen:this.state.currentScreen+1});const{currentUserId:e}=this.props,t=[{user_id:e,category:P.B.TUTORIAL_STEP,name:e,value:(this.props.step+1).toString()}];this.props.actions.savePreferences(e,t)}),rv(this,"skipTutorial",e=>{switch(e.preventDefault(),this.state.currentScreen){case 0:Object(Ie.d)("tutorial","tutorial_screen_1_welcome_to_mattermost_skip");break;case 1:Object(Ie.d)("tutorial","tutorial_screen_2_how_mattermost_works_skip");break;case 2:Object(Ie.d)("tutorial","tutorial_screen_3_youre_all_set_skip")}const{currentUserId:t}=this.props,a=[{user_id:t,category:P.B.TUTORIAL_STEP,name:t,value:P.j.TutorialSteps.FINISHED.toString()}];this.props.actions.savePreferences(t,a)}),rv(this,"createScreen",()=>{switch(this.state.currentScreen){case 0:return this.createScreenOne();case 1:return this.createScreenTwo();case 2:return this.createScreenThree()}return null}),rv(this,"handleCircleClick",(e,t)=>{e.preventDefault(),this.setState({currentScreen:t})}),rv(this,"createCircles",()=>{const e=[];for(let t=0;t<ov;t++){let a="circle";t===this.state.currentScreen&&(a+=" active"),e.push(C.a.createElement("a",{id:"tutorialIntroCircle"+t,href:"#",key:"circle"+t,className:a,"data-screen":t,onClick:e=>this.handleCircleClick(e,t)}))}return C.a.createElement("div",{className:"tutorial__circles"},e)}),this.state={currentScreen:0}}createScreenOne(){const e=this.createCircles();return C.a.createElement("div",{id:"tutorialIntroOne"},C.a.createElement("h3",null,C.a.createElement(V.a,{id:"tutorial_intro.screenOne.title1",defaultMessage:"Welcome to:"})),C.a.createElement("h1",null,C.a.createElement(V.a,{id:"tutorial_intro.screenOne.title2",defaultMessage:"Mattermost"})),C.a.createElement("p",null,C.a.createElement(V.a,{id:"tutorial_intro.screenOne.body1",defaultMessage:"Your team communication all in one place, instantly searchable and available anywhere."})),C.a.createElement("p",null,C.a.createElement(V.a,{id:"tutorial_intro.screenOne.body2",defaultMessage:"Keep your team connected to help them achieve what matters most."})),e)}createScreenTwo(){const e=this.createCircles();let t=null,a=null;if(this.props.appDownloadLink){const e=Object(Un.g)(this.props.appDownloadLink);t=C.a.createElement(V.a,{id:"tutorial_intro.mobileApps",defaultMessage:"Install the apps for {link} for easy access and notifications on the go.",values:{link:C.a.createElement("a",{id:"appDownloadLink",href:e,target:"_blank",rel:"noopener noreferrer"},C.a.createElement(V.a,{id:"tutorial_intro.mobileAppsLinkText",defaultMessage:"PC, Mac, iOS and Android"}))}}),a=C.a.createElement("a",{id:"appDownloadImage",href:e,target:"_blank",rel:"noopener noreferrer"},C.a.createElement("img",{alt:"tutorial icons",className:"tutorial__app-icons",src:iv.a}))}return C.a.createElement("div",{id:"tutorialIntroTwo"},C.a.createElement("h3",null,C.a.createElement(V.a,{id:"tutorial_intro.screenTwo.title",defaultMessage:"How Mattermost works:"})),C.a.createElement("p",null,C.a.createElement(V.a,{id:"tutorial_intro.screenTwo.body1",defaultMessage:"Communication happens in public discussion channels, private channels and direct messages."})),C.a.createElement("p",null,C.a.createElement(V.a,{id:"tutorial_intro.screenTwo.body2",defaultMessage:"Everything is archived and searchable from any web-enabled desktop, laptop or phone."})),t,a,e)}createScreenThree(){let e,t;this.props.isLicensed&&this.props.restrictTeamInvite||(e=C.a.createElement(E_.a,{id:"tutorialIntroInvite",className:"intro-links color--link style--none",modalId:P.u.INVITATION,dialogType:um},C.a.createElement(V.a,{id:"tutorial_intro.invite",defaultMessage:"Invite Teammates"})),t=C.a.createElement("p",null,e,C.a.createElement(V.a,{id:"tutorial_intro.whenReady",defaultMessage:" when you're ready."})));const a=this.createCircles();let n=null;return this.props.supportEmail&&(n=C.a.createElement("p",{id:"supportInfo"},C.a.createElement(V.a,{id:"tutorial_intro.support",defaultMessage:"Need anything, just email us at "}),C.a.createElement("a",{href:"mailto:"+this.props.supportEmail,target:"_blank",rel:"noopener noreferrer"},this.props.supportEmail),".")),C.a.createElement("div",{id:"tutorialIntroThree"},C.a.createElement("h3",null,C.a.createElement(V.a,{id:"tutorial_intro.allSet",defaultMessage:"You're all set"})),t,n,C.a.createElement(V.a,{id:"tutorial_intro.end",defaultMessage:'Click "Next" to enter {channel}. This is the first channel teammates see when they sign up. Use it for posting updates everyone needs to know.',values:{channel:this.props.townSquareDisplayName}}),a)}render(){const e=this.createScreen();return C.a.createElement("div",{className:"tutorial-steps__container"},C.a.createElement("div",{id:"tutorialIntroContent",className:"tutorial__content"},C.a.createElement("div",{className:"tutorial__steps"},e,C.a.createElement("div",{className:"tutorial__footer"},C.a.createElement("button",{id:"tutorialNextButton",className:"btn btn-primary",onClick:this.handleNext},C.a.createElement(V.a,{id:"tutorial_intro.next",defaultMessage:"Next"})),C.a.createElement("a",{id:"tutorialSkipLink",className:"tutorial-skip",href:"#",onClick:this.skipTutorial},C.a.createElement(V.a,{id:"tutorial_intro.skip",defaultMessage:"Skip Tutorial"}))))))}}rv(lv,"propTypes",{currentUserId:v.a.string.isRequired,step:v.a.number,townSquareDisplayName:v.a.string.isRequired,appDownloadLink:v.a.string,isLicensed:v.a.bool.isRequired,restrictTeamInvite:v.a.bool.isRequired,supportEmail:v.a.string.isRequired,actions:v.a.shape({savePreferences:v.a.func.isRequired}).isRequired});var cv=Object(n.connect)((function(e){const t=Object(m.getCurrentUserId)(e);return{currentUserId:t,step:Object(c.getInt)(e,P.B.TUTORIAL_STEP,t,0)}}),(function(e){return{actions:Object(s.bindActionCreators)({savePreferences:ls.savePreferences},e)}}))(lv);class dv extends C.a.Component{componentDidMount(){this.props.isRoot&&Rs()("body").addClass("app__body")}componentWillUnmount(){this.props.isRoot&&Rs()("body").removeClass("app__body")}render(){return C.a.createElement("div",{id:"app-content",className:"app__content"},C.a.createElement(cv,{townSquareDisplayName:this.props.townSquareDisplayName,appDownloadLink:this.props.appDownloadLink,isLicensed:this.props.isLicensed,restrictTeamInvite:this.props.restrictTeamInvite,supportEmail:this.props.supportEmail}))}}dv.propTypes={isRoot:v.a.bool,townSquareDisplayName:v.a.string.isRequired,appDownloadLink:v.a.string,isLicensed:v.a.bool.isRequired,restrictTeamInvite:v.a.bool.isRequired,supportEmail:v.a.string.isRequired},dv.defaultProps={isRoot:!0};var mv=Object(n.connect)((function(e){const t=Object(d.getLicense)(e),a=Object(d.getConfig)(e),n=Object(u.getCurrentTeam)(e),s=Object(p.getChannelsNameMapInCurrentTeam)(e)[P.Q.DEFAULT_CHANNEL];return{townSquareDisplayName:s?s.display_name:P.Q.DEFAULT_CHANNEL_UI_NAME,appDownloadLink:a.AppDownloadLink,isLicensed:"true"===t.IsLicensed,restrictTeamInvite:!Object(D.haveITeamPermission)(e,{team:n.id,permission:L.Permissions.INVITE_USER}),supportEmail:a.SupportEmail}}))(dv);function uv(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function pv(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class hv extends C.a.PureComponent{static getDerivedStateFromProps(e,t){let a={};return e.match.url!==t.url&&(a={deferredPostView:hv.createDeferredPostView(),url:e.match.url}),e.channelId!==t.channelId&&(a=function(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?uv(a,!0).forEach((function(t){pv(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):uv(a).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}({},a,{channelId:e.channelId,prevChannelId:t.channelId})),Object.keys(a).length?a:null}constructor(e){super(e),pv(this,"getChannelView",()=>this.refs.channelView),pv(this,"onClickCloseChannel",()=>{this.props.actions.goToLastViewedChannel()}),this.state={url:e.match.url,channelId:e.channelId,prevChannelId:"",deferredPostView:hv.createDeferredPostView()}}componentDidUpdate(e){if(e.channelId!==this.props.channelId||e.channelIsArchived!==this.props.channelIsArchived){Object(Ie.b)("ChannelView#componentDidUpdate");const[e]=Object(Ie.c)("SidebarChannelLink#click","ChannelView#componentDidUpdate"),[t]=Object(Ie.c)("TeamLink#click","ChannelView#componentDidUpdate");Object(Ie.a)(["SidebarChannelLink#click","ChannelView#componentDidUpdate","TeamLink#click"]),-1!==e&&Object(Ie.d)("performance","channel_switch",{duration:Math.round(e)}),-1!==t&&Object(Ie.d)("performance","team_switch",{duration:Math.round(t)}),this.props.channelIsArchived&&!this.props.viewArchivedChannels&&this.props.actions.goToLastViewedChannel()}}render(){const{channelIsArchived:e}=this.props;if(this.props.showTutorial)return C.a.createElement(mv,{isRoot:!1});let t;t=this.props.deactivatedChannel?C.a.createElement("div",{className:"post-create-message"},C.a.createElement(V.a,{id:"create_post.deactivated",defaultMessage:"You are viewing an archived channel with a deactivated user."})):C.a.createElement("div",{className:"post-create__container",id:"post-create"},!e&&C.a.createElement(nv,{getChannelView:this.getChannelView}),e&&C.a.createElement("div",{id:"channelArchivedMessage",className:"channel-archived__message"},C.a.createElement(Ji.b,{id:"archivedChannelMessage",defaultMessage:"You are viewing an **archived channel**. New messages cannot be posted."}),C.a.createElement("button",{className:"btn btn-primary channel-archived__close-btn",onClick:this.onClickCloseChannel},C.a.createElement(V.a,{id:"center_panel.archived.closeChannel",defaultMessage:"Close Channel"}))));const a=this.state.deferredPostView;return C.a.createElement("div",{ref:"channelView",id:"app-content",className:"app__content"},C.a.createElement(Ns,{overlayType:"center"}),C.a.createElement(Vf,{channelId:this.props.channelId}),C.a.createElement(a,{channelId:this.props.channelId,prevChannelId:this.state.prevChannelId}),t)}}pv(hv,"propTypes",{channelId:v.a.string.isRequired,deactivatedChannel:v.a.bool.isRequired,match:v.a.shape({url:v.a.string.isRequired}).isRequired,showTutorial:v.a.bool.isRequired,channelIsArchived:v.a.bool.isRequired,viewArchivedChannels:v.a.bool.isRequired,actions:v.a.shape({goToLastViewedChannel:v.a.func.isRequired})}),pv(hv,"createDeferredPostView",()=>(function(e,t=null){class a extends C.a.Component{constructor(e,t){super(e,t),this.state={shouldRender:!1}}componentDidMount(){window.requestAnimationFrame(()=>{window.requestAnimationFrame(()=>this.setState({shouldRender:!0}))})}render(){return this.state.shouldRender?C.a.createElement(e,this.props):t}}return KE()(a,e)})(cE,C.a.createElement("div",{id:"post-list",className:"a11y__region","data-a11y-sort-order":"1","data-a11y-focus-child":!0,"data-a11y-order-reversed":!0})));const gv=Object(Hs.createSelector)(e=>e.entities.users.profiles,(e,t)=>t,(e,t)=>{const a=Object(I.t)(t);return Boolean(a&&a.delete_at)});var bv=Object(i.g)(Object(n.connect)((function(e){const t=Object(p.getCurrentChannel)(e),a=Object(d.getConfig)(e),n="true"===a.EnableTutorial,s=Object(c.getInt)(e,P.B.TUTORIAL_STEP,Object(m.getCurrentUserId)(e),P.K.FINISHED),i="true"===a.ExperimentalViewArchivedChannels;return{channelId:t?t.id:"",deactivatedChannel:!!t&&gv(e,t.id),showTutorial:n&&s<=P.K.INTRO_SCREENS,channelIsArchived:!!t&&0!==t.delete_at,viewArchivedChannels:i}}),(function(e){return{actions:Object(s.bindActionCreators)({goToLastViewedChannel:f.c},e)}}))(hv));class fv extends C.a.PureComponent{constructor(e){super(e),this.state={prevProps:e}}componentDidUpdate(e){this.props.match.params.team===e.match.params.team&&this.props.match.params.identifier===e.match.params.identifier||this.props.actions.onChannelByIdentifierEnter(this.props)}componentDidMount(){this.props.actions.onChannelByIdentifierEnter(this.props)}render(){return C.a.createElement(bv,null)}}!function(e,t,a){t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a}(fv,"propTypes",{match:v.a.shape({params:v.a.shape({identifier:v.a.string.isRequired,team:v.a.string.isRequired}).isRequired}).isRequired,actions:v.a.shape({onChannelByIdentifierEnter:v.a.func.isRequired}).isRequired});var _v=Object(i.g)(Object(n.connect)(null,(function(e){return{actions:Object(s.bindActionCreators)({onChannelByIdentifierEnter:FE},e)}}))(fv));class Ev extends C.a.PureComponent{constructor(e){super(e),this.state={returnTo:"",lastReturnTo:""}}static getDerivedStateFromProps(e,t){return t.lastReturnTo!==e.location.pathname&&e.location.pathname.includes("/pl/")?{lastReturnTo:e.location.pathname,returnTo:t.lastReturnTo}:{lastReturnTo:e.location.pathname}}render(){const{lastChannelPath:e}=this.props,t=this.props.match.url;return C.a.createElement("div",{key:"inner-wrap",className:Os()("inner-wrap","channel__wrap",{"move--right":this.props.lhsOpen,"move--left":this.props.rhsOpen,"move--left-small":this.props.rhsMenuOpen})},C.a.createElement("div",{className:"row header"},C.a.createElement("div",{id:"navbar_wrapper"},C.a.createElement(DE,null))),C.a.createElement("div",{className:"row main"},C.a.createElement(i.d,null,C.a.createElement(i.b,{path:"".concat(t,"/pl/:postid"),render:e=>C.a.createElement(pE,Object.assign({},e,{returnTo:this.state.returnTo}))}),C.a.createElement(i.b,{path:"/:team/:path(channels|messages)/:identifier",component:_v}),C.a.createElement(i.a,{to:e}))))}}!function(e,t,a){t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a}(Ev,"propTypes",{match:v.a.object.isRequired,location:v.a.object.isRequired,lastChannelPath:v.a.string.isRequired,lhsOpen:v.a.bool.isRequired,rhsOpen:v.a.bool.isRequired,rhsMenuOpen:v.a.bool.isRequired});var vv=Object(n.connect)((e,t)=>{let a=Object(Rg.b)(e,t.match.params.team);if(!a){const n=Object(u.getTeamByName)(e,t.match.params.team);a=Object(p.getRedirectChannelNameForTeam)(e,n.id)}return{lastChannelPath:"".concat(t.match.url,"/channels/").concat(a),lhsOpen:rp(e),rhsOpen:Object(Cs.c)(e),rhsMenuOpen:Object(Cs.b)(e)}})(Ev);class yv extends C.a.Component{shouldComponentUpdate(e){return this.props.teamType!==e.teamType||this.props.pathName!==e.pathName||this.props.fetchingChannels!==e.fetchingChannels}componentDidMount(){const e=window.navigator.platform;document.body.classList.add("app__body","channel-view"),(M.g()||M.e())&&document.body.classList.add("browser--ie"),"Win32"===e||"Win64"===e?document.body.classList.add("os--windows"):"MacIntel"!==e&&"MacPPC"!==e||document.body.classList.add("os--mac")}componentWillUnmount(){document.body.classList.remove("app__body","channel-view")}render(){return C.a.createElement("div",{id:"channel_view",className:"channel-view"},C.a.createElement(j.a,null),C.a.createElement(R.a,null),C.a.createElement("div",{className:"container-fluid"},C.a.createElement(ad,null),C.a.createElement(tp,{teamType:this.props.teamType}),C.a.createElement(i.b,{component:vp}),C.a.createElement(i.b,{component:Ag}),!this.props.fetchingChannels&&C.a.createElement(i.b,{component:vv}),this.props.fetchingChannels&&C.a.createElement(Eu.a,null),C.a.createElement(A.a,{pluggableName:"Root"}),C.a.createElement(Xn,null),C.a.createElement(ns,null),C.a.createElement(sp,null),C.a.createElement(xn,null),C.a.createElement(hs,null),C.a.createElement(os,null),C.a.createElement(vs,{isMac:I.X()}),C.a.createElement(ip.a,null)))}}function Cv(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}!function(e,t,a){t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a}(yv,"propTypes",{pathName:v.a.string.isRequired,teamType:v.a.string.isRequired,fetchingChannels:v.a.bool.isRequired});const wv=C.a.lazy(()=>a.e(9).then(a.bind(null,1964))),Ov=Object(N.a)(wv);let Tv,Sv=Date.now();const Pv=3e4,Mv=6e4,Iv=1e4;class Nv extends C.a.Component{constructor(e){if(super(e),Cv(this,"handleBlur",()=>{window.isActive=!1,this.blurTime=(new Date).getTime(),this.props.currentUser&&this.props.actions.viewChannel("")}),Cv(this,"handleFocus",()=>{this.props.actions.markChannelAsReadOnFocus(this.props.currentChannelId),window.isActive=!0,Date.now()-this.blurTime>Iv&&(this.props.actions.fetchMyChannelsAndMembers(this.props.currentTeamId),this.props.actions.loadProfilesForDirect())}),Cv(this,"joinTeam",async e=>{const{data:t}=await this.props.actions.getTeamByName(e.match.params.team);if(t){const{error:a}=await e.actions.addUserToTeam(t.id,e.currentUser&&e.currentUser.id);a?e.history.push("/error?type=team_not_found"):(this.setState({team:t}),this.initTeam(t))}else e.history.push("/error?type=team_not_found")}),Cv(this,"initTeam",e=>(this.props.actions.getMyTeamUnreads(),this.props.actions.selectTeam(e),this.props.actions.setPreviousTeamId(e.id),S.c(),I.V(this.props.currentUser)&&this.setState({finishedFetchingChannels:!1}),this.props.actions.fetchMyChannelsAndMembers(e.id).then(()=>{this.setState({finishedFetchingChannels:!0})}),this.props.actions.loadStatusesForChannelAndSidebar(),this.props.actions.loadProfilesForDirect(),e)),Cv(this,"updateCurrentTeam",e=>{const t=e.teamsList?e.teamsList.find(t=>t.name===e.match.params.team):null;return t?(this.initTeam(t),t):null}),Cv(this,"onShortcutKeyDown",e=>{if(e.shiftKey&&I.e(e)&&I.W(e,P.Q.KeyCodes.L)){const e=document.getElementById("sidebar-right");if(e)if(e.className.match("sidebar--right sidebar--right--expanded move--left")){const e=document.getElementById("reply_textbox");e&&e.focus()}else{const e=document.getElementById("post_textbox");e&&e.focus()}}}),this.blurTime=(new Date).getTime(),this.props.mfaRequired)return void this.props.history.push("/mfa/setup");clearInterval(Tv),Tv=setInterval(()=>{const e=(new Date).getTime();e>Sv+Mv&&(console.log("computer woke up - fetching latest"),Object(T.c)(!1)),Sv=e},Pv);const t=this.updateCurrentTeam(this.props);this.state={team:t,finishedFetchingChannels:!1,prevTeam:this.props.match.params.team},t||this.joinTeam(this.props)}static getDerivedStateFromProps(e,t){if(t.prevTeam!==e.match.params.team){const t=e.teamsList?e.teamsList.find(t=>t.name===e.match.params.team):null;return{prevTeam:e.match.params.team,team:t||null}}return{prevTeam:e.match.params.team}}componentDidMount(){Object(g.d)(),Object(T.f)(),window.isActive=!0,I.b(this.props.theme),M.k()&&O.a.enable(),window.addEventListener("focus",this.handleFocus),window.addEventListener("blur",this.handleBlur),window.addEventListener("keydown",this.onShortcutKeyDown)}componentDidUpdate(e){const{theme:t}=this.props;I.c(e.theme,t)||I.b(t),this.props.match.params.team!==e.match.params.team&&(this.state.team&&this.initTeam(this.state.team),this.state.team||this.joinTeam(this.props))}componentWillUnmount(){window.isActive=!1,Object(g.e)(),Object(T.g)(),M.k()&&O.a.disable(),clearInterval(Tv),window.removeEventListener("focus",this.handleFocus),window.removeEventListener("blur",this.handleBlur),window.removeEventListener("keydown",this.onShortcutKeyDown)}render(){if(null===this.state.team)return C.a.createElement("div",null);const e=this.state.team?this.state.team.type:"";return C.a.createElement(i.d,null,C.a.createElement(i.b,{path:"/:team/integrations",component:Ov}),C.a.createElement(i.b,{path:"/:team/emoji",component:Ov}),C.a.createElement(i.b,{render:t=>C.a.createElement(yv,{pathName:t.location.pathname,teamType:e,fetchingChannels:!this.state.finishedFetchingChannels})}))}}Cv(Nv,"propTypes",{params:v.a.object,currentUser:v.a.object,currentChannelId:v.a.string,currentTeamId:v.a.string,actions:v.a.shape({fetchMyChannelsAndMembers:v.a.func.isRequired,getMyTeamUnreads:v.a.func.isRequired,viewChannel:v.a.func.isRequired,markChannelAsReadOnFocus:v.a.func.isRequired,getTeamByName:v.a.func.isRequired,addUserToTeam:v.a.func.isRequired,selectTeam:v.a.func.isRequired,setPreviousTeamId:v.a.func.isRequired,loadStatusesForChannelAndSidebar:v.a.func.isRequired,loadProfilesForDirect:v.a.func.isRequired}).isRequired,theme:v.a.object.isRequired,mfaRequired:v.a.bool.isRequired,match:v.a.shape({params:v.a.shape({team:v.a.string.isRequired}).isRequired}).isRequired,history:v.a.object.isRequired,teamsList:v.a.arrayOf(v.a.object)});t.a=Object(i.g)(Object(n.connect)((function(e,t){const a=Object(d.getLicense)(e),n=Object(d.getConfig)(e),s=Object(m.getCurrentUser)(e);return{theme:Object(c.getTheme)(e),mfaRequired:Object(_.a)(s,a,n,t.match.url),currentUser:s,currentTeamId:Object(u.getCurrentTeamId)(e),teamsList:Object(u.getMyTeams)(e),currentChannelId:Object(p.getCurrentChannelId)(e)}}),(function(e){return{actions:Object(s.bindActionCreators)({fetchMyChannelsAndMembers:o.fetchMyChannelsAndMembers,getMyTeamUnreads:l.getMyTeamUnreads,viewChannel:o.viewChannel,markChannelAsReadOnFocus:f.j,getTeamByName:l.getTeamByName,addUserToTeam:b.a,setPreviousTeamId:h.a,selectTeam:l.selectTeam,loadStatusesForChannelAndSidebar:g.a,loadProfilesForDirect:r.loadProfilesForDirect},e)}}))(Nv))},1944:function(e,t,a){"use strict";a(138);var n=a(309),s=a(6),i=(a(60),a(10)),r=a(16),o=a(0),l=a(95),c=a(116);const d=e=>(t,a)=>{const n=e.replace("/_redirect/",""),s=a(),d=c.a.getPreviousTeamId(Object(i.getCurrentUserId)(s)),m=Object(r.getTeam)(s,d);m?l.a.push("/".concat(m.name,"/").concat(n)):l.a.replace("/error?type=".concat(o.l.TEAM_NOT_FOUND))};var m,u,p,h=a(7),g=a.n(h),b=a(33),f=a.n(b);class _ extends g.a.PureComponent{componentDidMount(){this.props.actions.redirect(this.props.url,this.props.params)}render(){return null}}m=_,u="propTypes",p={params:f.a.object,url:f.a.string,actions:f.a.shape({redirect:f.a.func.isRequired}).isRequired},u in m?Object.defineProperty(m,u,{value:p,enumerable:!0,configurable:!0,writable:!0}):m[u]=p;t.a=Object(n.connect)((e,t)=>({params:t.match.params,url:t.match.url}),e=>({actions:Object(s.bindActionCreators)({redirect:d},e)}))(_)},1947:function(e,t,a){"use strict";var n=a(1268),s=a(40),i=a(5),r=a(1125),o=a(0),l=a(1484),c=a(11);let d="";c.a.subscribe(()=>{const e=c.a.getState(),t=e.entities.integrations.dialogTriggerId;t!==d&&(d=t,(e.entities.integrations.dialog||{}).trigger_id===t&&c.a.dispatch(Object(r.b)({modalId:o.u.INTERACTIVE_DIALOG,dialogType:l.a})))}),window.React=a(7),window.ReactDOM=a(310),window.Redux=a(6),window.ReactRedux=a(309),window.ReactBootstrap=a(1109),window.PostUtils={formatText:s.e,messageHtmlToComponent:n.a},window.PropTypes=a(33),window.PDFJS=a(327),window.openInteractiveDialog=function(e){c.a.dispatch({type:i.IntegrationTypes.RECEIVED_DIALOG,data:e}),c.a.dispatch(Object(r.b)({modalId:o.u.INTERACTIVE_DIALOG,dialogType:l.a}))}},1951:function(e,t,a){"use strict";var n=a(309),s=a(10),i=a(7),r=a.n(i),o=a(33),l=a.n(o),c=a(1352),d=a(1106);function m(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class u extends r.a.PureComponent{constructor(e){super(e),m(this,"onHide",()=>{this.setState({show:!1})}),this.state={show:!0}}render(){let e=r.a.createElement(d.a,{id:"removed_channel.channelName",defaultMessage:"the channel"});this.props.channelName&&(e=this.props.channelName);let t=r.a.createElement(d.a,{id:"removed_channel.someone",defaultMessage:"Someone"});return this.props.remover&&(t=this.props.remover),""===this.props.currentUserId?null:r.a.createElement(c.a,{dialogClassName:"a11y__modal",show:this.state.show,onHide:this.onHide,onExited:this.props.onHide,role:"dialog","aria-labelledby":"removeFromChannelModalLabel"},r.a.createElement(c.a.Header,{closeButton:!0},r.a.createElement(c.a.Title,{componentClass:"h1",id:"removeFromChannelModalLabel"},r.a.createElement(d.a,{id:"removed_channel.from",defaultMessage:"Removed from "}),r.a.createElement("span",{className:"name"},e))),r.a.createElement(c.a.Body,null,r.a.createElement("p",null,r.a.createElement(d.a,{id:"removed_channel.remover",defaultMessage:"{remover} removed you from {channel}",values:{remover:t,channel:e}}))),r.a.createElement(c.a.Footer,null,r.a.createElement("button",{type:"button",className:"btn btn-primary",onClick:this.onHide,id:"removedChannelBtn"},r.a.createElement(d.a,{id:"removed_channel.okay",defaultMessage:"Okay"}))))}}m(u,"propTypes",{currentUserId:l.a.string.isRequired,onHide:l.a.func.isRequired,channelName:l.a.string,remover:l.a.string});t.a=Object(n.connect)((function(e,t){const a=Object(s.getUser)(e,t.removerId);return{currentUserId:Object(s.getCurrentUserId)(e),remover:a&&a.username}}))(u)},1957:function(e,t,a){"use strict";var n=a(309),s=a(6),i=a(1240),r=a(175),o=(a(34),a(33)),l=a.n(o),c=a(7),d=a.n(c),m=a(1345),u=a(18),p=a(606),h=a(187),g=a(14);function b(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class f extends d.a.PureComponent{constructor(...e){super(...e),b(this,"handleLocaleChange",e=>{u.Client4.setAcceptLanguage(e),this.loadTranslationsIfNecessary(e)}),b(this,"loadTranslationsIfNecessary",e=>{if(this.props.translations)return;const t=h.c(e);t&&this.props.actions.loadTranslations(e,t.url)})}componentDidMount(){h.a(),Object(p.setLocalizeFunction)(g.gb),this.handleLocaleChange(this.props.locale)}componentDidUpdate(e){e.locale!==this.props.locale&&this.handleLocaleChange(this.props.locale)}render(){return this.props.translations?d.a.createElement(m.a,{key:this.props.locale,locale:this.props.locale,messages:this.props.translations,textComponent:"span"},this.props.children):null}}b(f,"propTypes",{children:l.a.element.isRequired,locale:l.a.string.isRequired,translations:l.a.object,actions:l.a.shape({loadTranslations:l.a.func.isRequired}).isRequired});t.a=Object(n.connect)((function(e){const t=Object(r.a)(e);return{locale:t,translations:Object(r.b)(e,t)}}),(function(e){return{actions:Object(s.bindActionCreators)({loadTranslations:i.b},e)}}))(f)},1960:function(e,t,a){"use strict";a.r(t);var n=a(6),s=a(309),i=a(15),r=a(10),o=a(1240),l=a(1496);t.default=Object(s.connect)((function(e){const t=Object(i.getConfig)(e),a=Object(r.shouldShowTermsOfService)(e);return{diagnosticsEnabled:"true"===t.DiagnosticsEnabled,noAccounts:"true"===t.NoAccounts,diagnosticId:t.DiagnosticId,showTermsOfService:a}}),(function(e){return{actions:Object(n.bindActionCreators)({loadMeAndConfig:o.a},e)}}))(l.a)}},0,[1,21,17,3]]); //# sourceMappingURL=6.aeb52cfbaf7888aa398f.js.map