lumarc-grid
Version:
lumArc Grid는 고성능, 유연하고 프레임워크에 구애받지 않는 데이터 그리드 라이브러리
34 lines • 1.13 kB
TypeScript
import { RowManager, RowId } from '../../lib/row-manager';
export interface ChangeTracker<T> {
created: T[];
modified: Array<{
original: T;
current: T;
changedFields: string[];
}>;
deleted: T[];
}
export interface GridChangesOptions<T extends {}> {
rowManager: RowManager<T>;
initialData: T[];
isServerSide: boolean;
}
export interface GridChangesAPI<T> {
changes: ChangeTracker<T>;
hasChanges: boolean;
getChanges: () => ChangeTracker<T>;
getChangesSummary: () => {
created: number;
modified: number;
deleted: number;
};
commitChanges: () => void;
resetChanges: () => void;
isRowCreated: (rowId: RowId) => boolean;
isRowModified: (rowId: RowId) => boolean;
isRowDeleted: (rowId: RowId) => boolean;
getModifiedFields: (rowId: RowId) => string[];
updateChangeTracking: (newData: T[], operation: 'create' | 'update' | 'delete', affectedItems?: T[]) => void;
}
export declare function useGridChanges<T extends {}>(options: GridChangesOptions<T>): GridChangesAPI<T>;
//# sourceMappingURL=use-grid-changes.d.ts.map