@paratco/rhf-mui-form
Version:
MUI + React Hook Form Reusable Form Components
186 lines (153 loc) • 7.81 kB
TypeScript
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 { }