/// import { Props } from '../../../common'; import { IFontAwesomeIconButtonProps } from '../../Buttons/FontAwesomeIconButton/FontAwesomeIconButton'; import { TableRowVariant } from './services/colors'; import { ColumnAlignment, ColumnSize, ColumnSortDirection, IColumnProps, IColumnSorts, IRowProps, InteractionType } from './services/types'; interface ITableProps { /** Rows of the table */ rows: Array>; /** Columns of the table */ columns: Array>; /** Empty state of the table */ emptyState: JSX.Element; /** Sorting of the table and only allow one column sorting at once */ sort?: IColumnSorts; /** Called when the sorting is changed */ onSortChange?: (sort: IColumnSorts) => void; /** Called when the selected row is changed */ onSelectedRowChange?: (selectedRowData: T[]) => void; /** Icon Buttons group for bulkActions when the user selects some row */ bulkActions?: IFontAwesomeIconButtonProps[]; /** Called when some row is removed */ onRowRemove?: (removedRowData: T) => void; /** If yes the left action cells are displayed (checkbox and remove button) */ hasLeftAction?: boolean; /** If interaction type is Hover, it will display hover actions when hover. If interaction type is swipe, it will display swipe actions when tap or swipe. */ interactionType?: InteractionType; /** If yes, sort is enable with interaction. If no, sort button display in disable style with given sort */ hasSortEnabled?: boolean; /** Margins around the table */ margins?: Props.IMargins; /** The component context */ componentContext?: string; } declare const Table: (props: ITableProps) => JSX.Element; declare type ITableType = typeof Table & { ColumnAlignment: typeof ColumnAlignment; ColumnSize: typeof ColumnSize; ColumnSortDirection: typeof ColumnSortDirection; InteractionType: typeof InteractionType; RowVariant: typeof TableRowVariant; }; declare const MemoTable: ITableType; export { Table as UnmemoTable, // Needed for styleguide (memoed components won't be detected) MemoTable as Table };