UNPKG

@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
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;