lumarc-grid
Version:
lumArc Grid는 고성능, 유연하고 프레임워크에 구애받지 않는 데이터 그리드 라이브러리
34 lines • 1.64 kB
TypeScript
import { GridPosition } from './use-grid-keyboard-navigation';
import { GridColumn } from '../types';
export interface EnhancedInteractionAPI {
currentPosition: GridPosition | null;
focusCell: (position: GridPosition) => void;
registerCellRef: (position: GridPosition, ref: HTMLElement | null) => void;
selectedCells: Set<string>;
selectedRange: {
start: GridPosition;
end: GridPosition;
} | null;
isSelecting: boolean;
isCellSelected: (position: GridPosition) => boolean;
clearCellSelection: () => void;
canPaste: boolean;
copySelection: () => Promise<void>;
cutSelection: () => Promise<void>;
paste: (targetPosition: GridPosition) => Promise<void>;
handleCellMouseDown: (position: GridPosition, event: React.MouseEvent) => void;
handleCellMouseEnter: (position: GridPosition, event: React.MouseEvent) => void;
handleCellMouseUp: (event: React.MouseEvent) => void;
handleCellKeyDown: (position: GridPosition, event: React.KeyboardEvent) => void;
handleCellClick: (position: GridPosition, event: React.MouseEvent) => void;
}
interface UseGridInteractionControllerProps<T> {
data: T[];
columns: GridColumn<T>[];
onCellEdit?: (rowIndex: number, field: string, value: any) => void;
onEditStart?: (rowId: string, field: string) => void;
incrementDataVersion: () => void;
}
export declare function useGridInteractionController<T>({ data, columns, onCellEdit, onEditStart, incrementDataVersion, }: UseGridInteractionControllerProps<T>): EnhancedInteractionAPI;
export {};
//# sourceMappingURL=use-grid-interaction-controller.d.ts.map