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":""}