import * as React from 'react'; import { ReactNode } from 'react'; import { GetInputableProps } from '../Form/Props'; import { GetDatumListProps } from '../Datum/Props'; import { ObjectKey, RegularAttributes } from '../@types/common'; import { SimpleRadioProps } from '../Checkbox/Props'; import { KeygenType, StandardProps } from '../@types/common'; import ListDatum from '../Datum/List'; export interface BaseRadioGroupProps extends StandardProps { /** * @en Form field, used with Form * @cn 表单字段, 配合 Form 使用 */ name?: string; /** * @en You can pass in a set of Radio * @cn 可以传入一组Radio */ children?: ReactNode; /** * @en When it is a string, return d\\[string]. When it is a function, return the result of the function. * @cn 为 string 时,返回 d\\[string]。 为 function 时,返回函数结果 * @default d => d */ renderItem?: ObjectKey | ((data: DataItem, index?: number) => React.ReactNode); /** * @en Key generator * When it is true, the data itself is used as the key equivalent to (d => d) * When it is a function, use its return value. * When it is a string,ues the value of the string.For example, 'id' is the same thing as (d) => d.id. * * @cn 生成每一项key的辅助方法 * 为 true 时,以数据项本身作为key,相当于 (d => d) * 为函数时,使用此函数返回值 * 为string时,使用这个string对应的数据值。如 'id',相当于 (d => d.id) */ keygen: KeygenType; /** * @en The default is horizontal layout and setting the block property can changed it to be vertical layout. * @cn 默认为水平布局,设置 block 属性可以改为垂直布局 */ block?: boolean; /** * @en set button to show button style * @cn 设置 button 属性可以展示为按钮样式 */ button?: boolean | 'outline'; datum: ListDatum; /** * @en the data items * @cn 数据项 * @override any[] */ data?: DataItem[]; /** * @en size * @cn 尺寸 * @override union * @default 'defaule' */ size?: RegularAttributes.Size; /** * @en The callback function for changing value * @cn 值改变回调函数 */ onChange: (value: Value, Data: DataItem) => void; /** * @en In the Form, value is taken over by the Form and the value will be invalid. * @cn 在 Form中,value 会被表单接管,value 无效 * @override any */ value: Value; } /** * @title Radio * @en Radio cannot be used alone. * @cn Radio 不能单独使用 */ export declare type RadioProps = SimpleRadioProps; export declare type GroupDatumArgsType = 'disabled' | 'format' | 'prediction'; export declare type InputRadioGroupPropsWidthDatum = GetDatumListProps, DataItem, Value, GroupDatumArgsType>; export declare type InputRadioGroupPropsWidthInputable = GetInputableProps, Value>; export declare type InputRadioGroupProps = InputRadioGroupPropsWidthInputable; /** * @title Radio.Group */ export declare type RadioGroupProps = Omit, 'filterSameChange'>; export declare class RadioGroup extends React.Component, {}> { render(): JSX.Element; } export declare class Radio extends React.Component { static Group: typeof RadioGroup; render(): JSX.Element; } export declare type RadioType = typeof Radio;