UNPKG

lumarc-grid

Version:

lumArc Grid는 고성능, 유연하고 프레임워크에 구애받지 않는 데이터 그리드 라이브러리

109 lines 4.18 kB
import { GridColumn } from '../types'; interface UseAdvancedGridOptions<T> { initialData: T[]; columns: GridColumn<T>[]; features?: { sorting?: boolean; filtering?: boolean; pagination?: { pageSize?: number; showPageSizeSelector?: boolean; }; editing?: boolean; selection?: boolean; globalSearch?: boolean; }; onRowSelect?: (selectedRows: T[]) => void; onCellEdit?: (rowIndex: number, field: string, value: any) => void; onRowAction?: (action: string, rowData: T, rowIndex: number) => void; } interface ChangeTracker<T> { created: T[]; modified: Array<{ original: T; current: T; changedFields: string[]; }>; deleted: T[]; } interface UseAdvancedGridReturn<T> { data: T[]; processedData: T[]; totalCount: number; filteredCount: number; addRow: (newRow?: Partial<T>) => void; deleteRow: (itemId: string | number) => void; deleteRows: (itemIds: (string | number)[]) => void; updateRow: (itemId: string | number, updates: Partial<T>) => void; updateRows: (updates: { id: string | number; data: Partial<T>; }[]) => void; selectedRows: Set<string>; isAllSelected: boolean; isIndeterminate: boolean; selectRow: (rowId: string, checked: boolean) => void; selectAll: (checked: boolean) => void; clearSelection: () => void; getSelectedData: () => T[]; getSelectedIds: () => (string | number)[]; editingCell: { rowId: string; field: string; } | null; recentlySavedCells: Set<string>; singleClickEdit: boolean; setSingleClickEdit: (enabled: boolean) => void; startEdit: (rowId: string, field: string) => void; cancelEdit: () => void; handleRowAction: (action: string, rowData: T, rowIndex: number) => void; changes: ChangeTracker<T>; hasChanges: boolean; getChanges: () => ChangeTracker<T>; getChangesSummary: () => { created: number; modified: number; deleted: number; }; commitChanges: () => void; resetChanges: () => void; isRowCreated: (itemId: string | number) => boolean; isRowModified: (itemId: string | number) => boolean; isRowDeleted: (itemId: string | number) => boolean; getModifiedFields: (itemId: string | number) => string[]; validationErrors: Record<string, string>; clearValidationError: (rowId: string, field: string) => void; clearAllValidationErrors: () => void; hasValidationErrors: boolean; validateCell: (rowId: string, field: string, value: any, eventType: 'realtime' | 'blur' | 'submit') => string | null; validateRow: (itemId: string | number, eventType: 'submit') => Record<string, string>; handleCellValueChange: (rowId: string, field: string, value: any) => string | null; tableProps: { data: T[]; columns: GridColumn<T>[]; features: any; onRowSelect?: (selectedRows: T[]) => void; onCellEdit?: (rowIndex: number, field: string, value: any) => void; onRowAction?: (action: string, rowData: T, rowIndex: number) => void; editingCell: { rowId: string; field: string; } | null; recentlySavedCells: Set<string>; singleClickEdit: boolean; onEditStart: (rowId: string, field: string) => void; onEditCancel: () => void; onCellEditComplete: (rowId: string, field: string, value: string | number) => void; isRowCreated: (itemId: string | number) => boolean; isRowModified: (itemId: string | number) => boolean; getModifiedFields: (itemId: string | number) => string[]; validationErrors: Record<string, string>; validateCell: (rowId: string, field: string, value: any, eventType: 'realtime' | 'blur' | 'submit') => string | null; onCellValueChange: (rowId: string, field: string, value: any) => string | null; }; } export declare function useGridAPI<T extends { id: string | number; }>(options: UseAdvancedGridOptions<T>): UseAdvancedGridReturn<T>; export {}; //# sourceMappingURL=use-advanced-grid.d.ts.map