VaKeR CYBER ARMY
Logo of a company Server : Apache/2.4.41 (Ubuntu)
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 :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //opt/mattermost/client/5638.ea752f8deec43b190c4a.js.map
{"version":3,"file":"5638.ea752f8deec43b190c4a.js","mappings":"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","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":""}

VaKeR 2022