Skip to content

Commit

Permalink
feat(Option): add support for boolean type in option.value (#527)
Browse files Browse the repository at this point in the history
* feat(Option): add support for boolean type in option.value

* chore: update

---------

Co-authored-by: Uyarn <uyarnchen@gmail.com>
  • Loading branch information
msg-fobbit and uyarn authored Jan 19, 2025
1 parent 8cf794d commit 4fd7a29
Show file tree
Hide file tree
Showing 13 changed files with 29 additions and 27 deletions.
Binary file modified db/TDesign.db
Binary file not shown.
4 changes: 2 additions & 2 deletions packages/products/tdesign-react/src/select/select.en-US.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ valueType | String | value | options: value/object | N
onBlur | Function | | Typescript:`(context: { value: SelectValue; e: FocusEvent \| KeyboardEvent }) => void`<br/> | N
onChange | Function | | Typescript:`(value: SelectValue, context: { option?: T, selectedOptions: T[], trigger: SelectValueChangeTrigger; e?: MouseEvent \| KeyboardEvent }) => void`<br/>[see more ts definition](https://github.com/Tencent/tdesign-react/blob/develop/src/select/type.ts)。<br/>`type SelectValueChangeTrigger = 'clear' \| 'tag-remove' \| 'backspace' \| 'check' \| 'uncheck' \| 'default'`<br/> | N
onClear | Function | | Typescript:`(context: { e: MouseEvent }) => void`<br/> | N
onCreate | Function | | Typescript:`(value: string \| number) => void`<br/> | N
onCreate | Function | | Typescript:`(value: string \| number \| boolean) => void`<br/> | N
onEnter | Function | | Typescript:`(context: { inputValue: string; e: KeyboardEvent; value: SelectValue }) => void`<br/> | N
onFocus | Function | | Typescript:`(context: { value: SelectValue; e: FocusEvent \| KeyboardEvent }) => void`<br/> | N
onInputChange | Function | | Typescript:`(value: string, context?: SelectInputValueChangeContext) => void`<br/>[see more ts definition](https://github.com/Tencent/tdesign-react/blob/develop/src/select/type.ts)。<br/>`import { SelectInputValueChangeContext } from '@SelectInput'`<br/> | N
Expand All @@ -77,7 +77,7 @@ content | TNode | - | Typescript:`string \| TNode`。[see more ts definition](
disabled | Boolean | false | \- | N
label | String | - | \- | N
title | String | - | \- | N
value | String / Number | - | \- | N
value | String / Number / Boolean | - | \- | N


### OptionGroup Props
Expand Down
4 changes: 2 additions & 2 deletions packages/products/tdesign-react/src/select/select.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ valueType | String | value | 用于控制选中值的类型。假设数据选项
onBlur | Function | | TS 类型:`(context: { value: SelectValue; e: FocusEvent \| KeyboardEvent }) => void`<br/>输入框失去焦点时触发 | N
onChange | Function | | TS 类型:`(value: SelectValue, context: { option?: T, selectedOptions: T[], trigger: SelectValueChangeTrigger; e?: MouseEvent \| KeyboardEvent }) => void`<br/>选中值变化时触发。`context.trigger` 表示触发变化的来源;`context.selectedOptions` 表示选中值的完整对象,数组长度一定和 `value` 相同;`context.option` 表示当前操作的选项,不一定存在。[详细类型定义](https://github.com/Tencent/tdesign-react/blob/develop/src/select/type.ts)。<br/>`type SelectValueChangeTrigger = 'clear' \| 'tag-remove' \| 'backspace' \| 'check' \| 'uncheck' \| 'default'`<br/> | N
onClear | Function | | TS 类型:`(context: { e: MouseEvent }) => void`<br/>点击清除按钮时触发 | N
onCreate | Function | | TS 类型:`(value: string \| number) => void`<br/>当选择新创建的条目时触发 | N
onCreate | Function | | TS 类型:`(value: string \| number \| boolean) => void`<br/>当选择新创建的条目时触发 | N
onEnter | Function | | TS 类型:`(context: { inputValue: string; e: KeyboardEvent; value: SelectValue }) => void`<br/>回车键按下时触发。`inputValue` 表示输入框的值,`value` 表示选中值 | N
onFocus | Function | | TS 类型:`(context: { value: SelectValue; e: FocusEvent \| KeyboardEvent }) => void`<br/>输入框获得焦点时触发 | N
onInputChange | Function | | TS 类型:`(value: string, context?: SelectInputValueChangeContext) => void`<br/>输入框值发生变化时触发,`context.trigger` 表示触发输入框值变化的来源:文本输入触发、清除按钮触发、失去焦点等。[详细类型定义](https://github.com/Tencent/tdesign-react/blob/develop/src/select/type.ts)。<br/>`import { SelectInputValueChangeContext } from '@SelectInput'`<br/> | N
Expand All @@ -77,7 +77,7 @@ content | TNode | - | 用于定义复杂的选项内容。TS 类型:`string \|
disabled | Boolean | false | 是否禁用该选项 | N
label | String | - | 选项名称 | N
title | String | - | 选项标题,在选项过长时hover选项展示 | N
value | String / Number | - | 选项值 | N
value | String / Number / Boolean | - | 选项值 | N


### OptionGroup Props
Expand Down
4 changes: 2 additions & 2 deletions packages/products/tdesign-react/src/select/type.ts
Original file line number Diff line number Diff line change
Expand Up @@ -240,7 +240,7 @@ export interface TdSelectProps<T extends SelectOption = SelectOption> {
/**
* 当选择新创建的条目时触发
*/
onCreate?: (value: string | number) => void;
onCreate?: (value: string | number | boolean) => void;
/**
* 回车键按下时触发。`inputValue` 表示输入框的值,`value` 表示选中值
*/
Expand Down Expand Up @@ -299,7 +299,7 @@ export interface TdOptionProps {
/**
* 选项值
*/
value?: string | number;
value?: string | number | boolean;
}

export interface TdOptionGroupProps {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,6 @@ export default {
},
/** 选项值 */
value: {
type: [String, Number] as PropType<TdOptionProps['value']>,
type: [String, Number, Boolean] as PropType<TdOptionProps['value']>,
},
};
6 changes: 3 additions & 3 deletions packages/products/tdesign-vue-next/src/select/select.en-US.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ valueType | String | value | options: value/object | N
onBlur | Function | | Typescript:`(context: { value: SelectValue; e: FocusEvent \| KeyboardEvent }) => void`<br/> | N
onChange | Function | | Typescript:`(value: SelectValue, context: { option?: T, selectedOptions: T[], trigger: SelectValueChangeTrigger; e?: MouseEvent \| KeyboardEvent }) => void`<br/>[see more ts definition](https://github.com/Tencent/tdesign-vue-next/tree/develop/src/select/type.ts)。<br/>`type SelectValueChangeTrigger = 'clear' \| 'tag-remove' \| 'backspace' \| 'check' \| 'uncheck' \| 'default'`<br/> | N
onClear | Function | | Typescript:`(context: { e: MouseEvent }) => void`<br/> | N
onCreate | Function | | Typescript:`(value: string \| number) => void`<br/> | N
onCreate | Function | | Typescript:`(value: string \| number \| boolean) => void`<br/> | N
onEnter | Function | | Typescript:`(context: { inputValue: string; e: KeyboardEvent; value: SelectValue }) => void`<br/> | N
onFocus | Function | | Typescript:`(context: { value: SelectValue; e: FocusEvent \| KeyboardEvent }) => void`<br/> | N
onInputChange | Function | | Typescript:`(value: string, context?: SelectInputValueChangeContext) => void`<br/>[see more ts definition](https://github.com/Tencent/tdesign-vue-next/tree/develop/src/select/type.ts)。<br/>`import { SelectInputValueChangeContext } from '@SelectInput'`<br/> | N
Expand All @@ -69,7 +69,7 @@ name | params | description
blur | `(context: { value: SelectValue; e: FocusEvent \| KeyboardEvent })` | \-
change | `(value: SelectValue, context: { option?: T, selectedOptions: T[], trigger: SelectValueChangeTrigger; e?: MouseEvent \| KeyboardEvent })` | [see more ts definition](https://github.com/Tencent/tdesign-vue-next/tree/develop/src/select/type.ts)。<br/>`type SelectValueChangeTrigger = 'clear' \| 'tag-remove' \| 'backspace' \| 'check' \| 'uncheck' \| 'default'`<br/>
clear | `(context: { e: MouseEvent })` | \-
create | `(value: string \| number)` | \-
create | `(value: string \| number \| boolean)` | \-
enter | `(context: { inputValue: string; e: KeyboardEvent; value: SelectValue })` | \-
focus | `(context: { value: SelectValue; e: FocusEvent \| KeyboardEvent })` | \-
input-change | `(value: string, context?: SelectInputValueChangeContext)` | [see more ts definition](https://github.com/Tencent/tdesign-vue-next/tree/develop/src/select/type.ts)。<br/>`import { SelectInputValueChangeContext } from '@SelectInput'`<br/>
Expand All @@ -88,7 +88,7 @@ default | String / Slot / Function | - | Typescript:`string \| TNode`。[see m
disabled | Boolean | false | \- | N
label | String | - | \- | N
title | String | - | \- | N
value | String / Number | - | \- | N
value | String / Number / Boolean | - | \- | N


### OptionGroup Props
Expand Down
6 changes: 3 additions & 3 deletions packages/products/tdesign-vue-next/src/select/select.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ valueType | String | value | 用于控制选中值的类型。假设数据选项
onBlur | Function | | TS 类型:`(context: { value: SelectValue; e: FocusEvent \| KeyboardEvent }) => void`<br/>输入框失去焦点时触发 | N
onChange | Function | | TS 类型:`(value: SelectValue, context: { option?: T, selectedOptions: T[], trigger: SelectValueChangeTrigger; e?: MouseEvent \| KeyboardEvent }) => void`<br/>选中值变化时触发。`context.trigger` 表示触发变化的来源;`context.selectedOptions` 表示选中值的完整对象,数组长度一定和 `value` 相同;`context.option` 表示当前操作的选项,不一定存在。[详细类型定义](https://github.com/Tencent/tdesign-vue-next/tree/develop/src/select/type.ts)。<br/>`type SelectValueChangeTrigger = 'clear' \| 'tag-remove' \| 'backspace' \| 'check' \| 'uncheck' \| 'default'`<br/> | N
onClear | Function | | TS 类型:`(context: { e: MouseEvent }) => void`<br/>点击清除按钮时触发 | N
onCreate | Function | | TS 类型:`(value: string \| number) => void`<br/>当选择新创建的条目时触发 | N
onCreate | Function | | TS 类型:`(value: string \| number \| boolean) => void`<br/>当选择新创建的条目时触发 | N
onEnter | Function | | TS 类型:`(context: { inputValue: string; e: KeyboardEvent; value: SelectValue }) => void`<br/>回车键按下时触发。`inputValue` 表示输入框的值,`value` 表示选中值 | N
onFocus | Function | | TS 类型:`(context: { value: SelectValue; e: FocusEvent \| KeyboardEvent }) => void`<br/>输入框获得焦点时触发 | N
onInputChange | Function | | TS 类型:`(value: string, context?: SelectInputValueChangeContext) => void`<br/>输入框值发生变化时触发,`context.trigger` 表示触发输入框值变化的来源:文本输入触发、清除按钮触发、失去焦点等。[详细类型定义](https://github.com/Tencent/tdesign-vue-next/tree/develop/src/select/type.ts)。<br/>`import { SelectInputValueChangeContext } from '@SelectInput'`<br/> | N
Expand All @@ -69,7 +69,7 @@ onSearch | Function | | TS 类型:`(filterWords: string, context: { e: Keyboa
blur | `(context: { value: SelectValue; e: FocusEvent \| KeyboardEvent })` | 输入框失去焦点时触发
change | `(value: SelectValue, context: { option?: T, selectedOptions: T[], trigger: SelectValueChangeTrigger; e?: MouseEvent \| KeyboardEvent })` | 选中值变化时触发。`context.trigger` 表示触发变化的来源;`context.selectedOptions` 表示选中值的完整对象,数组长度一定和 `value` 相同;`context.option` 表示当前操作的选项,不一定存在。[详细类型定义](https://github.com/Tencent/tdesign-vue-next/tree/develop/src/select/type.ts)。<br/>`type SelectValueChangeTrigger = 'clear' \| 'tag-remove' \| 'backspace' \| 'check' \| 'uncheck' \| 'default'`<br/>
clear | `(context: { e: MouseEvent })` | 点击清除按钮时触发
create | `(value: string \| number)` | 当选择新创建的条目时触发
create | `(value: string \| number \| boolean)` | 当选择新创建的条目时触发
enter | `(context: { inputValue: string; e: KeyboardEvent; value: SelectValue })` | 回车键按下时触发。`inputValue` 表示输入框的值,`value` 表示选中值
focus | `(context: { value: SelectValue; e: FocusEvent \| KeyboardEvent })` | 输入框获得焦点时触发
input-change | `(value: string, context?: SelectInputValueChangeContext)` | 输入框值发生变化时触发,`context.trigger` 表示触发输入框值变化的来源:文本输入触发、清除按钮触发、失去焦点等。[详细类型定义](https://github.com/Tencent/tdesign-vue-next/tree/develop/src/select/type.ts)。<br/>`import { SelectInputValueChangeContext } from '@SelectInput'`<br/>
Expand All @@ -88,7 +88,7 @@ default | String / Slot / Function | - | 用于定义复杂的选项内容。同
disabled | Boolean | false | 是否禁用该选项 | N
label | String | - | 选项名称 | N
title | String | - | 选项标题,在选项过长时hover选项展示 | N
value | String / Number | - | 选项值 | N
value | String / Number / Boolean | - | 选项值 | N


### OptionGroup Props
Expand Down
4 changes: 2 additions & 2 deletions packages/products/tdesign-vue-next/src/select/type.ts
Original file line number Diff line number Diff line change
Expand Up @@ -238,7 +238,7 @@ export interface TdSelectProps<T extends SelectOption = SelectOption> {
/**
* 当选择新创建的条目时触发
*/
onCreate?: (value: string | number) => void;
onCreate?: (value: string | number | boolean) => void;
/**
* 回车键按下时触发。`inputValue` 表示输入框的值,`value` 表示选中值
*/
Expand Down Expand Up @@ -297,7 +297,7 @@ export interface TdOptionProps {
/**
* 选项值
*/
value?: string | number;
value?: string | number | boolean;
}

export interface TdOptionGroupProps {
Expand Down
2 changes: 1 addition & 1 deletion packages/products/tdesign-vue/src/select/option-props.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,6 @@ export default {
},
/** 选项值 */
value: {
type: [String, Number] as PropType<TdOptionProps['value']>,
type: [String, Number, Boolean] as PropType<TdOptionProps['value']>,
},
};
6 changes: 3 additions & 3 deletions packages/products/tdesign-vue/src/select/select.en-US.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ valueType | String | value | options: value/object | N
onBlur | Function | | Typescript:`(context: { value: SelectValue; e: FocusEvent \| KeyboardEvent }) => void`<br/> | N
onChange | Function | | Typescript:`(value: SelectValue, context: { option?: T, selectedOptions: T[], trigger: SelectValueChangeTrigger; e?: MouseEvent \| KeyboardEvent }) => void`<br/>[see more ts definition](https://github.com/Tencent/tdesign-vue/tree/develop/src/select/type.ts)。<br/>`type SelectValueChangeTrigger = 'clear' \| 'tag-remove' \| 'backspace' \| 'check' \| 'uncheck' \| 'default'`<br/> | N
onClear | Function | | Typescript:`(context: { e: MouseEvent }) => void`<br/> | N
onCreate | Function | | Typescript:`(value: string \| number) => void`<br/> | N
onCreate | Function | | Typescript:`(value: string \| number \| boolean) => void`<br/> | N
onEnter | Function | | Typescript:`(context: { inputValue: string; e: KeyboardEvent; value: SelectValue }) => void`<br/> | N
onFocus | Function | | Typescript:`(context: { value: SelectValue; e: FocusEvent \| KeyboardEvent }) => void`<br/> | N
onInputChange | Function | | Typescript:`(value: string, context?: SelectInputValueChangeContext) => void`<br/>[see more ts definition](https://github.com/Tencent/tdesign-vue/tree/develop/src/select/type.ts)。<br/>`import { SelectInputValueChangeContext } from '@SelectInput'`<br/> | N
Expand All @@ -69,7 +69,7 @@ name | params | description
blur | `(context: { value: SelectValue; e: FocusEvent \| KeyboardEvent })` | \-
change | `(value: SelectValue, context: { option?: T, selectedOptions: T[], trigger: SelectValueChangeTrigger; e?: MouseEvent \| KeyboardEvent })` | [see more ts definition](https://github.com/Tencent/tdesign-vue/tree/develop/src/select/type.ts)。<br/>`type SelectValueChangeTrigger = 'clear' \| 'tag-remove' \| 'backspace' \| 'check' \| 'uncheck' \| 'default'`<br/>
clear | `(context: { e: MouseEvent })` | \-
create | `(value: string \| number)` | \-
create | `(value: string \| number \| boolean)` | \-
enter | `(context: { inputValue: string; e: KeyboardEvent; value: SelectValue })` | \-
focus | `(context: { value: SelectValue; e: FocusEvent \| KeyboardEvent })` | \-
input-change | `(value: string, context?: SelectInputValueChangeContext)` | [see more ts definition](https://github.com/Tencent/tdesign-vue/tree/develop/src/select/type.ts)。<br/>`import { SelectInputValueChangeContext } from '@SelectInput'`<br/>
Expand All @@ -88,7 +88,7 @@ default | String / Slot / Function | - | Typescript:`string \| TNode`。[see m
disabled | Boolean | false | \- | N
label | String | - | \- | N
title | String | - | \- | N
value | String / Number | - | \- | N
value | String / Number / Boolean | - | \- | N


### OptionGroup Props
Expand Down
6 changes: 3 additions & 3 deletions packages/products/tdesign-vue/src/select/select.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ valueType | String | value | 用于控制选中值的类型。假设数据选项
onBlur | Function | | TS 类型:`(context: { value: SelectValue; e: FocusEvent \| KeyboardEvent }) => void`<br/>输入框失去焦点时触发 | N
onChange | Function | | TS 类型:`(value: SelectValue, context: { option?: T, selectedOptions: T[], trigger: SelectValueChangeTrigger; e?: MouseEvent \| KeyboardEvent }) => void`<br/>选中值变化时触发。`context.trigger` 表示触发变化的来源;`context.selectedOptions` 表示选中值的完整对象,数组长度一定和 `value` 相同;`context.option` 表示当前操作的选项,不一定存在。[详细类型定义](https://github.com/Tencent/tdesign-vue/tree/develop/src/select/type.ts)。<br/>`type SelectValueChangeTrigger = 'clear' \| 'tag-remove' \| 'backspace' \| 'check' \| 'uncheck' \| 'default'`<br/> | N
onClear | Function | | TS 类型:`(context: { e: MouseEvent }) => void`<br/>点击清除按钮时触发 | N
onCreate | Function | | TS 类型:`(value: string \| number) => void`<br/>当选择新创建的条目时触发 | N
onCreate | Function | | TS 类型:`(value: string \| number \| boolean) => void`<br/>当选择新创建的条目时触发 | N
onEnter | Function | | TS 类型:`(context: { inputValue: string; e: KeyboardEvent; value: SelectValue }) => void`<br/>回车键按下时触发。`inputValue` 表示输入框的值,`value` 表示选中值 | N
onFocus | Function | | TS 类型:`(context: { value: SelectValue; e: FocusEvent \| KeyboardEvent }) => void`<br/>输入框获得焦点时触发 | N
onInputChange | Function | | TS 类型:`(value: string, context?: SelectInputValueChangeContext) => void`<br/>输入框值发生变化时触发,`context.trigger` 表示触发输入框值变化的来源:文本输入触发、清除按钮触发、失去焦点等。[详细类型定义](https://github.com/Tencent/tdesign-vue/tree/develop/src/select/type.ts)。<br/>`import { SelectInputValueChangeContext } from '@SelectInput'`<br/> | N
Expand All @@ -69,7 +69,7 @@ onSearch | Function | | TS 类型:`(filterWords: string, context: { e: Keyboa
blur | `(context: { value: SelectValue; e: FocusEvent \| KeyboardEvent })` | 输入框失去焦点时触发
change | `(value: SelectValue, context: { option?: T, selectedOptions: T[], trigger: SelectValueChangeTrigger; e?: MouseEvent \| KeyboardEvent })` | 选中值变化时触发。`context.trigger` 表示触发变化的来源;`context.selectedOptions` 表示选中值的完整对象,数组长度一定和 `value` 相同;`context.option` 表示当前操作的选项,不一定存在。[详细类型定义](https://github.com/Tencent/tdesign-vue/tree/develop/src/select/type.ts)。<br/>`type SelectValueChangeTrigger = 'clear' \| 'tag-remove' \| 'backspace' \| 'check' \| 'uncheck' \| 'default'`<br/>
clear | `(context: { e: MouseEvent })` | 点击清除按钮时触发
create | `(value: string \| number)` | 当选择新创建的条目时触发
create | `(value: string \| number \| boolean)` | 当选择新创建的条目时触发
enter | `(context: { inputValue: string; e: KeyboardEvent; value: SelectValue })` | 回车键按下时触发。`inputValue` 表示输入框的值,`value` 表示选中值
focus | `(context: { value: SelectValue; e: FocusEvent \| KeyboardEvent })` | 输入框获得焦点时触发
input-change | `(value: string, context?: SelectInputValueChangeContext)` | 输入框值发生变化时触发,`context.trigger` 表示触发输入框值变化的来源:文本输入触发、清除按钮触发、失去焦点等。[详细类型定义](https://github.com/Tencent/tdesign-vue/tree/develop/src/select/type.ts)。<br/>`import { SelectInputValueChangeContext } from '@SelectInput'`<br/>
Expand All @@ -88,7 +88,7 @@ default | String / Slot / Function | - | 用于定义复杂的选项内容。同
disabled | Boolean | false | 是否禁用该选项 | N
label | String | - | 选项名称 | N
title | String | - | 选项标题,在选项过长时hover选项展示 | N
value | String / Number | - | 选项值 | N
value | String / Number / Boolean | - | 选项值 | N


### OptionGroup Props
Expand Down
4 changes: 2 additions & 2 deletions packages/products/tdesign-vue/src/select/type.ts
Original file line number Diff line number Diff line change
Expand Up @@ -234,7 +234,7 @@ export interface TdSelectProps<T extends SelectOption = SelectOption> {
/**
* 当选择新创建的条目时触发
*/
onCreate?: (value: string | number) => void;
onCreate?: (value: string | number | boolean) => void;
/**
* 回车键按下时触发。`inputValue` 表示输入框的值,`value` 表示选中值
*/
Expand Down Expand Up @@ -293,7 +293,7 @@ export interface TdOptionProps {
/**
* 选项值
*/
value?: string | number;
value?: string | number | boolean;
}

export interface TdOptionGroupProps {
Expand Down
Loading

0 comments on commit 4fd7a29

Please sign in to comment.