콘텐츠로 이동
Data TableAPI Reference

Core 정렬·페이지·가상 행

comins-table@0.2.2React

0.2.0: 이 페이지의 타입과 helper는 루트 comins-table의 React 상태 계약입니다. 중립 /core는 별도 타입 계약을 사용합니다. 마이그레이션 가이드에서 import 경로와 셀 정책 차이를 확인합니다.

정렬 모델 설정은 원본 행 순서를 바꾸지 않습니다. 정렬된 인덱스·페이지·가상 행을 조회하거나 sortCominsRows로 기준 배열 자체를 재정렬할 수 있습니다.

긴 구조적 반환 선언은 동일한 CominsTableState<TData>로 표기합니다. 배포 선언과의 양방향 타입 호환성을 검사합니다.

export declare function setCominsSortState<TData>(state: CominsTableState<TData>, sort: CominsSortState | null): CominsTableState<TData>;

단일 규칙 또는 null을 sortModel의 한 항목 또는 빈 배열로 변환합니다.

export declare function setCominsSortModel<TData>(state: CominsTableState<TData>, sortModel: CominsSortModel): CominsTableState<TData>;

앞쪽 규칙부터 우선 적용합니다. sort가 활성화된 컬럼만 허용하며 중복 컬럼 ID·알 수 없는 ID·잘못된 방향은 제거합니다. 같은 정규화 결과면 원래 상태를 반환합니다.

export declare function clearCominsSortState<TData>(state: CominsTableState<TData>): CominsTableState<TData>;

sortModel을 비우고 sort를 null로 설정합니다. 이미 재정렬한 rows의 과거 순서를 복구하지는 않습니다.

export declare function getCominsSortedRowIndexes<TData>(state: CominsTableState<TData>, sourceIndexes?: readonly number[]): number[];

기본 전체 행, 또는 sourceIndexes 부분집합의 정렬 인덱스를 반환합니다. 숫자는 수치 비교, 그 외는 문자열 localeCompare, 사용자 comparator도 사용 가능합니다. 모든 규칙이 같으면 원본 인덱스 순서입니다.

export declare function sortCominsRows<TData>(state: CominsTableState<TData>, sort: CominsSortState | null): CominsTableState<TData>;

단일 정렬을 설정하고 rows/rowIds 순서까지 변경합니다. ID 순서가 바뀌면 선택을 초기화합니다.

export declare function setCominsPagination<TData>(state: CominsTableState<TData>, pagination: Partial<CominsPaginationState>): CominsTableState<TData>;

전달한 pageIndex/pageSize만 병합합니다. setter에서 정수 검증을 하지 않으므로 유효한 값을 전달하십시오.

export declare function getCominsPageRows<TData>(state: CominsTableState<TData>, pagination?: Partial<CominsPaginationState>): NonNullable<TData>[];

정렬 후 페이지를 추출합니다. 인자로 현재 pagination을 부분 재정의할 수 있으며 계산 시 음수 pageIndex는 0, pageSize는 최소 1로 제한합니다. 상태를 바꾸지 않습니다.

export declare function getCominsVirtualRows<TData>(state: CominsTableState<TData>, { overscan, rowHeight, scrollTop, viewportHeight }: CominsVirtualRowsOptions): CominsVirtualRows<TData>;

전체 로컬 배열을 정렬한 뒤 고정 높이의 표시 범위와 spacer 높이를 계산합니다. overscan 기본 2, rowHeight 최소 1입니다. pagination은 적용하지 않습니다. 서버 Viewport hook이나 자동 높이 엔진과 다른 함수입니다.

export type CominsSortDirection = "asc" | "desc";

asc는 오름차순, desc는 내림차순입니다.

export type CominsSortState = {
columnId: string;
direction: CominsSortDirection;
};
속성 동작·기본값
columnId 정렬 가능한 컬럼 ID.
direction asc 또는 desc.
export type CominsSortModel = readonly CominsSortState[];

읽기 전용 정렬 규칙 배열. 먼저 나온 규칙의 우선순위가 높습니다.

export type CominsPaginationState = {
pageIndex: number;
pageSize: number;
};
속성 동작·기본값
pageIndex 0부터 시작하는 페이지 번호.
pageSize 페이지당 행 수. 양의 정수를 사용합니다.
export type CominsVirtualRowsOptions = {
overscan?: number;
rowHeight: number;
scrollTop: number;
viewportHeight: number;
};
속성 동작·기본값
overscan 앞뒤 추가 행 수, 기본 2. 0 이상의 정수를 사용합니다.
rowHeight 필수 고정 행 높이(px).
scrollTop 필수 세로 스크롤 위치(px). 유효한 데이터 스크롤 범위 내에서 전달합니다.
viewportHeight 필수 표시 영역 높이(px).
export type CominsVirtualRows<TData> = {
bottomSpacerHeight: number;
endIndex: number;
rows: TData[];
startIndex: number;
topSpacerHeight: number;
totalHeight: number;
};
속성 동작·기본값
bottomSpacerHeight 아래쪽 생략 영역 높이(px).
endIndex 정렬된 인덱스 배열의 끝, 미포함.
rows 현재 표시할 정렬된 행들.
startIndex 정렬된 인덱스 배열의 시작, 포함.
topSpacerHeight 위쪽 생략 영역 높이(px).
totalHeight 전체 행 수 × 정규화한 행 높이.