UNPKG

@alifd/next

Version:

A configurable component library for web built on React.

94 lines (93 loc) 4.89 kB
import React, { Component, type ReactNode } from 'react'; import PropTypes from 'prop-types'; import type { ItemContext, ItemProps } from './types'; export default class Item extends Component<ItemProps> { static displayName: string; static propTypes: { prefix: PropTypes.Requireable<string>; rtl: PropTypes.Requireable<boolean>; label: PropTypes.Requireable<PropTypes.ReactNodeLike>; labelCol: PropTypes.Requireable<object>; wrapperCol: PropTypes.Requireable<object>; help: PropTypes.Requireable<PropTypes.ReactNodeLike>; name: PropTypes.Requireable<string>; extra: PropTypes.Requireable<PropTypes.ReactNodeLike>; validateState: PropTypes.Requireable<string>; hasFeedback: PropTypes.Requireable<boolean>; style: PropTypes.Requireable<object>; id: PropTypes.Requireable<string>; children: PropTypes.Requireable<NonNullable<((...args: any[]) => any) | PropTypes.ReactNodeLike>>; size: PropTypes.Requireable<string>; fullWidth: PropTypes.Requireable<boolean>; labelAlign: PropTypes.Requireable<string>; labelTextAlign: PropTypes.Requireable<string>; className: PropTypes.Requireable<string>; required: PropTypes.Requireable<boolean>; asterisk: PropTypes.Requireable<boolean>; requiredMessage: PropTypes.Requireable<string>; requiredTrigger: PropTypes.Requireable<NonNullable<string | any[] | null | undefined>>; min: PropTypes.Requireable<number>; max: PropTypes.Requireable<number>; minmaxMessage: PropTypes.Requireable<string>; minmaxTrigger: PropTypes.Requireable<NonNullable<string | any[] | null | undefined>>; minLength: PropTypes.Requireable<number>; maxLength: PropTypes.Requireable<number>; minmaxLengthMessage: PropTypes.Requireable<string>; minmaxLengthTrigger: PropTypes.Requireable<NonNullable<string | any[] | null | undefined>>; length: PropTypes.Requireable<number>; lengthMessage: PropTypes.Requireable<string>; lengthTrigger: PropTypes.Requireable<NonNullable<string | any[] | null | undefined>>; pattern: PropTypes.Requireable<any>; patternMessage: PropTypes.Requireable<string>; patternTrigger: PropTypes.Requireable<NonNullable<string | any[] | null | undefined>>; format: PropTypes.Requireable<string>; formatMessage: PropTypes.Requireable<string>; formatTrigger: PropTypes.Requireable<NonNullable<string | any[] | null | undefined>>; validator: PropTypes.Requireable<(...args: any[]) => any>; validatorTrigger: PropTypes.Requireable<NonNullable<string | any[] | null | undefined>>; autoValidate: PropTypes.Requireable<boolean>; device: PropTypes.Requireable<string>; responsive: PropTypes.Requireable<boolean>; colSpan: PropTypes.Requireable<number>; labelWidth: PropTypes.Requireable<NonNullable<string | number | null | undefined>>; isPreview: PropTypes.Requireable<boolean>; renderPreview: PropTypes.Requireable<(...args: any[]) => any>; errorMessageName: PropTypes.Requireable<string>; useLabelForErrorMessage: PropTypes.Requireable<boolean>; preferMarginToDisplayHelp: PropTypes.Requireable<boolean>; colon: PropTypes.Requireable<boolean>; disabled: PropTypes.Requireable<boolean>; valueName: PropTypes.Requireable<string>; }; static defaultProps: { prefix: string; hasFeedback: boolean; labelWidth: number; }; static contextTypes: { _formField: PropTypes.Requireable<object>; _formSize: PropTypes.Requireable<string>; _formDisabled: PropTypes.Requireable<boolean>; _formPreview: PropTypes.Requireable<boolean>; _formFullWidth: PropTypes.Requireable<boolean>; _formLabelForErrorMessage: PropTypes.Requireable<boolean>; _formMarginToDisplayHelp: PropTypes.Requireable<boolean>; }; static _typeMark: string; readonly context: ItemContext; /** * 从子元素里面提取表单组件。TODO: 2.x 中改为只获取一个元素 */ getNames(children: ReactNode): any[]; getHelper(children: ReactNode): React.JSX.Element; getState(children: ReactNode): "warning" | import("@alifd/field").FieldState | undefined; getSize(): "small" | "medium" | "large"; getDisabled(): boolean | undefined; getIsPreview(): boolean | undefined; getFullWidth(): boolean; getLabelForErrorMessage(): string | null; getItemLabel(children: ReactNode): React.JSX.Element | null; getItemWrapper(children: ReactNode): React.JSX.Element; getLabelAlign(labelAlign: ItemProps['labelAlign'], device: ItemProps['device']): "left" | "top" | "inset" | undefined; render(): React.JSX.Element; }