UNPKG

@alifd/next

Version:

A configurable component library for web built on React.

204 lines (203 loc) 5.63 kB
import type * as React from 'react'; import { type CommonProps } from '../util'; interface HTMLAttributesWeak extends Omit<React.HTMLAttributes<HTMLElement>, 'onChange' | 'defaultValue'> { } /** * @api */ export type ValueItem = string | number | boolean; /** * @api */ export type CheckboxData = { value: ValueItem; label?: React.ReactNode; disabled?: boolean; [propName: string]: unknown; }; /** * @api Checkbox.Group */ export interface GroupProps extends HTMLAttributesWeak, CommonProps { /** * 自定义类名 * @en Custom className */ className?: string; /** * 自定义内联样式 * @en Custom inline style */ style?: React.CSSProperties; /** * 整体禁用 * @en Entirely disabled */ disabled?: boolean; /** * 可选项列表 * @en Option list * @remarks * 数据项可为 String 或者 Object, 如 `['apple', 'pear', 'orange']` 或者 `[{value: 'apple', label: '苹果',}, {value: 'pear', label: '梨'}, {value: 'orange', label: '橙子'}]` * - * Data item can be String or Object, such as `['apple', 'pear', 'orange']` or `[{value: 'apple', label: 'Apple',}, {value: 'pear', label: 'Pear'}, {value: 'orange', label: 'Orange'}]` */ dataSource?: Array<ValueItem> | Array<CheckboxData>; /** * 被选中的值列表 * @en Selected value list */ value?: ValueItem[] | ValueItem; /** * 默认被选中的值列表 * @en Default selected value list */ defaultValue?: ValueItem[] | ValueItem; /** * name * @en name */ name?: string; /** * 通过子元素方式设置内部 checkbox * @en Set internal checkbox through child elements */ children?: React.ReactNode; /** * 选中值改变时的事件 * @en Selected value change event */ onChange?: (value: ValueItem[], e: React.ChangeEvent<HTMLInputElement>) => void; /** * 子项目的排列方式 * @en Arrangement of subitems * @remarks * hoz: 水平排列 (default), * ver: 垂直排列 * - * hoz: Horizontal arrangement (default), * ver: Vertical arrangement */ direction?: 'hoz' | 'ver'; /** * [废弃] 子项目的排列方式 * @en [Deprecated] Arrangement of subitems * @deprecated Use `direction` instead */ itemDirection?: 'hoz' | 'ver'; /** * 是否为预览态 * @en Is preview * @version 1.19 */ isPreview?: boolean; /** * 预览态模式下渲染的内容 * @en Custom rendering content * @version 1.19 * @param previewed - 预览值 [\{label: '', value:''\},...] - Previewed value [\{label: '', value:''\},...] * @param props - 所有传入的参数 - All props * @returns 定制渲染内容 - Custom rendering content */ renderPreview?: (previewed: { label: string | React.ReactNode; value: string | React.ReactNode; }[], props: object) => React.ReactNode; } export interface GroupState { value: ValueItem[]; } /** * @api Checkbox */ export interface CheckboxProps extends HTMLAttributesWeak, CommonProps { /** * 自定义类名 * @en className */ className?: string; /** * checkbox id, 挂载在 input 上 * @en Checkbox id, mounted on the input */ id?: string; /** * 自定义内联样式 * @en Custom inline style */ style?: React.CSSProperties; /** * 选中状态 * @en Checked status */ checked?: boolean; /** * checkbox 的 value * @en Checkbox value */ value?: ValueItem; /** * name * @en name */ name?: string; /** * 默认选中状态 * @en Default checked status * @defaultValue false */ defaultChecked?: boolean; /** * 禁用 * @en Disabled */ disabled?: boolean; /** * 通过属性配置 label, * @en Label */ label?: React.ReactNode; /** * Checkbox 的中间状态,只会影响到 Checkbox 的样式,并不影响其 checked 属性 * @en Checkbox middle status, only affects the style of Checkbox, and does not affect its checked property */ indeterminate?: boolean; /** * Checkbox 的默认中间态,只会影响到 Checkbox 的样式,并不影响其 checked 属性 * @en Checkbox default middle status, only affects the style of Checkbox, and does not affect its checked property * @defaultValue false */ defaultIndeterminate?: boolean; /** * 状态变化时触发的事件 * @en Status change event */ onChange?: (checked: boolean, e: React.ChangeEvent<HTMLInputElement>) => void; /** * 鼠标进入 enter 事件 * @en Mouse enter event */ onMouseEnter?: (e: React.MouseEvent<HTMLInputElement | HTMLLabelElement>) => void; /** * 鼠标离开 Leave 事件 * @en Mouse leave event */ onMouseLeave?: (e: React.MouseEvent<HTMLInputElement | HTMLLabelElement>) => void; /** * 是否为预览态 * @en Is preview * @defaultValue false * @version 1.19 */ isPreview?: boolean; /** * 预览态模式下渲染的内容 * @en Custom rendering content * @version 1.19 * @param checked - 是否选中 - Is checked * @param props - 所有传入的参数 - All props * @returns 定制渲染内容 - Custom rendering content */ renderPreview?: (checked: boolean, props: CheckboxProps) => React.ReactNode; } export {};