import React from "react"; import { FieldGroupProps } from "../FieldGroup"; import { FieldProps } from "../FieldBase"; export interface SelectOptionValue { value: string | undefined; label: string; keys?: string[]; [key: string]: any; } export type RenderSelectOption = (props: T) => React.JSX.Element; export type RenderSelectListPrepend = (context: { updateValue: (option: T) => void; setOpen: (open: boolean) => void; value: string | undefined; query: string; ListItem: React.ComponentType>; }) => React.ReactNode; export interface SelectFieldProps extends Pick, "helperText" | "invalid">, FieldGroupProps { renderOption?: RenderSelectOption; /** * @deprecated Use renderListPrepend instead */ children?: React.ReactNode; /** * 見出し */ label?: string; name?: string; defaultValue?: string; /** * valueの変更は、defaultValueが指定されていないときのみ反映されます。 */ value?: string; disabled?: boolean; style?: React.CSSProperties; id?: string; className?: string; /** * placeholder */ placeholder?: string; /** * selecting data is required */ required?: boolean; options?: T[]; loadOptions?: SelectLoadOptions; disabledInput?: boolean; readOnly?: boolean; /** * SelectFieldのOptionがクリックされた際に発火する関数。 */ onChange?: (value: T["value"], options: T) => void; onFocus?: (e: React.FocusEvent) => void; loading?: boolean; originalInputTestId?: string; pseudoInputTestId?: string; /** * オプションの表示にPortalを利用するかどうかを指定します。 * このpropがtrueの場合、Portalが無効化されます。 * また初期値がtrueであることに注意してください。 * つまり通常、オプションはこのコンポーネントの子要素としてレンダリングされます。 * @default true */ disablePortal?: boolean; /** * 見かけ上のinput要素に対するrefを利用できます。 * 選択された値を取得する場合などは、inputHasValueRefを利用してください。 */ inputRef?: React.Ref; /** * 選択された値を保持しているinput要素に対するrefを利用できます。 * 見えているinput要素にフォーカスしたい場合などは、inputRefを利用してください。 */ inputHasValueRef?: React.Ref; /** * オプションリストの先頭に追加コンテンツを表示する。 * childrenの代替として使用可能で、より柔軟な制御が可能です。 * これを利用する場合、childrenは無視されます。 */ renderListPrepend?: RenderSelectListPrepend; } export declare const filterSelectOptionsByQuery: (options: T[], query: string) => import("./useSearch").WithSearchScore[]; export type SelectLoadOptions = (args: { query: string; options?: T[]; selectedOptions?: T[]; }) => Promise; export declare const SelectField: (props: SelectFieldProps) => import("@emotion/react/jsx-runtime").JSX.Element;