import * as React from "react"; import { LabelDisplayRows } from "./internal/CountChanger"; import { TypographyProps } from "../Typography"; import { ItemEmptyProps } from "../ItemEmpty"; import { VerticalSpacing } from "./internal/Table/Row"; export type Column = { name: string; selector: (data: T) => string | number; sortable?: boolean; width?: string; renderCell?: (data: T) => React.ReactNode; headerCell?: React.ReactNode; align?: TypographyProps["align"]; enableMergeCell?: boolean; }; type Tab = { label: string; filter: (data: T[]) => T[]; disabledCheck?: boolean; }; export type DataTableProps = { /** * Array of some object that has unique property. */ data: T[]; /** * Specifies a unique key for each object in the `data`. This key is used to identify each object. */ dataKey: K; /** * Define column of table. Please refer to the samples below. */ columns: Column[]; enablePagination?: boolean; /** * Enable to use checkbox in table. * **Don't use with `onRadioChange={true}`** */ onSelectRowsChange?: (rows: T[K][]) => void; /** * Enable to use radio button in table. * **Don't use with `onSelectRowsChange={true}`** */ onRadioChange?: (radio: T[K]) => void; /** * Define tabs of table. Please refer to the samples below. */ tabs?: Tab[]; /** * props of [ItemEmpty](/?path=/docs/components-utils-itemEmpty) */ itemEmptyProps?: ItemEmptyProps; /** * Number of rows per page when `enablePagination={true}`. * If `undefined` it, `dlc` of localStorage is referenced. */ per?: number; /** * If defined `name: string` of `Column` it, enable to specify default sort Field. * **Please use `sortable: true` in `columns` props.** */ defaultSortField?: string; /** * Specify default sort order. * **Please use `sortable: true` in `columns` props.** */ defaultSortOrder?: "desc" | "asc"; /** * Specify checked rows. */ selectedRows?: T[K][]; /** * Specify checked row. */ selectedRow?: T[K]; /** * Add vertical line in table. */ enableRuledLine?: boolean; /** * Define vertical padding of rows. */ verticalSpacing?: VerticalSpacing; /** * If `true` it, hidden both side border. */ fullWidth?: boolean; disableCheckWhenClickRow?: boolean; tableMaxHeight?: string; horizontalScrollable?: boolean; labelRowsPerPage?: string; labelDisplayedRows?: LabelDisplayRows; }; declare const DataTable: ({ data: sourceData, dataKey, columns, enablePagination, onSelectRowsChange, onRadioChange, tabs, itemEmptyProps, per, defaultSortField, defaultSortOrder, selectedRows, selectedRow, enableRuledLine, verticalSpacing, fullWidth, disableCheckWhenClickRow, tableMaxHeight, horizontalScrollable, labelRowsPerPage, labelDisplayedRows, }: DataTableProps, ref?: React.ForwardedRef) => React.JSX.Element; declare const _default: (props: DataTableProps & { ref?: React.ForwardedRef; }) => ReturnType; export default _default;