@douyinfe/semi-ui
Version:
A modern, comprehensive, flexible design system and UI library. Connect DesignOps & DevOps. Quickly build beautiful React apps. Maintained by Douyin-fe team.
67 lines (66 loc) • 2.84 kB
TypeScript
import React, { PureComponent, ReactNode } from 'react';
import PropTypes from 'prop-types';
import Store from '@douyinfe/semi-foundation/lib/es/utils/Store';
import { TableContextProps } from '../table-context';
import { ColumnProps, ExpandIcon, TableComponents, Virtualized, Fixed } from '../interface';
export interface TableExpandedRowProps {
cellWidths: number[];
className?: string;
columns?: ColumnProps[];
components?: TableComponents;
defaultExpandAllRows?: boolean;
defaultExpandedRowKeys?: (string | number)[];
expandIcon?: ExpandIcon;
expandRowByClick?: boolean;
expanded?: boolean;
expandedRowKeys?: (string | number)[];
expandedRowRender?: (record?: Record<string, any>, index?: number, expanded?: boolean) => ExpandedRowRenderReturnType;
indentSize?: number;
index?: number;
prefixCls?: string;
record?: Record<string, any>;
renderExpandIcon?: (record?: Record<string, any>, isNested?: boolean) => ReactNode | null;
store?: Store;
style?: React.CSSProperties;
virtualized?: Virtualized;
displayNone?: boolean;
}
/**
* Render expanded row
*/
export default class TableExpandedRow extends PureComponent<TableExpandedRowProps> {
static contextType: React.Context<TableContextProps>;
static propTypes: {
cellWidths: PropTypes.Validator<any[]>;
className: PropTypes.Requireable<string>;
columns: PropTypes.Requireable<any[]>;
components: PropTypes.Requireable<object>;
defaultExpandAllRows: PropTypes.Requireable<boolean>;
defaultExpandedRowKeys: PropTypes.Requireable<any[]>;
expandIcon: PropTypes.Requireable<NonNullable<object | PropTypes.ReactNodeLike>>;
expandRowByClick: PropTypes.Requireable<boolean>;
expanded: PropTypes.Requireable<boolean>;
expandedRowKeys: PropTypes.Requireable<any[]>;
expandedRowRender: PropTypes.Requireable<(...args: any[]) => any>;
indentSize: PropTypes.Requireable<number>;
index: PropTypes.Requireable<NonNullable<string | number>>;
onExpand: PropTypes.Requireable<(...args: any[]) => any>;
onExpandedRowsChange: PropTypes.Requireable<(...args: any[]) => any>;
prefixCls: PropTypes.Requireable<string>;
record: PropTypes.Requireable<object>;
renderExpandIcon: PropTypes.Requireable<(...args: any[]) => any>;
store: PropTypes.Requireable<object>;
style: PropTypes.Requireable<object>;
virtualized: PropTypes.Requireable<NonNullable<boolean | object>>;
};
static defaultProps: {
record: {};
prefixCls: "semi-table";
};
context: TableContextProps;
render(): React.JSX.Element;
}
export type ExpandedRowRenderReturnType = React.ReactNode | {
children: ReactNode;
fixed: Fixed;
} & ColumnProps;