import * as React from "react"; import * as ReactTable from "react-table"; import { ResizerStopBehavior } from "../resizing/ResizingWidthsContext"; import { BeeTableCellUpdate, BeeTableColumnUpdate } from "../table/BeeTable"; import { BeeTableSelection } from "../selection/BeeTableSelectionContext"; export interface BeeTableCellProps { data: readonly R[]; rowIndex: number; columnIndex: number; columnId: string; } export interface BeeTableProps { tableId?: string; additionalRow?: React.ReactElement[]; editColumnLabel?: string | { [groupType: string]: string; }; isEditableHeader?: boolean; controllerCell?: string | JSX.Element; rowWrapper?: React.FunctionComponent>; cellComponentByColumnAccessor?: { [columnId: string]: React.FunctionComponent>; }; columns: ReactTable.Column[]; rows: R[]; onCellUpdates?: (cellUpdates: BeeTableCellUpdate[]) => void; onColumnUpdates?: (columnUpdates: BeeTableColumnUpdate[]) => void; operationConfig?: BeeTableOperationConfig; allowedOperations: (conditions: BeeTableContextMenuAllowedOperationsConditions) => BeeTableOperation[]; headerVisibility?: BeeTableHeaderVisibility; headerLevelCountForAppendingRowIndexColumn?: number; skipLastHeaderGroup?: boolean; getRowKey?: (row: ReactTable.Row) => string; getColumnKey?: (column: ReactTable.ColumnInstance) => string; onHeaderClick?: (columnKey: string) => void; onHeaderKeyUp?: (columnKey: string) => void; onDataCellClick?: (columnID: string) => void; onDataCellKeyUp?: (columnID: string) => void; isReadOnly?: boolean; enableKeyboardNavigation?: boolean; onRowAdded?: (args: { beforeIndex: number; insertDirection: InsertRowColumnsDirection; rowsCount: number; }) => void; onRowDuplicated?: (args: { rowIndex: number; }) => void; onRowReset?: (args: { rowIndex: number; }) => void; onRowDeleted?: (args: { rowIndex: number; }) => void; onColumnAdded?: (args: { beforeIndex: number; currentIndex?: number; groupType: string | undefined; columnsCount: number; insertDirection: InsertRowColumnsDirection; }) => void; onColumnDeleted?: (args: { columnIndex: number; groupType: string | undefined; }) => void; shouldRenderRowIndexColumn: boolean; shouldShowRowsInlineControls: boolean; shouldShowColumnsInlineControls: boolean; resizerStopBehavior: ResizerStopBehavior; lastColumnMinWidth?: number; supportsEvaluationHitsCount?: (row: ReactTable.Row) => boolean; } export declare enum BeeTableHeaderVisibility { AllLevels = 0, LastLevel = 1, SecondToLastLevel = 2, None = 3 } export declare enum BeeTableOperation { ColumnInsertLeft = 0, ColumnInsertRight = 1, ColumnInsertN = 2, ColumnDelete = 3, RowInsertAbove = 4, RowInsertBelow = 5, RowInsertN = 6, RowDelete = 7, RowReset = 8, RowDuplicate = 9, SelectionCopy = 10, SelectionCut = 11, SelectionPaste = 12, SelectionReset = 13 } export interface BeeTableOperationGroup { group: string; items: { name: string; type: BeeTableOperation; }[]; } export type BeeTableOperationConfig = BeeTableOperationGroup[] | { [columnGroupType: string]: BeeTableOperationGroup[]; }; export type BeeTableContextMenuAllowedOperationsConditions = { selection: BeeTableSelection; column: ReactTable.ColumnInstance | undefined; columns: ReactTable.ColumnInstance[] | undefined; }; export declare enum InsertRowColumnsDirection { AboveOrRight = 0, BelowOrLeft = 1 } //# sourceMappingURL=BeeTable.d.ts.map