@etsoo/materialui
Version:
TypeScript Material-UI Implementation
81 lines (80 loc) • 1.96 kB
TypeScript
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;