UNPKG

@etsoo/materialui

Version:

TypeScript Material-UI Implementation

81 lines (80 loc) 1.96 kB
import { DataTypes, IdDefaultType, LabelDefaultType } from "@etsoo/shared"; import React from "react"; import { ResponsiveStyleValue } from "./ResponsiveStyleValue"; import { GridSize } from "@mui/material/Grid"; import { SelectChangeEvent } from "@mui/material/Select"; /** * Hierarchy selector props */ export type HiSelectorProps<T extends object, D extends DataTypes.Keys<T> = IdDefaultType<T>, L extends DataTypes.Keys<T, string> = LabelDefaultType<T>> = { /** * Break points */ breakPoints?: ResponsiveStyleValue<GridSize>; /** * Id field */ idField?: D; /** * Error */ error?: boolean; /** * The helper text content. */ helperText?: React.ReactNode; /** * Name, also hidden input field name */ name: string; /** * Label */ label?: string; /** * Labels for each select */ labels?: string[]; /** * Label field */ labelField?: L; /** * Load data callback */ loadData: (parent?: T[D]) => PromiseLike<T[] | null | undefined>; /** * On value change event */ onChange?: (value: unknown) => void; /** * On select change event */ onSelectChange?: (e: SelectChangeEvent<unknown>) => void; /** * Item change callback */ onItemChange?: (option: T | undefined, userAction: boolean) => void; /** * Required */ required?: boolean; /** * Search mode */ search?: boolean; /** * Values */ values?: T[D][]; /** * Variant */ variant?: "outlined" | "standard" | "filled"; }; /** * Hierarchy selector * @param props Prop * @returns Component */ export declare function HiSelector<T extends object, D extends DataTypes.Keys<T> = IdDefaultType<T>, L extends DataTypes.Keys<T, string> = LabelDefaultType<T>>(props: HiSelectorProps<T, D, L>): import("react/jsx-runtime").JSX.Element;