@carbon/ibm-products
Version:
Carbon for IBM Products
97 lines (96 loc) • 2.81 kB
TypeScript
/**
* Copyright IBM Corp. 2022, 2022
*
* This source code is licensed under the Apache-2.0 license found in the
* LICENSE file in the root directory of this source tree.
*/
import { Size, Theme } from './types';
import { Column } from 'react-table';
import React from 'react';
export interface DataSpreadsheetProps {
/**
* Specifies the cell height
*/
cellSize?: Size;
/**
* Provide an optional class to be applied to the containing node.
*/
className?: string;
/**
* The data that will build the column headers
*/
columns?: readonly Column<object>[];
/**
* Disable column swapping, default false
*/
disableColumnSwapping?: boolean;
/**
* The spreadsheet data that will be rendered in the body of the spreadsheet component
*/
data?: readonly object[];
/**
* Sets the number of empty rows to be created when there is no data provided
*/
defaultEmptyRowCount?: number;
/**
* Check if has custom row header component attached
*/
hasCustomRowHeader?: boolean;
/**
* The spreadsheet id
*/
id?: number | string;
/**
* The event handler that is called when the active cell changes
*/
onActiveCellChange?: () => void;
/**
* Callback for columns after being dragged
*/
onColDrag?: ({ ...args }: {
[x: string]: any;
}) => void;
/**
* The setter fn for the data prop
*/
onDataUpdate?: ({ ...args }: {
[x: string]: any;
}) => void;
/**
* The event handler that is called when the selection area values change
*/
onSelectionAreaChange?: () => void;
/**
* Read-only table
*/
readOnlyTable?: boolean;
/**
* Position of the custom row numbering component
*/
renderRowHeaderDirection?: 'left' | 'right';
/**
* Component next to numbering rows
*/
renderRowHeader?: (index: number) => any[];
/**
* The aria label applied to the Select all button
*/
selectAllAriaLabel: string;
/**
* The aria label applied to the Data spreadsheet component
*/
spreadsheetAriaLabel: string;
/**
* The theme the DataSpreadsheet should use (only used to render active cell/selection area colors on dark theme)
*/
theme?: Theme;
/**
* The total number of columns to be initially visible, additional columns will be rendered and
* visible via horizontal scrollbar
*/
totalVisibleColumns?: number;
}
/**
* DataSpreadsheet: used to organize and display large amounts of structured data, separated by columns and rows in a grid-like format.
*/
export declare let DataSpreadsheet: React.ForwardRefExoticComponent<DataSpreadsheetProps & React.RefAttributes<HTMLDivElement>>;