@etsoo/materialui
Version:
TypeScript Material-UI Implementation
77 lines (76 loc) • 1.83 kB
TypeScript
import { DataTypes, IdDefaultType, LabelDefaultType, ListType } from "@etsoo/shared";
import { FormControlProps } from "@mui/material/FormControl";
import React from "react";
/**
* OptionGroupFlag methods ref
*/
export interface OptionGroupFlagRef {
/**
* Disable specific items with their ids
* @param ids Ids
*/
disable(ids: number[]): void;
}
/**
* OptionGroupFlag props
*/
export type OptionGroupFlagProps<T extends object, D extends DataTypes.Keys<T, number>, L extends DataTypes.Keys<T, string>> = Omit<FormControlProps, "defaultValue"> & {
/**
* Default value
*/
defaultValue?: T[D] & number;
/**
* Get option label function
*/
getOptionLabel?: (option: T) => string;
/**
* Id field
*/
idField?: D;
/**
* Label
*/
label?: string;
/**
* Label field
*/
labelField?: L;
/**
* Methods
*/
mRef?: React.Ref<OptionGroupFlagRef>;
/**
* Field name
*/
name: string;
/**
* On value change handler
*/
onValueChange?: (value?: T[D] & number) => 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;
};
/**
* OptionGroupFlag
* @param props Props
* @returns Component
*/
export declare function OptionGroupFlag<T extends object = ListType, D extends DataTypes.Keys<T, number> = IdDefaultType<T, number>, L extends DataTypes.Keys<T, string> = LabelDefaultType<T>>(props: OptionGroupFlagProps<T, D, L>): import("react/jsx-runtime").JSX.Element;