import { TNode } from '../common'; export interface TdCheckboxProps { /** * 用于标识是否为「全选选项」。单独使用无效,需在 CheckboxGroup 中使用 * @default false */ checkAll?: boolean; /** * 是否选中 * @default false */ checked?: boolean; /** * 是否选中,非受控属性 * @default false */ defaultChecked?: boolean; /** * 是否禁用组件。如果父组件存在 CheckboxGroup,默认值由 CheckboxGroup.disabled 控制。优先级:Checkbox.disabled > CheckboxGroup.disabled > Form.disabled */ disabled?: boolean; /** * 是否为半选 * @default false */ indeterminate?: boolean; /** * 主文案 */ label?: TNode; /** * 多选框内容,同 label */ children?: TNode; /** * 只读状态 * @default false */ readonly?: boolean; /** * 多选框的值 */ value?: string | number | boolean; /** * 是否去除 t-checkbox 的shadowdom,只在group中生效 */ isLightDom?: boolean; /** * 值变化时触发 */ onChange?: (checked: boolean, context: { e: Event; }) => void; } export interface TdCheckboxGroupProps { /** * 是否禁用组件,默认为 false。优先级:Form.disabled < CheckboxGroup.disabled < Checkbox.disabled */ disabled?: boolean; /** * 支持最多选中的数量 */ max?: number; /** * 以配置形式设置子元素。示例1:`['北京', '上海']` ,示例2: `[{ label: '全选', checkAll: true }, { label: '上海', value: 'shanghai' }]`。checkAll 值为 true 表示当前选项为「全选选项」 */ options?: Array; /** * 选中值 * @default [] */ value?: T; /** * 选中值,非受控属性 * @default [] */ defaultValue?: T; /** * 只读状态 * @default false */ readonly?: boolean; /** * 值变化时触发。`context.current` 表示当前变化的数据项,如果是全选则为空;`context.type` 表示引起选中数据变化的是选中或是取消选中,`context.option` 表示当前变化的数据项 */ onChange?: (value: T, context: CheckboxGroupChangeContext) => void; } export type CheckboxOption = string | number | CheckboxOptionObj; export interface CheckboxOptionObj extends TdCheckboxProps { text?: string; } export type CheckboxGroupValue = Array; export interface CheckboxGroupChangeContext { e: Event; current: string | number | boolean; option: CheckboxOption | TdCheckboxProps; type: 'check' | 'uncheck'; }