import React, { MouseEventHandler, PureComponent, ReactElement, ReactNode } from 'react'; import { ComponentWithCustomElement } from '../../common/helpers/types'; export type TabIdType = string | number; export type ActiveTabType = HTMLElement | null; export interface TabProps { /** Флаг активности таба */ active?: boolean; /** Активный таб по-умолчанию. Если передан - весь компонент tabs считается неуправляемым */ defaultActive?: boolean; /** Идентификатор таба */ id: TabIdType; /** Заголовок таба */ children?: ReactNode; /** доп. текст по которому будет осуществляться поиск по табам (пользователю searchText не отображается) */ searchText?: string; /** Кастомный компонент заголовка таба */ Element: 'button' | 'a' | 'span'; /** обработчик клика */ onClick?: MouseEventHandler; } /** * Заголовок таба. Отдельно без обертки [Tabs](#tabs) не используется */ declare const Tab: ComponentWithCustomElement; export default Tab; /** * Обертка-логика для табов в дропдауне */ export interface TabDropdownProps { /** Флаг активности таба */ active?: boolean; /** обработчик клика */ onClick?: MouseEventHandler; /** children */ children: ReactElement; } export declare class TabDropdown extends PureComponent { onTabClick: MouseEventHandler; render(): ReturnType; } /** * Обертка-логика для стандартных табов */ interface TabItemProps { /** Флаг активности таба */ active?: boolean; /** обработчик клика */ onClick?: MouseEventHandler; /** Колбэк для получения ссылки на DOM элемент */ setElement?: (element: ActiveTabType) => void; /** children */ children: ReactElement; } export declare class TabItem extends PureComponent { private elementRef; private preventScrollOnFocus; componentDidMount(): void; setActiveTab: () => void; onFocus: () => void; onMouseDown: () => void; componentDidUpdate(prevProps: TabItemProps): void; onTabClick: MouseEventHandler; render(): ReturnType; }