import { Theme } from '@emotion/react'; import { SxProps } from '@mui/material'; export interface OptionsProps { label: string | boolean | number; value: string | number; disable?: boolean; } export interface TextFieldInputProps { autoComplete: 'new-password' | 'off'; } export interface FormSectionPropsItem { name: string; label: string; inputType: 'text' | 'password' | 'number' | 'select' | 'autocomplete-select' | 'autocomplete-multi-select' | 'single-select-search' | 'datepicker' | 'datetimepicker' | 'multiselect' | 'select-v2' | 'basic-select' | 'searchable-select' | 'decimal' | 'alpha-numerical' | 'yearpicker' | 'dateRangePicker' | 'monthpicker' | 'monthpicker-multi' | 'multiselect' | 'file' | 'multifile' | 'multifile-with-preview' | 'textarea' | 'phoneNumber' | 'pincode' | 'email' | 'toggleSwitch' | 'rich-text-editor' | 'multiEmail' | 'timepicker' | 'checkbox-group' | 'radio-group' | 'checkbox' | 'custom' | 'input-select' | 'date-range-picker' | 'multiselect-table' | ''; options?: OptionsProps[]; required?: boolean; errorMessage?: string; helperText?: string | React.ReactNode; disable?: boolean; onChangeFn?: (e: string | number | undefined | null | boolean | any, values?: any) => void; onBlurFn?: (e: string | number | undefined | null | boolean | any) => void; onChangeSetFileFn?: (e: File | File[]) => void; showFileCarousel?: boolean; maxLength?: number; autoFocus?: boolean; maxValue?: number; minDate?: string; maxDate?: string; placeholder?: string; minRows?: string | number; maxRows?: string | number; CustomProps?: any; numberOfColumns?: number; monthSpan?: number; variant?: VariantProps; allowSpecialChars?: boolean; allowNumbers?: boolean; allowText?: boolean; allowHyphen?: boolean; InputProps?: TextFieldInputProps; customErrorMessage?: string | null; sx?: SxProps; donotAllowSpace?: boolean; onInputProps?: (e: React.FocusEvent | any) => void; fileType?: 'excel' | 'pdf' | 'all' | 'zip' | 'image' | 'document' | '' | string[]; handleFileError?: (message: string) => void; onCloseMenu?: () => void; doNotAllowPaste?: boolean; removeButtons?: string; selectedFileName?: string; Fonts?: number[]; FontFamily?: any; value1?: string | number | boolean; value2?: string | number | boolean; label1?: string; label2?: string; minTime?: string; maxTime?: string; ampm?: boolean; settings?: FormSectionPropsItem[]; filesize?: number; multiSelectLabelLength?: number; size?: 'extrasmall' | ''; decimalFixedTo?: number; DateFormat?: string; customValidation?: (value: any) => void; FormElement?: React.ReactNode; autoFIll?: boolean; setLoadList?: any; changeValue?: any; api?: string; jwtHeader?: any; searchValue?: any; columns?: { field: string; headerName: string; width?: number; flex?: number; }[]; rows?: any[]; valueField?: string; labelField?: string; headerColor?: string; optionFontSize?: string; isTooltipEnable?: boolean; doNotEnableMultiselectOrder?: boolean; id?: string; className?: string; dataAttr?: any; } export type VariantProps = 'standard' | 'outlined' | ''; export interface FormRenderProps { item: FormSectionPropsItem; register: any; control: any; errors: any; getValues: any; clearErrors: any; setValue: any; watch?: any; variant?: VariantProps; fieldError?: boolean; }