UNPKG

@revolist/react-datagrid

Version:

React DataGrid Spreadsheet component with native cell render support

74 lines (62 loc) 2.6 kB
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 { }