@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.
94 lines (93 loc) • 4.15 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, RenderGroupSection, OnGroupedRow, TableComponents, Virtualized, RowKey, OnRowReturnObject } from '../interface';
export interface SectionRowProps {
record?: Record<string, any>;
index?: number;
columns?: ColumnProps[];
group?: (string | number)[];
groupKey: string | number;
data?: Record<string, any>[];
renderGroupSection?: RenderGroupSection;
onGroupedRow?: OnGroupedRow<Record<string, any>>;
clickGroupedRowToExpand?: boolean;
components?: TableComponents;
expanded?: boolean;
prefixCls?: string;
onExpand?: (willExpanded: boolean, groupKey: number | string, e: React.MouseEvent) => void;
virtualized?: Virtualized;
style?: React.CSSProperties;
renderExpandIcon?: (record: Record<string, any>, isNested: boolean, groupKey: string | number) => ReactNode | null;
className?: string;
store?: Store;
rowKey?: RowKey<any>;
}
/**
* avoid affected by https://www.npmjs.com/package/babel-plugin-transform-react-remove-prop-types
*/
export declare const sectionRowPropTypes: {
record: PropTypes.Requireable<object>;
index: PropTypes.Requireable<number>;
columns: PropTypes.Requireable<any[]>;
group: PropTypes.Validator<object>;
groupKey: PropTypes.Validator<NonNullable<NonNullable<string | number>>>;
data: PropTypes.Requireable<any[]>;
renderGroupSection: PropTypes.Requireable<(...args: any[]) => any>;
onGroupedRow: PropTypes.Requireable<(...args: any[]) => any>;
clickGroupedRowToExpand: PropTypes.Requireable<boolean>;
components: PropTypes.Requireable<object>;
expanded: PropTypes.Requireable<boolean>;
prefixCls: PropTypes.Requireable<string>;
onExpand: PropTypes.Requireable<(...args: any[]) => any>;
virtualized: PropTypes.Requireable<NonNullable<boolean | object>>;
style: PropTypes.Requireable<object>;
renderExpandIcon: PropTypes.Requireable<(...args: any[]) => any>;
className: PropTypes.Requireable<string>;
store: PropTypes.Requireable<object>;
rowKey: PropTypes.Requireable<NonNullable<string | number | ((...args: any[]) => any)>>;
};
/**
* Grouping component title row
*/
declare class SectionRow extends PureComponent<SectionRowProps> {
static contextType: React.Context<TableContextProps>;
static propTypes: {
record: PropTypes.Requireable<object>;
index: PropTypes.Requireable<number>;
columns: PropTypes.Requireable<any[]>;
group: PropTypes.Validator<object>;
groupKey: PropTypes.Validator<NonNullable<NonNullable<string | number>>>;
data: PropTypes.Requireable<any[]>;
renderGroupSection: PropTypes.Requireable<(...args: any[]) => any>;
onGroupedRow: PropTypes.Requireable<(...args: any[]) => any>;
clickGroupedRowToExpand: PropTypes.Requireable<boolean>;
components: PropTypes.Requireable<object>;
expanded: PropTypes.Requireable<boolean>;
prefixCls: PropTypes.Requireable<string>;
onExpand: PropTypes.Requireable<(...args: any[]) => any>;
virtualized: PropTypes.Requireable<NonNullable<boolean | object>>;
style: PropTypes.Requireable<object>;
renderExpandIcon: PropTypes.Requireable<(...args: any[]) => any>;
className: PropTypes.Requireable<string>;
store: PropTypes.Requireable<object>;
rowKey: PropTypes.Requireable<NonNullable<string | number | ((...args: any[]) => any)>>;
};
static defaultProps: {
prefixCls: "semi-table";
components: {
body: {
row: string;
cell: string;
};
};
};
context: TableContextProps;
onRow: (...args: any[]) => OnRowReturnObject;
collectGroupedData: () => Record<string, any>[];
renderExpandIcon: (record: any) => React.ReactNode;
isInnerColumnKey(key: any): boolean;
render(): React.JSX.Element;
}
export default SectionRow;