@progress/kendo-react-grid
Version:
KendoReact Grid package
166 lines (165 loc) • 5.6 kB
TypeScript
import * as React from 'react';
import * as PropTypes from 'prop-types';
import { CommonDragLogic } from './drag/CommonDragLogic';
import { GridProps } from './interfaces/GridProps';
import { GridColumnProps } from './interfaces/GridColumnProps';
import { ScrollMode } from './ScrollMode';
/**
* Represents the [KendoReact Grid component]({% slug overview_grid %}).
*
* @example
* ```jsx
* class App extends React.Component {
* constructor(props) {
* super(props);
* this.state = {
* data: [
* { 'foo': 'A1', 'bar': 'B1' },
* { 'foo': 'A2', 'bar': 'B2' },
* { 'foo': 'A3', 'bar': 'B2' }
* ]
* };
* }
* render() {
* return (
* <Grid
* data={this.state.data}
* reorderable={true}
* >
* <GridColumn field="foo" />
* <GridColumn field="bar" />
* </Grid>
* );
* }
* }
* ReactDOM.render(<App />, document.querySelector('my-app'));
* ```
*/
export declare class Grid extends React.Component<GridProps, {}> {
/**
* @hidden
*/
static displayName: string;
/**
* @hidden
*/
static defaultProps: {
scrollable: ScrollMode;
};
/**
* @hidden
*/
static propTypes: {
data: PropTypes.Requireable<any>;
sortable: PropTypes.Requireable<any>;
onSortChange: PropTypes.Requireable<any>;
sort: PropTypes.Requireable<any>;
filterable: PropTypes.Requireable<any>;
filter: PropTypes.Requireable<any>;
onFilterChange: PropTypes.Requireable<any>;
pageable: PropTypes.Requireable<any>;
pageSize: PropTypes.Requireable<any>;
onPageChange: PropTypes.Requireable<any>;
total: PropTypes.Requireable<any>;
skip: PropTypes.Requireable<any>;
take: PropTypes.Requireable<any>;
onExpandChange: PropTypes.Requireable<any>;
expandField: PropTypes.Requireable<any>;
selectedField: PropTypes.Requireable<any>;
onSelectionChange: PropTypes.Requireable<any>;
onHeaderSelectionChange: PropTypes.Requireable<any>;
resizable: PropTypes.Requireable<any>;
reorderable: PropTypes.Requireable<any>;
group: PropTypes.Requireable<any>;
groupable: PropTypes.Requireable<any>;
onGroupChange: PropTypes.Requireable<any>;
onRowClick: PropTypes.Requireable<any>;
onItemChange: PropTypes.Requireable<any>;
editField: PropTypes.Requireable<any>;
scrollable: PropTypes.Requireable<any>;
rowHeight: PropTypes.Requireable<any>;
detail: PropTypes.Requireable<any>;
style: PropTypes.Requireable<any>;
onDataStateChange: PropTypes.Requireable<any>;
onColumnResize: PropTypes.Requireable<any>;
onColumnReorder: PropTypes.Requireable<any>;
};
protected dragLogic: CommonDragLogic;
private _columns;
private _columnsMap;
/**
* A getter of the current columns. Gets the current column width or current columns, or any other [`GridColumnProps`]({% slug api_grid_gridcolumnprops %}) for each defined column. Can be used on each Grid instance. To obtain the instance of the rendered Grid, use the `ref` callback. The following example demonstrates how to reorder the columns by dragging their handlers and check the properties afterwards. You can check the result in the browser console.
*
* @example
* ```jsx
* class App extends React.Component {
* constructor(props) {
* super(props);
* this.state = {
* data: [
* { 'foo': 'A1', 'bar': 'B1' },
* { 'foo': 'A2', 'bar': 'B2' },
* { 'foo': 'A3', 'bar': 'B2' }
* ]
* };
* this.grid = null;
* }
* render() {
* return (
* <div>
* <Grid
* data={this.state.data}
* reorderable={true}
* ref={(g) => { this.grid = g; }}
* >
* <GridColumn field="foo" />
* <GridColumn field="bar" />
* </Grid>
* <button onClick={() => console.log(JSON.stringify(this.grid.columns))}>
* log current properties into browser console.
* </button>
* </div>
* );
* }
* }
* ReactDOM.render(<App />, document.querySelector('my-app'));
* ```
*/
readonly columns: GridColumnProps[];
private vs;
private columnResize;
private _header;
private forceUpdateTimeout;
constructor(props: GridProps);
/**
* @hidden
*/
componentWillReceiveProps(nextProps: GridProps): void;
/**
* @hidden
*/
componentWillUnmount(): void;
/**
* @hidden
*/
render(): JSX.Element;
private scrollHandler;
private rowClick;
private itemChange;
private selectionChange;
private onHeaderSelectionChange;
private pageChange;
private sortChange;
private filterChange;
private groupChange;
private raiseDataEvent;
private columnReorder;
private groupReorder;
private columnToGroup;
private resetTableWidth;
private onResize;
private initColumns;
private resolveTitle;
private getDataState;
private getArguments;
}