UNPKG

@progress/kendo-react-grid

Version:
166 lines (165 loc) 5.6 kB
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; }