> {
/**
* Opens the editor for the cell (idx) in the given row (rowIdx). If the column is not editable then nothing will happen.
*/
openCellEditor(rowIdx: number, idx: number): void;
}
export namespace ReactDataGrid {
// Useful types
export import Column = AdazzleReactDataGrid.Column;
export import Filter = AdazzleReactDataGrid.Filter;
// Various events
export import RowUpdateEvent = AdazzleReactDataGrid.RowUpdateEvent;
export import SelectionParams = AdazzleReactDataGrid.SelectionParams;
export import CellDragEvent = AdazzleReactDataGrid.CellDragEvent;
export import CellExpandEvent = AdazzleReactDataGrid.CellExpandEvent;
export import DragHandleDoubleClickEvent = AdazzleReactDataGrid.DragHandleDoubleClickEvent;
export import CellCopyPasteEvent = AdazzleReactDataGrid.CellCopyPasteEvent;
export import GridRowsUpdatedEvent = AdazzleReactDataGrid.GridRowsUpdatedEvent;
export import OnRowExpandToggle = AdazzleReactDataGrid.OnRowExpandToggle;
export namespace editors {
class EditorBase extends React.Component
{
getStyle(): { width: string };
getValue(): any;
getInputNode(): Element | null | Text;
inheritContainerStyles(): boolean;
}
}
// Actual classes exposed on module.exports
/**
* A react component that renders a row of the grid
*/
export class Row extends React.Component {}
/**
* A react coponent that renders a cell of the grid
*/
export class Cell extends React.Component {}
}
}
declare namespace AdazzleReactDataGridPlugins {
interface AutoCompleteEditorProps {
onCommit?: (() => void) | undefined;
options?: Array<{ id: any; title: string }> | undefined;
label?: any;
value?: any;
height?: number | undefined;
valueParams?: string[] | undefined;
column?: AdazzleReactDataGrid.ExcelColumn | undefined;
resultIdentifier?: string | undefined;
search?: string | undefined;
onKeyDown?: (() => void) | undefined;
onFocus?: (() => void) | undefined;
editorDisplayValue?: ((column: AdazzleReactDataGrid.ExcelColumn, value: any) => string) | undefined;
}
interface AutoCompleteTokensEditorProps {
options: Array;
column?: AdazzleReactDataGrid.ExcelColumn | undefined;
value?: any[] | undefined;
}
interface DropDownEditorProps {
options: Array<
string | {
id: string;
title: string;
value: string;
text: string;
}
>;
}
export namespace Editors {
export class AutoComplete extends React.Component {}
export class AutoCompleteTokensEditor extends React.Component {}
export class DropDownEditor extends React.Component {}
// TODO: refine types for these addons
export class SimpleTextEditor extends React.Component {}
export class CheckboxEditor extends React.Component {}
}
export namespace Filters {
export class NumericFilter extends React.Component {}
export class AutoCompleteFilter extends React.Component {}
export class MultiSelectFilter extends React.Component {}
export class SingleSelectFilter extends React.Component {}
}
export namespace Formatters {
export class ImageFormatter extends React.Component {}
export class DropDownFormatter extends React.Component {}
}
export class Toolbar extends React.Component {}
export namespace DraggableHeader {
export class DraggableContainer extends React.Component {}
}
export namespace Data {
export const Selectors: {
getRows: (state: object) => object[];
getSelectedRowsByKey: (state: object) => object[];
};
}
// TODO: re-export the react-contextmenu typings once those exist
// https://github.com/vkbansal/react-contextmenu/issues/10
export namespace Menu {
export class ContextMenu extends React.Component {}
export class MenuHeader extends React.Component {}
export class MenuItem extends React.Component {}
export class SubMenu extends React.Component {}
export const monitor: {
getItem(): any;
getPosition(): any;
hideMenu(): void;
};
export function connect(Menu: any): any;
export function ContextMenuLayer(
identifier: any,
configure?: (props: any) => any,
): (Component: any) => any;
}
}
declare module "react-data-grid" {
import ReactDataGrid = AdazzleReactDataGrid.ReactDataGrid;
// commonjs export
export = ReactDataGrid;
}
declare module "react-data-grid-addons" {
import Plugins = AdazzleReactDataGridPlugins;
import Editors = Plugins.Editors;
import Filters = Plugins.Filters;
import Formatters = Plugins.Formatters;
import Toolbar = Plugins.Toolbar;
import Menu = Plugins.Menu;
import Data = Plugins.Data;
import DraggableHeader = Plugins.DraggableHeader;
// ES6 named exports
export { Data, DraggableHeader, Editors, Filters, Formatters, Menu, Toolbar };
// attach to window
global {
interface Window {
ReactDataGridPlugins: {
Editors: typeof Editors;
Filters: typeof Filters;
Formatters: typeof Formatters;
Toolbar: typeof Toolbar;
Menu: typeof Menu;
Data: typeof Data;
DraggableHeader: typeof DraggableHeader;
};
}
}
}