UNPKG

jamis

Version:

一种支持通过JSON配置方式生成页面的组件库

63 lines (62 loc) 2.34 kB
import React from 'react'; import Sortable from 'sortablejs'; import type { TabsCompProps, TabsMode } from '../types'; import TabComponent from './TabComponent'; interface TabsState { highlightIndex: number; arrowRightDisabled: boolean; arrowLeftDisabled: boolean; isOverflow: boolean; dragIndicator: null | Record<string, any>; editingIndex: null | number; editInputText: null | string; editOriginText: null | string; } export declare class Tabs extends React.Component<TabsCompProps, TabsState> { static defaultProps: Partial<TabsCompProps>; static Tab: typeof TabComponent; navMain: React.RefObject<HTMLUListElement>; scroll: boolean; sortable?: Sortable; dragTip?: HTMLElement; id: string; draging: boolean; toDispose: Array<() => void>; resizeDom: React.RefObject<HTMLDivElement>; /** 组件的clientWidth集合 */ clientWidthSet: Set<number>; checkArrowStatus: import("lodash").DebouncedFunc<() => void>; constructor(props: TabsCompProps); componentDidMount(): void; componentDidUpdate(): void; componentWillUnmount(): void; handleRootClick: (ev: MouseEvent) => void; /** * 处理内容与容器之间的位置关系 */ computedWidth(): void; /** * 保证选中的tab始终显示在可视区域 */ showSelected(key?: string | number): void; handleSelect(key: string | number): void; handleStartEdit(index: number, title: string): void; handleEditInputChange(e: React.ChangeEvent<HTMLInputElement>): void; handleEdit(): void; dragTipRef(ref: any): void; destroyDragging(): void; initDragging(): void; handleArrow(type: 'left' | 'right'): void; /** * 监听导航上的滚动事件 */ handleWheel(e: WheelEvent): void; renderNav: (child: any, index: number, childCount: number, showClose: boolean) => JSX.Element | undefined; renderTab(child: any, index: number): React.DetailedReactHTMLElement<any, HTMLElement> | undefined; renderArrow(type: 'left' | 'right'): JSX.Element | null | undefined; handleAddBtn: () => void | undefined; handleRefreshTab: (index: number) => void | undefined; renderNavs: (mode: Exclude<TabsMode, "">, showClose?: boolean) => any[] | null; render(): JSX.Element | null; } export default Tabs;