1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- import React, { ComponentType, CSSProperties, MouseEvent, ReactNode } from 'react';
- import { Motion } from '../_base/base';
- export type TabType = 'line' | 'card' | 'button';
- export type TabSize = 'small' | 'medium' | 'large';
- export type TabPosition = 'top' | 'left';
- export interface PlainTab {
- disabled?: boolean;
- icon?: ReactNode;
- itemKey: string;
- tab?: ReactNode;
- closable?: boolean;
- }
- export interface TabsProps {
- activeKey?: string;
- children?: ReactNode | Array<ReactNode>;
- className?: string;
- collapsible?: boolean;
- contentStyle?: CSSProperties;
- defaultActiveKey?: string;
- keepDOM?: boolean;
- lazyRender?: boolean;
- onChange?: (activeKey: string) => void;
- onTabClick?: (activeKey: string, e: MouseEvent<Element>) => void;
- renderTabBar?: (tabBarProps: TabBarProps, defaultTabBar: ComponentType) => ReactNode;
- size?: TabSize;
- style?: CSSProperties;
- tabBarClassName?: string;
- tabBarExtraContent?: ReactNode;
- tabBarStyle?: CSSProperties;
- tabList?: PlainTab[];
- tabPaneMotion?: boolean;
- tabPosition?: TabPosition;
- type?: TabType;
- onTabClose?: (tabKey: string) => void;
- preventScroll?: boolean;
- }
- export interface TabBarProps {
- activeKey?: string;
- className?: string;
- collapsible?: boolean;
- list?: Array<PlainTab>;
- onTabClick?: (activeKey: string, event: MouseEvent<Element>) => void;
- size?: TabSize;
- style?: CSSProperties;
- tabBarExtraContent?: ReactNode;
- tabPosition?: TabPosition;
- type?: TabType;
- dropdownClassName?: string;
- dropdownStyle?: CSSProperties;
- closable?: boolean;
- deleteTabItem?: (tabKey: string, event: MouseEvent<Element>) => void;
- handleKeyDown?: (event: React.KeyboardEvent, itemKey: string, closable: boolean) => void;
- }
- export interface TabPaneProps {
- className?: string;
- children?: React.ReactNode | undefined;
- disabled?: boolean;
- icon?: ReactNode;
- itemKey?: string;
- style?: CSSProperties;
- tab?: ReactNode;
- closable?: boolean,
- }
- export interface TabPaneTransitionProps {
- [key: string]: any;
- children?: ((p: { transform?: string; opacity: number }) => ReactNode | undefined) | undefined;
- direction?: boolean;
- mode?: 'vertical' | 'horizontal';
- motion?: Motion;
- }
- export interface TabContextValue {
- activeKey?: string;
- lazyRender?: boolean;
- panes?: Array<PlainTab>;
- tabPaneMotion?: boolean;
- tabPosition?: TabPosition;
- }
|