UNPKG

@etsoo/materialui

Version:

TypeScript Material-UI Implementation

81 lines (80 loc) 1.85 kB
import { DataTypes, IdDefaultType, LabelDefaultType, ListType } from "@etsoo/shared"; import { FormControlProps } from "@mui/material/FormControl"; import React from "react"; /** * OptionGroup methods ref */ export interface OptionGroupRef { /** * Disable specific items with their ids * @param ids Ids */ disable(ids: unknown[]): void; } /** * OptionGroup props */ export type OptionGroupProps<T extends object, D extends DataTypes.Keys<T>, L extends DataTypes.Keys<T, string>> = Omit<FormControlProps, "defaultValue"> & { /** * Default value */ defaultValue?: T[D] | T[D][]; /** * Get option label function */ getOptionLabel?: (option: T) => string; /** * Id field */ idField?: D; /** * Label */ label?: string; /** * Label field */ labelField?: L; /** * Methods */ mRef?: React.Ref<OptionGroupRef>; /** * Multiple choose item */ multiple?: boolean; /** * Field name */ name: string; /** * On value change handler */ onValueChange?: (value: T[D] | T[D][] | undefined) => void; /** * Array of options. */ options: ReadonlyArray<T>; /** * Is the field read only? */ readOnly?: boolean; /** * Display group of elements in a compact row */ row?: boolean; /** * Item size */ itemSize?: "small" | "medium"; /** * Helper text */ helperText?: React.ReactNode; }; /** * OptionGroup * @param props Props * @returns Component */ export declare function OptionGroup<T extends object = ListType, D extends DataTypes.Keys<T> = IdDefaultType<T>, L extends DataTypes.Keys<T, string> = LabelDefaultType<T>>(props: OptionGroupProps<T, D, L>): import("react/jsx-runtime").JSX.Element;