import React, { Component, type ForwardedRef } from 'react'; import EditorWrapper from './cell-editors/wrapper'; import type { FieldCol } from './components/custom-panel/typings'; import type { DataGridLocale } from './locale/locale'; import type { ColType, DataGridProps, DataGridState } from './typings'; import type { IRowNode } from 'ag-grid-community'; import { GridApi, ColumnApi } from 'ag-grid-community'; import 'ag-grid-enterprise'; interface InternaleDataGridProps extends DataGridProps { locale: DataGridLocale; } declare const defaultProps: Partial>; declare const SummaryFlag: unique symbol; declare const IndexColId = "$$index"; declare const EmptyCol: ColType; declare const Editors: { Text: React.ForwardRefExoticComponent & import("..").TextEditorParams & React.RefAttributes>; Date: React.ForwardRefExoticComponent & import("..").DateEditorParams & React.RefAttributes>; Number: React.ForwardRefExoticComponent & import("..").NumberEditorParams & React.RefAttributes>; Select: React.ForwardRefExoticComponent & Pick, "disabled" | "allowClear" | "mode" | "showSearch" | "virtual" | "optionFilterProp" | "options" | "listHeight"> & { fieldNames?: { label: string; value: string; } | undefined; valueByOption?: boolean | undefined; action?: "stop" | "none" | "next" | undefined; } & React.RefAttributes>; Wrapper: typeof EditorWrapper; }; declare function isSummaryRow({ node }: { node?: IRowNode | null; }): boolean; declare class InternalDataGrid> extends Component, DataGridState> { api: GridApi; columnApi: ColumnApi; private selected; private store; private dataSource; private validator; private requestId; private isReady; private mounted; private readyQueue; private emptyRowData; private sideBarDef; private searchRef; private prevFocusedCell; private fields; private fieldSuffix; private customColumnData; constructor(props: InternaleDataGridProps); setField(field: FieldCol): void; getField(id: string): FieldCol | undefined; getFields(): FieldCol[]; deleteField(id: string): void; saveFields(): Promise; resetFields(): void; private getPagination; componentDidUpdate(prevProps: DataGridProps): void; componentWillUnmount(): void; componentDidMount(): Promise; private syncColRender; private syncSelection; private updateSelection; private syncRowData; private getFieldsSummary; private updateColumnDefs; private getFullColumnDef; private getColumnDefs; isClientMode(): boolean; private flushReadyQueue; afterReady(cb: () => void): void; private isPreserveSelected; private updateRowData; private getSummaryRowData; private loadingTiming; /** * * @param flag * @param ignoreClientMode 为了解决明细页面出现2个loading动画的问题,非远程模式加载列定制数据的时候暂定出现表格内部加载动画 */ private loadingChange; private getDataFromServer; pagination(page: number, pageSize: number): void; private init; private NoRowsOverlay; private getMainMenuItems; private getFieldErrMessage; private getRowId; private validateRecord; validate(): Promise; private cellValueChanged; private rowDataUpdated; private cellEditingStop; fetch(page?: number): void; refresh(): void; ready(): boolean; /** * 自行实现stopEditingWhenCellsLoseFocus的效果 * 由于AgGrid使用的是原生的focusout事件不是React的合成事件,导致单元格内使用Modal这样的组件会有诸多不便,所以自行实现这个效果 */ private blurTimer; private handleBlur; private handleFocus; private handleClearSelected; private getMemoizedDefaultColDef; private getMemoizedColumnTypes; private getMemoizedLocaleText; private getMemoizedComponents; private getMemoizedDetailCellParams; private getRowStyle; private cellFocused; /** * 在表格失去焦点后,聚焦失去焦点的单元格 * @returns */ focusPreviousCell(): void; private handleRowClicked; private processCellForClipboard; render(): JSX.Element; } export declare type DataGridRef> = InternalDataGrid; interface DataGridType { >(props: DataGridProps & { ref?: ForwardedRef>; }): ReturnType['render']>; SummaryFlag: typeof SummaryFlag; IndexColId: typeof IndexColId; EmptyCol: typeof EmptyCol; Editors: typeof Editors; isSummaryRow: typeof isSummaryRow; defaultProps: typeof defaultProps; } declare const DataGrid: DataGridType; export default DataGrid;