UNPKG

@paratco/rhf-mui-form

Version:

MUI + React Hook Form Reusable Form Components

186 lines (153 loc) 7.81 kB
import { AutocompleteProps } from '@mui/material'; import { CheckboxProps } from '@mui/material'; import { Control } from 'react-hook-form'; import { DateFieldProps } from '@mui/x-date-pickers'; import { DatePickerProps } from '@mui/x-date-pickers'; import { DateTimeFieldProps } from '@mui/x-date-pickers'; import { DateTimePickerProps } from '@mui/x-date-pickers'; import { FieldValues } from 'react-hook-form'; import { FormLabel } from '@mui/material'; import { Path } from 'react-hook-form'; import { RadioGroupProps } from '@mui/material'; import { ReactElement } from 'react'; import { ReactMaskOpts } from 'react-imask'; import { ReactNode } from 'react'; import { SelectProps } from '@mui/material'; import { SliderProps } from '@mui/material'; import { SwitchProps } from '@mui/material'; import { TextFieldProps } from '@mui/material'; declare interface Category { label: string; value: string; } declare interface OptionItem extends SelectOptionBase { value: string; } declare interface OptionItem_2 { label: string; value: string; disabled?: boolean; } declare interface OptionItem_3 extends SelectOptionBase { value: string; category?: Category; } declare type Props<T extends FieldValues, Value extends OptionItem, Multiple extends boolean, DisableClearable extends boolean, FreeSolo extends boolean> = Omit<AutocompleteProps<Value, Multiple, DisableClearable, FreeSolo>, "name" | "renderInput" | "multiple"> & { readonly name: Path<T>; readonly label: ReactNode; readonly options: OptionItem[]; readonly control?: Control<T>; readonly inputDir?: "ltr" | "rtl"; readonly renderInputProps?: Omit<TextFieldProps, "name">; readonly multiple?: boolean; readonly hasEmptyHelper?: boolean; readonly helperText?: ReactNode; }; declare type Props_10<T extends FieldValues> = Omit<TextFieldProps, "name"> & { readonly name: Path<T>; readonly maskOptions: ReactMaskOpts; readonly control?: Control<T>; readonly inputDir?: "ltr" | "rtl"; readonly isReadOnly?: boolean; readonly hasEmptyHelper?: boolean; }; declare interface Props_11<T extends FieldValues> { readonly name: Path<T>; readonly maskOptions: ReactMaskOpts; readonly control?: Control<T>; readonly label: ReactNode; } declare type Props_12<T extends FieldValues> = Omit<DateFieldProps, "name"> & { readonly name: Path<T>; readonly control?: Control<T>; readonly isReadOnly?: boolean; readonly hasEmptyHelper?: boolean; }; declare type Props_13<T extends FieldValues> = Omit<DateTimeFieldProps, "name"> & { readonly name: Path<T>; readonly control?: Control<T>; readonly isReadOnly?: boolean; readonly hasEmptyHelper?: boolean; }; declare type Props_2<T extends FieldValues> = Omit<CheckboxProps, "name"> & { readonly name: Path<T>; readonly label: ReactNode; readonly control?: Control<T>; readonly helperText?: ReactNode; readonly hasEmptyHelper?: boolean; }; declare type Props_3<T extends FieldValues> = Omit<DatePickerProps, "name"> & { readonly name: Path<T>; readonly control?: Control<T>; readonly isReadOnly?: boolean; readonly hasEmptyHelper?: boolean; }; declare type Props_4<T extends FieldValues> = Omit<DateTimePickerProps, "name"> & { readonly name: Path<T>; readonly control?: Control<T>; readonly isReadOnly?: boolean; readonly hasEmptyHelper?: boolean; }; declare type Props_5<T extends FieldValues> = Omit<RadioGroupProps, "name"> & { readonly name: Path<T>; readonly options: OptionItem_2[]; readonly formLabel?: ReactElement<typeof FormLabel>; readonly control?: Control<T>; readonly helperText?: ReactNode; readonly hasEmptyHelper?: boolean; readonly disabled?: boolean; }; declare type Props_6<T extends FieldValues> = Omit<SelectProps, "name"> & { readonly name: Path<T>; readonly options: OptionItem_3[]; readonly control?: Control<T>; readonly inputDir?: "ltr" | "rtl"; readonly maxHeight?: number; readonly dropDownMaxHeight?: number; readonly categorized?: boolean; readonly uncategorizedText?: string; readonly helperText?: ReactNode; readonly hasEmptyHelper?: boolean; }; declare type Props_7<T extends FieldValues> = Omit<SliderProps, "name"> & { readonly name: Path<T>; readonly label?: ReactNode; readonly control?: Control<T>; readonly helperText?: ReactNode; readonly hasEmptyHelper?: boolean; readonly sliderDir?: "ltr" | "rtl"; readonly disabled?: boolean; }; declare type Props_8<T extends FieldValues> = Omit<SwitchProps, "name"> & { readonly name: Path<T>; readonly label: ReactNode; readonly control?: Control<T>; readonly helperText?: ReactNode; readonly hasEmptyHelper?: boolean; }; declare type Props_9<T extends FieldValues> = Omit<TextFieldProps, "name"> & { readonly name: Path<T>; readonly control?: Control<T>; readonly inputDir?: "ltr" | "rtl"; readonly isReadOnly?: boolean; readonly hasEmptyHelper?: boolean; }; export declare function RHFAutoComplete<T extends FieldValues, Value extends OptionItem = OptionItem, Multiple extends boolean = false, DisableClearable extends boolean = false, FreeSolo extends boolean = false>({ name, label, options, control, inputDir, renderInputProps, multiple, helperText, hasEmptyHelper, disabled, ...props }: Props<T, Value, Multiple, DisableClearable, FreeSolo>): ReactElement; export declare function RHFCheckBox<T extends FieldValues>({ name, label, control, helperText, hasEmptyHelper, disabled, ...props }: Props_2<T>): ReactElement; export declare function RHFDateFieldJalali<T extends FieldValues>({ name, control, isReadOnly, hasEmptyHelper, disabled, ...props }: Props_12<T>): ReactElement; export declare function RHFDatePickerJalali<T extends FieldValues>({ name, control, isReadOnly, hasEmptyHelper, disabled, ...props }: Props_3<T>): ReactElement; export declare function RHFDateTimeFieldJalali<T extends FieldValues>({ name, control, isReadOnly, hasEmptyHelper, disabled, ...props }: Props_13<T>): ReactElement; export declare function RHFDateTimePickerJalali<T extends FieldValues>({ name, control, isReadOnly, hasEmptyHelper, disabled, ...props }: Props_4<T>): ReactElement; export declare function RHFPasswordField<T extends FieldValues>({ name, control, label, maskOptions }: Props_11<T>): ReactElement; export declare function RHFRadioGroup<T extends FieldValues>({ name, options, formLabel, control, helperText, hasEmptyHelper, disabled, ...props }: Props_5<T>): ReactElement; export declare function RHFSelect<T extends FieldValues>({ name, options, control, inputDir, maxHeight, dropDownMaxHeight, categorized, uncategorizedText, helperText, hasEmptyHelper, disabled, ...props }: Props_6<T>): ReactElement; export declare function RHFSlider<T extends FieldValues>({ name, label, control, helperText, hasEmptyHelper, sliderDir, disabled, ...props }: Props_7<T>): ReactElement; export declare function RHFSwitch<T extends FieldValues>({ name, label, control, helperText, hasEmptyHelper, disabled, ...props }: Props_8<T>): ReactElement; export declare function RHFTextField<T extends FieldValues>({ name, control, inputDir, isReadOnly, hasEmptyHelper, disabled, ...props }: Props_9<T>): ReactElement; export declare function RHFTextMasked<T extends FieldValues>({ name, control, maskOptions, inputDir, isReadOnly, disabled, hasEmptyHelper, ...props }: Props_10<T>): ReactElement; declare interface SelectOptionBase { label: string; value: unknown; disabled?: boolean; } export { }