1{"version":3,"sources":["webpack://@mattermost/webapp/./components/settings_sidebar.tsx"],"names":["SettingsSidebar","React","tab","e","preventDefault","this","props","updateTab","name","$","target","closest","addClass","componentDidMount","UserAgent","render","tabList","tabs","map","key","className","activeTab","id","onClick","handleClick","bind","aria-label","uiName","toLowerCase","icon","title","iconTitle"],"mappings":"0VAqBe,MAAMA,UAAwBC,gBAA2B,oDAC/C,CAACC,EAAUC,KAC5BA,EAAEC,iBACFC,KAAKC,MAAMC,UAAUL,EAAIM,MACzBC,IAAEN,EAAEO,QAAQC,QAAQ,mBAAmBC,SAAS,uBAG7CC,oBACCC,QACAL,IAAE,wCAAwCG,SAAS,iBAIpDG,SACH,MAAMC,EAAUX,KAAKC,MAAMW,KAAKC,KAAKhB,IACjC,MAAMiB,EAAM,GAAH,OAAMjB,EAAIM,KAAV,OACT,IAAIY,EAAY,GAKhB,OAJIf,KAAKC,MAAMe,YAAcnB,EAAIM,OAC7BY,EAAY,UAIZ,sBACIE,GAAE,UAAKpB,EAAIM,KAAT,MACFW,IAAKA,EACLC,UAAWA,GAEX,0BACIE,GAAE,UAAKpB,EAAIM,KAAT,UACFY,UAAU,8BACVG,QAASlB,KAAKmB,YAAYC,KAAK,KAAMvB,GACrCwB,aAAYxB,EAAIyB,OAAOC,eAEvB,qBACIR,UAAWlB,EAAI2B,KACfC,MAAO5B,EAAI6B,YAEd7B,EAAIyB,YAMrB,OACI,2BACI,sBACIL,GAAG,UACHF,UAAU,6BAETJ,K,EAjDAhB,E,aALjBqB,U,WACAJ,K,uBARAY,K,sBACAE,U,sBACAvB,K,sBACAmB,O,oCAMApB,U","file":"821.7886936d86b20acb303c.js","sourcesContent":["// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.\n// See LICENSE.txt for license information.\n\nimport $ from 'jquery';\nimport React from 'react';\n\nimport * as UserAgent from 'utils/user_agent';\n\nexport type Tab = {\n icon: string;\n iconTitle: string;\n name: string;\n uiName: string;\n}\n\nexport type Props = {\n activeTab?: string;\n tabs: Tab[];\n updateTab: (name: string) => void;\n}\n\nexport default class SettingsSidebar extends React.PureComponent<Props> {\n public handleClick = (tab: Tab, e: React.MouseEvent) => {\n e.preventDefault();\n this.props.updateTab(tab.name);\n $(e.target).closest('.settings-modal').addClass('display--content'); // eslint-disable-line jquery/no-closest, jquery/no-class\n }\n\n public componentDidMount() {\n if (UserAgent.isFirefox()) {\n $('.settings-modal .settings-table .nav').addClass('position--top'); // eslint-disable-line jquery/no-closest, jquery/no-class\n }\n }\n\n public render() {\n const tabList = this.props.tabs.map((tab) => {\n const key = `${tab.name}_li`;\n let className = '';\n if (this.props.activeTab === tab.name) {\n className = 'active';\n }\n\n return (\n <li\n id={`${tab.name}Li`}\n key={key}\n className={className}\n >\n <button\n id={`${tab.name}Button`}\n className='cursor--pointer style--none'\n onClick={this.handleClick.bind(null, tab)}\n aria-label={tab.uiName.toLowerCase()}\n >\n <i\n className={tab.icon}\n title={tab.iconTitle}\n />\n {tab.uiName}\n </button>\n </li>\n );\n });\n\n return (\n <div>\n <ul\n id='tabList'\n className='nav nav-pills nav-stacked'\n >\n {tabList}\n </ul>\n </div>\n );\n }\n}\n"],"sourceRoot":""}