@douyinfe/semi-ui
Version:
A modern, comprehensive, flexible design system and UI library. Connect DesignOps & DevOps. Quickly build beautiful React apps. Maintained by Douyin-fe team.
181 lines (180 loc) • 12.5 kB
TypeScript
import React from 'react';
import PropTypes from 'prop-types';
import { BaseFormAdapter } from '@douyinfe/semi-foundation/lib/cjs/form/foundation';
import BaseComponent from '../_base/baseComponent';
import Section from './section';
import Label from './label';
import ErrorMessage from './errorMessage';
import FormInputGroup from './group';
import '@douyinfe/semi-foundation/lib/cjs/form/form.css';
import { BaseFormProps, FormApi } from './interface';
interface BaseFormState {
formId: string;
}
declare class Form<Values extends Record<string, any> = any> extends BaseComponent<BaseFormProps<Values>, BaseFormState> {
static propTypes: {
'aria-label': PropTypes.Requireable<string>;
onSubmit: PropTypes.Requireable<(...args: any[]) => any>;
onSubmitFail: PropTypes.Requireable<(...args: any[]) => any>;
onChange: PropTypes.Requireable<(...args: any[]) => any>;
onReset: PropTypes.Requireable<(...args: any[]) => any>;
onValueChange: PropTypes.Requireable<(...args: any[]) => any>;
autoScrollToError: PropTypes.Requireable<NonNullable<boolean | object>>;
allowEmpty: PropTypes.Requireable<boolean>;
className: PropTypes.Requireable<string>;
component: PropTypes.Requireable<NonNullable<PropTypes.ReactNodeLike | ((...args: any[]) => any)>>;
disabled: PropTypes.Requireable<boolean>;
extraTextPosition: PropTypes.Requireable<string>;
getFormApi: PropTypes.Requireable<(...args: any[]) => any>;
initValues: PropTypes.Requireable<object>;
validateFields: PropTypes.Requireable<(...args: any[]) => any>;
layout: PropTypes.Requireable<string>;
labelPosition: PropTypes.Requireable<string>;
labelWidth: PropTypes.Requireable<NonNullable<string | number>>;
labelAlign: PropTypes.Requireable<string>;
labelCol: PropTypes.Requireable<object>;
render: PropTypes.Requireable<(...args: any[]) => any>;
style: PropTypes.Requireable<object>;
showValidateIcon: PropTypes.Requireable<boolean>;
stopValidateWithError: PropTypes.Requireable<boolean>;
stopPropagation: PropTypes.Requireable<PropTypes.InferProps<{
submit: PropTypes.Requireable<boolean>;
reset: PropTypes.Requireable<boolean>;
}>>;
id: PropTypes.Requireable<string>;
wrapperCol: PropTypes.Requireable<object>;
trigger: PropTypes.Requireable<NonNullable<string | string[]>>;
};
static defaultProps: {
onChange: (...args: any[]) => void;
onSubmitFail: (...args: any[]) => void;
onSubmit: (...args: any[]) => void;
onReset: (...args: any[]) => void;
onValueChange: (...args: any[]) => void;
onErrorChange: (...args: any[]) => void;
layout: string;
labelPosition: string;
allowEmpty: boolean;
autoScrollToError: boolean;
showValidateIcon: boolean;
};
static Input: React.ComponentType<import("utility-types").Subtract<Omit<import("../input").InputProps, "forwardRef"> & React.RefAttributes<HTMLInputElement>, import("./interface").CommonexcludeType> & import("./interface").CommonFieldProps & React.RefAttributes<any>>;
static TextArea: React.ComponentType<import("utility-types").Subtract<Omit<import("../input").TextAreaProps, "forwardRef"> & React.RefAttributes<HTMLTextAreaElement>, import("./interface").CommonexcludeType> & import("./interface").CommonFieldProps & React.RefAttributes<any>>;
static InputNumber: React.ComponentType<import("utility-types").Subtract<import("../inputNumber").InputNumberProps & React.RefAttributes<HTMLInputElement>, import("./interface").CommonexcludeType> & import("./interface").CommonFieldProps & React.RefAttributes<any>>;
static Select: React.ComponentType<import("utility-types").Subtract<{
'aria-describedby'?: string;
'aria-errormessage'?: string;
'aria-invalid'?: boolean | "true" | "false" | "grammar" | "spelling";
'aria-labelledby'?: string;
'aria-required'?: boolean | "true" | "false";
id?: string;
autoFocus?: boolean;
autoClearSearchValue?: boolean;
arrowIcon?: React.ReactNode;
borderless?: boolean;
clearIcon?: React.ReactNode;
defaultValue?: string | number | any[] | Record<string, any>;
value?: string | number | any[] | Record<string, any>;
placeholder?: React.ReactNode;
onChange?: (value: string | number | any[] | Record<string, any>) => void;
multiple?: boolean;
filter?: boolean | ((inpueValue: string, option: import("../select").OptionProps) => boolean);
max?: number;
maxTagCount?: number;
maxHeight?: string | number;
style?: React.CSSProperties;
className?: string;
size?: import("../select").SelectSize;
disabled?: boolean;
emptyContent?: React.ReactNode;
expandRestTagsOnClick?: boolean;
onDropdownVisibleChange?: (visible: boolean) => void;
zIndex?: number;
position?: "left" | "top" | "right" | "bottom" | "topLeft" | "topRight" | "leftTop" | "leftBottom" | "rightTop" | "rightBottom" | "bottomLeft" | "bottomRight" | "leftTopOver" | "rightTopOver" | "leftBottomOver" | "rightBottomOver";
onSearch?: (value: string, event: React.KeyboardEvent<Element> | React.MouseEvent<Element, MouseEvent>) => void;
dropdownClassName?: string;
dropdownStyle?: React.CSSProperties;
dropdownMargin?: number | {
marginLeft: number;
marginTop: number;
marginRight: number;
marginBottom: number;
};
ellipsisTrigger?: boolean;
outerTopSlot?: React.ReactNode;
innerTopSlot?: React.ReactNode;
outerBottomSlot?: React.ReactNode;
innerBottomSlot?: React.ReactNode;
optionList?: import("../select").OptionProps[];
dropdownMatchSelectWidth?: boolean;
loading?: boolean;
defaultOpen?: boolean;
validateStatus?: "default" | "error" | "warning" | "success";
defaultActiveFirstOption?: boolean;
onChangeWithObject?: boolean;
suffix?: React.ReactNode;
searchPosition?: string;
searchPlaceholder?: string;
prefix?: React.ReactNode;
insetLabel?: React.ReactNode;
insetLabelId?: string;
inputProps?: import("utility-types").Subtract<import("../input").InputProps, {
value?: React.ReactText;
onFocus?: (e: React.FocusEvent<HTMLInputElement, Element>) => void;
onChange?: (value: string, e: React.ChangeEvent<HTMLInputElement>) => void;
}>;
showClear?: boolean;
showArrow?: boolean;
renderSelectedItem?: import("../select").RenderSelectedItemFn;
renderCreateItem?: (inputValue: string | number, focus: boolean, style?: React.CSSProperties) => React.ReactNode;
renderOptionItem?: (props: import("../select").optionRenderProps) => React.ReactNode;
onMouseEnter?: (e: React.MouseEvent<Element, MouseEvent>) => any;
onMouseLeave?: (e: React.MouseEvent<Element, MouseEvent>) => any;
clickToHide?: boolean;
onExceed?: (option: import("../select").OptionProps) => void;
onCreate?: (option: import("../select").OptionProps) => void;
remote?: boolean;
onDeselect?: (value: string | number | any[] | Record<string, any>, option: Record<string, any>) => void;
onSelect?: (value: string | number | any[] | Record<string, any>, option: Record<string, any>) => void;
allowCreate?: boolean;
triggerRender?: (props: import("../select").TriggerRenderProps) => React.ReactNode;
onClear?: () => void;
virtualize?: import("../select").virtualListProps;
onFocus?: (e: React.FocusEvent<Element, Element>) => void;
onBlur?: (e: React.FocusEvent<Element, Element>) => void;
onListScroll?: (e: React.UIEvent<HTMLDivElement, UIEvent>) => void;
children?: React.ReactNode;
preventScroll?: boolean;
showRestTagsPopover?: boolean;
restTagsPopoverProps?: import("../popover").PopoverProps;
} & Pick<import("../tooltip").TooltipProps, "stopPropagation" | "motion" | "getPopupContainer" | "spacing" | "mouseEnterDelay" | "autoAdjustOverflow" | "mouseLeaveDelay"> & React.RefAttributes<any> & import("./interface").CommonFieldProps, import("./interface").CommonexcludeType>> & import("./interface").SelectStatic;
static Checkbox: React.ComponentType<import("utility-types").Subtract<import("./interface").CommonFieldProps, import("./interface").RadioCheckboxExcludeProps> & import("../checkbox").CheckboxProps & import("./interface").RCIncludeType>;
static CheckboxGroup: React.ComponentType<import("utility-types").Subtract<import("../checkbox").CheckboxGroupProps, import("./interface").CommonexcludeType> & import("./interface").CommonFieldProps & React.RefAttributes<any>>;
static Radio: React.ComponentType<import("utility-types").Subtract<import("./interface").CommonFieldProps, import("./interface").RadioCheckboxExcludeProps> & import("../radio").RadioProps & import("./interface").RCIncludeType>;
static RadioGroup: React.ComponentType<import("utility-types").Subtract<import("../radio").RadioGroupProps, import("./interface").CommonexcludeType> & import("./interface").CommonFieldProps & React.RefAttributes<any>>;
static DatePicker: React.ComponentType<import("utility-types").Subtract<import("../datePicker").DatePickerProps & React.RefAttributes<import("../datePicker").BaseDatePicker>, import("./interface").CommonexcludeType> & import("./interface").CommonFieldProps & React.RefAttributes<any>>;
static TimePicker: React.ComponentType<import("utility-types").Subtract<import("../timePicker").TimePickerProps, import("./interface").CommonexcludeType> & import("./interface").CommonFieldProps & React.RefAttributes<any>>;
static Switch: React.ComponentType<import("utility-types").Subtract<import("../switch").SwitchProps, import("./interface").CommonexcludeType> & import("./interface").CommonFieldProps & React.RefAttributes<any>>;
static Slider: React.ComponentType<import("utility-types").Subtract<import("../slider").SliderProps, import("./interface").CommonexcludeType> & import("./interface").CommonFieldProps & React.RefAttributes<any>>;
static TreeSelect: React.ComponentType<import("utility-types").Subtract<import("../treeSelect").TreeSelectProps, import("./interface").CommonexcludeType> & import("./interface").CommonFieldProps & React.RefAttributes<any>>;
static Cascader: React.ComponentType<import("utility-types").Subtract<import("../cascader").CascaderProps, import("./interface").CommonexcludeType> & import("./interface").CommonFieldProps & React.RefAttributes<any>>;
static Rating: React.ComponentType<import("utility-types").Subtract<import("../rating").RatingProps, import("./interface").CommonexcludeType> & import("./interface").CommonFieldProps & React.RefAttributes<any>>;
static AutoComplete: React.ComponentType<import("utility-types").Subtract<import("../autoComplete").AutoCompleteProps<import("../autoComplete").AutoCompleteItems>, import("./interface").CommonexcludeType> & import("./interface").CommonFieldProps & React.RefAttributes<any>>;
static Upload: React.ComponentType<import("utility-types").Subtract<import("../upload").UploadProps, import("./interface").CommonexcludeType> & import("./interface").CommonFieldProps & React.RefAttributes<any>>;
static TagInput: React.ComponentType<import("utility-types").Subtract<import("../tagInput").TagInputProps, import("./interface").CommonexcludeType> & import("./interface").CommonFieldProps & React.RefAttributes<any>>;
static Slot: (props: import("./slot").SlotProps) => React.JSX.Element;
static ErrorMessage: typeof ErrorMessage;
static InputGroup: typeof FormInputGroup;
static Label: typeof Label;
static Section: typeof Section;
formApi: FormApi<Values>;
constructor(props: BaseFormProps<Values>);
componentDidMount(): void;
componentWillUnmount(): void;
get adapter(): BaseFormAdapter<BaseFormProps<Values>, BaseFormState, Values>;
get content(): React.ReactNode;
submit(e: React.FormEvent<HTMLFormElement>): void;
reset(e: React.FormEvent<HTMLFormElement>): void;
render(): React.JSX.Element;
}
export default Form;