import { ChangeEvent, FocusEvent, ReactElement } from "react"; import { FieldValues, RegisterOptions, UseFormRegister, UseFormSetValue } from "react-hook-form"; import { FormGroupExposedProps } from "./types"; export interface DropdownCustomFieldProps extends FormGroupExposedProps { /** * A id for the field * * @memberof DropdownCustomFieldProps */ id: string; /** * A default value to be displayed by a input field * * @memberof DropdownCustomFieldProps */ defaultValue?: Array; /** * A id that can be used in tests to get the component * * @memberof DropdownCustomFieldProps */ "data-testid"?: string; /** * A custom handler for onChange event * * @memberof DropdownCustomFieldProps */ onChange?: OnChange; /** * A flag that can be used to disable the dropdown, default value is false * * @memberof DropdownCustomFieldProps */ disabled?: boolean; /** * A flag that can be used to enable multiselect mode, default value is false * * @memberof DropdownCustomFieldProps */ multiSelect?: boolean; /** * An array of values to select for * * @memberof DropdownCustomFieldProps */ allValues: Array | undefined; /** * Used for field validation by React Hook Form library it dynamically set the value of a registered field and have the options to validate and update the form state. At the same time, it tries to avoid unnecessary rerender. * * @memberof DropdownCustomFieldProps */ setValue?: UseFormSetValue; /** * This method allows you to register an input or select element and apply validation rules to React Hook Form. Validation rules are all based on the HTML standard and also allow for custom validation methods. * * @memberof DropdownCustomFieldProps */ register?: UseFormRegister; /** * Validation rules that can be passed to the field, they can be pass along with error messages. Rules are described here https://react-hook-form.com/api/useform/register * * @memberof DropdownCustomFieldProps */ validationRules?: RegisterOptions; /** * A custom handler for the onBlur event * * @memberof DropdownCustomFieldProps */ onBlur?: OnBlur; /** * If a value is set, the field is rendered in its invalid state. * * @memberof DropdownCustomFieldProps */ errorMessage?: string; /** * A boolean flag to set a component into invalid state * which means that selected value is breaking validation rules * * @memberof DropdownCustomFieldProps */ isInvalid?: boolean; } type OnChange = (event?: ChangeEvent) => void; type OnBlur = (event: FocusEvent) => void; /** * A custom field that can be used to render a dropdown. * See DropdownCustomFieldProps for prop documentation. * * @returns {ReactElement} A dropdown component. */ export declare const DropdownCustomField: ({ defaultValue, "data-testid": dataTestId, onChange, onBlur, id, disabled, allValues, multiSelect, register, validationRules, setValue, label, tip, errorMessage, helpText, isInvalid, helpAddon, }: DropdownCustomFieldProps) => ReactElement; export {};