@element-plus/nightly 0.0.20240410 → 0.0.20240412
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/attributes.json +1 -1
- package/dist/index.css +1 -1
- package/dist/index.full.js +1054 -780
- package/dist/index.full.min.js +22 -22
- package/dist/index.full.min.js.map +1 -1
- package/dist/index.full.min.mjs +18 -18
- package/dist/index.full.min.mjs.map +1 -1
- package/dist/index.full.mjs +1047 -781
- package/dist/locale/af.js +1 -1
- package/dist/locale/af.min.js +1 -1
- package/dist/locale/af.min.mjs +1 -1
- package/dist/locale/af.mjs +1 -1
- package/dist/locale/ar-eg.js +1 -1
- package/dist/locale/ar-eg.min.js +1 -1
- package/dist/locale/ar-eg.min.mjs +1 -1
- package/dist/locale/ar-eg.mjs +1 -1
- package/dist/locale/ar.js +1 -1
- package/dist/locale/ar.min.js +1 -1
- package/dist/locale/ar.min.mjs +1 -1
- package/dist/locale/ar.mjs +1 -1
- package/dist/locale/az.js +1 -1
- package/dist/locale/az.min.js +1 -1
- package/dist/locale/az.min.mjs +1 -1
- package/dist/locale/az.mjs +1 -1
- package/dist/locale/bg.js +1 -1
- package/dist/locale/bg.min.js +1 -1
- package/dist/locale/bg.min.mjs +1 -1
- package/dist/locale/bg.mjs +1 -1
- package/dist/locale/bn.js +1 -1
- package/dist/locale/bn.min.js +1 -1
- package/dist/locale/bn.min.mjs +1 -1
- package/dist/locale/bn.mjs +1 -1
- package/dist/locale/ca.js +1 -1
- package/dist/locale/ca.min.js +1 -1
- package/dist/locale/ca.min.mjs +1 -1
- package/dist/locale/ca.mjs +1 -1
- package/dist/locale/ckb.js +1 -1
- package/dist/locale/ckb.min.js +1 -1
- package/dist/locale/ckb.min.mjs +1 -1
- package/dist/locale/ckb.mjs +1 -1
- package/dist/locale/cs.js +1 -1
- package/dist/locale/cs.min.js +1 -1
- package/dist/locale/cs.min.mjs +1 -1
- package/dist/locale/cs.mjs +1 -1
- package/dist/locale/da.js +1 -1
- package/dist/locale/da.min.js +1 -1
- package/dist/locale/da.min.mjs +1 -1
- package/dist/locale/da.mjs +1 -1
- package/dist/locale/de.js +1 -1
- package/dist/locale/de.min.js +1 -1
- package/dist/locale/de.min.mjs +1 -1
- package/dist/locale/de.mjs +1 -1
- package/dist/locale/el.js +1 -1
- package/dist/locale/el.min.js +1 -1
- package/dist/locale/el.min.mjs +1 -1
- package/dist/locale/el.mjs +1 -1
- package/dist/locale/en.js +1 -1
- package/dist/locale/en.min.js +1 -1
- package/dist/locale/en.min.mjs +1 -1
- package/dist/locale/en.mjs +1 -1
- package/dist/locale/eo.js +1 -1
- package/dist/locale/eo.min.js +1 -1
- package/dist/locale/eo.min.mjs +1 -1
- package/dist/locale/eo.mjs +1 -1
- package/dist/locale/es.js +1 -1
- package/dist/locale/es.min.js +1 -1
- package/dist/locale/es.min.mjs +1 -1
- package/dist/locale/es.mjs +1 -1
- package/dist/locale/et.js +1 -1
- package/dist/locale/et.min.js +1 -1
- package/dist/locale/et.min.mjs +1 -1
- package/dist/locale/et.mjs +1 -1
- package/dist/locale/eu.js +1 -1
- package/dist/locale/eu.min.js +1 -1
- package/dist/locale/eu.min.mjs +1 -1
- package/dist/locale/eu.mjs +1 -1
- package/dist/locale/fa.js +1 -1
- package/dist/locale/fa.min.js +1 -1
- package/dist/locale/fa.min.mjs +1 -1
- package/dist/locale/fa.mjs +1 -1
- package/dist/locale/fi.js +1 -1
- package/dist/locale/fi.min.js +1 -1
- package/dist/locale/fi.min.mjs +1 -1
- package/dist/locale/fi.mjs +1 -1
- package/dist/locale/fr.js +1 -1
- package/dist/locale/fr.min.js +1 -1
- package/dist/locale/fr.min.mjs +1 -1
- package/dist/locale/fr.mjs +1 -1
- package/dist/locale/he.js +1 -1
- package/dist/locale/he.min.js +1 -1
- package/dist/locale/he.min.mjs +1 -1
- package/dist/locale/he.mjs +1 -1
- package/dist/locale/hr.js +1 -1
- package/dist/locale/hr.min.js +1 -1
- package/dist/locale/hr.min.mjs +1 -1
- package/dist/locale/hr.mjs +1 -1
- package/dist/locale/hu.js +1 -1
- package/dist/locale/hu.min.js +1 -1
- package/dist/locale/hu.min.mjs +1 -1
- package/dist/locale/hu.mjs +1 -1
- package/dist/locale/hy-am.js +1 -1
- package/dist/locale/hy-am.min.js +1 -1
- package/dist/locale/hy-am.min.mjs +1 -1
- package/dist/locale/hy-am.mjs +1 -1
- package/dist/locale/id.js +1 -1
- package/dist/locale/id.min.js +1 -1
- package/dist/locale/id.min.mjs +1 -1
- package/dist/locale/id.mjs +1 -1
- package/dist/locale/it.js +1 -1
- package/dist/locale/it.min.js +1 -1
- package/dist/locale/it.min.mjs +1 -1
- package/dist/locale/it.mjs +1 -1
- package/dist/locale/ja.js +1 -1
- package/dist/locale/ja.min.js +1 -1
- package/dist/locale/ja.min.mjs +1 -1
- package/dist/locale/ja.mjs +1 -1
- package/dist/locale/kk.js +1 -1
- package/dist/locale/kk.min.js +1 -1
- package/dist/locale/kk.min.mjs +1 -1
- package/dist/locale/kk.mjs +1 -1
- package/dist/locale/km.js +1 -1
- package/dist/locale/km.min.js +1 -1
- package/dist/locale/km.min.mjs +1 -1
- package/dist/locale/km.mjs +1 -1
- package/dist/locale/ko.js +1 -1
- package/dist/locale/ko.min.js +1 -1
- package/dist/locale/ko.min.mjs +1 -1
- package/dist/locale/ko.mjs +1 -1
- package/dist/locale/ku.js +1 -1
- package/dist/locale/ku.min.js +1 -1
- package/dist/locale/ku.min.mjs +1 -1
- package/dist/locale/ku.mjs +1 -1
- package/dist/locale/ky.js +1 -1
- package/dist/locale/ky.min.js +1 -1
- package/dist/locale/ky.min.mjs +1 -1
- package/dist/locale/ky.mjs +1 -1
- package/dist/locale/lt.js +1 -1
- package/dist/locale/lt.min.js +1 -1
- package/dist/locale/lt.min.mjs +1 -1
- package/dist/locale/lt.mjs +1 -1
- package/dist/locale/lv.js +1 -1
- package/dist/locale/lv.min.js +1 -1
- package/dist/locale/lv.min.mjs +1 -1
- package/dist/locale/lv.mjs +1 -1
- package/dist/locale/mg.js +1 -1
- package/dist/locale/mg.min.js +1 -1
- package/dist/locale/mg.min.mjs +1 -1
- package/dist/locale/mg.mjs +1 -1
- package/dist/locale/mn.js +1 -1
- package/dist/locale/mn.min.js +1 -1
- package/dist/locale/mn.min.mjs +1 -1
- package/dist/locale/mn.mjs +1 -1
- package/dist/locale/nb-no.js +1 -1
- package/dist/locale/nb-no.min.js +1 -1
- package/dist/locale/nb-no.min.mjs +1 -1
- package/dist/locale/nb-no.mjs +1 -1
- package/dist/locale/nl.js +1 -1
- package/dist/locale/nl.min.js +1 -1
- package/dist/locale/nl.min.mjs +1 -1
- package/dist/locale/nl.mjs +1 -1
- package/dist/locale/pa.js +1 -1
- package/dist/locale/pa.min.js +1 -1
- package/dist/locale/pa.min.mjs +1 -1
- package/dist/locale/pa.mjs +1 -1
- package/dist/locale/pl.js +1 -1
- package/dist/locale/pl.min.js +1 -1
- package/dist/locale/pl.min.mjs +1 -1
- package/dist/locale/pl.mjs +1 -1
- package/dist/locale/pt-br.js +1 -1
- package/dist/locale/pt-br.min.js +1 -1
- package/dist/locale/pt-br.min.mjs +1 -1
- package/dist/locale/pt-br.mjs +1 -1
- package/dist/locale/pt.js +1 -1
- package/dist/locale/pt.min.js +1 -1
- package/dist/locale/pt.min.mjs +1 -1
- package/dist/locale/pt.mjs +1 -1
- package/dist/locale/ro.js +1 -1
- package/dist/locale/ro.min.js +1 -1
- package/dist/locale/ro.min.mjs +1 -1
- package/dist/locale/ro.mjs +1 -1
- package/dist/locale/ru.js +1 -1
- package/dist/locale/ru.min.js +1 -1
- package/dist/locale/ru.min.mjs +1 -1
- package/dist/locale/ru.mjs +1 -1
- package/dist/locale/sk.js +1 -1
- package/dist/locale/sk.min.js +1 -1
- package/dist/locale/sk.min.mjs +1 -1
- package/dist/locale/sk.mjs +1 -1
- package/dist/locale/sl.js +1 -1
- package/dist/locale/sl.min.js +1 -1
- package/dist/locale/sl.min.mjs +1 -1
- package/dist/locale/sl.mjs +1 -1
- package/dist/locale/sr.js +1 -1
- package/dist/locale/sr.min.js +1 -1
- package/dist/locale/sr.min.mjs +1 -1
- package/dist/locale/sr.mjs +1 -1
- package/dist/locale/sv.js +1 -1
- package/dist/locale/sv.min.js +1 -1
- package/dist/locale/sv.min.mjs +1 -1
- package/dist/locale/sv.mjs +1 -1
- package/dist/locale/sw.js +1 -1
- package/dist/locale/sw.min.js +1 -1
- package/dist/locale/sw.min.mjs +1 -1
- package/dist/locale/sw.mjs +1 -1
- package/dist/locale/ta.js +1 -1
- package/dist/locale/ta.min.js +1 -1
- package/dist/locale/ta.min.mjs +1 -1
- package/dist/locale/ta.mjs +1 -1
- package/dist/locale/th.js +1 -1
- package/dist/locale/th.min.js +1 -1
- package/dist/locale/th.min.mjs +1 -1
- package/dist/locale/th.mjs +1 -1
- package/dist/locale/tk.js +1 -1
- package/dist/locale/tk.min.js +1 -1
- package/dist/locale/tk.min.mjs +1 -1
- package/dist/locale/tk.mjs +1 -1
- package/dist/locale/tr.js +1 -1
- package/dist/locale/tr.min.js +1 -1
- package/dist/locale/tr.min.mjs +1 -1
- package/dist/locale/tr.mjs +1 -1
- package/dist/locale/ug-cn.js +1 -1
- package/dist/locale/ug-cn.min.js +1 -1
- package/dist/locale/ug-cn.min.mjs +1 -1
- package/dist/locale/ug-cn.mjs +1 -1
- package/dist/locale/uk.js +1 -1
- package/dist/locale/uk.min.js +1 -1
- package/dist/locale/uk.min.mjs +1 -1
- package/dist/locale/uk.mjs +1 -1
- package/dist/locale/uz-uz.js +1 -1
- package/dist/locale/uz-uz.min.js +1 -1
- package/dist/locale/uz-uz.min.mjs +1 -1
- package/dist/locale/uz-uz.mjs +1 -1
- package/dist/locale/vi.js +1 -1
- package/dist/locale/vi.min.js +1 -1
- package/dist/locale/vi.min.mjs +1 -1
- package/dist/locale/vi.mjs +1 -1
- package/dist/locale/zh-cn.js +1 -1
- package/dist/locale/zh-cn.min.js +1 -1
- package/dist/locale/zh-cn.min.mjs +1 -1
- package/dist/locale/zh-cn.mjs +1 -1
- package/dist/locale/zh-tw.js +1 -1
- package/dist/locale/zh-tw.min.js +1 -1
- package/dist/locale/zh-tw.min.mjs +1 -1
- package/dist/locale/zh-tw.mjs +1 -1
- package/es/component.mjs +3 -1
- package/es/component.mjs.map +1 -1
- package/es/components/alert/index.mjs +2 -2
- package/es/components/alert/src/alert.mjs +36 -96
- package/es/components/alert/src/alert.mjs.map +1 -1
- package/es/components/alert/src/alert2.mjs +96 -36
- package/es/components/alert/src/alert2.mjs.map +1 -1
- package/es/components/badge/index.d.ts +41 -0
- package/es/components/badge/src/badge.d.ts +14 -1
- package/es/components/badge/src/badge.mjs +12 -2
- package/es/components/badge/src/badge.mjs.map +1 -1
- package/es/components/badge/src/badge.vue.d.ts +42 -0
- package/es/components/badge/src/badge2.mjs +15 -2
- package/es/components/badge/src/badge2.mjs.map +1 -1
- package/es/components/cascader/index.d.ts +30 -14
- package/es/components/cascader/src/cascader.d.ts +4 -2
- package/es/components/cascader/src/cascader.mjs +5 -3
- package/es/components/cascader/src/cascader.mjs.map +1 -1
- package/es/components/cascader/src/cascader.vue.d.ts +15 -7
- package/es/components/cascader/src/cascader2.mjs +5 -2
- package/es/components/cascader/src/cascader2.mjs.map +1 -1
- package/es/components/config-provider/index.d.ts +6 -1
- package/es/components/config-provider/src/config-provider-props.d.ts +2 -0
- package/es/components/config-provider/src/config-provider-props.mjs +3 -1
- package/es/components/config-provider/src/config-provider-props.mjs.map +1 -1
- package/es/components/config-provider/src/config-provider.d.ts +6 -1
- package/es/components/config-provider/src/hooks/use-global-config.mjs +1 -2
- package/es/components/config-provider/src/hooks/use-global-config.mjs.map +1 -1
- package/es/components/date-picker/index.d.ts +10 -0
- package/es/components/date-picker/src/date-picker.d.ts +5 -0
- package/es/components/date-picker/src/props/date-picker.d.ts +2 -0
- package/es/components/dialog/src/dialog-content.mjs +26 -89
- package/es/components/dialog/src/dialog-content.mjs.map +1 -1
- package/es/components/dialog/src/dialog-content2.mjs +89 -26
- package/es/components/dialog/src/dialog-content2.mjs.map +1 -1
- package/es/components/dialog/src/dialog.mjs +1 -1
- package/es/components/dialog/src/dialog2.mjs +1 -1
- package/es/components/empty/index.mjs +2 -2
- package/es/components/empty/src/empty.mjs +11 -55
- package/es/components/empty/src/empty.mjs.map +1 -1
- package/es/components/empty/src/empty2.mjs +55 -11
- package/es/components/empty/src/empty2.mjs.map +1 -1
- package/es/components/index.d.ts +1 -0
- package/es/components/index.mjs +7 -5
- package/es/components/index.mjs.map +1 -1
- package/es/components/input-number/index.d.ts +1 -1
- package/es/components/input-number/src/input-number.vue.d.ts +1 -1
- package/es/components/message/index.mjs +1 -1
- package/es/components/message/src/message.mjs +149 -91
- package/es/components/message/src/message.mjs.map +1 -1
- package/es/components/message/src/message.vue.d.ts +41 -0
- package/es/components/message/src/message2.mjs +91 -149
- package/es/components/message/src/message2.mjs.map +1 -1
- package/es/components/message/src/method.mjs +2 -2
- package/es/components/pagination/src/components/sizes.vue.d.ts +5 -0
- package/es/components/segmented/index.d.ts +115 -0
- package/es/components/segmented/index.mjs +9 -0
- package/es/components/segmented/index.mjs.map +1 -0
- package/es/components/segmented/src/segmented.d.ts +26 -0
- package/es/components/segmented/src/segmented.mjs +36 -0
- package/es/components/segmented/src/segmented.mjs.map +1 -0
- package/es/components/segmented/src/segmented.vue.d.ts +115 -0
- package/es/components/segmented/src/segmented2.mjs +170 -0
- package/es/components/segmented/src/segmented2.mjs.map +1 -0
- package/es/components/segmented/src/types.d.ts +6 -0
- package/es/components/segmented/src/types.mjs +2 -0
- package/es/components/segmented/src/types.mjs.map +1 -0
- package/es/components/segmented/style/css.d.ts +2 -0
- package/es/components/segmented/style/css.mjs +3 -0
- package/es/components/segmented/style/css.mjs.map +1 -0
- package/es/components/segmented/style/index.d.ts +2 -0
- package/es/components/segmented/style/index.mjs +3 -0
- package/es/components/segmented/style/index.mjs.map +1 -0
- package/es/components/select/index.d.ts +5 -0
- package/es/components/select/src/select.d.ts +2 -0
- package/es/components/select/src/select.mjs +3 -1
- package/es/components/select/src/select.mjs.map +1 -1
- package/es/components/select/src/select.vue.d.ts +5 -0
- package/es/components/select/src/useSelect.mjs +7 -6
- package/es/components/select/src/useSelect.mjs.map +1 -1
- package/es/components/select-v2/index.d.ts +10 -0
- package/es/components/select-v2/src/defaults.d.ts +2 -0
- package/es/components/select-v2/src/defaults.mjs +3 -1
- package/es/components/select-v2/src/defaults.mjs.map +1 -1
- package/es/components/select-v2/src/select.vue.d.ts +5 -0
- package/es/components/select-v2/src/useSelect.mjs +9 -8
- package/es/components/select-v2/src/useSelect.mjs.map +1 -1
- package/es/components/slider/index.d.ts +1 -1
- package/es/components/slider/index.mjs +2 -2
- package/es/components/slider/src/slider.mjs +91 -233
- package/es/components/slider/src/slider.mjs.map +1 -1
- package/es/components/slider/src/slider.vue.d.ts +1 -1
- package/es/components/slider/src/slider2.mjs +233 -91
- package/es/components/slider/src/slider2.mjs.map +1 -1
- package/es/components/table/src/table-body/index.mjs +7 -4
- package/es/components/table/src/table-body/index.mjs.map +1 -1
- package/es/components/time-picker/index.d.ts +10 -0
- package/es/components/time-picker/src/common/picker.mjs +6 -4
- package/es/components/time-picker/src/common/picker.mjs.map +1 -1
- package/es/components/time-picker/src/common/picker.vue.d.ts +8 -0
- package/es/components/time-picker/src/common/props.d.ts +2 -30
- package/es/components/time-picker/src/common/props.mjs +3 -1
- package/es/components/time-picker/src/common/props.mjs.map +1 -1
- package/es/components/time-picker/src/time-picker.d.ts +5 -0
- package/es/components/time-select/index.d.ts +34 -0
- package/es/components/time-select/src/time-select.d.ts +2 -0
- package/es/components/time-select/src/time-select.mjs +3 -1
- package/es/components/time-select/src/time-select.mjs.map +1 -1
- package/es/components/time-select/src/time-select.vue.d.ts +17 -0
- package/es/components/time-select/src/time-select2.mjs +3 -1
- package/es/components/time-select/src/time-select2.mjs.map +1 -1
- package/es/components/upload/index.mjs +1 -1
- package/es/components/upload/src/upload-content.mjs +194 -33
- package/es/components/upload/src/upload-content.mjs.map +1 -1
- package/es/components/upload/src/upload-content2.mjs +33 -194
- package/es/components/upload/src/upload-content2.mjs.map +1 -1
- package/es/components/upload/src/upload2.mjs +1 -1
- package/es/hooks/index.d.ts +1 -0
- package/es/hooks/index.mjs +1 -0
- package/es/hooks/index.mjs.map +1 -1
- package/es/hooks/use-empty-values/index.d.ts +13 -0
- package/es/hooks/use-empty-values/index.mjs +50 -0
- package/es/hooks/use-empty-values/index.mjs.map +1 -0
- package/es/index.mjs +8 -5
- package/es/index.mjs.map +1 -1
- package/es/version.d.ts +1 -1
- package/es/version.mjs +1 -1
- package/es/version.mjs.map +1 -1
- package/lib/component.js +3 -1
- package/lib/component.js.map +1 -1
- package/lib/components/alert/index.js +2 -2
- package/lib/components/alert/src/alert.js +37 -95
- package/lib/components/alert/src/alert.js.map +1 -1
- package/lib/components/alert/src/alert2.js +95 -37
- package/lib/components/alert/src/alert2.js.map +1 -1
- package/lib/components/badge/index.d.ts +41 -0
- package/lib/components/badge/src/badge.d.ts +14 -1
- package/lib/components/badge/src/badge.js +11 -1
- package/lib/components/badge/src/badge.js.map +1 -1
- package/lib/components/badge/src/badge.vue.d.ts +42 -0
- package/lib/components/badge/src/badge2.js +15 -2
- package/lib/components/badge/src/badge2.js.map +1 -1
- package/lib/components/cascader/index.d.ts +30 -14
- package/lib/components/cascader/src/cascader.d.ts +4 -2
- package/lib/components/cascader/src/cascader.js +5 -3
- package/lib/components/cascader/src/cascader.js.map +1 -1
- package/lib/components/cascader/src/cascader.vue.d.ts +15 -7
- package/lib/components/cascader/src/cascader2.js +23 -20
- package/lib/components/cascader/src/cascader2.js.map +1 -1
- package/lib/components/config-provider/index.d.ts +6 -1
- package/lib/components/config-provider/src/config-provider-props.d.ts +2 -0
- package/lib/components/config-provider/src/config-provider-props.js +3 -1
- package/lib/components/config-provider/src/config-provider-props.js.map +1 -1
- package/lib/components/config-provider/src/config-provider.d.ts +6 -1
- package/lib/components/config-provider/src/hooks/use-global-config.js +1 -2
- package/lib/components/config-provider/src/hooks/use-global-config.js.map +1 -1
- package/lib/components/date-picker/index.d.ts +10 -0
- package/lib/components/date-picker/src/date-picker.d.ts +5 -0
- package/lib/components/date-picker/src/props/date-picker.d.ts +2 -0
- package/lib/components/dialog/src/dialog-content.js +26 -88
- package/lib/components/dialog/src/dialog-content.js.map +1 -1
- package/lib/components/dialog/src/dialog-content2.js +88 -26
- package/lib/components/dialog/src/dialog-content2.js.map +1 -1
- package/lib/components/dialog/src/dialog.js +1 -1
- package/lib/components/dialog/src/dialog2.js +1 -1
- package/lib/components/empty/index.js +2 -2
- package/lib/components/empty/src/empty.js +11 -55
- package/lib/components/empty/src/empty.js.map +1 -1
- package/lib/components/empty/src/empty2.js +55 -11
- package/lib/components/empty/src/empty2.js.map +1 -1
- package/lib/components/index.d.ts +1 -0
- package/lib/components/index.js +23 -18
- package/lib/components/index.js.map +1 -1
- package/lib/components/input-number/index.d.ts +1 -1
- package/lib/components/input-number/src/input-number.vue.d.ts +1 -1
- package/lib/components/message/index.js +1 -1
- package/lib/components/message/src/message.js +148 -93
- package/lib/components/message/src/message.js.map +1 -1
- package/lib/components/message/src/message.vue.d.ts +41 -0
- package/lib/components/message/src/message2.js +93 -148
- package/lib/components/message/src/message2.js.map +1 -1
- package/lib/components/message/src/method.js +2 -2
- package/lib/components/pagination/src/components/sizes.vue.d.ts +5 -0
- package/lib/components/segmented/index.d.ts +115 -0
- package/lib/components/segmented/index.js +16 -0
- package/lib/components/segmented/index.js.map +1 -0
- package/lib/components/segmented/src/segmented.d.ts +26 -0
- package/lib/components/segmented/src/segmented.js +41 -0
- package/lib/components/segmented/src/segmented.js.map +1 -0
- package/lib/components/segmented/src/segmented.vue.d.ts +115 -0
- package/lib/components/segmented/src/segmented2.js +174 -0
- package/lib/components/segmented/src/segmented2.js.map +1 -0
- package/lib/components/segmented/src/types.d.ts +6 -0
- package/lib/components/segmented/src/types.js +3 -0
- package/lib/components/segmented/src/types.js.map +1 -0
- package/lib/components/segmented/style/css.d.ts +2 -0
- package/lib/components/segmented/style/css.js +6 -0
- package/lib/components/segmented/style/css.js.map +1 -0
- package/lib/components/segmented/style/index.d.ts +2 -0
- package/lib/components/segmented/style/index.js +6 -0
- package/lib/components/segmented/style/index.js.map +1 -0
- package/lib/components/select/index.d.ts +5 -0
- package/lib/components/select/src/select.d.ts +2 -0
- package/lib/components/select/src/select.js +3 -1
- package/lib/components/select/src/select.js.map +1 -1
- package/lib/components/select/src/select.vue.d.ts +5 -0
- package/lib/components/select/src/useSelect.js +6 -5
- package/lib/components/select/src/useSelect.js.map +1 -1
- package/lib/components/select-v2/index.d.ts +10 -0
- package/lib/components/select-v2/src/defaults.d.ts +2 -0
- package/lib/components/select-v2/src/defaults.js +3 -1
- package/lib/components/select-v2/src/defaults.js.map +1 -1
- package/lib/components/select-v2/src/select.vue.d.ts +5 -0
- package/lib/components/select-v2/src/useSelect.js +10 -9
- package/lib/components/select-v2/src/useSelect.js.map +1 -1
- package/lib/components/slider/index.d.ts +1 -1
- package/lib/components/slider/index.js +2 -2
- package/lib/components/slider/src/slider.js +92 -233
- package/lib/components/slider/src/slider.js.map +1 -1
- package/lib/components/slider/src/slider.vue.d.ts +1 -1
- package/lib/components/slider/src/slider2.js +233 -92
- package/lib/components/slider/src/slider2.js.map +1 -1
- package/lib/components/table/src/table-body/index.js +7 -4
- package/lib/components/table/src/table-body/index.js.map +1 -1
- package/lib/components/time-picker/index.d.ts +10 -0
- package/lib/components/time-picker/src/common/picker.js +15 -13
- package/lib/components/time-picker/src/common/picker.js.map +1 -1
- package/lib/components/time-picker/src/common/picker.vue.d.ts +8 -0
- package/lib/components/time-picker/src/common/props.d.ts +2 -30
- package/lib/components/time-picker/src/common/props.js +3 -1
- package/lib/components/time-picker/src/common/props.js.map +1 -1
- package/lib/components/time-picker/src/time-picker.d.ts +5 -0
- package/lib/components/time-select/index.d.ts +34 -0
- package/lib/components/time-select/src/time-select.d.ts +2 -0
- package/lib/components/time-select/src/time-select.js +3 -1
- package/lib/components/time-select/src/time-select.js.map +1 -1
- package/lib/components/time-select/src/time-select.vue.d.ts +17 -0
- package/lib/components/time-select/src/time-select2.js +3 -1
- package/lib/components/time-select/src/time-select2.js.map +1 -1
- package/lib/components/upload/index.js +1 -1
- package/lib/components/upload/src/upload-content.js +192 -31
- package/lib/components/upload/src/upload-content.js.map +1 -1
- package/lib/components/upload/src/upload-content2.js +31 -192
- package/lib/components/upload/src/upload-content2.js.map +1 -1
- package/lib/components/upload/src/upload2.js +1 -1
- package/lib/hooks/index.d.ts +1 -0
- package/lib/hooks/index.js +6 -0
- package/lib/hooks/index.js.map +1 -1
- package/lib/hooks/use-empty-values/index.d.ts +13 -0
- package/lib/hooks/use-empty-values/index.js +58 -0
- package/lib/hooks/use-empty-values/index.js.map +1 -0
- package/lib/index.js +121 -110
- package/lib/index.js.map +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/lib/version.js.map +1 -1
- package/package.json +2 -2
- package/tags.json +1 -1
- package/theme-chalk/el-segmented.css +1 -0
- package/theme-chalk/index.css +1 -1
- package/theme-chalk/src/common/var.scss +19 -0
- package/theme-chalk/src/index.scss +1 -0
- package/theme-chalk/src/segmented.scss +160 -0
- package/web-types.json +1 -1
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import type { Option } from './types';
|
|
2
|
+
declare const _default: import("vue").DefineComponent<{
|
|
3
|
+
options: import("@element-plus/nightly/es/utils").EpPropFinalized<(new (...args: any[]) => Option[]) | (() => Option[]) | ((new (...args: any[]) => Option[]) | (() => Option[]))[], unknown, unknown, () => never[], boolean>;
|
|
4
|
+
modelValue: import("@element-plus/nightly/es/utils").EpPropFinalized<(NumberConstructor | BooleanConstructor | StringConstructor)[], unknown, unknown, undefined, boolean>;
|
|
5
|
+
block: BooleanConstructor;
|
|
6
|
+
size: {
|
|
7
|
+
readonly type: import("vue").PropType<import("@element-plus/nightly/es/utils").EpPropMergeType<StringConstructor, "" | "default" | "small" | "large", never>>;
|
|
8
|
+
readonly required: false;
|
|
9
|
+
readonly validator: ((val: unknown) => boolean) | undefined;
|
|
10
|
+
__epPropKey: true;
|
|
11
|
+
};
|
|
12
|
+
disabled: BooleanConstructor;
|
|
13
|
+
validateEvent: import("@element-plus/nightly/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, boolean, boolean>;
|
|
14
|
+
id: StringConstructor;
|
|
15
|
+
name: StringConstructor;
|
|
16
|
+
ariaLabel: StringConstructor;
|
|
17
|
+
}, {
|
|
18
|
+
props: Readonly<import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
|
|
19
|
+
options: import("@element-plus/nightly/es/utils").EpPropFinalized<(new (...args: any[]) => Option[]) | (() => Option[]) | ((new (...args: any[]) => Option[]) | (() => Option[]))[], unknown, unknown, () => never[], boolean>;
|
|
20
|
+
modelValue: import("@element-plus/nightly/es/utils").EpPropFinalized<(NumberConstructor | BooleanConstructor | StringConstructor)[], unknown, unknown, undefined, boolean>;
|
|
21
|
+
block: BooleanConstructor;
|
|
22
|
+
size: {
|
|
23
|
+
readonly type: import("vue").PropType<import("@element-plus/nightly/es/utils").EpPropMergeType<StringConstructor, "" | "default" | "small" | "large", never>>;
|
|
24
|
+
readonly required: false;
|
|
25
|
+
readonly validator: ((val: unknown) => boolean) | undefined;
|
|
26
|
+
__epPropKey: true;
|
|
27
|
+
};
|
|
28
|
+
disabled: BooleanConstructor;
|
|
29
|
+
validateEvent: import("@element-plus/nightly/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, boolean, boolean>;
|
|
30
|
+
id: StringConstructor;
|
|
31
|
+
name: StringConstructor;
|
|
32
|
+
ariaLabel: StringConstructor;
|
|
33
|
+
}>> & {
|
|
34
|
+
onChange?: ((val: any) => any) | undefined;
|
|
35
|
+
"onUpdate:modelValue"?: ((val: any) => any) | undefined;
|
|
36
|
+
}>>;
|
|
37
|
+
emit: ((event: "update:modelValue", val: any) => void) & ((event: "change", val: any) => void);
|
|
38
|
+
ns: {
|
|
39
|
+
namespace: import("vue").ComputedRef<string>;
|
|
40
|
+
b: (blockSuffix?: string) => string;
|
|
41
|
+
e: (element?: string | undefined) => string;
|
|
42
|
+
m: (modifier?: string | undefined) => string;
|
|
43
|
+
be: (blockSuffix?: string | undefined, element?: string | undefined) => string;
|
|
44
|
+
em: (element?: string | undefined, modifier?: string | undefined) => string;
|
|
45
|
+
bm: (blockSuffix?: string | undefined, modifier?: string | undefined) => string;
|
|
46
|
+
bem: (blockSuffix?: string | undefined, element?: string | undefined, modifier?: string | undefined) => string;
|
|
47
|
+
is: {
|
|
48
|
+
(name: string, state: boolean | undefined): string;
|
|
49
|
+
(name: string): string;
|
|
50
|
+
};
|
|
51
|
+
cssVar: (object: Record<string, string>) => Record<string, string>;
|
|
52
|
+
cssVarName: (name: string) => string;
|
|
53
|
+
cssVarBlock: (object: Record<string, string>) => Record<string, string>;
|
|
54
|
+
cssVarBlockName: (name: string) => string;
|
|
55
|
+
};
|
|
56
|
+
segmentedId: import("vue").Ref<string>;
|
|
57
|
+
segmentedSize: import("vue").ComputedRef<"" | "default" | "small" | "large">;
|
|
58
|
+
_disabled: import("vue").ComputedRef<boolean>;
|
|
59
|
+
formItem: import("@element-plus/nightly/es/components/form").FormItemContext | undefined;
|
|
60
|
+
inputId: import("vue").Ref<string | undefined>;
|
|
61
|
+
isLabeledByFormItem: import("vue").ComputedRef<boolean>;
|
|
62
|
+
segmentedRef: import("vue").Ref<HTMLElement | null>;
|
|
63
|
+
activeElement: import("vue").ComputedRef<HTMLElement | null | undefined>;
|
|
64
|
+
state: {
|
|
65
|
+
isInit: boolean;
|
|
66
|
+
width: number;
|
|
67
|
+
translateX: number;
|
|
68
|
+
disabled: boolean;
|
|
69
|
+
focusVisible: boolean;
|
|
70
|
+
};
|
|
71
|
+
handleChange: (item: Option) => void;
|
|
72
|
+
getValue: (item: Option) => string | number | boolean | undefined;
|
|
73
|
+
getLabel: (item: Option) => string | number | boolean | undefined;
|
|
74
|
+
getDisabled: (item: Option) => boolean;
|
|
75
|
+
getSelected: (item: Option) => boolean;
|
|
76
|
+
getOption: (value: any) => Option;
|
|
77
|
+
getItemCls: (item: Option) => string[];
|
|
78
|
+
updateSelect: () => void;
|
|
79
|
+
segmentedCls: import("vue").ComputedRef<string[]>;
|
|
80
|
+
selectedStyle: import("vue").ComputedRef<{
|
|
81
|
+
width: string;
|
|
82
|
+
transform: string;
|
|
83
|
+
display: string;
|
|
84
|
+
}>;
|
|
85
|
+
selectedCls: import("vue").ComputedRef<string[]>;
|
|
86
|
+
name: import("vue").ComputedRef<string>;
|
|
87
|
+
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
88
|
+
"update:modelValue": (val: any) => boolean;
|
|
89
|
+
change: (val: any) => boolean;
|
|
90
|
+
}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
|
91
|
+
options: import("@element-plus/nightly/es/utils").EpPropFinalized<(new (...args: any[]) => Option[]) | (() => Option[]) | ((new (...args: any[]) => Option[]) | (() => Option[]))[], unknown, unknown, () => never[], boolean>;
|
|
92
|
+
modelValue: import("@element-plus/nightly/es/utils").EpPropFinalized<(NumberConstructor | BooleanConstructor | StringConstructor)[], unknown, unknown, undefined, boolean>;
|
|
93
|
+
block: BooleanConstructor;
|
|
94
|
+
size: {
|
|
95
|
+
readonly type: import("vue").PropType<import("@element-plus/nightly/es/utils").EpPropMergeType<StringConstructor, "" | "default" | "small" | "large", never>>;
|
|
96
|
+
readonly required: false;
|
|
97
|
+
readonly validator: ((val: unknown) => boolean) | undefined;
|
|
98
|
+
__epPropKey: true;
|
|
99
|
+
};
|
|
100
|
+
disabled: BooleanConstructor;
|
|
101
|
+
validateEvent: import("@element-plus/nightly/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, boolean, boolean>;
|
|
102
|
+
id: StringConstructor;
|
|
103
|
+
name: StringConstructor;
|
|
104
|
+
ariaLabel: StringConstructor;
|
|
105
|
+
}>> & {
|
|
106
|
+
onChange?: ((val: any) => any) | undefined;
|
|
107
|
+
"onUpdate:modelValue"?: ((val: any) => any) | undefined;
|
|
108
|
+
}, {
|
|
109
|
+
modelValue: import("@element-plus/nightly/es/utils").EpPropMergeType<(NumberConstructor | BooleanConstructor | StringConstructor)[], unknown, unknown>;
|
|
110
|
+
disabled: boolean;
|
|
111
|
+
validateEvent: import("@element-plus/nightly/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
|
|
112
|
+
block: boolean;
|
|
113
|
+
options: Option[];
|
|
114
|
+
}>;
|
|
115
|
+
export default _default;
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
import { defineComponent, ref, reactive, computed, watch, openBlock, createElementBlock, unref, normalizeClass, createElementVNode, normalizeStyle, Fragment, renderList, renderSlot, createTextVNode, toDisplayString } from 'vue';
|
|
2
|
+
import { useActiveElement, useResizeObserver } from '@vueuse/core';
|
|
3
|
+
import '../../../hooks/index.mjs';
|
|
4
|
+
import '../../form/index.mjs';
|
|
5
|
+
import '../../../utils/index.mjs';
|
|
6
|
+
import '../../../constants/index.mjs';
|
|
7
|
+
import { segmentedProps, segmentedEmits } from './segmented.mjs';
|
|
8
|
+
import _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';
|
|
9
|
+
import { useNamespace } from '../../../hooks/use-namespace/index.mjs';
|
|
10
|
+
import { useId } from '../../../hooks/use-id/index.mjs';
|
|
11
|
+
import { useFormSize, useFormDisabled } from '../../form/src/hooks/use-form-common-props.mjs';
|
|
12
|
+
import { useFormItem, useFormItemInputId } from '../../form/src/hooks/use-form-item.mjs';
|
|
13
|
+
import { UPDATE_MODEL_EVENT, CHANGE_EVENT } from '../../../constants/event.mjs';
|
|
14
|
+
import { isObject } from '@vue/shared';
|
|
15
|
+
import { debugWarn } from '../../../utils/error.mjs';
|
|
16
|
+
|
|
17
|
+
const _hoisted_1 = ["id", "aria-label", "aria-labelledby"];
|
|
18
|
+
const _hoisted_2 = ["name", "disabled", "checked", "onChange"];
|
|
19
|
+
const __default__ = defineComponent({
|
|
20
|
+
name: "ElSegmented"
|
|
21
|
+
});
|
|
22
|
+
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
23
|
+
...__default__,
|
|
24
|
+
props: segmentedProps,
|
|
25
|
+
emits: segmentedEmits,
|
|
26
|
+
setup(__props, { emit }) {
|
|
27
|
+
const props = __props;
|
|
28
|
+
const ns = useNamespace("segmented");
|
|
29
|
+
const segmentedId = useId();
|
|
30
|
+
const segmentedSize = useFormSize();
|
|
31
|
+
const _disabled = useFormDisabled();
|
|
32
|
+
const { formItem } = useFormItem();
|
|
33
|
+
const { inputId, isLabeledByFormItem } = useFormItemInputId(props, {
|
|
34
|
+
formItemContext: formItem
|
|
35
|
+
});
|
|
36
|
+
const segmentedRef = ref(null);
|
|
37
|
+
const activeElement = useActiveElement();
|
|
38
|
+
const state = reactive({
|
|
39
|
+
isInit: false,
|
|
40
|
+
width: 0,
|
|
41
|
+
translateX: 0,
|
|
42
|
+
disabled: false,
|
|
43
|
+
focusVisible: false
|
|
44
|
+
});
|
|
45
|
+
const handleChange = (item) => {
|
|
46
|
+
const value = getValue(item);
|
|
47
|
+
emit(UPDATE_MODEL_EVENT, value);
|
|
48
|
+
emit(CHANGE_EVENT, value);
|
|
49
|
+
};
|
|
50
|
+
const getValue = (item) => {
|
|
51
|
+
return isObject(item) ? item.value : item;
|
|
52
|
+
};
|
|
53
|
+
const getLabel = (item) => {
|
|
54
|
+
return isObject(item) ? item.label : item;
|
|
55
|
+
};
|
|
56
|
+
const getDisabled = (item) => {
|
|
57
|
+
return !!(_disabled.value || (isObject(item) ? item.disabled : false));
|
|
58
|
+
};
|
|
59
|
+
const getSelected = (item) => {
|
|
60
|
+
return props.modelValue === getValue(item);
|
|
61
|
+
};
|
|
62
|
+
const getOption = (value) => {
|
|
63
|
+
return props.options.find((item) => getValue(item) === value);
|
|
64
|
+
};
|
|
65
|
+
const getItemCls = (item) => {
|
|
66
|
+
return [
|
|
67
|
+
ns.e("item"),
|
|
68
|
+
ns.is("selected", getSelected(item)),
|
|
69
|
+
ns.is("disabled", getDisabled(item))
|
|
70
|
+
];
|
|
71
|
+
};
|
|
72
|
+
const updateSelect = () => {
|
|
73
|
+
if (!segmentedRef.value)
|
|
74
|
+
return;
|
|
75
|
+
const selectedItem = segmentedRef.value.querySelector(".is-selected");
|
|
76
|
+
const selectedItemInput = segmentedRef.value.querySelector(".is-selected input");
|
|
77
|
+
if (!selectedItem || !selectedItemInput) {
|
|
78
|
+
state.width = 0;
|
|
79
|
+
state.translateX = 0;
|
|
80
|
+
state.disabled = false;
|
|
81
|
+
state.focusVisible = false;
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
const rect = selectedItem.getBoundingClientRect();
|
|
85
|
+
state.isInit = true;
|
|
86
|
+
state.width = rect.width;
|
|
87
|
+
state.translateX = selectedItem.offsetLeft;
|
|
88
|
+
state.disabled = getDisabled(getOption(props.modelValue));
|
|
89
|
+
try {
|
|
90
|
+
state.focusVisible = selectedItemInput.matches(":focus-visible");
|
|
91
|
+
} catch (e) {
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
const segmentedCls = computed(() => [
|
|
95
|
+
ns.b(),
|
|
96
|
+
ns.m(segmentedSize.value),
|
|
97
|
+
ns.is("block", props.block)
|
|
98
|
+
]);
|
|
99
|
+
const selectedStyle = computed(() => ({
|
|
100
|
+
width: `${state.width}px`,
|
|
101
|
+
transform: `translateX(${state.translateX}px)`,
|
|
102
|
+
display: state.isInit ? "block" : "none"
|
|
103
|
+
}));
|
|
104
|
+
const selectedCls = computed(() => [
|
|
105
|
+
ns.e("item-selected"),
|
|
106
|
+
ns.is("disabled", state.disabled),
|
|
107
|
+
ns.is("focus-visible", state.focusVisible)
|
|
108
|
+
]);
|
|
109
|
+
const name = computed(() => {
|
|
110
|
+
return props.name || segmentedId.value;
|
|
111
|
+
});
|
|
112
|
+
useResizeObserver(segmentedRef, updateSelect);
|
|
113
|
+
watch(activeElement, updateSelect);
|
|
114
|
+
watch(() => props.modelValue, () => {
|
|
115
|
+
var _a;
|
|
116
|
+
updateSelect();
|
|
117
|
+
if (props.validateEvent) {
|
|
118
|
+
(_a = formItem == null ? void 0 : formItem.validate) == null ? void 0 : _a.call(formItem, "change").catch((err) => debugWarn(err));
|
|
119
|
+
}
|
|
120
|
+
}, {
|
|
121
|
+
flush: "post"
|
|
122
|
+
});
|
|
123
|
+
return (_ctx, _cache) => {
|
|
124
|
+
return openBlock(), createElementBlock("div", {
|
|
125
|
+
id: unref(inputId),
|
|
126
|
+
ref_key: "segmentedRef",
|
|
127
|
+
ref: segmentedRef,
|
|
128
|
+
class: normalizeClass(unref(segmentedCls)),
|
|
129
|
+
role: "radiogroup",
|
|
130
|
+
"aria-label": !unref(isLabeledByFormItem) ? _ctx.ariaLabel || "segmented" : void 0,
|
|
131
|
+
"aria-labelledby": unref(isLabeledByFormItem) ? unref(formItem).labelId : void 0
|
|
132
|
+
}, [
|
|
133
|
+
createElementVNode("div", {
|
|
134
|
+
class: normalizeClass(unref(ns).e("group"))
|
|
135
|
+
}, [
|
|
136
|
+
createElementVNode("div", {
|
|
137
|
+
style: normalizeStyle(unref(selectedStyle)),
|
|
138
|
+
class: normalizeClass(unref(selectedCls))
|
|
139
|
+
}, null, 6),
|
|
140
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.options, (item, index) => {
|
|
141
|
+
return openBlock(), createElementBlock("label", {
|
|
142
|
+
key: index,
|
|
143
|
+
class: normalizeClass(getItemCls(item))
|
|
144
|
+
}, [
|
|
145
|
+
createElementVNode("input", {
|
|
146
|
+
class: normalizeClass(unref(ns).e("item-input")),
|
|
147
|
+
type: "radio",
|
|
148
|
+
name: unref(name),
|
|
149
|
+
disabled: getDisabled(item),
|
|
150
|
+
checked: getSelected(item),
|
|
151
|
+
onChange: ($event) => handleChange(item)
|
|
152
|
+
}, null, 42, _hoisted_2),
|
|
153
|
+
createElementVNode("div", {
|
|
154
|
+
class: normalizeClass(unref(ns).e("item-label"))
|
|
155
|
+
}, [
|
|
156
|
+
renderSlot(_ctx.$slots, "default", { item }, () => [
|
|
157
|
+
createTextVNode(toDisplayString(getLabel(item)), 1)
|
|
158
|
+
])
|
|
159
|
+
], 2)
|
|
160
|
+
], 2);
|
|
161
|
+
}), 128))
|
|
162
|
+
], 2)
|
|
163
|
+
], 10, _hoisted_1);
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
});
|
|
167
|
+
var Segmented = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "segmented.vue"]]);
|
|
168
|
+
|
|
169
|
+
export { Segmented as default };
|
|
170
|
+
//# sourceMappingURL=segmented2.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"segmented2.mjs","sources":["../../../../../../packages/components/segmented/src/segmented.vue"],"sourcesContent":["<template>\n <div\n :id=\"inputId\"\n ref=\"segmentedRef\"\n :class=\"segmentedCls\"\n role=\"radiogroup\"\n :aria-label=\"!isLabeledByFormItem ? ariaLabel || 'segmented' : undefined\"\n :aria-labelledby=\"isLabeledByFormItem ? formItem!.labelId : undefined\"\n >\n <div :class=\"ns.e('group')\">\n <div :style=\"selectedStyle\" :class=\"selectedCls\" />\n <label\n v-for=\"(item, index) in options\"\n :key=\"index\"\n :class=\"getItemCls(item)\"\n >\n <input\n :class=\"ns.e('item-input')\"\n type=\"radio\"\n :name=\"name\"\n :disabled=\"getDisabled(item)\"\n :checked=\"getSelected(item)\"\n @change=\"handleChange(item)\"\n />\n <div :class=\"ns.e('item-label')\">\n <slot :item=\"item\">{{ getLabel(item) }}</slot>\n </div>\n </label>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, reactive, ref, watch } from 'vue'\nimport { useActiveElement, useResizeObserver } from '@vueuse/core'\nimport { useId, useNamespace } from '@element-plus/hooks'\nimport {\n useFormDisabled,\n useFormItem,\n useFormItemInputId,\n useFormSize,\n} from '@element-plus/components/form'\nimport { debugWarn, isObject } from '@element-plus/utils'\nimport { CHANGE_EVENT, UPDATE_MODEL_EVENT } from '@element-plus/constants'\nimport { segmentedEmits, segmentedProps } from './segmented'\nimport type { Option } from './types'\n\ndefineOptions({\n name: 'ElSegmented',\n})\n\nconst props = defineProps(segmentedProps)\nconst emit = defineEmits(segmentedEmits)\n\nconst ns = useNamespace('segmented')\nconst segmentedId = useId()\nconst segmentedSize = useFormSize()\nconst _disabled = useFormDisabled()\nconst { formItem } = useFormItem()\nconst { inputId, isLabeledByFormItem } = useFormItemInputId(props, {\n formItemContext: formItem,\n})\n\nconst segmentedRef = ref<HTMLElement | null>(null)\nconst activeElement = useActiveElement()\n\nconst state = reactive({\n isInit: false,\n width: 0,\n translateX: 0,\n disabled: false,\n focusVisible: false,\n})\n\nconst handleChange = (item: Option) => {\n const value = getValue(item)\n emit(UPDATE_MODEL_EVENT, value)\n emit(CHANGE_EVENT, value)\n}\n\nconst getValue = (item: Option) => {\n return isObject(item) ? item.value : item\n}\n\nconst getLabel = (item: Option) => {\n return isObject(item) ? item.label : item\n}\n\nconst getDisabled = (item: Option) => {\n return !!(_disabled.value || (isObject(item) ? item.disabled : false))\n}\n\nconst getSelected = (item: Option) => {\n return props.modelValue === getValue(item)\n}\n\nconst getOption = (value: any) => {\n return props.options.find((item) => getValue(item) === value)\n}\n\nconst getItemCls = (item: Option) => {\n return [\n ns.e('item'),\n ns.is('selected', getSelected(item)),\n ns.is('disabled', getDisabled(item)),\n ]\n}\n\nconst updateSelect = () => {\n if (!segmentedRef.value) return\n const selectedItem = segmentedRef.value.querySelector(\n '.is-selected'\n ) as HTMLElement\n const selectedItemInput = segmentedRef.value.querySelector(\n '.is-selected input'\n ) as HTMLElement\n if (!selectedItem || !selectedItemInput) {\n state.width = 0\n state.translateX = 0\n state.disabled = false\n state.focusVisible = false\n return\n }\n const rect = selectedItem.getBoundingClientRect()\n state.isInit = true\n state.width = rect.width\n state.translateX = selectedItem.offsetLeft\n state.disabled = getDisabled(getOption(props.modelValue))\n try {\n // This will failed in test\n state.focusVisible = selectedItemInput.matches(':focus-visible')\n } catch {}\n}\n\nconst segmentedCls = computed(() => [\n ns.b(),\n ns.m(segmentedSize.value),\n ns.is('block', props.block),\n])\n\nconst selectedStyle = computed(() => ({\n width: `${state.width}px`,\n transform: `translateX(${state.translateX}px)`,\n display: state.isInit ? 'block' : 'none',\n}))\n\nconst selectedCls = computed(() => [\n ns.e('item-selected'),\n ns.is('disabled', state.disabled),\n ns.is('focus-visible', state.focusVisible),\n])\n\nconst name = computed(() => {\n return props.name || segmentedId.value\n})\n\nuseResizeObserver(segmentedRef, updateSelect)\n\nwatch(activeElement, updateSelect)\n\nwatch(\n () => props.modelValue,\n () => {\n updateSelect()\n if (props.validateEvent) {\n formItem?.validate?.('change').catch((err) => debugWarn(err))\n }\n },\n {\n flush: 'post',\n }\n)\n</script>\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"css.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
export declare const ElSelect: import("@element-plus/nightly/es/utils").SFCWithInstall<import("vue").DefineComponent<{
|
|
2
|
+
emptyValues: ArrayConstructor;
|
|
3
|
+
valueOnClear: import("@element-plus/nightly/es/utils").EpPropFinalized<readonly [StringConstructor, NumberConstructor, BooleanConstructor, FunctionConstructor], unknown, unknown, undefined, boolean>;
|
|
2
4
|
name: StringConstructor;
|
|
3
5
|
id: StringConstructor;
|
|
4
6
|
modelValue: import("@element-plus/nightly/es/utils").EpPropFinalized<(ArrayConstructor | ObjectConstructor | NumberConstructor | BooleanConstructor | StringConstructor)[], unknown, unknown, undefined, boolean>;
|
|
@@ -12651,6 +12653,8 @@ export declare const ElSelect: import("@element-plus/nightly/es/utils").SFCWithI
|
|
|
12651
12653
|
tagMenuRef: import("vue").Ref<HTMLElement>;
|
|
12652
12654
|
collapseItemRef: import("vue").Ref<HTMLElement>;
|
|
12653
12655
|
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("update:modelValue" | "change" | "focus" | "clear" | "visible-change" | "remove-tag" | "blur")[], "update:modelValue" | "change" | "focus" | "blur" | "clear" | "visible-change" | "remove-tag", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
|
12656
|
+
emptyValues: ArrayConstructor;
|
|
12657
|
+
valueOnClear: import("@element-plus/nightly/es/utils").EpPropFinalized<readonly [StringConstructor, NumberConstructor, BooleanConstructor, FunctionConstructor], unknown, unknown, undefined, boolean>;
|
|
12654
12658
|
name: StringConstructor;
|
|
12655
12659
|
id: StringConstructor;
|
|
12656
12660
|
modelValue: import("@element-plus/nightly/es/utils").EpPropFinalized<(ArrayConstructor | ObjectConstructor | NumberConstructor | BooleanConstructor | StringConstructor)[], unknown, unknown, undefined, boolean>;
|
|
@@ -12748,6 +12752,7 @@ export declare const ElSelect: import("@element-plus/nightly/es/utils").SFCWithI
|
|
|
12748
12752
|
maxCollapseTags: number;
|
|
12749
12753
|
collapseTagsTooltip: boolean;
|
|
12750
12754
|
tagType: import("@element-plus/nightly/es/utils").EpPropMergeType<StringConstructor, "success" | "warning" | "info" | "primary" | "danger", unknown>;
|
|
12755
|
+
valueOnClear: import("@element-plus/nightly/es/utils").EpPropMergeType<readonly [StringConstructor, NumberConstructor, BooleanConstructor, FunctionConstructor], unknown, unknown>;
|
|
12751
12756
|
automaticDropdown: boolean;
|
|
12752
12757
|
allowCreate: boolean;
|
|
12753
12758
|
remote: boolean;
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import type { Options, Placement } from '@element-plus/nightly/es/components/popper';
|
|
2
2
|
export declare const SelectProps: {
|
|
3
|
+
emptyValues: ArrayConstructor;
|
|
4
|
+
valueOnClear: import("@element-plus/nightly/es/utils").EpPropFinalized<readonly [StringConstructor, NumberConstructor, BooleanConstructor, FunctionConstructor], unknown, unknown, undefined, boolean>;
|
|
3
5
|
name: StringConstructor;
|
|
4
6
|
id: StringConstructor;
|
|
5
7
|
modelValue: import("@element-plus/nightly/es/utils").EpPropFinalized<(ArrayConstructor | ObjectConstructor | NumberConstructor | BooleanConstructor | StringConstructor)[], unknown, unknown, undefined, boolean>;
|
|
@@ -9,6 +9,7 @@ import { useSizeProp } from '../../../hooks/use-size/index.mjs';
|
|
|
9
9
|
import { useTooltipContentProps } from '../../tooltip/src/content.mjs';
|
|
10
10
|
import { iconPropType } from '../../../utils/vue/icon.mjs';
|
|
11
11
|
import { tagProps } from '../../tag/src/tag.mjs';
|
|
12
|
+
import { useEmptyValuesProps } from '../../../hooks/use-empty-values/index.mjs';
|
|
12
13
|
|
|
13
14
|
const SelectProps = buildProps({
|
|
14
15
|
name: String,
|
|
@@ -101,7 +102,8 @@ const SelectProps = buildProps({
|
|
|
101
102
|
ariaLabel: {
|
|
102
103
|
type: String,
|
|
103
104
|
default: void 0
|
|
104
|
-
}
|
|
105
|
+
},
|
|
106
|
+
...useEmptyValuesProps
|
|
105
107
|
});
|
|
106
108
|
|
|
107
109
|
export { SelectProps };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select.mjs","sources":["../../../../../../packages/components/select/src/select.ts"],"sourcesContent":["import { placements } from '@popperjs/core'\nimport { useSizeProp } from '@element-plus/hooks'\nimport { buildProps, definePropType, iconPropType } from '@element-plus/utils'\nimport { useTooltipContentProps } from '@element-plus/components/tooltip'\nimport { ArrowDown, CircleClose } from '@element-plus/icons-vue'\nimport { tagProps } from '@element-plus/components/tag'\nimport type { Options, Placement } from '@element-plus/components/popper'\n\nexport const SelectProps = buildProps({\n /**\n * @description the name attribute of select input\n */\n name: String,\n /**\n * @description native input id\n */\n id: String,\n /**\n * @description binding value\n */\n modelValue: {\n type: [Array, String, Number, Boolean, Object],\n default: undefined,\n },\n /**\n * @description the autocomplete attribute of select input\n */\n autocomplete: {\n type: String,\n default: 'off',\n },\n /**\n * @description for non-filterable Select, this prop decides if the option menu pops up when the input is focused\n */\n automaticDropdown: Boolean,\n /**\n * @description size of Input\n */\n size: useSizeProp,\n /**\n * @description tooltip theme, built-in theme: `dark` / `light`\n */\n effect: {\n type: definePropType<'light' | 'dark' | string>(String),\n default: 'light',\n },\n /**\n * @description whether Select is disabled\n */\n disabled: Boolean,\n /**\n * @description whether select can be cleared\n */\n clearable: Boolean,\n /**\n * @description whether Select is filterable\n */\n filterable: Boolean,\n /**\n * @description whether creating new items is allowed. To use this, `filterable` must be true\n */\n allowCreate: Boolean,\n /**\n * @description whether Select is loading data from server\n */\n loading: Boolean,\n /**\n * @description custom class name for Select's dropdown\n */\n popperClass: {\n type: String,\n default: '',\n },\n /**\n * @description [popper.js](https://popper.js.org/docs/v2/) parameters\n */\n popperOptions: {\n type: definePropType<Partial<Options>>(Object),\n default: () => ({} as Partial<Options>),\n },\n /**\n * @description whether options are loaded from server\n */\n remote: Boolean,\n /**\n * @description displayed text while loading data from server, default is 'Loading'\n */\n loadingText: String,\n /**\n * @description displayed text when no data matches the filtering query, you can also use slot `empty`, default is 'No matching data'\n */\n noMatchText: String,\n /**\n * @description displayed text when there is no options, you can also use slot `empty`, default is 'No data'\n */\n noDataText: String,\n /**\n * @description custom remote search method\n */\n remoteMethod: Function,\n /**\n * @description custom filter method\n */\n filterMethod: Function,\n /**\n * @description whether multiple-select is activated\n */\n multiple: Boolean,\n /**\n * @description maximum number of options user can select when `multiple` is `true`. No limit when set to 0\n */\n multipleLimit: {\n type: Number,\n default: 0,\n },\n /**\n * @description placeholder, default is 'Select'\n */\n placeholder: {\n type: String,\n },\n /**\n * @description select first matching option on enter key. Use with `filterable` or `remote`\n */\n defaultFirstOption: Boolean,\n /**\n * @description when `multiple` and `filter` is true, whether to reserve current keyword after selecting an option\n */\n reserveKeyword: {\n type: Boolean,\n default: true,\n },\n /**\n * @description unique identity key name for value, required when value is an object\n */\n valueKey: {\n type: String,\n default: 'value',\n },\n /**\n * @description whether to collapse tags to a text when multiple selecting\n */\n collapseTags: Boolean,\n /**\n * @description whether show all selected tags when mouse hover text of collapse-tags. To use this, `collapse-tags` must be true\n */\n collapseTagsTooltip: Boolean,\n /**\n * @description the max tags number to be shown. To use this, `collapse-tags` must be true\n */\n maxCollapseTags: {\n type: Number,\n default: 1,\n },\n /**\n * @description whether select dropdown is teleported to the body\n */\n teleported: useTooltipContentProps.teleported,\n /**\n * @description when select dropdown is inactive and `persistent` is `false`, select dropdown will be destroyed\n */\n persistent: {\n type: Boolean,\n default: true,\n },\n /**\n * @description custom clear icon component\n */\n clearIcon: {\n type: iconPropType,\n default: CircleClose,\n },\n /**\n * @description whether the width of the dropdown is the same as the input\n */\n fitInputWidth: Boolean,\n /**\n * @description custom suffix icon component\n */\n suffixIcon: {\n type: iconPropType,\n default: ArrowDown,\n },\n /**\n * @description tag type\n */\n // eslint-disable-next-line vue/require-prop-types\n tagType: { ...tagProps.type, default: 'info' },\n /**\n * @description whether to trigger form validation\n */\n validateEvent: {\n type: Boolean,\n default: true,\n },\n /**\n * @description in remote search method show suffix icon\n */\n remoteShowSuffix: Boolean,\n /**\n * @description position of dropdown\n */\n placement: {\n type: definePropType<Placement>(String),\n values: placements,\n default: 'bottom-start',\n },\n /**\n * @description list of possible positions for dropdown\n */\n fallbackPlacements: {\n type: definePropType<Placement[]>(Array),\n default: ['bottom-start', 'top-start', 'right', 'left'],\n },\n /**\n * @description native input aria-label\n */\n ariaLabel: {\n type: String,\n default: undefined,\n },\n})\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"select.mjs","sources":["../../../../../../packages/components/select/src/select.ts"],"sourcesContent":["import { placements } from '@popperjs/core'\nimport { useEmptyValuesProps, useSizeProp } from '@element-plus/hooks'\nimport { buildProps, definePropType, iconPropType } from '@element-plus/utils'\nimport { useTooltipContentProps } from '@element-plus/components/tooltip'\nimport { ArrowDown, CircleClose } from '@element-plus/icons-vue'\nimport { tagProps } from '@element-plus/components/tag'\nimport type { Options, Placement } from '@element-plus/components/popper'\n\nexport const SelectProps = buildProps({\n /**\n * @description the name attribute of select input\n */\n name: String,\n /**\n * @description native input id\n */\n id: String,\n /**\n * @description binding value\n */\n modelValue: {\n type: [Array, String, Number, Boolean, Object],\n default: undefined,\n },\n /**\n * @description the autocomplete attribute of select input\n */\n autocomplete: {\n type: String,\n default: 'off',\n },\n /**\n * @description for non-filterable Select, this prop decides if the option menu pops up when the input is focused\n */\n automaticDropdown: Boolean,\n /**\n * @description size of Input\n */\n size: useSizeProp,\n /**\n * @description tooltip theme, built-in theme: `dark` / `light`\n */\n effect: {\n type: definePropType<'light' | 'dark' | string>(String),\n default: 'light',\n },\n /**\n * @description whether Select is disabled\n */\n disabled: Boolean,\n /**\n * @description whether select can be cleared\n */\n clearable: Boolean,\n /**\n * @description whether Select is filterable\n */\n filterable: Boolean,\n /**\n * @description whether creating new items is allowed. To use this, `filterable` must be true\n */\n allowCreate: Boolean,\n /**\n * @description whether Select is loading data from server\n */\n loading: Boolean,\n /**\n * @description custom class name for Select's dropdown\n */\n popperClass: {\n type: String,\n default: '',\n },\n /**\n * @description [popper.js](https://popper.js.org/docs/v2/) parameters\n */\n popperOptions: {\n type: definePropType<Partial<Options>>(Object),\n default: () => ({} as Partial<Options>),\n },\n /**\n * @description whether options are loaded from server\n */\n remote: Boolean,\n /**\n * @description displayed text while loading data from server, default is 'Loading'\n */\n loadingText: String,\n /**\n * @description displayed text when no data matches the filtering query, you can also use slot `empty`, default is 'No matching data'\n */\n noMatchText: String,\n /**\n * @description displayed text when there is no options, you can also use slot `empty`, default is 'No data'\n */\n noDataText: String,\n /**\n * @description custom remote search method\n */\n remoteMethod: Function,\n /**\n * @description custom filter method\n */\n filterMethod: Function,\n /**\n * @description whether multiple-select is activated\n */\n multiple: Boolean,\n /**\n * @description maximum number of options user can select when `multiple` is `true`. No limit when set to 0\n */\n multipleLimit: {\n type: Number,\n default: 0,\n },\n /**\n * @description placeholder, default is 'Select'\n */\n placeholder: {\n type: String,\n },\n /**\n * @description select first matching option on enter key. Use with `filterable` or `remote`\n */\n defaultFirstOption: Boolean,\n /**\n * @description when `multiple` and `filter` is true, whether to reserve current keyword after selecting an option\n */\n reserveKeyword: {\n type: Boolean,\n default: true,\n },\n /**\n * @description unique identity key name for value, required when value is an object\n */\n valueKey: {\n type: String,\n default: 'value',\n },\n /**\n * @description whether to collapse tags to a text when multiple selecting\n */\n collapseTags: Boolean,\n /**\n * @description whether show all selected tags when mouse hover text of collapse-tags. To use this, `collapse-tags` must be true\n */\n collapseTagsTooltip: Boolean,\n /**\n * @description the max tags number to be shown. To use this, `collapse-tags` must be true\n */\n maxCollapseTags: {\n type: Number,\n default: 1,\n },\n /**\n * @description whether select dropdown is teleported to the body\n */\n teleported: useTooltipContentProps.teleported,\n /**\n * @description when select dropdown is inactive and `persistent` is `false`, select dropdown will be destroyed\n */\n persistent: {\n type: Boolean,\n default: true,\n },\n /**\n * @description custom clear icon component\n */\n clearIcon: {\n type: iconPropType,\n default: CircleClose,\n },\n /**\n * @description whether the width of the dropdown is the same as the input\n */\n fitInputWidth: Boolean,\n /**\n * @description custom suffix icon component\n */\n suffixIcon: {\n type: iconPropType,\n default: ArrowDown,\n },\n /**\n * @description tag type\n */\n // eslint-disable-next-line vue/require-prop-types\n tagType: { ...tagProps.type, default: 'info' },\n /**\n * @description whether to trigger form validation\n */\n validateEvent: {\n type: Boolean,\n default: true,\n },\n /**\n * @description in remote search method show suffix icon\n */\n remoteShowSuffix: Boolean,\n /**\n * @description position of dropdown\n */\n placement: {\n type: definePropType<Placement>(String),\n values: placements,\n default: 'bottom-start',\n },\n /**\n * @description list of possible positions for dropdown\n */\n fallbackPlacements: {\n type: definePropType<Placement[]>(Array),\n default: ['bottom-start', 'top-start', 'right', 'left'],\n },\n /**\n * @description native input aria-label\n */\n ariaLabel: {\n type: String,\n default: undefined,\n },\n ...useEmptyValuesProps,\n})\n"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
declare const _default: import("vue").DefineComponent<{
|
|
2
|
+
emptyValues: ArrayConstructor;
|
|
3
|
+
valueOnClear: import("../../../utils").EpPropFinalized<readonly [StringConstructor, NumberConstructor, BooleanConstructor, FunctionConstructor], unknown, unknown, undefined, boolean>;
|
|
2
4
|
name: StringConstructor;
|
|
3
5
|
id: StringConstructor;
|
|
4
6
|
modelValue: import("../../../utils").EpPropFinalized<(ArrayConstructor | ObjectConstructor | NumberConstructor | BooleanConstructor | StringConstructor)[], unknown, unknown, undefined, boolean>;
|
|
@@ -12651,6 +12653,8 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
12651
12653
|
tagMenuRef: import("vue").Ref<HTMLElement>;
|
|
12652
12654
|
collapseItemRef: import("vue").Ref<HTMLElement>;
|
|
12653
12655
|
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("update:modelValue" | "change" | "focus" | "clear" | "visible-change" | "remove-tag" | "blur")[], "update:modelValue" | "change" | "focus" | "blur" | "clear" | "visible-change" | "remove-tag", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
|
12656
|
+
emptyValues: ArrayConstructor;
|
|
12657
|
+
valueOnClear: import("../../../utils").EpPropFinalized<readonly [StringConstructor, NumberConstructor, BooleanConstructor, FunctionConstructor], unknown, unknown, undefined, boolean>;
|
|
12654
12658
|
name: StringConstructor;
|
|
12655
12659
|
id: StringConstructor;
|
|
12656
12660
|
modelValue: import("../../../utils").EpPropFinalized<(ArrayConstructor | ObjectConstructor | NumberConstructor | BooleanConstructor | StringConstructor)[], unknown, unknown, undefined, boolean>;
|
|
@@ -12748,6 +12752,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
12748
12752
|
maxCollapseTags: number;
|
|
12749
12753
|
collapseTagsTooltip: boolean;
|
|
12750
12754
|
tagType: import("../../../utils").EpPropMergeType<StringConstructor, "success" | "warning" | "info" | "primary" | "danger", unknown>;
|
|
12755
|
+
valueOnClear: import("../../../utils").EpPropMergeType<readonly [StringConstructor, NumberConstructor, BooleanConstructor, FunctionConstructor], unknown, unknown>;
|
|
12751
12756
|
automaticDropdown: boolean;
|
|
12752
12757
|
allowCreate: boolean;
|
|
12753
12758
|
remote: boolean;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { reactive, ref, computed, watch, watchEffect, nextTick, toRaw, onMounted } from 'vue';
|
|
2
2
|
import { isArray, isFunction, toRawType, isObject } from '@vue/shared';
|
|
3
|
-
import {
|
|
3
|
+
import { isEqual, get, debounce, findLastIndex } from 'lodash-unified';
|
|
4
4
|
import { isClient, useResizeObserver } from '@vueuse/core';
|
|
5
5
|
import '../../../constants/index.mjs';
|
|
6
6
|
import '../../../utils/index.mjs';
|
|
@@ -12,6 +12,7 @@ import { useId } from '../../../hooks/use-id/index.mjs';
|
|
|
12
12
|
import { useNamespace } from '../../../hooks/use-namespace/index.mjs';
|
|
13
13
|
import { useFocusController } from '../../../hooks/use-focus-controller/index.mjs';
|
|
14
14
|
import { useFormItem, useFormItemInputId } from '../../form/src/hooks/use-form-item.mjs';
|
|
15
|
+
import { useEmptyValues } from '../../../hooks/use-empty-values/index.mjs';
|
|
15
16
|
import { ValidateComponentsMap } from '../../../utils/vue/icon.mjs';
|
|
16
17
|
import { useFormSize } from '../../form/src/hooks/use-form-common-props.mjs';
|
|
17
18
|
import { debugWarn } from '../../../utils/error.mjs';
|
|
@@ -77,14 +78,13 @@ const useSelect = (props, emit) => {
|
|
|
77
78
|
const { inputId } = useFormItemInputId(props, {
|
|
78
79
|
formItemContext: formItem
|
|
79
80
|
});
|
|
81
|
+
const { valueOnClear, isEmptyValue } = useEmptyValues(props);
|
|
80
82
|
const selectDisabled = computed(() => props.disabled || (form == null ? void 0 : form.disabled));
|
|
81
|
-
const hasEmptyStringOption = computed(() => optionsArray.value.some((option) => option.value === ""));
|
|
82
83
|
const hasModelValue = computed(() => {
|
|
83
|
-
return props.multiple ? isArray(props.modelValue) && props.modelValue.length > 0 : !
|
|
84
|
+
return props.multiple ? isArray(props.modelValue) && props.modelValue.length > 0 : !isEmptyValue(props.modelValue);
|
|
84
85
|
});
|
|
85
86
|
const showClose = computed(() => {
|
|
86
|
-
|
|
87
|
-
return criteria;
|
|
87
|
+
return props.clearable && !selectDisabled.value && states.inputHovering && hasModelValue.value;
|
|
88
88
|
});
|
|
89
89
|
const iconComponent = computed(() => props.remote && props.filterable && !props.remoteShowSuffix ? "" : props.suffixIcon);
|
|
90
90
|
const iconReverse = computed(() => nsSelect.is("reverse", iconComponent.value && expanded.value));
|
|
@@ -355,7 +355,7 @@ const useSelect = (props, emit) => {
|
|
|
355
355
|
};
|
|
356
356
|
const deleteSelected = (event) => {
|
|
357
357
|
event.stopPropagation();
|
|
358
|
-
const value = props.multiple ? [] :
|
|
358
|
+
const value = props.multiple ? [] : valueOnClear.value;
|
|
359
359
|
if (props.multiple) {
|
|
360
360
|
for (const item of states.selected) {
|
|
361
361
|
if (item.isDisabled)
|
|
@@ -450,6 +450,7 @@ const useSelect = (props, emit) => {
|
|
|
450
450
|
return (_b = (_a = tooltipRef.value) == null ? void 0 : _a.popperRef) == null ? void 0 : _b.contentRef;
|
|
451
451
|
});
|
|
452
452
|
const handleMenuEnter = () => {
|
|
453
|
+
states.isBeforeHide = false;
|
|
453
454
|
nextTick(() => scrollToOption(states.selected));
|
|
454
455
|
};
|
|
455
456
|
const focus = () => {
|