realgrid-react
Version:
RealGrid2 wrapping Component for React
445 lines (406 loc) • 22.6 kB
TypeScript
import { default as default_2 } from 'react';
import { ReactNode } from 'react';
import * as RealGrid from 'realgrid';
declare abstract class ComponentBase<T extends IComponentBase> extends default_2.Component<T> {
protected $parent?: RealBaseReact<{}>;
protected $model?: any;
constructor(props: T);
protected abstract mountCB: () => void;
protected abstract unMountCB: () => void;
protected _type: string;
protected _doUpdate(): void;
componentDidMount(): void;
componentWillUnmount(): void;
componentDidUpdate(prevProps: Readonly<{
[key in keyof T]: T[key];
}>, prevState: Readonly<{}>, snapshot?: any): void;
render(): default_2.FunctionComponentElement<{
children?: default_2.ReactNode;
}>;
}
declare type GridType<G> = G extends RealGrid.GridView ? RealGrid.GridView : G extends RealGrid.TreeView ? RealGrid.TreeView : any;
declare interface IComponentBase {
children?: ReactNode;
$grid?: RealBaseReact<{}>;
}
declare interface IRealGridBaseProps<G> extends Omit<IComponentBase, '$grid'> {
/**
* DataField생성 여부.
*
* @remarks
* `true`이면 Column생성시 DataField도 생성한다.
*
* @defaultValue `false`
*/
autoGenerateField?: boolean;
/**
* 그리드에 표시할 Data
*/
rows?: RealGrid.DataValues[];
/**
* 그리드가 생성된 이후 호출된다.
*
* @param grid - 그리드 객체
* @returns
*/
onInitialized?: (grid: GridType<G>) => void;
/**
* 그리드가 제거되기 직전에 호출된다.
* @param grid - 그리드 객체
* @returns
*/
onDestroy?: (grid: GridType<G>) => void;
/**
* 행 스타일 변경을 위한 콜백
*/
rowStyleCallback?: RealGrid.RowStyleCallback;
/**
* 셀 스타일 변경을 위한 콜백
*/
cellStyleCallback?: RealGrid.CellStyleCallback;
/**
* RGDataColumn이 변경되었을때 호출되는 콜백
*/
onRGDataColumnsChanged?: (grid: GridType<G>) => void;
gridProps?: RealGrid.GridOptions;
layout?: (string | Exclude<RealGrid.CellLayoutGroupItem, Function> | RealGrid.CellLayoutColumnItem)[];
onCurrentChanging?: (grid: GridType<G>, oldIndex: RealGrid.CellIndex, newIndex: RealGrid.CellIndex) => boolean;
onCurrentChanged?: (grid: GridType<G>, newIndex: RealGrid.CellIndex) => void;
onCurrentRowChanged?: (grid: GridType<G>, oldRow: number, newRow: number) => void;
onValidateColumn?: (grid: GridType<G>, column: RealGrid.DataColumn, inserting: boolean, value: any, itemIndex: number, dataRow: number) => RealGrid.ValidationError | undefined;
onValidateRow?: (grid: GridType<G>, itemIndex: number, dataRow: number, inserting: boolean, values: any[]) => RealGrid.ValidationError;
onValidationFail?: (grid: GridType<G>, itemIndex: number, column: RealGrid.GridColumn, error: RealGrid.ValidationError) => RealGrid.ValidationError;
onColumnCheckedChanged?: (grid: GridType<G>, column: RealGrid.GridColumn, checked: boolean) => void;
onMenuItemClicked?: (grid: GridType<G>, item: RealGrid.PopupMenuItem, clickData: RealGrid.ClickData) => void;
onContextMenuPopup?: (grid: GridType<G>, x: number, y: number, clickData: RealGrid.ClickData, menu: string, rightClick: boolean) => boolean | string;
onContextMenuItemClicked?: (grid: GridType<G>, item: RealGrid.PopupMenuItem, clickData: RealGrid.ClickData) => void;
onCellButtonClicked?: (grid: GridType<G>, index: RealGrid.CellIndex, column: RealGrid.GridColumn) => void;
onScrollToBottom?: (grid: GridType<G>) => void;
onTopIndexChanged?: (grid: GridType<G>, itemIndex: number) => void;
onTopIndexChanging?: (grid: GridType<G>, currentTop: number, delta: number, focusing: boolean, adjust: boolean) => number;
onLeftPosChanged?: (grid: GridType<G>, pos: number) => void;
onRowsDeleting?: (grid: GridType<G>, rows: number[]) => boolean;
onRowInserting?: (grid: GridType<G>, itemIndex: number, dataRow: number) => boolean;
onSelectionCleared?: (grid: GridType<G>) => void;
onSelectionChanged?: (grid: GridType<G>, selection: Selection) => void;
onSelectionAdded?: (grid: GridType<G>, selection: Selection) => void;
onSelectionEnded?: (grid: GridType<G>, selection: Selection) => void;
onShowEditor?: (grid: GridType<G>, index: RealGrid.CellIndex, props: any, attrs: any) => boolean;
onShowEditCommand?: (grid: GridType<G>, index: RealGrid.CellIndex) => boolean;
onHideEditor?: (grid: GridType<G>, index: RealGrid.CellIndex) => void;
onEditChange?: (grid: GridType<G>, index: RealGrid.CellIndex, value: any) => void;
onGetEditValue?: (grid: GridType<G>, index: RealGrid.CellIndex, editResult: Object) => void | boolean;
onEditCommit?: (grid: GridType<G>, index: RealGrid.CellIndex, oldValue: any, newValue: any) => boolean;
onEditCanceled?: (grid: GridType<G>, index: RealGrid.CellIndex) => void;
onItemEditCanceled?: (grid: GridType<G>, itemIndex: number, state: string) => void;
onItemEditCancel?: (grid: GridType<G>, itemIndex: number, state: string) => boolean;
onEditSearch?: (grid: GridType<G>, index: RealGrid.CellIndex, text: string) => void;
onSearchCellButtonClick?: (grid: GridType<G>, index: RealGrid.CellIndex, text: string) => void;
onCellEdited?: (grid: GridType<G>, itemIndex: number, row: number, field: number) => void;
onEditRowChanged?: (grid: GridType<G>, itemIndex: number, row: number, field: number, oldValue: any, newValue: any) => void;
onEditRowPasted?: (grid: GridType<G>, itemIndex: number, row: number, fields: number[], oldValues: any[], newValues: any[]) => void;
onRowsPasted?: (grid: GridType<G>, items: number[]) => void;
onCellPasting?: (grid: GridType<G>, index: RealGrid.CellIndex, value: any, editResult: RealGrid.EditResult) => boolean;
onItemChecked?: (grid: GridType<G>, itemIndex: number, checked: boolean) => void;
onItemAllChecked?: (grid: GridType<G>, checked: boolean) => void;
onErrorClicked?: (grid: GridType<G>, error: string) => void;
onSorting?: (grid: GridType<G>, fields: number[], directions: string[]) => boolean;
onSortingChanged?: (grid: GridType<G>) => void;
onFiltering?: (grid: GridType<G>) => boolean;
onFilteringChanged?: (grid: GridType<G>, column: RealGrid.GridColumn, filter: RealGrid.ColumnFilter, reset: boolean) => void;
onWheel?: (grid: GridType<G>, event: WheelEvent) => boolean;
onKeyDown?: (grid: GridType<G>, event: KeyboardEvent) => boolean;
onKeyPress?: (grid: GridType<G>, event: KeyboardEvent) => void;
onKeyUp?: (grid: GridType<G>, event: KeyboardEvent) => void;
onShowTooltip?: (grid: GridType<G>, index: RealGrid.CellIndex, value: any) => boolean | string;
onShowHeaderTooltip?: (grid: GridType<G>, column: RealGrid.GridColumn, value: any, layout: RealGrid.CellLayoutItem) => string;
onColumnPropertyChanged?: (grid: GridType<G>, column: RealGrid.GridColumn, property: string, newValue: any, oldValue: any) => void;
onLayoutPropertyChanged?: (grid: GridType<G>, layout: RealGrid.CellLayoutItem, property: string, newValue: any, oldValue: any) => void;
onGridActivated?: (grid: GridType<G>) => void;
onCopy?: (grid: GridType<G>, selection: Selection | Selection[], event: ClipboardEvent) => boolean;
onCut?: (grid: GridType<G>, selection: Selection | Selection[], event: ClipboardEvent) => boolean;
onPaste?: (grid: GridType<G>, index: RealGrid.CellIndex, event: ClipboardEvent) => boolean;
onPasted?: (grid: GridType<G>) => void;
onItemsChecked?: (grid: GridType<G>, items: number[], checked: boolean) => void;
onCellClicked?: (grid: GridType<G>, clickData: RealGrid.ClickData) => void;
onCellDblClicked?: (grid: GridType<G>, clickData: RealGrid.ClickData) => void;
onCellItemClicked?: (grid: GridType<G>, index: RealGrid.CellIndex, clickData: RealGrid.ClickData) => boolean;
onCommandStackChanged?: (grid: GridType<G>, undoable: boolean, redoable: boolean) => void;
onDataLoadComplated?: (grid: GridType<G>) => void;
onLayoutExpanding?: (grid: GridType<G>, layout: RealGrid.CellLayoutGroupItem) => boolean;
onLayoutExpanded?: (grid: GridType<G>, layout: RealGrid.CellLayoutGroupItem) => void;
onLayoutCollapsing?: (grid: GridType<G>, layout: RealGrid.CellLayoutGroupItem) => boolean;
onLayoutCollapsed?: (grid: GridType<G>, layout: RealGrid.CellLayoutGroupItem) => void;
onGridFocusChanged?: (grid: GridType<G>, focused: boolean, event: Event) => void;
dataProps?: RealGrid.DataOptions;
}
declare interface IRealGridCheckBar extends IComponentBase, RealGrid.CheckBar {
}
declare interface IRealGridDataColumn extends RealGrid.DataColumn {
field?: RealGrid.DataField;
}
declare interface IRealGridDataField extends IComponentBase, RealGrid.DataField {
}
declare interface IRealGridFilterPanel extends IComponentBase, RealGrid.FilterPanel {
}
declare interface IRealGridFooter extends IComponentBase, RealGrid.GridFooter {
}
declare interface IRealGridFooters extends IComponentBase, RealGrid.GridFooterCollection {
}
declare interface IRealGridGroupPanel extends IComponentBase, RealGrid.GroupPanel {
}
declare interface IRealGridHeader extends IComponentBase, RealGrid.GridHeader {
}
declare interface IRealGridheaderSummaries extends IComponentBase, RealGrid.HeaderSummaryCollection {
}
declare interface IRealGridHeaderSummary extends IComponentBase, RealGrid.HeaderSummary {
}
declare interface IRealGridLiteralColumn extends IComponentBase, RealGrid.LiteralColumn {
}
declare interface IRealGridRowIndicator extends IComponentBase, RealGrid.RowIndicator {
}
declare interface IRealGridSeriesColumn extends IComponentBase, RealGrid.SeriesColumn {
}
declare interface IRealGridStateBar extends IComponentBase, RealGrid.StateBar {
}
declare interface IRealGridTreeProps extends IRealGridBaseProps<RealGrid.TreeView> {
treeOptions?: RealGrid.TreeOptions;
treeField?: string;
needSorting?: boolean;
childrenField?: string;
iconField?: string;
json?: any;
rowsProp?: string;
childrenProp?: string;
iconProp?: string;
onTreeItemExpanding?: (tree: RealGrid.TreeView, itemIndex: number, rowId: number) => boolean;
onTreeItemExpanded?: (tree: RealGrid.TreeView, itemIndex: number, rowId: number) => void;
onTreeItemCollapsing?: (tree: RealGrid.TreeView, itemIndex: number, rowId: number) => void;
onTreeItemCollapsed?: (tree: RealGrid.TreeView, itemIndex: number, rowId: number) => void;
onTreeItemChanged?: (tree: RealGrid.TreeView, itemIndex: number, rowId: number) => void;
onRowCountChanged?: (provider: RealGrid.LocalTreeDataProvider, newCount: number) => void;
onRowAdding?: (provider: RealGrid.LocalTreeDataProvider, row: number, index: number, child: any) => boolean;
onRowAdded?: (provider: RealGrid.LocalTreeDataProvider, row: number) => void;
onRowsAdded?: (provider: RealGrid.LocalTreeDataProvider, parent: number, rows: number[]) => void;
onRowDeleting?: (provider: RealGrid.LocalTreeDataProvider, row: number) => boolean;
onRowDeleted?: (provider: RealGrid.LocalTreeDataProvider, row: number) => void;
onRowsDeleted?: (provider: RealGrid.LocalTreeDataProvider, rows: number[]) => void;
onRowUpdating?: (provider: RealGrid.LocalTreeDataProvider, row: number, oldValues: RealGrid.RowValues, newValues: RealGrid.RowValues) => boolean;
onRowUpdated?: (provider: RealGrid.LocalTreeDataProvider, row: number) => void;
onRowsUpdating?: (provider: RealGrid.LocalTreeDataProvider, rows: number[]) => boolean;
onRowsUpdated?: (provider: RealGrid.LocalTreeDataProvider, rows: number[]) => void;
onValueChanged?: (provider: RealGrid.LocalTreeDataProvider, row: number, field: number) => void;
onDataChanged?: (provider: RealGrid.LocalTreeDataProvider) => void;
onRowStateChanged?: (provider: RealGrid.LocalTreeDataProvider, row: number) => void;
onRowStatesChanged?: (provider: RealGrid.LocalTreeDataProvider, rows: number[]) => void;
onRowSiblingMoving?: (provider: RealGrid.LocalTreeDataProvider, row: number, offset: number) => boolean;
onRowSiblingMoved?: (provider: RealGrid.LocalTreeDataProvider, row: number, offset: number) => void;
onRowsSiblingMoving?: (provider: RealGrid.LocalTreeDataProvider, rows: number[], offset: number) => boolean;
onRowsSiblingMoved?: (provider: RealGrid.LocalTreeDataProvider, rows: number[], offset: number) => void;
onRowParentChanging?: (provider: RealGrid.LocalTreeDataProvider, row: number, parent: number, index: number) => boolean;
onRowParentChanged?: (provider: RealGrid.LocalTreeDataProvider, row: number, parent: number, index: number) => void;
}
declare interface IRealGridViewProps extends IRealGridBaseProps<RealGrid.GridView> {
gridProps?: RealGrid.ViewOptions;
accessibility?: boolean;
waiOptions?: RealGrid.WaiOptions;
onPageChanging?: (grid: RealGrid.GridView, page: number) => boolean;
onPageChanged?: (grid: RealGrid.GridView, page: number) => void;
onPageCountChanged?: (grid: RealGrid.GridView, pageCount: number) => void;
onGrouping?: (grid: RealGrid.GridView, fields: number[]) => boolean;
onGrouped?: (grid: RealGrid.GridView) => void;
onExpanding?: (grid: RealGrid.GridView, itemIndex: number) => boolean;
onExpanded?: (grid: RealGrid.GridView, itemIndex: number) => void;
onCollapsing?: (grid: RealGrid.GridView, itemIndex: number) => boolean;
onCollapsed?: (grid: RealGrid.GridView, itemIndex: number) => void;
onRowCountChanged?: (provider: RealGrid.LocalDataProvider, newCount: number) => void;
onRowUpdating?: (provider: RealGrid.LocalDataProvider, row: number, oldValues: RealGrid.RowValues, newValues: RealGrid.RowValues) => boolean;
onRowUpdated?: (provider: RealGrid.LocalDataProvider, row: number) => void;
onRowsUpdated?: (provider: RealGrid.LocalDataProvider, row: number, count: number) => void;
onRowListUpdated?: (provider: RealGrid.LocalDataProvider, rows: number[]) => void;
onDataRowInserting?: (provider: RealGrid.LocalDataProvider, row: number, values: RealGrid.DataValues) => boolean;
onRowInserted?: (provider: RealGrid.LocalDataProvider, row: number) => void;
onRowsInserted?: (provider: RealGrid.LocalDataProvider, row: number, count: number) => void;
onRowDeleting?: (provider: RealGrid.LocalDataProvider, row: number) => boolean;
onRowDeleted?: (provider: RealGrid.LocalDataProvider, row: number) => void;
onRowsDeleted?: (provider: RealGrid.LocalDataProvider, rows: number[]) => void;
onRowMoving?: (provider: RealGrid.LocalDataProvider, row: number, newRow: number) => boolean;
onRowMoved?: (provider: RealGrid.LocalDataProvider, row: number, newRow: number) => void;
onRowsMoving?: (provider: RealGrid.LocalDataProvider, row: number, count: number, newRow: number) => boolean;
onRowsMoved?: (provider: RealGrid.LocalDataProvider, row: number, count: number, newRow: number) => void;
onRowListMoving?: (provider: RealGrid.LocalDataProvider, rows: number[], newRow: number) => boolean;
onRowListMoved?: (provider: RealGrid.LocalDataProvider, rows: number[], newRow: number) => void;
onValueChanged?: (provider: RealGrid.LocalDataProvider, row: number, field: number) => void;
onDataChanged?: (provider: RealGrid.LocalDataProvider) => void;
onRowStateChanged?: (provider: RealGrid.LocalDataProvider, row: number) => void;
onRowStatesChanged?: (provider: RealGrid.LocalDataProvider, rows: number[]) => void;
onRowStatesCleared?: (provider: RealGrid.LocalDataProvider) => void;
onRestoreRows?: (provider: RealGrid.LocalDataProvider, rows: number[]) => void;
}
declare abstract class RealBaseReact<G, T = {}> extends default_2.Component<T & Omit<IRealGridBaseProps<G>, '$grid'>> {
protected _gridView: GridType<G> | null;
protected _dataProvider: RealGrid.DataProviderBase | null;
private _mountCBs;
private _mountTimer;
protected _columnsChanged: boolean;
protected gridContainer: default_2.LegacyRef<HTMLDivElement>;
constructor(props: T);
abstract get gridView(): GridType<G>;
abstract get dataProvider(): RealGrid.LocalDataProvider | RealGrid.LocalTreeDataProvider;
protected abstract createObject: () => {
grid: GridType<G>;
dataProvider: RealGrid.DataProviderBase;
props: any;
};
protected abstract beforeDestroy: () => {
props: any;
};
protected getProps(props: T): T;
private $_connectEvents;
private $_executeCallback;
addCallback(callback: Function, type: string): void;
removeCallback(callback: Function): void;
componentDidMount(): void;
componentWillUnmount(): void;
componentDidUpdate(prevProps: IRealGridBaseProps<G>, prevState: Readonly<{}>, snapshot?: any): void;
render(): default_2.ReactNode;
}
export declare class RealGridReact extends RealBaseReact<GridType<RealGrid.GridView>, IRealGridViewProps> {
get gridView(): RealGrid.GridView;
get dataProvider(): RealGrid.LocalDataProvider;
protected createObject: () => {
grid: RealGrid.GridView;
dataProvider: RealGrid.LocalDataProvider;
props: any;
};
protected beforeDestroy: () => {
props: any;
};
componentDidMount(): void;
componentDidUpdate(prevProps: IRealGridViewProps, prevState: Readonly<{
isChildMounted: boolean;
}>, snapshot?: any): void;
}
export declare class RealTreeReact extends RealBaseReact<GridType<RealGrid.TreeView>, IRealGridTreeProps> {
get gridView(): RealGrid.TreeView;
get dataProvider(): RealGrid.LocalTreeDataProvider;
protected createObject: () => {
grid: GridType<RealGrid.TreeView>;
dataProvider: RealGrid.LocalTreeDataProvider;
props: any;
};
protected beforeDestroy: () => {
props: any;
};
componentDidMount(): void;
componentDidUpdate(prevProps: IRealGridTreeProps, prevState: Readonly<{}>, snapshot?: any): void;
}
export declare class RGCheckBar extends ComponentBase<IRealGridCheckBar> {
protected mountCB: () => void;
protected unMountCB: () => void;
}
/**
* DataColumn을 추가한다.
* 그리드의 autoGenerateField속성이 true이면 컬럼과 Field를 동시에 추가한다.
* textField외 dateField등 추가적인 값이 필요하면 field에 필요한 값들을 적어준다.
* field생성후에는 fieldName을 변경하기 위해서는 browser를 refresh해야 한다.
* <RGDataColumn field={{fieldName: "field", dataType: "date", datetimeFormat: "yyyyMMdd"}} .../>
*/
export declare class RGDataColumn extends ComponentBase<IComponentBase & IRealGridDataColumn> implements IRealGridDataColumn {
static readonly CType = "$$RGColumn$$";
fieldName?: string;
mounted?: boolean;
private _column;
protected mountCB: () => void;
protected unMountCB: () => void;
componentDidMount(): void;
componentWillUnmount(): void;
componentDidUpdate(prevProps: Readonly<{
[key in keyof IRealGridDataColumn]: IRealGridDataColumn[key];
}>, prevState: Readonly<{}>, snapshot?: any): void;
}
/**
* DataField를 추가한다.
*
*/
export declare class RGDataField extends ComponentBase<IRealGridDataField> {
private _field;
protected mountCB: () => void;
protected unMountCB: () => void;
}
export declare class RGFilterPanel extends ComponentBase<Exclude<IRealGridFilterPanel, Function>> {
protected mountCB: () => void;
protected unMountCB: () => void;
}
/**
* Footer의 속성을 변경할때 사용한다.
*/
export declare class RGFooter extends ComponentBase<IRealGridFooter> {
protected mountCB: () => void;
protected unMountCB: () => void;
}
/**
* Footer를 여러개 만들때 사용한다.
*/
export declare class RGFooters extends ComponentBase<Exclude<IRealGridFooters, Function>> {
protected mountCB: () => void;
protected unMountCB: () => void;
}
export declare class RGGroupPanel extends ComponentBase<IRealGridGroupPanel> {
protected mountCB: () => void;
protected unMountCB: () => void;
}
export declare class RGHeader extends ComponentBase<IRealGridHeader> {
protected mountCB: () => void;
protected unMountCB: () => void;
}
/**
* 여러개의 headerSummary를 만들때 사용한다.
*/
export declare class RGHeaderSummaries extends ComponentBase<Exclude<IRealGridheaderSummaries, Function>> {
protected mountCB: () => void;
protected unMountCB: () => void;
componentDidMount(): void;
componentWillUnmount(): void;
}
/**
* headerSummary의 속성을 변경한다.
*/
export declare class RGHeaderSummary extends ComponentBase<IRealGridHeaderSummary> {
protected mountCB: () => void;
protected unMountCB: () => void;
}
export declare class RGLiteralColumn extends ComponentBase<IRealGridLiteralColumn> {
static readonly CType = "$$RGColumn$$";
private _column;
protected mountCB: () => void;
protected unMountCB: () => void;
componentDidMount(): void;
componentWillUnmount(): void;
componentDidUpdate(prevProps: Readonly<{
[key in keyof IRealGridLiteralColumn]: IRealGridLiteralColumn[key];
}>, prevState: Readonly<{}>, snapshot?: any): void;
}
export declare class RGRowIndicator extends ComponentBase<IRealGridRowIndicator> {
protected mountCB: () => void;
protected unMountCB: () => void;
}
/**
* SeriesColumn을 추가한다.
*/
export declare class RGSeriesColumn extends ComponentBase<IRealGridSeriesColumn> {
static readonly CType = "$$RGColumn$$";
private _column;
protected mountCB: () => void;
protected unMountCB: () => void;
componentDidMount(): void;
componentWillUnmount(): void;
componentDidUpdate(prevProps: Readonly<{
[key in keyof IRealGridSeriesColumn]: IRealGridSeriesColumn[key];
}>, prevState: Readonly<{}>, snapshot?: any): void;
}
export declare class RGStateBar extends ComponentBase<IRealGridStateBar> {
protected mountCB: () => void;
protected unMountCB: () => void;
}
export { }