chowa
Version:
UI component library based on React
82 lines (81 loc) • 2.79 kB
TypeScript
/**
* @license chowa v1.1.3
*
* Copyright (c) Chowa Techonlogies Co.,Ltd.(http://www.chowa.cn).
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
import * as React from 'react';
import * as PropTypes from 'prop-types';
export interface TabsProps {
className?: string;
style?: React.CSSProperties;
tabPosition?: 'top' | 'left' | 'right' | 'bottom';
tabJustified?: boolean;
defaultActiveIndex?: React.ReactText;
activeIndex?: React.ReactText;
mode?: 'line' | 'card';
closable?: boolean;
appendable?: boolean;
onChange?: (index: React.ReactText) => void;
onBeforeClose?: (index: React.ReactText) => boolean;
onClose?: (index: React.ReactText) => void;
onAppend?: () => void;
}
export interface TabsState {
selfActiveIndex: React.ReactText;
showNavScrollBtn: boolean;
navPageCount: number;
navPageNumber: number;
navWrapperStyle: React.CSSProperties;
activeLineStyle: React.CSSProperties;
panelWrapperStyle: React.CSSProperties;
}
declare class Tabs extends React.PureComponent<TabsProps, TabsState> {
static propTypes: {
className: PropTypes.Requireable<string>;
style: PropTypes.Requireable<object>;
tabPosition: PropTypes.Requireable<string>;
tabJustified: PropTypes.Requireable<boolean>;
defaultActiveIndex: PropTypes.Requireable<string | number>;
mode: PropTypes.Requireable<string>;
closable: PropTypes.Requireable<boolean>;
appendable: PropTypes.Requireable<boolean>;
onChange: PropTypes.Requireable<(...args: any[]) => any>;
onBeforeClose: PropTypes.Requireable<(...args: any[]) => any>;
onClose: PropTypes.Requireable<(...args: any[]) => any>;
onAppend: PropTypes.Requireable<(...args: any[]) => any>;
};
static defaultProps: {
closable: boolean;
tabJustified: boolean;
appendable: boolean;
tabPosition: string;
mode: string;
};
static Panel: React.SFC<import("./tabs-panel").TabsPanelProps>;
private containerEle;
private panelWrapperEle;
private navScrollEle;
private navWrapperEle;
private resizeObserver;
private tabIndexs;
constructor(props: TabsProps);
private preTabPage;
private nextTabPage;
private updateNavPagination;
componentDidUpdate(preProps: TabsProps & {
children: React.ReactNode;
}): void;
componentDidMount(): void;
componentWillUnmount(): void;
private updateNavScrollParams;
private onTabClickHandler;
private onCloseHandler;
private onTabAppendHandler;
private updateActiveTabs;
private compileTabs;
render(): JSX.Element;
}
export default Tabs;