콘텐츠로 이동
Data TableAPI Reference

셀 가상 목록 옵션

comins-table@0.2.2React

type: "virtual-list"는 한 셀에 여러 항목을 렌더링하며 헤더에는 사용할 수 없습니다. 목록의 선택·확장·검색 상태는 일시적이며 가상 스크롤로 셀이 재생성되면 초기화될 수 있습니다.

props 기본값 동작
itemHeight 28px 목록 항목 높이, 최소 1
limit 5 초기 미리보기 개수, 최소 1
height itemHeight × 5 펼친 목록의 제한된 스크롤 높이; 숫자 또는 CSS 길이
more false true이면 넘친 항목의 …를 확장 버튼으로 표시
searchable false true이며 해당 행만 단독 선택했을 때 검색 표시

More는 먼저 해당 행을 단독 선택한 뒤 목록을 확장합니다. more가 false여도 행을 단독 선택하면 넘친 목록이 가상 스크롤로 전환됩니다. 일반 항목 클릭은 행을 선택하고 Ctrl/Cmd는 토글, Shift는 표시 행 범위 선택입니다. Enter/Space도 같은 선택 규칙을 따릅니다. 검색어는 항목 클릭 이벤트의 value와 다른 의미입니다.

목록의 More를 누른 뒤 검색하십시오. 표시 목록은 바뀌어도 원본 12개 항목은 유지됩니다.

type: "virtual-list";

필수 virtual-list입니다.

items: CominsVirtualListItems<TPayload>;

필수. 항목 배열 또는 셀 payload 함수입니다. value는 목록 내에서 고유하게 유지합니다.

props?: CominsTableComponentProps<TPayload, React.HTMLAttributes<HTMLDivElement> & {
height?: number | string;
itemHeight?: number;
limit?: number;
more?: boolean;
searchable?: boolean;
}>;

div HTML 속성과 위 표의 height/itemHeight/limit/more/searchable 설정입니다. 객체 또는 resolver를 받습니다.

searchFilter?: (payload: CominsVirtualListSearchFilterPayload) => boolean;

기본 검색은 label의 텍스트를 대소문자 무시 포함 검색합니다. 사용자 함수는 item/itemIndex/검색어 value를 받고 boolean을 반환합니다.

onClickItem?: (payload: TPayload & {
event: React.MouseEvent<HTMLButtonElement> | React.KeyboardEvent<HTMLButtonElement>;
item: CominsVirtualListItem;
itemIndex: number;
value: CominsComponentPrimitiveValue;
}) => void;

item/itemIndex/선택한 item.value와 셀 payload를 전달합니다. event는 MouseEvent 또는 KeyboardEvent입니다.

onContextMenuItem?: (payload: TPayload & {
event: React.MouseEvent<HTMLButtonElement>;
item: CominsVirtualListItem;
itemIndex: number;
value: CominsComponentPrimitiveValue;
}) => void;

항목 우클릭 이벤트입니다. 사용자 메뉴를 표시하려면 event.preventDefault()로 브라우저 메뉴를 막습니다.

value: CominsComponentPrimitiveValue;

필수. 항목 식별에 사용하는 string/number/boolean 값입니다.

label: React.ReactNode;

필수. 표시 내용이자 기본 검색 대상입니다. 복잡한 ReactNode는 검색용 텍스트 추출이 제한될 수 있습니다.

data?: TItem;

선택 사항. 항목에 연결할 사용자 데이터입니다. 자동 테이블 편집에 사용하지 않습니다.

disabled?: boolean;

기본 false. 항목 활성화를 막습니다.

searchText?: string;

배포 타입에는 있지만 0.2.0 기본 검색은 이 필드를 읽지 않습니다. 사용하려면 searchFilter에서 item.searchText를 직접 참조합니다.

item: CominsVirtualListItem;

검사할 원본 항목입니다.

itemIndex: number;

필터 전 원본 items 배열 인덱스입니다.

value: string;

현재 검색 input 문자열입니다. item.value와 다릅니다.

export type CominsVirtualListItems<TPayload> = Array<CominsVirtualListItem> | ((payload: TPayload) => Array<CominsVirtualListItem>);

배열 또는 셀 payload를 받는 항목 생성 함수입니다.