@arteneo/forge
Version:
35 lines (34 loc) • 2.42 kB
TypeScript
import React from "react";
import { FormControlProps, AutocompleteChangeReason, AutocompleteChangeDetails, AutocompleteProps, AutocompleteRenderInputParams } from "@mui/material";
import { FormikValues } from "formik";
import OptionsType from "../../../components/Form/definitions/OptionsType";
import OptionInterface from "../../../components/Form/definitions/OptionInterface";
import FieldPlaceholderInterface from "../../../components/Form/definitions/FieldPlaceholderInterface";
import { SelectValueType, Multiple, DisableClearable, FreeSolo } from "../../../components/Form/definitions/AutocompleteTypes";
type MultiselectAutocompleteProps = AutocompleteProps<OptionInterface, Multiple, DisableClearable, FreeSolo>;
type MultiselectAutocompletePartialProps<T> = {
[P in keyof T]?: T[P];
};
type MultiselectAutocompleteOptionalProps = MultiselectAutocompletePartialProps<MultiselectAutocompleteProps>;
interface MultiselectSpecificProps {
options: OptionsType;
disableTranslateOption?: boolean;
onChange?: (path: string, setFieldValue: (field: string, value: any, shouldValidate?: boolean) => void, value: SelectValueType, onChange: () => void, values: FormikValues, event: React.SyntheticEvent, reason: AutocompleteChangeReason, name: string, details?: AutocompleteChangeDetails<OptionInterface>) => void;
groupBy?: (option: OptionInterface) => string;
disableTranslateGroupBy?: boolean;
renderInput?: (params: MultiselectRenderInputProps) => React.ReactNode;
autocompleteProps?: MultiselectAutocompleteOptionalProps;
formControlProps?: FormControlProps;
}
type MultiselectProps = MultiselectSpecificProps & FieldPlaceholderInterface;
interface MultiselectRenderInputProps extends AutocompleteRenderInputParams {
label?: React.ReactNode;
required: boolean;
placeholder?: string;
onBlur: () => void;
error: boolean;
}
declare const MultiselectRenderInput: (params: MultiselectRenderInputProps) => React.JSX.Element;
declare const Multiselect: ({ options, disableTranslateOption, onChange, groupBy, disableTranslateGroupBy, renderInput, autocompleteProps, formControlProps, validate: fieldValidate, ...field }: MultiselectProps) => React.JSX.Element | null;
export default Multiselect;
export { MultiselectProps, MultiselectSpecificProps, MultiselectRenderInput, MultiselectRenderInputProps, MultiselectAutocompleteProps, MultiselectAutocompleteOptionalProps, };