Core 정렬·페이지·가상 행
0.2.0: 이 페이지의 타입과 helper는 루트
comins-table의 React 상태 계약입니다. 중립/core는 별도 타입 계약을 사용합니다. 마이그레이션 가이드에서 import 경로와 셀 정책 차이를 확인합니다.
정렬 모델 설정은 원본 행 순서를 바꾸지 않습니다. 정렬된 인덱스·페이지·가상 행을 조회하거나 sortCominsRows로 기준 배열 자체를 재정렬할 수 있습니다.
긴 구조적 반환 선언은 동일한
CominsTableState<TData>로 표기합니다. 배포 선언과의 양방향 타입 호환성을 검사합니다.
setCominsSortState
섹션 제목: “setCominsSortState”export declare function setCominsSortState<TData>(state: CominsTableState<TData>, sort: CominsSortState | null): CominsTableState<TData>;단일 규칙 또는 null을 sortModel의 한 항목 또는 빈 배열로 변환합니다.
setCominsSortModel
섹션 제목: “setCominsSortModel”export declare function setCominsSortModel<TData>(state: CominsTableState<TData>, sortModel: CominsSortModel): CominsTableState<TData>;앞쪽 규칙부터 우선 적용합니다. sort가 활성화된 컬럼만 허용하며 중복 컬럼 ID·알 수 없는 ID·잘못된 방향은 제거합니다. 같은 정규화 결과면 원래 상태를 반환합니다.
clearCominsSortState
섹션 제목: “clearCominsSortState”export declare function clearCominsSortState<TData>(state: CominsTableState<TData>): CominsTableState<TData>;sortModel을 비우고 sort를 null로 설정합니다. 이미 재정렬한 rows의 과거 순서를 복구하지는 않습니다.
getCominsSortedRowIndexes
섹션 제목: “getCominsSortedRowIndexes”export declare function getCominsSortedRowIndexes<TData>(state: CominsTableState<TData>, sourceIndexes?: readonly number[]): number[];기본 전체 행, 또는 sourceIndexes 부분집합의 정렬 인덱스를 반환합니다. 숫자는 수치 비교, 그 외는 문자열 localeCompare, 사용자 comparator도 사용 가능합니다. 모든 규칙이 같으면 원본 인덱스 순서입니다.
sortCominsRows
섹션 제목: “sortCominsRows”export declare function sortCominsRows<TData>(state: CominsTableState<TData>, sort: CominsSortState | null): CominsTableState<TData>;단일 정렬을 설정하고 rows/rowIds 순서까지 변경합니다. ID 순서가 바뀌면 선택을 초기화합니다.
setCominsPagination
섹션 제목: “setCominsPagination”export declare function setCominsPagination<TData>(state: CominsTableState<TData>, pagination: Partial<CominsPaginationState>): CominsTableState<TData>;전달한 pageIndex/pageSize만 병합합니다. setter에서 정수 검증을 하지 않으므로 유효한 값을 전달하십시오.
getCominsPageRows
섹션 제목: “getCominsPageRows”export declare function getCominsPageRows<TData>(state: CominsTableState<TData>, pagination?: Partial<CominsPaginationState>): NonNullable<TData>[];정렬 후 페이지를 추출합니다. 인자로 현재 pagination을 부분 재정의할 수 있으며 계산 시 음수 pageIndex는 0, pageSize는 최소 1로 제한합니다. 상태를 바꾸지 않습니다.
getCominsVirtualRows
섹션 제목: “getCominsVirtualRows”export declare function getCominsVirtualRows<TData>(state: CominsTableState<TData>, { overscan, rowHeight, scrollTop, viewportHeight }: CominsVirtualRowsOptions): CominsVirtualRows<TData>;전체 로컬 배열을 정렬한 뒤 고정 높이의 표시 범위와 spacer 높이를 계산합니다. overscan 기본 2, rowHeight 최소 1입니다. pagination은 적용하지 않습니다. 서버 Viewport hook이나 자동 높이 엔진과 다른 함수입니다.
CominsSortDirection
섹션 제목: “CominsSortDirection”export type CominsSortDirection = "asc" | "desc";asc는 오름차순, desc는 내림차순입니다.
CominsSortState
섹션 제목: “CominsSortState”export type CominsSortState = { columnId: string; direction: CominsSortDirection;};| 속성 | 동작·기본값 |
|---|---|
columnId |
정렬 가능한 컬럼 ID. |
direction |
asc 또는 desc. |
CominsSortModel
섹션 제목: “CominsSortModel”export type CominsSortModel = readonly CominsSortState[];읽기 전용 정렬 규칙 배열. 먼저 나온 규칙의 우선순위가 높습니다.
CominsPaginationState
섹션 제목: “CominsPaginationState”export type CominsPaginationState = { pageIndex: number; pageSize: number;};| 속성 | 동작·기본값 |
|---|---|
pageIndex |
0부터 시작하는 페이지 번호. |
pageSize |
페이지당 행 수. 양의 정수를 사용합니다. |
CominsVirtualRowsOptions
섹션 제목: “CominsVirtualRowsOptions”export type CominsVirtualRowsOptions = { overscan?: number; rowHeight: number; scrollTop: number; viewportHeight: number;};| 속성 | 동작·기본값 |
|---|---|
overscan |
앞뒤 추가 행 수, 기본 2. 0 이상의 정수를 사용합니다. |
rowHeight |
필수 고정 행 높이(px). |
scrollTop |
필수 세로 스크롤 위치(px). 유효한 데이터 스크롤 범위 내에서 전달합니다. |
viewportHeight |
필수 표시 영역 높이(px). |
CominsVirtualRows
섹션 제목: “CominsVirtualRows”export type CominsVirtualRows<TData> = { bottomSpacerHeight: number; endIndex: number; rows: TData[]; startIndex: number; topSpacerHeight: number; totalHeight: number;};| 속성 | 동작·기본값 |
|---|---|
bottomSpacerHeight |
아래쪽 생략 영역 높이(px). |
endIndex |
정렬된 인덱스 배열의 끝, 미포함. |
rows |
현재 표시할 정렬된 행들. |
startIndex |
정렬된 인덱스 배열의 시작, 포함. |
topSpacerHeight |
위쪽 생략 영역 높이(px). |
totalHeight |
전체 행 수 × 정규화한 행 높이. |