![]() System : Linux absol.cf 5.4.0-198-generic #218-Ubuntu SMP Fri Sep 27 20:18:53 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /opt/mattermost/client/ |
Upload File : |
{"version":3,"file":"5638.ea752f8deec43b190c4a.js","mappings":"0pBAiBMA,GAAWC,EAAAA,EAAAA,gBAAe,CAC5BC,cAAe,CACXC,GAAI,6BACJC,eAAgB,oCAyBT,SAASC,EAAUC,GAcxB,IAdyB,SAC/BC,EAAQ,IACRC,EAAG,YACHC,EAAW,MACXC,EAAK,OACLC,EAAM,SACNC,EAAQ,YACRC,EAAW,YACXC,GAAc,EAAK,WACnBC,EAAU,UACVC,EAAS,OACTC,EAAM,IACNC,GAEIZ,EADDa,E,qWAAUC,CAAAd,EAAAe,GAEb,MAAM,cAACC,IAAiBC,EAAAA,EAAAA,WAElBC,GAAeC,EAAAA,EAAAA,cAAaC,KAC9BC,EAAAA,EAAAA,IAAKC,EAAAA,GAAKC,iBACVH,EAAEI,iBACFf,EAAWP,GAEXuB,YAAW,MACPC,EAAAA,EAAAA,IAAW,KAAM,8BAA8B,GAChD,EAAE,GACN,CAACjB,EAAYP,IAEhB,IAAIyB,EAAoBd,EAAWe,OAAS,SAAW,GACvD,MAAMC,GAAkC3B,EAAI4B,SAAS,iBAAmB5B,EAAI4B,SAAS,eAErF,IAAIC,EAEAC,EAAYhB,EAAc,CAC1BnB,GAAI,wBACJC,eAAgB,mBAEpB,CACImC,SAAU9B,IAGTwB,IACGtB,IAAWQ,EAAWqB,aACtBP,EAAY,SAEZI,EACII,IAAAA,cAAA,QACI,cAAa,cAAgBxB,EAC7ByB,UAAW,kBAInBT,EADOE,EACK,GAEA,UAEhBG,EAAYhB,EAAc,CACtBnB,GAAI,+BACJC,eAAgB,0BAEpB,CACImC,SAAU9B,IAGVG,IACA0B,EAAYhB,EAAc,CACtBnB,GAAI,iCACJC,eAAgB,4CAEpB,CACImC,SAAU9B,EACVkC,aAAc/B,IAGlByB,EACII,IAAAA,cAAA,QACI,cAAa,cAAgBxB,EAC7ByB,UAAWE,IAAW,0CAA2C,CAACC,OAAQ1B,EAAW2B,aAEpFlC,EAAW,GAAK,MAAQA,KAMzC0B,EAAYA,EAAUS,cAEtB,MAAMC,EACFP,IAAAA,cAACQ,EAAAA,EAAQ,CACLP,UAAWT,EACXiB,WAAW,EACXF,QAAS7B,EAAW6B,SAAWvC,GAAe,GAC9CD,IAAKK,IAIb,IAAIsC,OACiB,IAAVzC,GAAyBA,EAAQ,IACpCS,EAAWiC,YACXD,EACIV,IAAAA,cAAA,OAAKC,UAAU,mBACVhC,IAMjB,MAAM2C,EACFZ,IAAAA,cAACa,EAAe,CACZ5C,MAAOA,EACPQ,IAAKA,GAELuB,IAAAA,cAAA,OAAKC,UAAW,YAAcnC,IACxBY,EAAWqB,aAAeH,EAC3BW,IAKPO,EACFd,IAAAA,cAACe,EAAAA,KAAI,CACDrD,GAAE,GAAAsD,OAAKjD,EAAIkD,MAAM,GAAE,cACnB,aAAYpB,EACZqB,GAAInD,EACJoD,QAASpC,GAER6B,GAIT,OAAOvC,EACH2B,IAAAA,cAACoB,EAAAA,UAAS,CACNC,YAAa7C,EACb8C,MAAO/C,IAEN,CAACgD,EAAUC,IAEJxB,IAAAA,cAAA,MAAAyB,OAAAC,OAAA,CACIzB,UAAU,2BACV0B,IAAKJ,EAASK,UACVL,EAASM,eACTN,EAASO,gBAAe,CAC5BC,UAAW,IAEX/B,IAAAA,cAAA,OACIC,UAAWE,IAAW,CAAC,kBAADa,OAAmBxB,GAAa,CAACwC,WAAYR,EAASQ,eAE3ElB,EACAJ,MAOrBV,IAAAA,cAAA,OACI,cAAa,kBAAoBxB,EACjCyB,UAAS,kBAAAe,OAAoBxB,IAE5BsB,EACAJ,EAGb,CAEA,SAASG,EAAeoB,GAIkC,IAJjC,MACrBhE,EAAK,IACLQ,EAAG,SACHyD,GACoDD,EACpD,MAAME,GAAOrD,EAAAA,EAAAA,WAEPsD,GAAWC,EAAAA,EAAAA,UAAQ,KACrB,GAAKpE,KAASA,GAAS,IAIvB,MAAO,CACHqE,QAAS,CAACC,EAAAA,EAAaC,KAAMD,EAAAA,EAAaE,IAAKxE,EAAMyE,YACrDC,IAAK,CAACJ,EAAAA,EAAaK,IAAKL,EAAAA,EAAaM,OAAQ5E,EAAMyE,YACtD,GACF,CAACzE,IAEJ,OAAK+B,IAAAA,eAAqBkC,GAKtBlC,IAAAA,cAAC8C,EAAAA,EAAW,CACRC,MAAOtE,GAAO0D,EAAKtD,cAActB,EAASE,eAC1C2E,SAAUA,GAETF,GARE,IAWf,CAhCCtE,EAAAoF,UAAA,CAtLGlF,SAAQmF,IAAAA,OACRlF,IAAGkF,IAAAA,OAAAC,WACHlF,YAAWiF,IAAAA,OACX1C,QAAO0C,IAAAA,KACPxE,IAAGwE,IAAAA,UAAA,CAAAA,IAAAA,OAAAA,IAAAA,UAAAC,WACHjF,MAAKgF,IAAAA,OACLtC,UAASsC,IAAAA,KACTxD,OAAMwD,IAAAA,KACN/E,OAAM+E,IAAAA,KACN9E,SAAQ8E,IAAAA,OACRE,UAASF,IAAAA,MAAA,CAAG,OAAS,QAAU,MAAQ,WACvC7E,YAAW6E,IAAAA,UAAA,CAAAA,IAAAA,OAAAA,IAAAA,MAAA,UACX3E,WAAU2E,IAAAA,KAAAC,WACV7E,YAAW4E,IAAAA,KACX1E,UAAS0E,IAAAA,OACTzE,OAAMyE,IAAAA,OACNlD,YAAWkD,IAAAA,KACX5C,UAAS4C,IAAAA,M,2dCJN,SAASG,EAAWC,GACvB,OACIrD,IAAAA,cAAA,MAAAyB,OAAAC,OAAA,GACQ2B,EAAK,CACTpD,UAAU,oBAGtB,CAEO,SAASqD,EAAsBD,GAClC,OACIrD,IAAAA,cAAA,MAAAyB,OAAAC,OAAA,GACQ2B,EAAK,CACTpD,UAAU,0BAGtB,CAEO,SAASsD,EAAoBF,GAChC,OACIrD,IAAAA,cAAA,MAAAyB,OAAAC,OAAA,GACQ2B,EAAK,CACTpD,UAAU,wBAGtB,CAEO,MAAMuD,UAAoBxD,IAAAA,cAC7ByD,WAAAA,CAAYJ,GACRK,MAAML,GAAOM,EAAA,+BAQQ,CAAC1E,EAAkB2E,EAAuBC,KAC/D,GAAIC,EAAAA,EAAsB7E,EAAG8E,EAAAA,GAAUC,SAASC,KAAOH,EAAAA,EAAsB7E,EAAG8E,EAAAA,GAAUC,SAASE,MAAO,CACtGjF,EAAEI,iBACF,MAAM8E,EAAQL,EAAAA,EAAsB7E,EAAG8E,EAAAA,GAAUC,SAASE,MAAQ,GAAK,EACjEE,EAAMP,EAAMQ,WAAWC,GAAeA,EAAK5G,KAAOkG,IAClDW,EAASH,EAAMD,EAErB,IAAIG,EAUJ,OARIA,GADY,IAAZC,EACOV,EAAMA,EAAMW,OAAS,GACrBD,IAAWV,EAAMW,OACjBX,EAAM,GAENA,EAAMU,GAGjBE,KAAKpB,MAAMqB,QAAQpG,WAAW,IAAD0C,OAAKsD,EAAKK,QAChC,CACX,CACA,OAAO,CAAK,IACfhB,EAAA,6BAEsB,CAAC1E,EAAkB2E,EAAuBC,KAC7D,MAAMe,EAAS,CACXb,EAAAA,GAAUC,SAASa,IACnBd,EAAAA,GAAUC,SAASc,IACnBf,EAAAA,GAAUC,SAASe,MACnBhB,EAAAA,GAAUC,SAASgB,KACnBjB,EAAAA,GAAUC,SAASiB,KACnBlB,EAAAA,GAAUC,SAASkB,IACnBnB,EAAAA,GAAUC,SAASmB,MACnBpB,EAAAA,GAAUC,SAASoB,MACnBrB,EAAAA,GAAUC,SAASqB,KACnBtB,EAAAA,GAAUC,SAASsB,MAGvB,IAAK,MAAMC,KAAOX,EACd,GAAId,EAAAA,EAAsB7E,EAAG2F,EAAOW,KAASC,SAASD,EAAK,IAAM1B,EAAMW,OAAQ,CAI3E,GAHAvF,EAAEI,iBAGEwE,EAAM0B,GAAK7H,KAAOkG,EAClB,OAAO,EAEX,MAAMU,EAAOT,EAAM0B,GAEnB,OADAd,KAAKpB,MAAMqB,QAAQpG,WAAW,IAAD0C,OAAKsD,EAAKK,QAChC,CACX,CAEJ,OAAO,CAAK,IACfhB,EAAA,sBAEgB1E,IACb,IAAKA,EAAEwG,SAAWxG,EAAEyG,UAAYzG,EAAE0G,OAAQ,CACtC,MAAM,cAAC/B,GAAiBa,KAAKpB,MACvBQ,GAAQ+B,EAAAA,EAAAA,GAAgCnB,KAAKpB,MAAMwC,QAASpB,KAAKpB,MAAMyC,OAAQrB,KAAKpB,MAAM0C,0BAEhG,GAAItB,KAAKuB,uBAAuB/G,EAAG2E,EAAeC,GAC9C,OAGJ,GAAIY,KAAKwB,qBAAqBhH,EAAG2E,EAAeC,GAC5C,OAGJY,KAAKyB,SAAS,CAACvF,WAAW,GAC9B,KACHgD,EAAA,oBAEc1E,KACJA,EAAEwG,SAAWxG,EAAEyG,UAAYzG,EAAE0G,QAChClB,KAAKyB,SAAS,CAACvF,WAAW,GAC9B,IACHgD,EAAA,kBAoBYwC,IACT,MAAM,wBACFC,GACA3B,KAAKpB,MAAMqB,QAEf,IAAKyB,EAAOE,YACR,OAGJ,MAAMxC,GAAQ+B,EAAAA,EAAAA,GAAgCnB,KAAKpB,MAAMwC,QAASpB,KAAKpB,MAAMyC,OAAQrB,KAAKpB,MAAM0C,0BAE1FO,EAAcH,EAAOI,OAAOjF,MAC5BkF,EAAmBL,EAAOE,YAAY/E,MAetCmF,EARcC,EAACC,EAAcpB,EAAaqB,IACrC,IACAD,EAAK1F,MAAM,EAAGsE,GACjB1B,EAAMgD,MAAMvC,GAASA,EAAK5G,KAAOkJ,OAC9BD,EAAK1F,MAAMsE,EAAKoB,EAAKnC,SAIVkC,EAZYnB,EAaZe,EAZX,KADSK,EAaL9C,GAZK5C,MAAM,EAAGsE,MAASoB,EAAK1F,MAAMsE,EAAM,EAAGoB,EAAKnC,UAa3DgC,EACAL,EAAO9E,aAfQyF,IAACH,EAAcpB,EAiBlCa,EAAwBK,EAAcM,KAAKC,GAAYA,EAAEtJ,MACzD+G,KAAKyB,SAAS,CAACe,WAAYR,GAAe,IApI1ChC,KAAKyC,MAAQ,CACTvG,WAAW,EACXsG,WAAY,GAEpB,CA6EAE,kBAAAA,CAAmBC,GAEXA,EAAUxD,gBAAkBa,KAAKpB,MAAMO,eAAiBa,KAAKpB,MAAMgE,2BACnEC,EAAAA,EAAgBC,iBAAiB9C,KAAKpB,MAAMO,cAEpD,CAEA4D,iBAAAA,GACI/C,KAAKpB,MAAMqB,QAAQ+C,SAAS,EAAG,KAC/BC,SAASC,iBAAiB,UAAWlD,KAAKmD,eAC1CF,SAASC,iBAAiB,QAASlD,KAAKoD,YAC5C,CAEAC,oBAAAA,GACIJ,SAASK,oBAAoB,UAAWtD,KAAKmD,eAC7CF,SAASK,oBAAoB,QAAStD,KAAKoD,YAC/C,CAsCAG,MAAAA,GACI,MAAM,KAAC7F,GAAQsC,KAAKpB,MAEd4E,EAAuBP,SAASQ,cAAc,SACpD,GAAIzD,KAAKpB,MAAMwC,QAAQrB,QAAU,EAE7B,OADAyD,EAAME,UAAUC,OAAO,eAChB,KAEXH,EAAME,UAAUE,IAAI,eAEpB,MAAMC,EAAU,GACVC,GAAc3C,EAAAA,EAAAA,GAAgCnB,KAAKpB,MAAMwC,QAASpB,KAAKpB,MAAMyC,OAAQrB,KAAKpB,MAAM0C,0BAEhGyC,GAAiBC,EAAAA,EAAAA,IAAkBhE,KAAKpB,MAAMqF,SAAUjE,KAAKpB,MAAMsF,SAASC,UAClF,GAAIJ,IAAmBA,EAAeK,gBAClC,OAAO,KAGX,MAAMhF,EAAQ0E,EAAYxB,KAAI,CAACzC,EAAYhD,IAEnCtB,IAAAA,cAACpC,EAAU,CACPkL,IAAK,eAAiBxE,EAAKK,KAC3B5G,IAAG,IAAAiD,OAAMsD,EAAKK,MACdlG,IAAK6F,EAAKyE,aACVtJ,OAAQ6E,EAAK5G,KAAO+G,KAAKpB,MAAMO,cAC/B5F,YAAasG,EAAKyE,aAClB9K,MAAOqD,EAAQ,EACfX,UAAW8D,KAAKyC,MAAMvG,UACtBzC,OAAQuG,KAAKpB,MAAM2F,eAAeC,IAAI3E,EAAK5G,IAC3CS,SAAUsG,KAAKpB,MAAM6F,kBAAkBD,IAAI3E,EAAK5G,IAAM+G,KAAKpB,MAAM6F,kBAAkBC,IAAI7E,EAAK5G,IAAM,EAClG2C,YAAWoE,KAAKpB,MAAM+F,iBAAiBH,IAAI3E,EAAK5G,KAAM+G,KAAKpB,MAAM+F,iBAAiBD,IAAI7E,EAAK5G,IAC3FU,YAAaiL,EAAAA,GAAsB/E,GACnChG,WAAaP,GAAgB0G,KAAKpB,MAAMqB,QAAQpG,WAAWP,EAAKyK,EAAiBlE,OAAOgF,GACxFjL,aAAa,EACbG,OAAQ8F,EAAK5G,GACba,UAAW+C,EACXvB,YAAawJ,QAAQf,OAK3BgB,EAAgB,GAEhBC,EACFzJ,IAAAA,cAAA,KACIC,UAAU,iBACVyJ,KAAM,MACN,aAAYvH,EAAKtD,cAAc,CAACnB,GAAI,oCAAqCC,eAAgB,gBAuDjG,OAnDI8G,KAAKpB,MAAMsG,kBAAoBlF,KAAKpB,MAAMuG,wBAC1CJ,EAAcK,KACV7J,IAAAA,cAACpC,EAAU,CACPE,SAAS,gBACTgL,IAAI,aACJ/K,IAAI,eACJU,IACIuB,IAAAA,cAAC8J,EAAAA,iBAAgB,CACbpM,GAAG,oBACHC,eAAe,6BAGvB4C,QAASkJ,EACTnL,WAAYmG,KAAKpB,MAAMqB,QAAQpG,cAIvCkL,EAAcK,KACV7J,IAAAA,cAAC+J,EAAAA,EAAoB,CACjBC,YAAa,CAACC,EAAAA,EAAYC,aAC1BpB,IAAI,cAEJ9I,IAAAA,cAACpC,EAAU,CACPE,SAAS,gBACTC,IAAI,eACJU,IACIuB,IAAAA,cAAC8J,EAAAA,iBAAgB,CACbpM,GAAG,yBACHC,eAAe,kBAGvB4C,QAASkJ,EACTnL,WAAYmG,KAAKpB,MAAMqB,QAAQpG,gBAOjBkK,GAE1BF,EAAQuB,KACJ7J,IAAAA,cAAA,OACI8I,IAAI,6BACJ7I,UAAU,uCAEVD,IAAAA,cAACmK,EAAAA,QAAS,CAACC,cAAc,wBAMjCpK,IAAAA,cAAA,OACIC,UAAWE,IAAW,eAAgB,CAAC,cAAesE,KAAKpB,MAAMgH,SACjEX,KAAK,aACL,kBAAgB,sBAEhB1J,IAAAA,cAAA,OACIC,UAAU,eACVvC,GAAG,sBAEHsC,IAAAA,cAACsK,EAAAA,GAAU,CACPC,UAAU,EACVC,gBAAiB,IACjBC,iBAAkB,IAClBnH,sBAAuBA,EACvBC,oBAAqBA,EACrBH,WAAYA,GAEZpD,IAAAA,cAAC0K,EAAAA,gBAAe,CACZC,UAAWlG,KAAKkG,WAEhB3K,IAAAA,cAAC4K,EAAAA,UAAS,CACNC,YAAY,WACZC,KAAK,gBAEHvJ,GAEMvB,IAAAA,cAAA,MAAAyB,OAAAC,OAAA,CACIC,IAAKJ,EAASK,UACVL,EAASwJ,gBAEZlH,EACAtC,EAASyJ,gBAM7BxB,IAGRlB,EAGb,EAGJ,SAAe2C,EAAAA,EAAAA,YAAWzH,GC7RpB0H,GAAYC,EAAAA,EAAAA,UArClB,SAAyBjE,GACrB,MAAMkE,GAAgCC,EAAAA,EAAAA,IAAUnE,GAE1C0C,EAA8CwB,EAAOE,wBACrD9B,GAA0B+B,EAAAA,EAAAA,IAAmBrE,GAC7CyC,EAA2BH,GAAiBA,EAAchF,OAAS,EACnEkE,EAAWxB,EAAMoB,QAAQkD,WAAWC,SAAW,IAE9CzC,EAAgBE,EAAmBE,IAAoBsC,EAAAA,EAAAA,IAAuBxE,GAC/EG,EAAsE,SAA1C+D,EAAOO,+BAEzC,MAAO,CACH/H,eAAegI,EAAAA,EAAAA,IAAiB1E,GAChCrB,SAASgG,EAAAA,EAAAA,IAAW3E,GACpBmD,QAAQyB,EAAAA,EAAAA,IAAa5E,GACrB0C,0BACA9D,QAAQiG,EAAAA,EAAAA,GAAiB7E,GACzByC,kBACA5D,0BAA0BoD,EAAAA,EAAAA,IAAIjC,EAAO8E,EAAAA,GAAYC,YAAa,GAAI,IAClEvD,WACAM,iBACAE,oBACAE,mBACA/B,4BAER,IAEA,SAA4B6E,GACxB,MAAO,CACHxH,SAASyH,EAAAA,EAAAA,oBAAmB,CACxB1E,SAAQ,KACRnJ,WAAU,KACV8H,wBAAuBA,EAAAA,IACxB8F,GAEX,IAMA,GAAeE,EAAAA,EAAAA,YAAWlB,EAAU1H,G,6iBC7B7B,MAAMhD,UAAiBR,IAAAA,cAKnBgI,MAAAA,GACH,MAAM,QAACzH,EAAO,IAAExC,EAAG,KAAEsO,EAAI,UAAE5L,EAAS,UAAER,GAAawE,KAAKpB,MAClDiJ,EAAW7L,EAAY,GAAK,YAC5B,cAAC5B,GAAiB4F,KAAKpB,MAAMlB,KAG7B/D,EAAcL,IAAOwO,EAAAA,EAAAA,IAAgB,CAACxD,aAAcxI,IAC1D,IAAIiM,EAyCJ,OAtCQA,EAFe,iBAAZjM,EACHnC,EAEI4B,IAAAA,cAAA,OACI,cAAY,gBACZC,UAAS,6BAAAe,OAA+BqL,GACxC,aACIxN,EAAc,CACVnB,GAAI,qCACJC,eAAgB,yBACjB,CACCmC,SAAUS,IAGlBkM,MAAO,CAACC,gBAAiB,QAAF1L,OAAU5C,EAAW,OAC5CsL,KAAM,QAKV1J,IAAAA,cAAA,OACI,cAAY,kBACZC,UAAS,0CAAAe,OAA4CqL,GACrD,aACIxN,EAAc,CACVnB,GAAI,wCACJC,eAAgB,4BACjB,CACCmC,SAAUS,IAGlBmJ,KAAM,OAELnJ,EAAUA,EAAQoM,QAAQ,MAAO,IAAIC,UAAU,EAAG,GAAK,MAK7DrM,EAGPP,IAAAA,cAAA,OAAKC,UAAWE,IAAW,sBAADa,OAAuBqL,GAAQ,CAACQ,UAAWzO,GAAc6B,EAAWqM,IAC1FtM,IAAAA,cAAA,OAAKC,UAAS,qBAAAe,OAAuBsL,IAChCE,GAIjB,EACH7I,EA7DYnD,EAAQ,aA1BjBzC,IAAGkF,IAAAA,UAAA,CAAAA,IAAAA,OAAAA,IAAAA,MAAA,UAGH1C,QAAO0C,IAAAA,KAAAC,WAOPmJ,KAAIpJ,IAAAA,MAAA,CAAG,KAAO,OAGdxC,UAASwC,IAAAA,KAGThD,UAASgD,IAAAA,SAAAU,EAUAnD,EAAQ,eACY,CACzB6L,KAAM,OA6Dd,SAAepB,EAAAA,EAAAA,YAAWzK,E,+EC3FnB,SAASsL,EAAa5E,GACzB,OAAOA,EAAM4F,MAAMC,IAAI1C,MAC3B,CAMO,SAAS2C,EAAuB9F,GACnC,OAAOA,EAAM4F,MAAMC,IAAIE,mBAC3B,CAEO,MAAMC,GAAiBC,E,SAAAA,MAEjBC,GAAwBC,EAAAA,EAAAA,IACjC,+BACAC,EAAAA,GACAJ,GACA,CAACK,EAAyBC,KACtB,MAAMC,EAA4B,GAclC,OAZIF,GACAE,EAAY5D,KAAK,CACbnM,GAAI,UACJgQ,WAAW,IAInBD,EAAY5D,KAAK,CACbnM,GAAI,SACJgQ,UAAWF,EAAc,IAGtBC,EAAYE,QAAQC,GAASA,EAAKF,WAAU,G","sources":["webpack://mattermost-webapp/./src/components/team_sidebar/components/team_button.tsx","webpack://mattermost-webapp/./src/components/team_sidebar/team_sidebar.tsx","webpack://mattermost-webapp/./src/components/team_sidebar/index.ts","webpack://mattermost-webapp/./src/components/widgets/team_icon/team_icon.tsx","webpack://mattermost-webapp/./src/selectors/lhs.ts"],"sourcesContent":["// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.\n// See LICENSE.txt for license information.\n\nimport classNames from 'classnames';\nimport React, {useCallback, useMemo} from 'react';\nimport {Draggable} from 'react-beautiful-dnd';\nimport {defineMessages, useIntl} from 'react-intl';\nimport {Link} from 'react-router-dom';\n\nimport {mark, trackEvent} from 'actions/telemetry_actions.jsx';\n\nimport TeamIcon from 'components/widgets/team_icon/team_icon';\nimport WithTooltip from 'components/with_tooltip';\nimport {ShortcutKeys} from 'components/with_tooltip/tooltip_shortcut';\n\nimport {Mark} from 'utils/performance_telemetry';\n\nconst messages = defineMessages({\n nameUndefined: {\n id: 'team.button.name_undefined',\n defaultMessage: 'This team does not have a name',\n },\n});\n\ninterface Props {\n btnClass?: string;\n url: string;\n displayName?: string;\n content?: React.ReactNode;\n tip: string | JSX.Element;\n order?: number;\n showOrder?: boolean;\n active?: boolean;\n unread?: boolean;\n mentions?: number;\n placement?: 'left' | 'right' | 'top' | 'bottom';\n teamIconUrl?: string | null;\n switchTeam: (url: string) => void;\n isDraggable?: boolean;\n teamIndex?: number;\n teamId?: string;\n isInProduct?: boolean;\n hasUrgent?: boolean;\n}\n\nexport default function TeamButton({\n btnClass,\n url,\n displayName,\n order,\n unread,\n mentions,\n teamIconUrl,\n isDraggable = false,\n switchTeam,\n teamIndex,\n teamId,\n tip,\n ...otherProps\n}: Props) {\n const {formatMessage} = useIntl();\n\n const handleSwitch = useCallback((e: React.MouseEvent) => {\n mark(Mark.TeamLinkClicked);\n e.preventDefault();\n switchTeam(url);\n\n setTimeout(() => {\n trackEvent('ui', 'ui_team_sidebar_switch_team');\n }, 0);\n }, [switchTeam, url]);\n\n let teamClass: string = otherProps.active ? 'active' : '';\n const isNotCreateTeamButton: boolean = !url.endsWith('create_team') && !url.endsWith('select_team');\n\n let badge: JSX.Element | undefined;\n\n let ariaLabel = formatMessage({\n id: 'team.button.ariaLabel',\n defaultMessage: '{teamName} team',\n },\n {\n teamName: displayName,\n });\n\n if (!teamClass) {\n if (unread && !otherProps.isInProduct) {\n teamClass = 'unread';\n\n badge = (\n <span\n data-testid={'team-badge-' + teamId}\n className={'unread-badge'}\n />\n );\n } else if (isNotCreateTeamButton) {\n teamClass = '';\n } else {\n teamClass = 'special';\n }\n ariaLabel = formatMessage({\n id: 'team.button.unread.ariaLabel',\n defaultMessage: '{teamName} team unread',\n },\n {\n teamName: displayName,\n });\n\n if (mentions) {\n ariaLabel = formatMessage({\n id: 'team.button.mentions.ariaLabel',\n defaultMessage: '{teamName} team, {mentionCount} mentions',\n },\n {\n teamName: displayName,\n mentionCount: mentions,\n });\n\n badge = (\n <span\n data-testid={'team-badge-' + teamId}\n className={classNames('badge badge-max-number pull-right small', {urgent: otherProps.hasUrgent})}\n >\n {mentions > 99 ? '99+' : mentions}\n </span>\n );\n }\n }\n\n ariaLabel = ariaLabel.toLowerCase();\n\n const content = (\n <TeamIcon\n className={teamClass}\n withHover={true}\n content={otherProps.content || displayName || ''}\n url={teamIconUrl}\n />\n );\n\n let orderIndicator: JSX.Element | undefined;\n if (typeof order !== 'undefined' && order < 10) {\n if (otherProps.showOrder) {\n orderIndicator = (\n <div className='order-indicator'>\n {order}\n </div>\n );\n }\n }\n\n const btn = (\n <WithTeamTooltip\n order={order}\n tip={tip}\n >\n <div className={'team-btn ' + btnClass}>\n {!otherProps.isInProduct && badge}\n {content}\n </div>\n </WithTeamTooltip>\n );\n\n const teamButton = (\n <Link\n id={`${url.slice(1)}TeamButton`}\n aria-label={ariaLabel}\n to={url}\n onClick={handleSwitch}\n >\n {btn}\n </Link>\n );\n\n return isDraggable ? (\n <Draggable\n draggableId={teamId!}\n index={teamIndex!}\n >\n {(provided, snapshot) => {\n return (\n <div\n className='draggable-team-container'\n ref={provided.innerRef}\n {...provided.draggableProps}\n {...provided.dragHandleProps}\n tabIndex={-1}\n >\n <div\n className={classNames([`team-container ${teamClass}`, {isDragging: snapshot.isDragging}])}\n >\n {teamButton}\n {orderIndicator}\n </div>\n </div>\n );\n }}\n </Draggable>\n ) : (\n <div\n data-testid={'team-container-' + teamId}\n className={`team-container ${teamClass}`}\n >\n {teamButton}\n {orderIndicator}\n </div>\n );\n}\n\nfunction WithTeamTooltip({\n order,\n tip,\n children,\n}: React.PropsWithChildren<Pick<Props, 'order' | 'tip'>>) {\n const intl = useIntl();\n\n const shortcut = useMemo(() => {\n if (!order || order >= 10) {\n return undefined;\n }\n\n return {\n default: [ShortcutKeys.ctrl, ShortcutKeys.alt, order.toString()],\n mac: [ShortcutKeys.cmd, ShortcutKeys.option, order.toString()],\n };\n }, [order]);\n\n if (!React.isValidElement(children)) {\n return null;\n }\n\n return (\n <WithTooltip\n title={tip || intl.formatMessage(messages.nameUndefined)}\n shortcut={shortcut}\n >\n {children}\n </WithTooltip>\n );\n}\n","// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.\n// See LICENSE.txt for license information.\n\nimport classNames from 'classnames';\nimport React from 'react';\nimport {DragDropContext, Droppable} from 'react-beautiful-dnd';\nimport type {DroppableProvided, DropResult} from 'react-beautiful-dnd';\nimport Scrollbars from 'react-custom-scrollbars';\nimport {injectIntl, FormattedMessage} from 'react-intl';\nimport type {WrappedComponentProps} from 'react-intl';\nimport type {RouteComponentProps} from 'react-router-dom';\n\nimport type {Team} from '@mattermost/types/teams';\n\nimport Permissions from 'mattermost-redux/constants/permissions';\n\nimport SystemPermissionGate from 'components/permissions_gates/system_permission_gate';\nimport TeamButton from 'components/team_sidebar/components/team_button';\n\nimport WebSocketClient from 'client/web_websocket_client';\nimport Pluggable from 'plugins/pluggable';\nimport {Constants} from 'utils/constants';\nimport * as Keyboard from 'utils/keyboard';\nimport {getCurrentProduct} from 'utils/products';\nimport {filterAndSortTeamsByDisplayName} from 'utils/team_utils';\nimport * as Utils from 'utils/utils';\n\nimport type {PropsFromRedux} from './index';\n\nexport interface Props extends PropsFromRedux, WrappedComponentProps {\n location: RouteComponentProps['location'];\n}\n\ntype State = {\n showOrder: boolean;\n teamsOrder: Team[];\n}\n\nexport function renderView(props: Props) {\n return (\n <div\n {...props}\n className='scrollbar--view'\n />\n );\n}\n\nexport function renderThumbHorizontal(props: Props) {\n return (\n <div\n {...props}\n className='scrollbar--horizontal'\n />\n );\n}\n\nexport function renderThumbVertical(props: Props) {\n return (\n <div\n {...props}\n className='scrollbar--vertical'\n />\n );\n}\n\nexport class TeamSidebar extends React.PureComponent<Props, State> {\n constructor(props: Props) {\n super(props);\n\n this.state = {\n showOrder: false,\n teamsOrder: [],\n };\n }\n\n switchToPrevOrNextTeam = (e: KeyboardEvent, currentTeamId: string, teams: Team[]) => {\n if (Keyboard.isKeyPressed(e, Constants.KeyCodes.UP) || Keyboard.isKeyPressed(e, Constants.KeyCodes.DOWN)) {\n e.preventDefault();\n const delta = Keyboard.isKeyPressed(e, Constants.KeyCodes.DOWN) ? 1 : -1;\n const pos = teams.findIndex((team: Team) => team.id === currentTeamId);\n const newPos = pos + delta;\n\n let team;\n if (newPos === -1) {\n team = teams[teams.length - 1];\n } else if (newPos === teams.length) {\n team = teams[0];\n } else {\n team = teams[newPos];\n }\n\n this.props.actions.switchTeam(`/${team.name}`);\n return true;\n }\n return false;\n };\n\n switchToTeamByNumber = (e: KeyboardEvent, currentTeamId: string, teams: Team[]) => {\n const digits = [\n Constants.KeyCodes.ONE,\n Constants.KeyCodes.TWO,\n Constants.KeyCodes.THREE,\n Constants.KeyCodes.FOUR,\n Constants.KeyCodes.FIVE,\n Constants.KeyCodes.SIX,\n Constants.KeyCodes.SEVEN,\n Constants.KeyCodes.EIGHT,\n Constants.KeyCodes.NINE,\n Constants.KeyCodes.ZERO,\n ];\n\n for (const idx in digits) {\n if (Keyboard.isKeyPressed(e, digits[idx]) && parseInt(idx, 10) < teams.length) {\n e.preventDefault();\n\n // prevents reloading the current team, while still capturing the keyboard shortcut\n if (teams[idx].id === currentTeamId) {\n return false;\n }\n const team = teams[idx];\n this.props.actions.switchTeam(`/${team.name}`);\n return true;\n }\n }\n return false;\n };\n\n handleKeyDown = (e: KeyboardEvent) => {\n if ((e.ctrlKey || e.metaKey) && e.altKey) {\n const {currentTeamId} = this.props;\n const teams = filterAndSortTeamsByDisplayName(this.props.myTeams, this.props.locale, this.props.userTeamsOrderPreference);\n\n if (this.switchToPrevOrNextTeam(e, currentTeamId, teams)) {\n return;\n }\n\n if (this.switchToTeamByNumber(e, currentTeamId, teams)) {\n return;\n }\n\n this.setState({showOrder: true});\n }\n };\n\n handleKeyUp = (e: KeyboardEvent) => {\n if (!((e.ctrlKey || e.metaKey) && e.altKey)) {\n this.setState({showOrder: false});\n }\n };\n\n componentDidUpdate(prevProps: Props) {\n // TODO: debounce\n if (prevProps.currentTeamId !== this.props.currentTeamId && this.props.enableWebSocketEventScope) {\n WebSocketClient.updateActiveTeam(this.props.currentTeamId);\n }\n }\n\n componentDidMount() {\n this.props.actions.getTeams(0, 200);\n document.addEventListener('keydown', this.handleKeyDown);\n document.addEventListener('keyup', this.handleKeyUp);\n }\n\n componentWillUnmount() {\n document.removeEventListener('keydown', this.handleKeyDown);\n document.removeEventListener('keyup', this.handleKeyUp);\n }\n\n onDragEnd = (result: DropResult) => {\n const {\n updateTeamsOrderForUser,\n } = this.props.actions;\n\n if (!result.destination) {\n return;\n }\n\n const teams = filterAndSortTeamsByDisplayName(this.props.myTeams, this.props.locale, this.props.userTeamsOrderPreference);\n\n const sourceIndex = result.source.index;\n const destinationIndex = result.destination.index;\n\n // Positioning the dropped Team button\n const popElement = (list: Team[], idx: number) => {\n return [...list.slice(0, idx), ...list.slice(idx + 1, list.length)];\n };\n\n const pushElement = (list: Team[], idx: number, itemId: string): Team[] => {\n return [\n ...list.slice(0, idx),\n teams.find((team) => team.id === itemId)!,\n ...list.slice(idx, list.length),\n ];\n };\n\n const newTeamsOrder = pushElement(\n popElement(teams, sourceIndex),\n destinationIndex,\n result.draggableId,\n );\n updateTeamsOrderForUser(newTeamsOrder.map((o: Team) => o.id));\n this.setState({teamsOrder: newTeamsOrder});\n };\n\n render() {\n const {intl} = this.props;\n\n const root: Element | null = document.querySelector('#root');\n if (this.props.myTeams.length <= 1) {\n root!.classList.remove('multi-teams');\n return null;\n }\n root!.classList.add('multi-teams');\n\n const plugins = [];\n const sortedTeams = filterAndSortTeamsByDisplayName(this.props.myTeams, this.props.locale, this.props.userTeamsOrderPreference);\n\n const currentProduct = getCurrentProduct(this.props.products, this.props.location.pathname);\n if (currentProduct && !currentProduct.showTeamSidebar) {\n return null;\n }\n\n const teams = sortedTeams.map((team: Team, index: number) => {\n return (\n <TeamButton\n key={'switch_team_' + team.name}\n url={`/${team.name}`}\n tip={team.display_name}\n active={team.id === this.props.currentTeamId}\n displayName={team.display_name}\n order={index + 1}\n showOrder={this.state.showOrder}\n unread={this.props.unreadTeamsSet.has(team.id)}\n mentions={this.props.mentionsInTeamMap.has(team.id) ? this.props.mentionsInTeamMap.get(team.id) : 0}\n hasUrgent={this.props.teamHasUrgentMap.has(team.id) ? this.props.teamHasUrgentMap.get(team.id) : false}\n teamIconUrl={Utils.imageURLForTeam(team)}\n switchTeam={(url: string) => this.props.actions.switchTeam(url, currentProduct ? team : undefined)}\n isDraggable={true}\n teamId={team.id}\n teamIndex={index}\n isInProduct={Boolean(currentProduct)}\n />\n );\n });\n\n const joinableTeams = [];\n\n const plusIcon = (\n <i\n className='icon icon-plus'\n role={'img'}\n aria-label={intl.formatMessage({id: 'sidebar.team_menu.button.plusIcon', defaultMessage: 'Plus Icon'})}\n />\n );\n\n if (this.props.moreTeamsToJoin && !this.props.experimentalPrimaryTeam) {\n joinableTeams.push(\n <TeamButton\n btnClass='team-btn__add'\n key='more_teams'\n url='/select_team'\n tip={\n <FormattedMessage\n id='team_sidebar.join'\n defaultMessage='Other teams you can join'\n />\n }\n content={plusIcon}\n switchTeam={this.props.actions.switchTeam}\n />,\n );\n } else {\n joinableTeams.push(\n <SystemPermissionGate\n permissions={[Permissions.CREATE_TEAM]}\n key='more_teams'\n >\n <TeamButton\n btnClass='team-btn__add'\n url='/create_team'\n tip={\n <FormattedMessage\n id='navbar_dropdown.create'\n defaultMessage='Create a Team'\n />\n }\n content={plusIcon}\n switchTeam={this.props.actions.switchTeam}\n />\n </SystemPermissionGate>,\n );\n }\n\n // Disable team sidebar pluggables in products until proper support can be provided.\n const isNonChannelsProduct = !currentProduct;\n if (isNonChannelsProduct) {\n plugins.push(\n <div\n key='team-sidebar-bottom-plugin'\n className='team-sidebar-bottom-plugin is-empty'\n >\n <Pluggable pluggableName='BottomTeamSidebar'/>\n </div>,\n );\n }\n\n return (\n <div\n className={classNames('team-sidebar', {'move--right': this.props.isOpen})}\n role='navigation'\n aria-labelledby='teamSidebarWrapper'\n >\n <div\n className='team-wrapper'\n id='teamSidebarWrapper'\n >\n <Scrollbars\n autoHide={true}\n autoHideTimeout={500}\n autoHideDuration={500}\n renderThumbHorizontal={renderThumbHorizontal}\n renderThumbVertical={renderThumbVertical}\n renderView={renderView}\n >\n <DragDropContext\n onDragEnd={this.onDragEnd}\n >\n <Droppable\n droppableId='my_teams'\n type='TEAM_BUTTON'\n >\n {(provided: DroppableProvided) => {\n return (\n <div\n ref={provided.innerRef}\n {...provided.droppableProps}\n >\n {teams}\n {provided.placeholder}\n </div>\n );\n }}\n </Droppable>\n </DragDropContext>\n {joinableTeams}\n </Scrollbars>\n </div>\n {plugins}\n </div>\n );\n }\n}\n\nexport default injectIntl(TeamSidebar);\n","// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.\n// See LICENSE.txt for license information.\n\nimport {connect} from 'react-redux';\nimport type {ConnectedProps} from 'react-redux';\nimport {withRouter} from 'react-router-dom';\nimport {bindActionCreators} from 'redux';\nimport type {Dispatch} from 'redux';\n\nimport type {ClientConfig} from '@mattermost/types/config';\n\nimport {getTeams} from 'mattermost-redux/actions/teams';\nimport {getTeamsUnreadStatuses} from 'mattermost-redux/selectors/entities/channels';\nimport {getConfig} from 'mattermost-redux/selectors/entities/general';\nimport {get} from 'mattermost-redux/selectors/entities/preferences';\nimport {\n getCurrentTeamId,\n getJoinableTeamIds,\n getMyTeams,\n} from 'mattermost-redux/selectors/entities/teams';\n\nimport {switchTeam, updateTeamsOrderForUser} from 'actions/team_actions';\nimport {getCurrentLocale} from 'selectors/i18n';\nimport {getIsLhsOpen} from 'selectors/lhs';\n\nimport {Preferences} from 'utils/constants';\n\nimport type {GlobalState} from 'types/store';\n\nimport TeamSidebar from './team_sidebar';\n\nfunction mapStateToProps(state: GlobalState) {\n const config: Partial<ClientConfig> = getConfig(state);\n\n const experimentalPrimaryTeam: string | undefined = config.ExperimentalPrimaryTeam;\n const joinableTeams: string[] = getJoinableTeamIds(state);\n const moreTeamsToJoin: boolean = joinableTeams && joinableTeams.length > 0;\n const products = state.plugins.components.Product || [];\n\n const [unreadTeamsSet, mentionsInTeamMap, teamHasUrgentMap] = getTeamsUnreadStatuses(state);\n const enableWebSocketEventScope = config.FeatureFlagWebSocketEventScope === 'true';\n\n return {\n currentTeamId: getCurrentTeamId(state),\n myTeams: getMyTeams(state),\n isOpen: getIsLhsOpen(state),\n experimentalPrimaryTeam,\n locale: getCurrentLocale(state),\n moreTeamsToJoin,\n userTeamsOrderPreference: get(state, Preferences.TEAMS_ORDER, '', ''),\n products,\n unreadTeamsSet,\n mentionsInTeamMap,\n teamHasUrgentMap,\n enableWebSocketEventScope,\n };\n}\n\nfunction mapDispatchToProps(dispatch: Dispatch) {\n return {\n actions: bindActionCreators({\n getTeams,\n switchTeam,\n updateTeamsOrderForUser,\n }, dispatch),\n };\n}\n\nconst connector = connect(mapStateToProps, mapDispatchToProps);\n\nexport type PropsFromRedux = ConnectedProps<typeof connector>;\n\nexport default withRouter(connector(TeamSidebar));\n","// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.\n// See LICENSE.txt for license information.\n\nimport classNames from 'classnames';\nimport React from 'react';\nimport {injectIntl} from 'react-intl';\nimport type {IntlShape} from 'react-intl';\n\nimport type {Team} from '@mattermost/types/teams';\n\nimport {imageURLForTeam} from 'utils/utils';\n\nimport './team_icon.scss';\n\ntype Props = {\n\n /** Team icon URL (when available) */\n url?: string | null;\n\n /** Team display name (used for the initials) if icon URL is not set */\n content: React.ReactNode;\n\n /**\n * Size of the icon, \"sm\", \"md\" or \"lg\".\n *\n * @default \"regular\"\n **/\n size?: 'sm' | 'lg';\n\n /** Whether to add hover effect to the icon */\n withHover?: boolean;\n\n /** Whether to add additional classnames */\n className?: string;\n\n /** react-intl helper object */\n intl: IntlShape;\n};\n\n/**\n * An icon representing a Team. If `url` is set - shows the image,\n * otherwise shows team initials\n */\nexport class TeamIcon extends React.PureComponent<Props> {\n public static defaultProps = {\n size: 'sm' as const,\n };\n\n public render() {\n const {content, url, size, withHover, className} = this.props;\n const hoverCss = withHover ? '' : 'no-hover';\n const {formatMessage} = this.props.intl;\n\n // FIXME Nowhere does imageURLForTeam seem to check for display_name.\n const teamIconUrl = url || imageURLForTeam({display_name: content} as Team);\n let icon;\n if (typeof content === 'string') {\n if (teamIconUrl) {\n icon = (\n <div\n data-testid='teamIconImage'\n className={`TeamIcon__image TeamIcon__${size}`}\n aria-label={\n formatMessage({\n id: 'sidebar.team_menu.button.teamImage',\n defaultMessage: '{teamName} Team Image',\n }, {\n teamName: content,\n })\n }\n style={{backgroundImage: `url('${teamIconUrl}')`}}\n role={'img'}\n />\n );\n } else {\n icon = (\n <div\n data-testid='teamIconInitial'\n className={`TeamIcon__initials TeamIcon__initials__${size}`}\n aria-label={\n formatMessage({\n id: 'sidebar.team_menu.button.teamInitials',\n defaultMessage: '{teamName} Team Initials',\n }, {\n teamName: content,\n })\n }\n role={'img'}\n >\n {content ? content.replace(/\\s/g, '').substring(0, 2) : '??'}\n </div>\n );\n }\n } else {\n icon = content;\n }\n return (\n <div className={classNames(`TeamIcon TeamIcon__${size}`, {withImage: teamIconUrl}, className, hoverCss)}>\n <div className={`TeamIcon__content ${hoverCss}`}>\n {icon}\n </div>\n </div>\n );\n }\n}\n\nexport default injectIntl(TeamIcon);\n","// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.\n// See LICENSE.txt for license information.\n\nimport {createSelector} from 'mattermost-redux/selectors/create_selector';\nimport {\n isCollapsedThreadsEnabled,\n} from 'mattermost-redux/selectors/entities/preferences';\n\nimport {makeGetDraftsCount} from 'selectors/drafts';\n\nimport type {SidebarSize} from 'components/resizable_sidebar/constants';\n\nimport type {GlobalState} from 'types/store';\nimport type {StaticPage} from 'types/store/lhs';\n\nexport function getIsLhsOpen(state: GlobalState): boolean {\n return state.views.lhs.isOpen;\n}\n\nexport function getLhsSize(state: GlobalState): SidebarSize {\n return state.views.lhs.size;\n}\n\nexport function getCurrentStaticPageId(state: GlobalState): string {\n return state.views.lhs.currentStaticPageId;\n}\n\nexport const getDraftsCount = makeGetDraftsCount();\n\nexport const getVisibleStaticPages = createSelector(\n 'getVisibleSidebarStaticPages',\n isCollapsedThreadsEnabled,\n getDraftsCount,\n (collapsedThreadsEnabled, draftsCount) => {\n const staticPages: StaticPage[] = [];\n\n if (collapsedThreadsEnabled) {\n staticPages.push({\n id: 'threads',\n isVisible: true,\n });\n }\n\n staticPages.push({\n id: 'drafts',\n isVisible: draftsCount > 0,\n });\n\n return staticPages.filter((item) => item.isVisible);\n },\n);\n"],"names":["messages","defineMessages","nameUndefined","id","defaultMessage","TeamButton","_ref","btnClass","url","displayName","order","unread","mentions","teamIconUrl","isDraggable","switchTeam","teamIndex","teamId","tip","otherProps","_objectWithoutProperties","_excluded","formatMessage","useIntl","handleSwitch","useCallback","e","mark","Mark","TeamLinkClicked","preventDefault","setTimeout","trackEvent","teamClass","active","isNotCreateTeamButton","endsWith","badge","ariaLabel","teamName","isInProduct","React","className","mentionCount","classNames","urgent","hasUrgent","toLowerCase","content","TeamIcon","withHover","orderIndicator","showOrder","btn","WithTeamTooltip","teamButton","Link","concat","slice","to","onClick","Draggable","draggableId","index","provided","snapshot","Object","assign","ref","innerRef","draggableProps","dragHandleProps","tabIndex","isDragging","_ref2","children","intl","shortcut","useMemo","default","ShortcutKeys","ctrl","alt","toString","mac","cmd","option","WithTooltip","title","propTypes","_pt","isRequired","placement","renderView","props","renderThumbHorizontal","renderThumbVertical","TeamSidebar","constructor","super","_defineProperty","currentTeamId","teams","Keyboard","Constants","KeyCodes","UP","DOWN","delta","pos","findIndex","team","newPos","length","this","actions","name","digits","ONE","TWO","THREE","FOUR","FIVE","SIX","SEVEN","EIGHT","NINE","ZERO","idx","parseInt","ctrlKey","metaKey","altKey","filterAndSortTeamsByDisplayName","myTeams","locale","userTeamsOrderPreference","switchToPrevOrNextTeam","switchToTeamByNumber","setState","result","updateTeamsOrderForUser","destination","sourceIndex","source","destinationIndex","newTeamsOrder","pushElement","list","itemId","find","popElement","map","o","teamsOrder","state","componentDidUpdate","prevProps","enableWebSocketEventScope","WebSocketClient","updateActiveTeam","componentDidMount","getTeams","document","addEventListener","handleKeyDown","handleKeyUp","componentWillUnmount","removeEventListener","render","root","querySelector","classList","remove","add","plugins","sortedTeams","currentProduct","getCurrentProduct","products","location","pathname","showTeamSidebar","key","display_name","unreadTeamsSet","has","mentionsInTeamMap","get","teamHasUrgentMap","Utils","undefined","Boolean","joinableTeams","plusIcon","role","moreTeamsToJoin","experimentalPrimaryTeam","push","FormattedMessage","SystemPermissionGate","permissions","Permissions","CREATE_TEAM","Pluggable","pluggableName","isOpen","Scrollbars","autoHide","autoHideTimeout","autoHideDuration","DragDropContext","onDragEnd","Droppable","droppableId","type","droppableProps","placeholder","injectIntl","connector","connect","config","getConfig","ExperimentalPrimaryTeam","getJoinableTeamIds","components","Product","getTeamsUnreadStatuses","FeatureFlagWebSocketEventScope","getCurrentTeamId","getMyTeams","getIsLhsOpen","getCurrentLocale","Preferences","TEAMS_ORDER","dispatch","bindActionCreators","withRouter","size","hoverCss","imageURLForTeam","icon","style","backgroundImage","replace","substring","withImage","views","lhs","getCurrentStaticPageId","currentStaticPageId","getDraftsCount","makeGetDraftsCount","getVisibleStaticPages","createSelector","isCollapsedThreadsEnabled","collapsedThreadsEnabled","draftsCount","staticPages","isVisible","filter","item"],"sourceRoot":""}