@revolist/react-datagrid
Version:
React DataGrid Spreadsheet component with native cell render support
74 lines (62 loc) • 2.6 kB
TypeScript
import { ColumnDataSchemaModel } from '@revolist/revogrid';
import { ColumnTemplateProp } from '@revolist/revogrid';
import { ComponentType } from 'react';
import { EditCell } from '@revolist/revogrid';
import { EditorBase } from '@revolist/revogrid';
import { EditorCtr } from '@revolist/revogrid';
import { ForwardRefExoticComponent } from 'react';
import { HTMLAttributes } from 'react';
import { HyperFunc } from '@revolist/revogrid';
import { JSX as JSX_2 } from '@revolist/revogrid';
import { RefAttributes } from 'react';
import { Root } from 'react-dom/client';
import { VNode } from '@revolist/revogrid';
/**
* Create editor constructor.
* This function creates editor constructor by wrapping it with EditorAdapter
* which is responsible for connecting editor with grid.
*/
export declare const Editor: (EditorComponent: ComponentType<EditorType>) => EditorCtr;
export declare class EditorAdapter implements EditorBase {
private EditorComponent;
column: ColumnDataSchemaModel;
private save;
private close;
element: ReactElement | null;
editCell?: EditCell;
private renderedComponent;
constructor(EditorComponent: ComponentType<EditorType>, column: ColumnDataSchemaModel, save: (value: any, preventFocus?: boolean) => void, close: (focusNext?: boolean) => void);
componentDidRender(): void;
disconnectedCallback(): void;
render(h: HyperFunc<VNode>): VNode;
}
/**
* Data passed to editor
*/
export declare type EditorType = {
column: ColumnDataSchemaModel;
save: (value: any, preventFocus?: boolean) => void;
close: (focusNext?: boolean) => void;
} & Partial<EditCell>;
export declare interface ReactElement extends HTMLElement {
_root?: Root;
}
export declare interface RenderedComponent<T> {
update: (newProps: T) => void;
destroy: () => void;
}
export declare const RevoGrid: ForwardRefExoticComponent<JSX_2.RevoGrid & Omit<HTMLAttributes<HTMLRevoGridElement>, "style"> & StyleReactProps & RefAttributes<HTMLRevoGridElement>>;
declare interface StyleReactProps {
class?: string;
className?: string;
style?: {
[key: string]: any;
};
}
/**
* Render React component in Grid column template.
*/
export declare const Template: (ReactComponent: ComponentType<ColumnDataSchemaModel | ColumnTemplateProp>, customProps?: any) => (h: HyperFunc<VNode>, p: ColumnDataSchemaModel | ColumnTemplateProp, addition?: any) => VNode;
export * from "@revolist/revogrid";
export * from "@revolist/revogrid/loader";
export { }