import { ReactElement } from 'react'; import { InputSize } from '../input/types'; import { DropdownProps } from './Dropdown'; import { IconProps } from '../icons/generated'; import { AriaFocusProps } from '../../types/common'; import { Kind } from './DropdownFilterOptions'; import { DropdownFilterGroupOption, DropdownFilterOption } from './types'; export interface DropdownFilterProps extends Omit, 'options' | 'renderLabel' | 'placeholder' | 'value' | 'onChange' | 'optionsMatchRefWidth'> { value?: OptionValue[]; label: string; /** @default 'medium' */ size?: InputSize; /** * DropDownFilter 초기값 * 초기화시, DefaultValues가 있을 경우 DefaultValues를 사용하고, 없을 경우 빈 배열을 사용합니다. */ defaultValues?: OptionValue[]; /** * 옵션을 selection 그룹으로 묶을때 사용합니다. selectionGroup이 있을 경우 options는 무시됩니다. */ selectionGroup?: DropdownFilterGroupOption[]; /** * 각 옵션 값들은 라벨 앞 자동으로 체크박스가 생성되며, 선택된 옵션값은 체크박스로 표시됩니다. */ options?: DropdownFilterOption[]; filterPlaceholder?: string; helperText?: string; /** * 버튼 좌측 영역에 렌더링 될 아이콘 요소 * - Icon 컴포넌트 color props로 컬러를 변경할 수 있습니다. 기본 값은 semantic_colors.content.primary 입니다. * - Icon 컴포넌트 size props로 사이즈를 변경할 수 있습니다. 기본 값은 16입니다. */ startIcon?: ReactElement; /** * 옵션을 필터링하는 필터 옵션 노출 여부 * - 필터 검색 input이 옵션 목록 상단으로 노출되며 입력받은 필터 값에 따라 옵션 목록이 필터링됩니다. * * @default false */ showFilter?: boolean; /** * 옵션 라벨앞 셀렉션 요소 타입 * - radio의 경우 selectionGroup내에서 단일 선택, selectionGroup이 없다면 전체 옵션중 단일 선택만 가능합니다. * * @default 'checkbox' */ kind?: Kind; /** * showFilter true일 경우 필터 검색 방식을 커스텀할 수 있습니다. */ optionFilter?: (inputValue: string, item: DropdownFilterOption, index: number) => boolean; /** * DropdownFilter Option들의 전체 선택 여부 * - showFilter 옵션 또는 selectionGroup이 있을 경우, selectionType이 'radio'일 경우 전체 선택은 무시됩니다. * * @default false */ allCheck?: boolean; /** @default false */ optionsMatchRefWidth?: boolean; onChange?: (value: OptionValue[]) => void; } export declare const DropdownFilter: ({ label, value: valueProp, defaultValues, selectionGroup, options, width, size: sizeProp, startIcon, disabled, status, zIndex, maxHeight, className, filterPlaceholder, optionsMatchRefWidth, autoPlacement: autoPlacementProps, unstableFocusVisible, showFilter, helperText, kind, optionFilter, allCheck, keyExtractor, onChange, }: DropdownFilterProps & AriaFocusProps) => import("@emotion/react/jsx-runtime").JSX.Element;