256 Commits

Author SHA1 Message Date
826373a133 fix(components): [select] click outside should lose focus (#21702)
* fix(components): [select] click outside should lose focus

* chore: add test
2025-08-11 14:44:03 +08:00
bce22dd10d fix(components): allow null type on empty-values components (#21582)
* fix(components): allow null type on empty-values components

* refactor(hooks): [empty-values]: allow plain null for `value-on-clear`
2025-08-01 12:27:19 +02:00
19842d428d fix(components): [select] ResizeObserver loop completed with undelivered notifications (#21559) 2025-07-31 13:51:09 +02:00
dbbacae7d1 feat(components): [select] support options prop rendering (#21203)
* feat(components): [select] support options prop rendering

* feat(components):[select] format

* feat(components):[select] format

* Update packages/components/select/src/select.vue

Thanks for the guidance!

Co-authored-by: Noblet Ouways <91417411+Dsaquel@users.noreply.github.com>

* Update packages/components/select/src/select.vue

Co-authored-by: Noblet Ouways <91417411+Dsaquel@users.noreply.github.com>

* Merge remote-tracking branch 'upstream/dev' into feat/autocomplete-size

* feat(components): [select] format

* feat(components): [select] Add test case

* feat(components): [select] Add doc

* Update packages/components/select/src/select.ts

Co-authored-by: Noblet Ouways <91417411+Dsaquel@users.noreply.github.com>

* feat(components): [select] Code optimization

* feat(components): [select] Code optimization

* feat(components): [select] format

* feat(components): [select] format

* docs: refact

* refactor: simplify

* chore: useless diff change

* Update shared.ts

* Update message.ts

* Update popper.ts

* Update result.ts

* Update form-item.ts

* Update cascader-panel.test.tsx

* chore: useless change

* Update select.vue

* Update option.vue

* Update select.vue

---------

Co-authored-by: Noblet Ouways <91417411+Dsaquel@users.noreply.github.com>
Co-authored-by: Dsaquel <291874700n@gmail.com>
2025-07-29 09:54:30 +08:00
7ec0f3a442 feat(components): [cascader] add checkOnClickNode and prefix prop (#21089)
* feat(components): [cascader] Hide radio in single mode

* feat(components): [cascader] Renamed prop to \`selectOnClick\`

* feat(components): [cascader] Update doc

* feat(components): [cascader] Adjust how data is fetched

* feat(components): [cascader] update type

* Update packages/components/cascader-panel/src/node-content.ts

Co-authored-by: Noblet Ouways <91417411+Dsaquel@users.noreply.github.com>

* feat(components): [cascader] Merge and fix v-model bug

* feat(components): [cascader] Renamed to checkOnClickNode

* feat(components): [cascader] Renamed to checkOnClickNode

* feat(components): [cascader] merge

* feat(components): [cascader] Add a check

* feat(components): [cascader] Add test case

* feat(components): [cascader] Fix type error

* feat(components): [cascader] Add checkOnClickNode, showRadio props

* feat(components): [cascader] Update doc

* Update packages/components/cascader/src/cascader.ts

Done, thanks!

Co-authored-by: btea <2356281422@qq.com>

* fix: showRadio defaults checkOnClickNode

* test: showRadio fallback behavior

* refactor: rename prop and support checkOnClickNode for multiple mode

* doc:update

* Update packages/components/cascader-panel/src/config.ts

Co-authored-by: Noblet Ouways <91417411+Dsaquel@users.noreply.github.com>

* docs: tweak props

* docs: update doc

* chore: update doc & fix toggle check

* Update docs/en-US/component/cascader.md

Co-authored-by: btea <2356281422@qq.com>

* Update docs/en-US/component/cascader.md

Co-authored-by: btea <2356281422@qq.com>

* Update docs/en-US/component/cascader.md

Co-authored-by: btea <2356281422@qq.com>

* Update cascader-panel.test.tsx

---------

Co-authored-by: WANGXIAOYU1995 <109521682+WANGXIAOYU1995@users.noreply.github.com>
Co-authored-by: Noblet Ouways <91417411+Dsaquel@users.noreply.github.com>
Co-authored-by: btea <2356281422@qq.com>
Co-authored-by: Dsaquel <291874700n@gmail.com>
2025-07-22 17:23:20 +08:00
a5582a78f3 fix(components): [option] delete newly created option (#21324)
*fix(components): [option] delete newly created option

* Update option.vue
2025-07-14 09:55:11 +08:00
ed29cf0dfb docs: fix examples & type consistency (#21333)
* docs(components): [select] fix consistency

* chore: remove all `:height="208"`
2025-07-14 09:42:58 +08:00
173c1cbfd7 fix(components): [select] custom warnHeandler cause memory leak (#21284) 2025-07-09 10:50:28 +02:00
cfc661c626 feat(types): [components] add public prop types (#21222)
* feat(types): [utils] add ExtractPublicPropTypes type

* feat(types): [components] add props public type

* chore(types): use type-only import for Prop from 'vue'

Co-authored-by: Noblet Ouways <91417411+Dsaquel@users.noreply.github.com>

---------

Co-authored-by: Noblet Ouways <91417411+Dsaquel@users.noreply.github.com>
2025-07-07 00:51:32 +08:00
1e28b08bcb fix(components): [select/select-v2] apply popper-class to tag tooltip (#21212) 2025-07-02 17:15:42 +08:00
b881ef25cb refactor(hooks): [useFocusController] add disabled attribute (#21032)
refactor(hooks): [useFocusController] add disabled prop

Co-authored-by: warmthsea <2586244885@qq.com>
2025-07-01 08:41:35 +00:00
4f8cca0f6c feat(components): [select/select-v2/cascader] expose more tag options (#21157)
* feat(components): [select/select-v2] bind `data` for tag slot

* chore: remove console.log

* feat: expose `deleteTag` aswell

---------

Co-authored-by: warmthsea <2586244885@qq.com>
2025-06-29 13:17:20 +00:00
524f901045 feat(components): [select] expose selectDisabled prop to #tag slot (#21093)
* feat(components): [select] expose selectDisabled prop to #tag slot

* feat(components): [select] expose selectDisabled and update docs

* feat(components): [select-v2] expose selectDisabled to #tag slot

Add example demonstrating how to use selectDisabled in custom tag rendering.

* docs(components): [select, select-v2] add selectDisabled to #tag slot

* docs(components): [select, select-v2] remove tag-disabled.vue examples

---------

Co-authored-by: baozhangjie <jay.bao@photonpay.com>
2025-06-29 20:59:04 +08:00
880de62fee fix(components): [tree-select] value label rendering error (#20947)
* fix(components): [tree-select] value label rendering error

* Update packages/components/select/src/select.vue

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix: update

* fix: update

* fix: lint

* test: case

* fix: lint

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-06-11 21:37:04 +08:00
6f8e91f771 refactor(components): [select] modify manuallyRenderSlots execute (#20854)
* refactor(components): [select] modify `manuallyRenderSlots` execute

* refactor(components): [select] modify ’manuallyRenderSlots‘ execute

* fix(components): [select] fix render slots attempt when persistent=false

* fix: remove duplicate judgments

---------

Co-authored-by: Dsaquel <291874700n@gmail.com>
Co-authored-by: btea <2356281422@qq.com>
2025-06-06 08:56:35 +08:00
sea
47bf23be53 refactor: [select, select-v2]: unified name & supplement type (#20050)
* chore: update

* chore: update
2025-06-04 17:46:56 +08:00
b31e727edd fix(components): [select] display exception when label is 0 or "" (#20905)
* fix(components): [option] display exception when label is `0` or `""`

* test: add test case
2025-06-03 01:07:37 +00:00
433b622aee refactor: rename test env (#20816) 2025-05-22 16:17:15 +08:00
8ddbb1d85a fix(components): [select] select value label rendering error (#20769)
* fix(components): [select] select value label rendering error

* chore: comment

* fix: update

* fix: update

* feat: manual render

* refactor: immediate watch

* test: update

* test: with multiple
2025-05-21 13:54:59 +08:00
ec6e0c51a5 fix(components): [select] update selection width calculation (#20615)
* fix(components): [select] update selection width calculation

* fix(components): [select-v2] update selection width calculation
2025-05-01 18:23:23 +08:00
5f519a6f25 refactor(components): unify append-to prop type across multiple components (#20501)
* fix(components): [select] update `append-to` prop type

* fix(components): unify `append-to` prop type across multiple components

* docs: update `append-to` prop type
2025-04-22 09:29:19 +08:00
54304c125d fix(components): [select] import scrollbarEmits path error (#20415) 2025-04-15 09:11:56 +08:00
sea
1084071fcf chore(eslint-config): add newline-after-import rules (#20309)
chore: add `newline-after-import` rules
2025-03-31 20:48:10 +08:00
642946e4fd fix(components): [select, select-v2] blur validate not executed (#20232) 2025-03-30 13:59:28 +08:00
38cbfbb0b0 chore: [select] remove @ts-nocheck directive (#19098)
* chore: [select] remove @ts-nocheck directive

* Update packages/components/select/src/option.vue

Co-authored-by: qiang <qw13131wang@gmail.com>

* chore: delete useless type

* Update packages/components/select/src/useSelect.ts

Co-authored-by: qiang <qw13131wang@gmail.com>

* fix: type error

* fix: type error

* chore: use buildProps

* chore: add type

* Update packages/components/select/src/useSelect.ts

Co-authored-by: btea <2356281422@qq.com>

* chore: fix type

* chore: fix type

* chore: fix types

---------

Co-authored-by: warmthsea <2586244885@qq.com>
Co-authored-by: sea <45450994+warmthsea@users.noreply.github.com>
Co-authored-by: qiang <qw13131wang@gmail.com>
Co-authored-by: btea <2356281422@qq.com>
2025-03-29 17:58:52 +08:00
7be4a3765e chore: emits smaller declaration files (#20109)
* Revert "fix(types): packing unexpected types (#19419)"

This reverts commit 13506ffb814d2b1300bf57c06648b6b27281c7c5.

* Revert "chore: add explicit type annoation (#19352)"

* fix(typescript): borken import paths in declaration files

* chore: emits smaller declaration files
2025-03-18 10:08:44 +08:00
f31d3b6d0c fix(components): [select] typed value causes default-first-option to fail (#19806)
* fix(components): [select] default-first-option

* fix(components): [select] watch optionArray ref

* test(components): [select] add default-first-option

* test(components): [select] remove only

* test(components): [select] use remote-method

* fix(components): [select] add condition for optionsArray loop

* fix(components): [select] remove condition for optionsArray loop
2025-03-11 15:24:07 +00:00
4ac22efb0d fix(components): [select] ensure scrollbar syncs when scrolling to selected option (#19636)
* fix: ensure scrollbar syncs when scrolling to selected option

* feat: update scrollbar when drop-down menu is displayed
2025-02-19 21:30:51 +08:00
6dddd4ed54 fix(components): [select] solve memory leak (#19709)
fix(components): solve memory leak

Watching the value of an attribute of an option can lead to a memory leak

closed #19680

Co-authored-by: 张东 <A80784@internet.com>
2025-02-16 10:24:46 +08:00
82aedc86c7 feat(components): [select] add popup-scroll event (#19589)
* feat(components): [select] add popup-scroll event

* Update docs/en-US/component/select.md

Co-authored-by: btea <2356281422@qq.com>

* chore: format

---------

Co-authored-by: btea <2356281422@qq.com>
Co-authored-by: warmthsea <2586244885@qq.com>
2025-01-14 15:54:31 +08:00
Lo
6bc45440f8 feat(components): [select, select-v2] add loading class to validateIcon (#19379)
fix(components): [select, select-v2] add loading class to validateIcon
2025-01-02 18:02:46 +08:00
1ca9d9c3fa fix(components): [select] input width fills the remaining width (#19292)
* fix(components): [select] input width fills the remaining width

closed #17886

* fix: type
2025-01-02 13:41:13 +08:00
2c9d70dc94 feat(components): [select-v2] add fit-input-width prop (#18834)
* feat(components): [select-v2] add `width` prop

* feat(components): [select-v2] change `width` prop to `fit-input-width`

* docs(components): add description

* test(components): [select-v2] fix errors caused by canvas

* chore(components): optimize code and change documents

Co-authored-by: thinkasany <480968828@qq.com>
Co-authored-by: btea <2356281422@qq.com>

* feat: [select-v2] listen for `fit-input-width`

* fix: change the default value of the `fit-input-width` prop

* fix: the width did not change when remote search or creating temporary option

* docs: change document and example code

---------

Co-authored-by: thinkasany <480968828@qq.com>
Co-authored-by: btea <2356281422@qq.com>
2024-12-24 16:39:43 +08:00
21964f6769 chore: add explicit type annoation (#19352)
* chore: add explicit type annoation

* chore: update

* chore: update
2024-12-23 13:15:20 +08:00
85bd36d825 fix(components): [select] resolve 'false' display issue when dropdown hides on search clear (#19244)
fix(components): [select] eliminate 'false' on search clear
2024-12-14 11:16:16 +08:00
c40eeb7551 fix(components): [select] modify the logic of update the watch option (#18931) 2024-12-10 13:53:07 +08:00
be43878d2f fix(components): [select] use option.isDisabled as the source of truth (#19137)
* fix(components): [select] use option.isDisabled as the source of truth

* add one test case
2024-12-05 19:56:02 +08:00
718ffcfb85 chore(components): improve type for popper effect (#17860)
* chore(components): improve type for popper effect

Abort #17758 #17751 #17040 #17030

* chore: use `NonNullable<unknown>` instead of `{}`

* chore(components): extract a common type for popper effect

---------

Co-authored-by: qiang <qw13131wang@gmail.com>
2024-12-05 09:44:47 +08:00
990aa4b768 feat(components): [select] add tabindex attribute (#19034) 2024-11-28 13:54:05 +08:00
976f5e5088 fix(components): [select] change states.filtertedOptionsCount to filteredOptionsCount.value (#19010) 2024-11-26 10:04:02 +08:00
ad2f8507a0 fix(components): [select] the disabled state should render the input tag (#18443)
* fix(components): [select] the disabled state should render the input tag

* fix: sync select
2024-11-22 22:40:47 +08:00
2bef172a07 test(components): fix test cases in select.test.ts (#18969) 2024-11-21 20:30:33 +08:00
sea
300b58c548 fix(components): [select] keep the selected label (#18549)
* fix(components): [select] keep the selected label

* style: op code & fix eslint warn

* fix: update

* feat: update cu
Co-authored-by: dopamine <coderzyou@gmail.com>

* feat: update cu

Co-authored-by: dopamine <coderzyou@gmail.com>

* feat: update cu

Co-authored-by: dopamine <coderzyou@gmail.com>

* update select.test.ts

Co-authored-by: dopamine <coderzyou@gmail.com>

* chore: delete useless code

---------

Co-authored-by: dopamine <coderzyou@gmail.com>
2024-11-17 14:06:44 +08:00
62bade4fda fix(components): [select & select-v2] status-icon is invalid (#18101)
fix(components): [select & select-v2] The check result icon is still displayed when status-icon is false

Co-authored-by: 蓝桥春雪 <yj.wang3@sinitek.com>
2024-11-12 20:17:29 +08:00
sea
84f5d6f13a fix(components): [select] getValueIndex empty error (#18867)
* fix(components): [select] getValueIndex judgment error

* feat: update
2024-11-12 15:57:27 +08:00
4f04bcd46f feat(components): [select] add offset and show-arrow prop (#18837)
feat: add show-arrow prop to control dropdown arrow visibility
2024-11-11 17:10:48 +08:00
a2ea613317 refactor(components): [select] simplify code (#18810)
* refactor(componetns): [select] simplify code

* apply the suggestion from code review
2024-11-09 08:54:38 +08:00
906141b4d2 improvement: [select] optimize the effect of keyboard switching options (#18773)
* improvement: [select] optimize the effect of keyboard switching options

* fix: apply to select-v2
2024-11-07 21:57:38 +08:00
d59acf696e fix(components): [select] prevent keyboard from deleting disabled option (#18752)
* fix(components): [Select] prevent backspace from delete disabled option

* fix(components): [select] prevent keyboard from deleting disabled option
2024-11-04 15:32:33 +08:00
a6430f5b98 fix(components): [select] error parameters of getValueIndex (#14173)
* fix(components): [select] error arguments of getValueIndex

closed #14139 #18247

* test: fix test

* style(components): [select] optimize code format
2024-10-29 14:43:24 +08:00