@element-plus/nightly 0.0.20220303 → 0.0.20220306

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.
Files changed (645) hide show
  1. package/README.md +1 -1
  2. package/attributes.json +1 -1
  3. package/dist/index.css +1 -1
  4. package/dist/index.full.js +1980 -2030
  5. package/dist/index.full.min.js +11 -11
  6. package/dist/index.full.min.js.map +1 -1
  7. package/dist/index.full.min.mjs +11 -11
  8. package/dist/index.full.min.mjs.map +1 -1
  9. package/dist/index.full.mjs +1965 -2029
  10. package/dist/locale/af.js +1 -1
  11. package/dist/locale/af.min.js +1 -1
  12. package/dist/locale/af.min.mjs +1 -1
  13. package/dist/locale/af.mjs +1 -1
  14. package/dist/locale/ar.js +1 -1
  15. package/dist/locale/ar.min.js +1 -1
  16. package/dist/locale/ar.min.mjs +1 -1
  17. package/dist/locale/ar.mjs +1 -1
  18. package/dist/locale/bg.js +1 -1
  19. package/dist/locale/bg.min.js +1 -1
  20. package/dist/locale/bg.min.mjs +1 -1
  21. package/dist/locale/bg.mjs +1 -1
  22. package/dist/locale/bn.js +1 -1
  23. package/dist/locale/bn.min.js +1 -1
  24. package/dist/locale/bn.min.mjs +1 -1
  25. package/dist/locale/bn.mjs +1 -1
  26. package/dist/locale/ca.js +1 -1
  27. package/dist/locale/ca.min.js +1 -1
  28. package/dist/locale/ca.min.mjs +1 -1
  29. package/dist/locale/ca.mjs +1 -1
  30. package/dist/locale/cs.js +1 -1
  31. package/dist/locale/cs.min.js +1 -1
  32. package/dist/locale/cs.min.mjs +1 -1
  33. package/dist/locale/cs.mjs +1 -1
  34. package/dist/locale/da.js +1 -1
  35. package/dist/locale/da.min.js +1 -1
  36. package/dist/locale/da.min.mjs +1 -1
  37. package/dist/locale/da.mjs +1 -1
  38. package/dist/locale/de.js +1 -1
  39. package/dist/locale/de.min.js +1 -1
  40. package/dist/locale/de.min.mjs +1 -1
  41. package/dist/locale/de.mjs +1 -1
  42. package/dist/locale/el.js +1 -1
  43. package/dist/locale/el.min.js +1 -1
  44. package/dist/locale/el.min.mjs +1 -1
  45. package/dist/locale/el.mjs +1 -1
  46. package/dist/locale/en.js +1 -1
  47. package/dist/locale/en.min.js +1 -1
  48. package/dist/locale/en.min.mjs +1 -1
  49. package/dist/locale/en.mjs +1 -1
  50. package/dist/locale/eo.js +1 -1
  51. package/dist/locale/eo.min.js +1 -1
  52. package/dist/locale/eo.min.mjs +1 -1
  53. package/dist/locale/eo.mjs +1 -1
  54. package/dist/locale/es.js +1 -1
  55. package/dist/locale/es.min.js +1 -1
  56. package/dist/locale/es.min.mjs +1 -1
  57. package/dist/locale/es.mjs +1 -1
  58. package/dist/locale/et.js +1 -1
  59. package/dist/locale/et.min.js +1 -1
  60. package/dist/locale/et.min.mjs +1 -1
  61. package/dist/locale/et.mjs +1 -1
  62. package/dist/locale/eu.js +1 -1
  63. package/dist/locale/eu.min.js +1 -1
  64. package/dist/locale/eu.min.mjs +1 -1
  65. package/dist/locale/eu.mjs +1 -1
  66. package/dist/locale/fa.js +1 -1
  67. package/dist/locale/fa.min.js +1 -1
  68. package/dist/locale/fa.min.mjs +1 -1
  69. package/dist/locale/fa.mjs +1 -1
  70. package/dist/locale/fi.js +1 -1
  71. package/dist/locale/fi.min.js +1 -1
  72. package/dist/locale/fi.min.mjs +1 -1
  73. package/dist/locale/fi.mjs +1 -1
  74. package/dist/locale/fr.js +1 -1
  75. package/dist/locale/fr.min.js +1 -1
  76. package/dist/locale/fr.min.mjs +1 -1
  77. package/dist/locale/fr.mjs +1 -1
  78. package/dist/locale/he.js +1 -1
  79. package/dist/locale/he.min.js +1 -1
  80. package/dist/locale/he.min.mjs +1 -1
  81. package/dist/locale/he.mjs +1 -1
  82. package/dist/locale/hr.js +1 -1
  83. package/dist/locale/hr.min.js +1 -1
  84. package/dist/locale/hr.min.mjs +1 -1
  85. package/dist/locale/hr.mjs +1 -1
  86. package/dist/locale/hu.js +1 -1
  87. package/dist/locale/hu.min.js +1 -1
  88. package/dist/locale/hu.min.mjs +1 -1
  89. package/dist/locale/hu.mjs +1 -1
  90. package/dist/locale/hy-am.js +1 -1
  91. package/dist/locale/hy-am.min.js +1 -1
  92. package/dist/locale/hy-am.min.mjs +1 -1
  93. package/dist/locale/hy-am.mjs +1 -1
  94. package/dist/locale/id.js +1 -1
  95. package/dist/locale/id.min.js +1 -1
  96. package/dist/locale/id.min.mjs +1 -1
  97. package/dist/locale/id.mjs +1 -1
  98. package/dist/locale/it.js +1 -1
  99. package/dist/locale/it.min.js +1 -1
  100. package/dist/locale/it.min.mjs +1 -1
  101. package/dist/locale/it.mjs +1 -1
  102. package/dist/locale/ja.js +1 -1
  103. package/dist/locale/ja.min.js +1 -1
  104. package/dist/locale/ja.min.mjs +1 -1
  105. package/dist/locale/ja.mjs +1 -1
  106. package/dist/locale/kk.js +1 -1
  107. package/dist/locale/kk.min.js +1 -1
  108. package/dist/locale/kk.min.mjs +1 -1
  109. package/dist/locale/kk.mjs +1 -1
  110. package/dist/locale/km.js +1 -1
  111. package/dist/locale/km.min.js +1 -1
  112. package/dist/locale/km.min.mjs +1 -1
  113. package/dist/locale/km.mjs +1 -1
  114. package/dist/locale/ko.js +1 -1
  115. package/dist/locale/ko.min.js +1 -1
  116. package/dist/locale/ko.min.mjs +1 -1
  117. package/dist/locale/ko.mjs +1 -1
  118. package/dist/locale/ku.js +1 -1
  119. package/dist/locale/ku.min.js +1 -1
  120. package/dist/locale/ku.min.mjs +1 -1
  121. package/dist/locale/ku.mjs +1 -1
  122. package/dist/locale/ky.js +1 -1
  123. package/dist/locale/ky.min.js +1 -1
  124. package/dist/locale/ky.min.mjs +1 -1
  125. package/dist/locale/ky.mjs +1 -1
  126. package/dist/locale/lt.js +1 -1
  127. package/dist/locale/lt.min.js +1 -1
  128. package/dist/locale/lt.min.mjs +1 -1
  129. package/dist/locale/lt.mjs +1 -1
  130. package/dist/locale/lv.js +1 -1
  131. package/dist/locale/lv.min.js +1 -1
  132. package/dist/locale/lv.min.mjs +1 -1
  133. package/dist/locale/lv.mjs +1 -1
  134. package/dist/locale/mg.js +1 -1
  135. package/dist/locale/mg.min.js +1 -1
  136. package/dist/locale/mg.min.mjs +1 -1
  137. package/dist/locale/mg.mjs +1 -1
  138. package/dist/locale/mn.js +1 -1
  139. package/dist/locale/mn.min.js +1 -1
  140. package/dist/locale/mn.min.mjs +1 -1
  141. package/dist/locale/mn.mjs +1 -1
  142. package/dist/locale/nb-no.js +1 -1
  143. package/dist/locale/nb-no.min.js +1 -1
  144. package/dist/locale/nb-no.min.mjs +1 -1
  145. package/dist/locale/nb-no.mjs +1 -1
  146. package/dist/locale/nl.js +1 -1
  147. package/dist/locale/nl.min.js +1 -1
  148. package/dist/locale/nl.min.mjs +1 -1
  149. package/dist/locale/nl.mjs +1 -1
  150. package/dist/locale/pa.js +1 -1
  151. package/dist/locale/pa.min.js +1 -1
  152. package/dist/locale/pa.min.mjs +1 -1
  153. package/dist/locale/pa.mjs +1 -1
  154. package/dist/locale/pl.js +1 -1
  155. package/dist/locale/pl.min.js +1 -1
  156. package/dist/locale/pl.min.mjs +1 -1
  157. package/dist/locale/pl.mjs +1 -1
  158. package/dist/locale/pt-br.js +1 -1
  159. package/dist/locale/pt-br.min.js +1 -1
  160. package/dist/locale/pt-br.min.mjs +1 -1
  161. package/dist/locale/pt-br.mjs +1 -1
  162. package/dist/locale/pt.js +1 -1
  163. package/dist/locale/pt.min.js +1 -1
  164. package/dist/locale/pt.min.mjs +1 -1
  165. package/dist/locale/pt.mjs +1 -1
  166. package/dist/locale/ro.js +1 -1
  167. package/dist/locale/ro.min.js +1 -1
  168. package/dist/locale/ro.min.mjs +1 -1
  169. package/dist/locale/ro.mjs +1 -1
  170. package/dist/locale/ru.js +1 -1
  171. package/dist/locale/ru.min.js +1 -1
  172. package/dist/locale/ru.min.mjs +1 -1
  173. package/dist/locale/ru.mjs +1 -1
  174. package/dist/locale/sk.js +1 -1
  175. package/dist/locale/sk.min.js +1 -1
  176. package/dist/locale/sk.min.mjs +1 -1
  177. package/dist/locale/sk.mjs +1 -1
  178. package/dist/locale/sl.js +1 -1
  179. package/dist/locale/sl.min.js +1 -1
  180. package/dist/locale/sl.min.mjs +1 -1
  181. package/dist/locale/sl.mjs +1 -1
  182. package/dist/locale/sr.js +1 -1
  183. package/dist/locale/sr.min.js +1 -1
  184. package/dist/locale/sr.min.mjs +1 -1
  185. package/dist/locale/sr.mjs +1 -1
  186. package/dist/locale/sv.js +1 -1
  187. package/dist/locale/sv.min.js +1 -1
  188. package/dist/locale/sv.min.mjs +1 -1
  189. package/dist/locale/sv.mjs +1 -1
  190. package/dist/locale/ta.js +1 -1
  191. package/dist/locale/ta.min.js +1 -1
  192. package/dist/locale/ta.min.mjs +1 -1
  193. package/dist/locale/ta.mjs +1 -1
  194. package/dist/locale/th.js +1 -1
  195. package/dist/locale/th.min.js +1 -1
  196. package/dist/locale/th.min.mjs +1 -1
  197. package/dist/locale/th.mjs +1 -1
  198. package/dist/locale/tk.js +1 -1
  199. package/dist/locale/tk.min.js +1 -1
  200. package/dist/locale/tk.min.mjs +1 -1
  201. package/dist/locale/tk.mjs +1 -1
  202. package/dist/locale/tr.js +1 -1
  203. package/dist/locale/tr.min.js +1 -1
  204. package/dist/locale/tr.min.mjs +1 -1
  205. package/dist/locale/tr.mjs +1 -1
  206. package/dist/locale/ug-cn.js +1 -1
  207. package/dist/locale/ug-cn.min.js +1 -1
  208. package/dist/locale/ug-cn.min.mjs +1 -1
  209. package/dist/locale/ug-cn.mjs +1 -1
  210. package/dist/locale/uk.js +1 -1
  211. package/dist/locale/uk.min.js +1 -1
  212. package/dist/locale/uk.min.mjs +1 -1
  213. package/dist/locale/uk.mjs +1 -1
  214. package/dist/locale/uz-uz.js +1 -1
  215. package/dist/locale/uz-uz.min.js +1 -1
  216. package/dist/locale/uz-uz.min.mjs +1 -1
  217. package/dist/locale/uz-uz.mjs +1 -1
  218. package/dist/locale/vi.js +1 -1
  219. package/dist/locale/vi.min.js +1 -1
  220. package/dist/locale/vi.min.mjs +1 -1
  221. package/dist/locale/vi.mjs +1 -1
  222. package/dist/locale/zh-cn.js +1 -1
  223. package/dist/locale/zh-cn.min.js +1 -1
  224. package/dist/locale/zh-cn.min.mjs +1 -1
  225. package/dist/locale/zh-cn.mjs +1 -1
  226. package/dist/locale/zh-tw.js +1 -1
  227. package/dist/locale/zh-tw.min.js +1 -1
  228. package/dist/locale/zh-tw.min.mjs +1 -1
  229. package/dist/locale/zh-tw.mjs +1 -1
  230. package/es/components/autocomplete/index.d.ts +4 -4
  231. package/es/components/autocomplete/src/autocomplete.vue.d.ts +4 -4
  232. package/es/components/button/index.d.ts +1 -1
  233. package/es/components/button/src/button.vue.d.ts +1 -1
  234. package/es/components/cascader/index.d.ts +18 -18
  235. package/es/components/cascader/src/index.mjs +5 -4
  236. package/es/components/cascader/src/index.mjs.map +1 -1
  237. package/es/components/cascader/src/index.vue.d.ts +9 -9
  238. package/es/components/checkbox/src/checkbox-group.mjs +2 -1
  239. package/es/components/checkbox/src/checkbox-group.mjs.map +1 -1
  240. package/es/components/checkbox/src/useCheckbox.d.ts +4 -4
  241. package/es/components/checkbox/src/useCheckbox.mjs +6 -4
  242. package/es/components/checkbox/src/useCheckbox.mjs.map +1 -1
  243. package/es/components/color-picker/src/index.mjs +6 -5
  244. package/es/components/color-picker/src/index.mjs.map +1 -1
  245. package/es/components/dropdown/index.d.ts +3 -0
  246. package/es/components/dropdown/src/dropdown.d.ts +1 -0
  247. package/es/components/dropdown/src/dropdown.mjs +4 -0
  248. package/es/components/dropdown/src/dropdown.mjs.map +1 -1
  249. package/es/components/dropdown/src/dropdown.vue.d.ts +3 -0
  250. package/es/components/dropdown/src/dropdown2.mjs +8 -5
  251. package/es/components/dropdown/src/dropdown2.mjs.map +1 -1
  252. package/es/components/form/index.d.ts +285 -210
  253. package/es/components/form/index.mjs +8 -5
  254. package/es/components/form/index.mjs.map +1 -1
  255. package/es/components/form/src/form-item.d.ts +21 -0
  256. package/es/components/form/src/form-item.mjs +41 -301
  257. package/es/components/form/src/form-item.mjs.map +1 -1
  258. package/es/components/form/src/form-item.vue.d.ts +104 -73
  259. package/es/components/form/src/form-item2.mjs +249 -0
  260. package/es/components/form/src/form-item2.mjs.map +1 -0
  261. package/es/components/form/src/form-label-wrap.d.ts +11 -0
  262. package/es/components/form/src/form-label-wrap.mjs +96 -0
  263. package/es/components/form/src/form-label-wrap.mjs.map +1 -0
  264. package/es/components/form/src/form.d.ts +25 -0
  265. package/es/components/form/src/form.mjs +43 -208
  266. package/es/components/form/src/form.mjs.map +1 -1
  267. package/es/components/form/src/form.vue.d.ts +86 -76
  268. package/es/components/form/src/form2.mjs +130 -0
  269. package/es/components/form/src/form2.mjs.map +1 -0
  270. package/es/components/form/src/types.d.ts +9 -0
  271. package/es/components/form/src/types.mjs +2 -0
  272. package/es/components/form/src/types.mjs.map +1 -0
  273. package/es/components/form/src/utils.d.ts +9 -0
  274. package/es/components/form/src/utils.mjs +48 -0
  275. package/es/components/form/src/utils.mjs.map +1 -0
  276. package/es/components/index.mjs +6 -0
  277. package/es/components/index.mjs.map +1 -1
  278. package/es/components/input/index.d.ts +1 -1
  279. package/es/components/input/src/input.vue.d.ts +1 -1
  280. package/es/components/input/src/input2.mjs +3 -2
  281. package/es/components/input/src/input2.mjs.map +1 -1
  282. package/es/components/input-number/index.d.ts +2 -2
  283. package/es/components/input-number/src/input-number.vue.d.ts +2 -2
  284. package/es/components/input-number/src/input-number2.mjs +2 -2
  285. package/es/components/input-number/src/input-number2.mjs.map +1 -1
  286. package/es/components/message-box/index.mjs +1 -0
  287. package/es/components/message-box/index.mjs.map +1 -1
  288. package/es/components/message-box/src/index.vue.d.ts +2 -2
  289. package/es/components/message-box/src/message-box.type.d.ts +4 -3
  290. package/es/components/message-box/src/messageBox.mjs +39 -56
  291. package/es/components/message-box/src/messageBox.mjs.map +1 -1
  292. package/es/components/popover/index.d.ts +2 -0
  293. package/es/components/popover/src/index.mjs +6 -1
  294. package/es/components/popover/src/index.mjs.map +1 -1
  295. package/es/components/popover/src/index.vue.d.ts +1 -0
  296. package/es/components/radio/index.d.ts +1 -1
  297. package/es/components/radio/src/radio-group.vue.d.ts +10 -10
  298. package/es/components/radio/src/radio-group2.mjs +3 -1
  299. package/es/components/radio/src/radio-group2.mjs.map +1 -1
  300. package/es/components/radio/src/radio.vue.d.ts +1 -1
  301. package/es/components/rate/index.d.ts +1 -1
  302. package/es/components/rate/src/rate.vue.d.ts +1 -1
  303. package/es/components/rate/src/rate2.mjs +2 -2
  304. package/es/components/rate/src/rate2.mjs.map +1 -1
  305. package/es/components/scrollbar/index.d.ts +3 -3
  306. package/es/components/scrollbar/src/scrollbar.d.ts +1 -1
  307. package/es/components/scrollbar/src/scrollbar.mjs +1 -1
  308. package/es/components/scrollbar/src/scrollbar.mjs.map +1 -1
  309. package/es/components/scrollbar/src/scrollbar.vue.d.ts +3 -3
  310. package/es/components/select/index.d.ts +9 -0
  311. package/es/components/select/src/select.mjs +6 -2
  312. package/es/components/select/src/select.mjs.map +1 -1
  313. package/es/components/select/src/select.vue.d.ts +9 -0
  314. package/es/components/select/src/useSelect.mjs +7 -6
  315. package/es/components/select/src/useSelect.mjs.map +1 -1
  316. package/es/components/select-v2/index.d.ts +24 -6
  317. package/es/components/select-v2/src/defaults.d.ts +5 -1
  318. package/es/components/select-v2/src/defaults.mjs +4 -0
  319. package/es/components/select-v2/src/defaults.mjs.map +1 -1
  320. package/es/components/select-v2/src/select.mjs +3 -3
  321. package/es/components/select-v2/src/select.mjs.map +1 -1
  322. package/es/components/select-v2/src/select.vue.d.ts +12 -3
  323. package/es/components/select-v2/src/useSelect.mjs +2 -1
  324. package/es/components/select-v2/src/useSelect.mjs.map +1 -1
  325. package/es/components/slider/index.d.ts +2 -2
  326. package/es/components/slider/src/index.mjs +3 -3
  327. package/es/components/slider/src/index.mjs.map +1 -1
  328. package/es/components/slider/src/index.vue.d.ts +1 -1
  329. package/es/components/slider/src/useSlide.d.ts +2 -2
  330. package/es/components/slider/src/useSlide.mjs +3 -3
  331. package/es/components/slider/src/useSlide.mjs.map +1 -1
  332. package/es/components/switch/src/switch2.mjs +2 -2
  333. package/es/components/switch/src/switch2.mjs.map +1 -1
  334. package/es/components/table/index.d.ts +4 -0
  335. package/es/components/table/src/config.mjs +2 -2
  336. package/es/components/table/src/config.mjs.map +1 -1
  337. package/es/components/table/src/table/style-helper.d.ts +4 -0
  338. package/es/components/table/src/table/style-helper.mjs +6 -1
  339. package/es/components/table/src/table/style-helper.mjs.map +1 -1
  340. package/es/components/table/src/table-column/index.mjs +11 -4
  341. package/es/components/table/src/table-column/index.mjs.map +1 -1
  342. package/es/components/table/src/table.mjs +7 -4
  343. package/es/components/table/src/table.mjs.map +1 -1
  344. package/es/components/table/src/table.vue.d.ts +4 -0
  345. package/es/components/time-picker/src/common/picker.mjs +6 -5
  346. package/es/components/time-picker/src/common/picker.mjs.map +1 -1
  347. package/es/components/time-picker/src/common/picker.vue.d.ts +1 -1
  348. package/es/components/transfer/src/index.mjs +6 -4
  349. package/es/components/transfer/src/index.mjs.map +1 -1
  350. package/es/components/upload/index.d.ts +807 -727
  351. package/es/components/upload/index.mjs +9 -7
  352. package/es/components/upload/index.mjs.map +1 -1
  353. package/es/components/upload/src/ajax.d.ts +8 -2
  354. package/es/components/upload/src/ajax.mjs +39 -34
  355. package/es/components/upload/src/ajax.mjs.map +1 -1
  356. package/es/components/upload/src/upload-content.d.ts +32 -0
  357. package/es/components/upload/src/upload-content.mjs +39 -0
  358. package/es/components/upload/src/upload-content.mjs.map +1 -0
  359. package/es/components/upload/src/upload-content.vue.d.ts +165 -0
  360. package/es/components/upload/src/upload-content2.mjs +172 -0
  361. package/es/components/upload/src/upload-content2.mjs.map +1 -0
  362. package/es/components/upload/src/upload-dragger.d.ts +11 -0
  363. package/es/components/upload/src/upload-dragger.mjs +11 -67
  364. package/es/components/upload/src/upload-dragger.mjs.map +1 -1
  365. package/es/components/upload/src/upload-dragger.vue.d.ts +15 -11
  366. package/es/components/upload/src/upload-dragger2.mjs +73 -0
  367. package/es/components/upload/src/upload-dragger2.mjs.map +1 -0
  368. package/es/components/upload/src/upload-list.d.ts +15 -0
  369. package/es/components/upload/src/upload-list.mjs +23 -207
  370. package/es/components/upload/src/upload-list.mjs.map +1 -1
  371. package/es/components/upload/src/upload-list.vue.d.ts +148 -44
  372. package/es/components/upload/src/upload-list2.mjs +173 -0
  373. package/es/components/upload/src/upload-list2.mjs.map +1 -0
  374. package/es/components/upload/src/upload.d.ts +97 -0
  375. package/es/components/upload/src/upload.mjs +103 -266
  376. package/es/components/upload/src/upload.mjs.map +1 -1
  377. package/es/components/upload/src/upload.vue.d.ts +830 -292
  378. package/es/components/upload/src/upload2.mjs +122 -0
  379. package/es/components/upload/src/upload2.mjs.map +1 -0
  380. package/es/components/upload/src/{useHandlers.d.ts → use-handlers.d.ts} +10 -13
  381. package/es/components/upload/src/use-handlers.mjs +142 -0
  382. package/es/components/upload/src/use-handlers.mjs.map +1 -0
  383. package/es/hooks/use-common-props/index.mjs +4 -4
  384. package/es/hooks/use-common-props/index.mjs.map +1 -1
  385. package/es/hooks/use-form-item/index.d.ts +2 -2
  386. package/es/hooks/use-form-item/index.mjs +3 -3
  387. package/es/hooks/use-form-item/index.mjs.map +1 -1
  388. package/es/index.mjs +8 -1
  389. package/es/index.mjs.map +1 -1
  390. package/es/tokens/form.d.ts +17 -37
  391. package/es/tokens/form.mjs +3 -3
  392. package/es/tokens/form.mjs.map +1 -1
  393. package/es/tokens/index.d.ts +1 -0
  394. package/es/tokens/index.mjs +2 -1
  395. package/es/tokens/index.mjs.map +1 -1
  396. package/es/tokens/upload.d.ts +5 -0
  397. package/es/tokens/upload.mjs +4 -0
  398. package/es/tokens/upload.mjs.map +1 -0
  399. package/es/utils/error.d.ts +1 -0
  400. package/es/utils/error.mjs +5 -1
  401. package/es/utils/error.mjs.map +1 -1
  402. package/es/utils/index.mjs +1 -1
  403. package/es/utils/objects.d.ts +3 -5
  404. package/es/utils/objects.mjs +10 -35
  405. package/es/utils/objects.mjs.map +1 -1
  406. package/es/utils/typescript.d.ts +1 -0
  407. package/es/utils/typescript.mjs.map +1 -1
  408. package/es/version.d.ts +1 -1
  409. package/es/version.mjs +1 -1
  410. package/es/version.mjs.map +1 -1
  411. package/lib/components/autocomplete/index.d.ts +4 -4
  412. package/lib/components/autocomplete/src/autocomplete.vue.d.ts +4 -4
  413. package/lib/components/button/index.d.ts +1 -1
  414. package/lib/components/button/src/button.vue.d.ts +1 -1
  415. package/lib/components/cascader/index.d.ts +18 -18
  416. package/lib/components/cascader/src/index.js +4 -3
  417. package/lib/components/cascader/src/index.js.map +1 -1
  418. package/lib/components/cascader/src/index.vue.d.ts +9 -9
  419. package/lib/components/checkbox/src/checkbox-group.js +2 -1
  420. package/lib/components/checkbox/src/checkbox-group.js.map +1 -1
  421. package/lib/components/checkbox/src/useCheckbox.d.ts +4 -4
  422. package/lib/components/checkbox/src/useCheckbox.js +5 -3
  423. package/lib/components/checkbox/src/useCheckbox.js.map +1 -1
  424. package/lib/components/color-picker/src/index.js +5 -4
  425. package/lib/components/color-picker/src/index.js.map +1 -1
  426. package/lib/components/dropdown/index.d.ts +3 -0
  427. package/lib/components/dropdown/src/dropdown.d.ts +1 -0
  428. package/lib/components/dropdown/src/dropdown.js +4 -0
  429. package/lib/components/dropdown/src/dropdown.js.map +1 -1
  430. package/lib/components/dropdown/src/dropdown.vue.d.ts +3 -0
  431. package/lib/components/dropdown/src/dropdown2.js +8 -5
  432. package/lib/components/dropdown/src/dropdown2.js.map +1 -1
  433. package/lib/components/form/index.d.ts +285 -210
  434. package/lib/components/form/index.js +10 -3
  435. package/lib/components/form/index.js.map +1 -1
  436. package/lib/components/form/src/form-item.d.ts +21 -0
  437. package/lib/components/form/src/form-item.js +42 -305
  438. package/lib/components/form/src/form-item.js.map +1 -1
  439. package/lib/components/form/src/form-item.vue.d.ts +104 -73
  440. package/lib/components/form/src/form-item2.js +257 -0
  441. package/lib/components/form/src/form-item2.js.map +1 -0
  442. package/lib/components/form/src/form-label-wrap.d.ts +11 -0
  443. package/lib/components/form/src/form-label-wrap.js +100 -0
  444. package/lib/components/form/src/form-label-wrap.js.map +1 -0
  445. package/lib/components/form/src/form.d.ts +25 -0
  446. package/lib/components/form/src/form.js +44 -208
  447. package/lib/components/form/src/form.js.map +1 -1
  448. package/lib/components/form/src/form.vue.d.ts +86 -76
  449. package/lib/components/form/src/form2.js +134 -0
  450. package/lib/components/form/src/form2.js.map +1 -0
  451. package/lib/components/form/src/types.d.ts +9 -0
  452. package/lib/components/form/src/types.js +3 -0
  453. package/lib/components/form/src/types.js.map +1 -0
  454. package/lib/components/form/src/utils.d.ts +9 -0
  455. package/lib/components/form/src/utils.js +53 -0
  456. package/lib/components/form/src/utils.js.map +1 -0
  457. package/lib/components/index.js +19 -0
  458. package/lib/components/index.js.map +1 -1
  459. package/lib/components/input/index.d.ts +1 -1
  460. package/lib/components/input/src/input.vue.d.ts +1 -1
  461. package/lib/components/input/src/input2.js +3 -2
  462. package/lib/components/input/src/input2.js.map +1 -1
  463. package/lib/components/input-number/index.d.ts +2 -2
  464. package/lib/components/input-number/src/input-number.vue.d.ts +2 -2
  465. package/lib/components/input-number/src/input-number2.js +2 -2
  466. package/lib/components/input-number/src/input-number2.js.map +1 -1
  467. package/lib/components/message-box/index.js +1 -0
  468. package/lib/components/message-box/index.js.map +1 -1
  469. package/lib/components/message-box/src/index.vue.d.ts +2 -2
  470. package/lib/components/message-box/src/message-box.type.d.ts +4 -3
  471. package/lib/components/message-box/src/messageBox.js +38 -55
  472. package/lib/components/message-box/src/messageBox.js.map +1 -1
  473. package/lib/components/popover/index.d.ts +2 -0
  474. package/lib/components/popover/src/index.js +6 -1
  475. package/lib/components/popover/src/index.js.map +1 -1
  476. package/lib/components/popover/src/index.vue.d.ts +1 -0
  477. package/lib/components/radio/index.d.ts +1 -1
  478. package/lib/components/radio/src/radio-group.vue.d.ts +10 -10
  479. package/lib/components/radio/src/radio-group2.js +3 -1
  480. package/lib/components/radio/src/radio-group2.js.map +1 -1
  481. package/lib/components/radio/src/radio.vue.d.ts +1 -1
  482. package/lib/components/rate/index.d.ts +1 -1
  483. package/lib/components/rate/src/rate.vue.d.ts +1 -1
  484. package/lib/components/rate/src/rate2.js +1 -1
  485. package/lib/components/rate/src/rate2.js.map +1 -1
  486. package/lib/components/scrollbar/index.d.ts +3 -3
  487. package/lib/components/scrollbar/src/scrollbar.d.ts +1 -1
  488. package/lib/components/scrollbar/src/scrollbar.js +1 -1
  489. package/lib/components/scrollbar/src/scrollbar.js.map +1 -1
  490. package/lib/components/scrollbar/src/scrollbar.vue.d.ts +3 -3
  491. package/lib/components/select/index.d.ts +9 -0
  492. package/lib/components/select/src/select.js +6 -2
  493. package/lib/components/select/src/select.js.map +1 -1
  494. package/lib/components/select/src/select.vue.d.ts +9 -0
  495. package/lib/components/select/src/useSelect.js +6 -5
  496. package/lib/components/select/src/useSelect.js.map +1 -1
  497. package/lib/components/select-v2/index.d.ts +24 -6
  498. package/lib/components/select-v2/src/defaults.d.ts +5 -1
  499. package/lib/components/select-v2/src/defaults.js +4 -0
  500. package/lib/components/select-v2/src/defaults.js.map +1 -1
  501. package/lib/components/select-v2/src/select.js +3 -3
  502. package/lib/components/select-v2/src/select.js.map +1 -1
  503. package/lib/components/select-v2/src/select.vue.d.ts +12 -3
  504. package/lib/components/select-v2/src/useSelect.js +2 -1
  505. package/lib/components/select-v2/src/useSelect.js.map +1 -1
  506. package/lib/components/slider/index.d.ts +2 -2
  507. package/lib/components/slider/src/index.js +2 -2
  508. package/lib/components/slider/src/index.js.map +1 -1
  509. package/lib/components/slider/src/index.vue.d.ts +1 -1
  510. package/lib/components/slider/src/useSlide.d.ts +2 -2
  511. package/lib/components/slider/src/useSlide.js +2 -2
  512. package/lib/components/slider/src/useSlide.js.map +1 -1
  513. package/lib/components/switch/src/switch2.js +2 -2
  514. package/lib/components/switch/src/switch2.js.map +1 -1
  515. package/lib/components/table/index.d.ts +4 -0
  516. package/lib/components/table/src/config.js +1 -1
  517. package/lib/components/table/src/config.js.map +1 -1
  518. package/lib/components/table/src/table/style-helper.d.ts +4 -0
  519. package/lib/components/table/src/table/style-helper.js +6 -1
  520. package/lib/components/table/src/table/style-helper.js.map +1 -1
  521. package/lib/components/table/src/table-column/index.js +11 -4
  522. package/lib/components/table/src/table-column/index.js.map +1 -1
  523. package/lib/components/table/src/table.js +7 -4
  524. package/lib/components/table/src/table.js.map +1 -1
  525. package/lib/components/table/src/table.vue.d.ts +4 -0
  526. package/lib/components/time-picker/src/common/picker.js +5 -4
  527. package/lib/components/time-picker/src/common/picker.js.map +1 -1
  528. package/lib/components/time-picker/src/common/picker.vue.d.ts +1 -1
  529. package/lib/components/transfer/src/index.js +5 -3
  530. package/lib/components/transfer/src/index.js.map +1 -1
  531. package/lib/components/upload/index.d.ts +807 -727
  532. package/lib/components/upload/index.js +18 -7
  533. package/lib/components/upload/index.js.map +1 -1
  534. package/lib/components/upload/src/ajax.d.ts +8 -2
  535. package/lib/components/upload/src/ajax.js +40 -34
  536. package/lib/components/upload/src/ajax.js.map +1 -1
  537. package/lib/components/upload/src/upload-content.d.ts +32 -0
  538. package/lib/components/upload/src/upload-content.js +43 -0
  539. package/lib/components/upload/src/upload-content.js.map +1 -0
  540. package/lib/components/upload/src/upload-content.vue.d.ts +165 -0
  541. package/lib/components/upload/src/upload-content2.js +176 -0
  542. package/lib/components/upload/src/upload-content2.js.map +1 -0
  543. package/lib/components/upload/src/upload-dragger.d.ts +11 -0
  544. package/lib/components/upload/src/upload-dragger.js +12 -67
  545. package/lib/components/upload/src/upload-dragger.js.map +1 -1
  546. package/lib/components/upload/src/upload-dragger.vue.d.ts +15 -11
  547. package/lib/components/upload/src/upload-dragger2.js +77 -0
  548. package/lib/components/upload/src/upload-dragger2.js.map +1 -0
  549. package/lib/components/upload/src/upload-list.d.ts +15 -0
  550. package/lib/components/upload/src/upload-list.js +24 -207
  551. package/lib/components/upload/src/upload-list.js.map +1 -1
  552. package/lib/components/upload/src/upload-list.vue.d.ts +148 -44
  553. package/lib/components/upload/src/upload-list2.js +177 -0
  554. package/lib/components/upload/src/upload-list2.js.map +1 -0
  555. package/lib/components/upload/src/upload.d.ts +97 -0
  556. package/lib/components/upload/src/upload.js +104 -264
  557. package/lib/components/upload/src/upload.js.map +1 -1
  558. package/lib/components/upload/src/upload.vue.d.ts +830 -292
  559. package/lib/components/upload/src/upload2.js +126 -0
  560. package/lib/components/upload/src/upload2.js.map +1 -0
  561. package/lib/components/upload/src/{useHandlers.d.ts → use-handlers.d.ts} +10 -13
  562. package/lib/components/upload/src/use-handlers.js +146 -0
  563. package/lib/components/upload/src/use-handlers.js.map +1 -0
  564. package/lib/hooks/use-common-props/index.js +3 -3
  565. package/lib/hooks/use-common-props/index.js.map +1 -1
  566. package/lib/hooks/use-form-item/index.d.ts +2 -2
  567. package/lib/hooks/use-form-item/index.js +2 -2
  568. package/lib/hooks/use-form-item/index.js.map +1 -1
  569. package/lib/index.js +24 -3
  570. package/lib/index.js.map +1 -1
  571. package/lib/tokens/form.d.ts +17 -37
  572. package/lib/tokens/form.js +4 -4
  573. package/lib/tokens/form.js.map +1 -1
  574. package/lib/tokens/index.d.ts +1 -0
  575. package/lib/tokens/index.js +4 -2
  576. package/lib/tokens/index.js.map +1 -1
  577. package/lib/tokens/upload.d.ts +5 -0
  578. package/lib/tokens/upload.js +8 -0
  579. package/lib/tokens/upload.js.map +1 -0
  580. package/lib/utils/error.d.ts +1 -0
  581. package/lib/utils/error.js +5 -1
  582. package/lib/utils/error.js.map +1 -1
  583. package/lib/utils/index.js +1 -1
  584. package/lib/utils/objects.d.ts +3 -5
  585. package/lib/utils/objects.js +10 -34
  586. package/lib/utils/objects.js.map +1 -1
  587. package/lib/utils/typescript.d.ts +1 -0
  588. package/lib/utils/typescript.js.map +1 -1
  589. package/lib/version.d.ts +1 -1
  590. package/lib/version.js +1 -1
  591. package/lib/version.js.map +1 -1
  592. package/package.json +2 -2
  593. package/tags.json +1 -1
  594. package/theme-chalk/el-cascader.css +1 -1
  595. package/theme-chalk/el-dialog.css +1 -1
  596. package/theme-chalk/el-dropdown.css +1 -1
  597. package/theme-chalk/el-input.css +1 -1
  598. package/theme-chalk/el-select-v2.css +1 -1
  599. package/theme-chalk/el-select.css +1 -1
  600. package/theme-chalk/el-table.css +1 -1
  601. package/theme-chalk/index.css +1 -1
  602. package/theme-chalk/src/cascader-panel.scss +1 -1
  603. package/theme-chalk/src/cascader.scss +1 -1
  604. package/theme-chalk/src/common/transition.scss +2 -2
  605. package/theme-chalk/src/common/var.scss +1 -0
  606. package/theme-chalk/src/date-picker/date-table.scss +4 -4
  607. package/theme-chalk/src/dialog.scss +1 -1
  608. package/theme-chalk/src/dropdown.scss +5 -0
  609. package/theme-chalk/src/input.scss +12 -4
  610. package/theme-chalk/src/menu.scss +1 -1
  611. package/theme-chalk/src/option-item.scss +2 -2
  612. package/theme-chalk/src/page-header.scss +1 -1
  613. package/theme-chalk/src/pagination.scss +2 -2
  614. package/theme-chalk/src/select-v2.scss +8 -0
  615. package/theme-chalk/src/select.scss +0 -4
  616. package/theme-chalk/src/table.scss +2 -1
  617. package/web-types.json +1 -1
  618. package/es/components/form/src/form.type.d.ts +0 -5
  619. package/es/components/form/src/form.type.mjs +0 -2
  620. package/es/components/form/src/form.type.mjs.map +0 -1
  621. package/es/components/form/src/label-wrap.d.ts +0 -13
  622. package/es/components/form/src/label-wrap.mjs +0 -83
  623. package/es/components/form/src/label-wrap.mjs.map +0 -1
  624. package/es/components/upload/src/index.mjs +0 -220
  625. package/es/components/upload/src/index.mjs.map +0 -1
  626. package/es/components/upload/src/index.vue.d.ts +0 -282
  627. package/es/components/upload/src/upload.type.d.ts +0 -72
  628. package/es/components/upload/src/upload.type.mjs +0 -2
  629. package/es/components/upload/src/upload.type.mjs.map +0 -1
  630. package/es/components/upload/src/useHandlers.mjs +0 -143
  631. package/es/components/upload/src/useHandlers.mjs.map +0 -1
  632. package/lib/components/form/src/form.type.d.ts +0 -5
  633. package/lib/components/form/src/form.type.js +0 -3
  634. package/lib/components/form/src/form.type.js.map +0 -1
  635. package/lib/components/form/src/label-wrap.d.ts +0 -13
  636. package/lib/components/form/src/label-wrap.js +0 -87
  637. package/lib/components/form/src/label-wrap.js.map +0 -1
  638. package/lib/components/upload/src/index.js +0 -224
  639. package/lib/components/upload/src/index.js.map +0 -1
  640. package/lib/components/upload/src/index.vue.d.ts +0 -282
  641. package/lib/components/upload/src/upload.type.d.ts +0 -72
  642. package/lib/components/upload/src/upload.type.js +0 -3
  643. package/lib/components/upload/src/upload.type.js.map +0 -1
  644. package/lib/components/upload/src/useHandlers.js +0 -147
  645. package/lib/components/upload/src/useHandlers.js.map +0 -1
@@ -1,9 +1,9 @@
1
1
  declare const _default: import("vue").DefineComponent<{
2
- readonly size: import("../../../utils").BuildPropReturn<StringConstructor, never, false, "default" | "small" | "large", never>;
2
+ readonly size: import("element-plus/es/utils").BuildPropReturn<StringConstructor, never, false, "default" | "small" | "large", never>;
3
3
  readonly disabled: BooleanConstructor;
4
- readonly modelValue: import("../../../utils").BuildPropReturn<readonly [StringConstructor, NumberConstructor, BooleanConstructor], "", unknown, unknown, unknown>;
5
- readonly fill: import("../../../utils").BuildPropReturn<StringConstructor, "", unknown, unknown, unknown>;
6
- readonly textColor: import("../../../utils").BuildPropReturn<StringConstructor, "", unknown, unknown, unknown>;
4
+ readonly modelValue: import("element-plus/es/utils").BuildPropReturn<readonly [StringConstructor, NumberConstructor, BooleanConstructor], "", unknown, unknown, unknown>;
5
+ readonly fill: import("element-plus/es/utils").BuildPropReturn<StringConstructor, "", unknown, unknown, unknown>;
6
+ readonly textColor: import("element-plus/es/utils").BuildPropReturn<StringConstructor, "", unknown, unknown, unknown>;
7
7
  }, {
8
8
  ns: {
9
9
  namespace: import("vue").ComputedRef<string>;
@@ -25,19 +25,19 @@ declare const _default: import("vue").DefineComponent<{
25
25
  "update:modelValue": (val: string | number | boolean) => boolean;
26
26
  change: (val: string | number | boolean) => boolean;
27
27
  }, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
28
- readonly size: import("../../../utils").BuildPropReturn<StringConstructor, never, false, "default" | "small" | "large", never>;
28
+ readonly size: import("element-plus/es/utils").BuildPropReturn<StringConstructor, never, false, "default" | "small" | "large", never>;
29
29
  readonly disabled: BooleanConstructor;
30
- readonly modelValue: import("../../../utils").BuildPropReturn<readonly [StringConstructor, NumberConstructor, BooleanConstructor], "", unknown, unknown, unknown>;
31
- readonly fill: import("../../../utils").BuildPropReturn<StringConstructor, "", unknown, unknown, unknown>;
32
- readonly textColor: import("../../../utils").BuildPropReturn<StringConstructor, "", unknown, unknown, unknown>;
30
+ readonly modelValue: import("element-plus/es/utils").BuildPropReturn<readonly [StringConstructor, NumberConstructor, BooleanConstructor], "", unknown, unknown, unknown>;
31
+ readonly fill: import("element-plus/es/utils").BuildPropReturn<StringConstructor, "", unknown, unknown, unknown>;
32
+ readonly textColor: import("element-plus/es/utils").BuildPropReturn<StringConstructor, "", unknown, unknown, unknown>;
33
33
  }>> & {
34
34
  onChange?: ((val: string | number | boolean) => any) | undefined;
35
35
  "onUpdate:modelValue"?: ((val: string | number | boolean) => any) | undefined;
36
36
  }, {
37
- size: import("../../../utils").BuildPropType<StringConstructor, "default" | "small" | "large", never>;
37
+ size: import("element-plus/es/utils").BuildPropType<StringConstructor, "default" | "small" | "large", never>;
38
38
  disabled: boolean;
39
39
  fill: string;
40
- modelValue: import("../../../utils").BuildPropType<readonly [StringConstructor, NumberConstructor, BooleanConstructor], unknown, unknown>;
40
+ modelValue: import("element-plus/es/utils").BuildPropType<readonly [StringConstructor, NumberConstructor, BooleanConstructor], unknown, unknown>;
41
41
  textColor: string;
42
42
  }>;
43
43
  export default _default;
@@ -2,6 +2,7 @@ import { defineComponent, ref, nextTick, onMounted, provide, reactive, toRefs, w
2
2
  import '../../../constants/index.mjs';
3
3
  import '../../../tokens/index.mjs';
4
4
  import '../../../hooks/index.mjs';
5
+ import '../../../utils/index.mjs';
5
6
  import { radioGroupProps, radioGroupEmits } from './radio-group.mjs';
6
7
  import _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';
7
8
  import { useNamespace } from '../../../hooks/use-namespace/index.mjs';
@@ -9,6 +10,7 @@ import { useFormItem } from '../../../hooks/use-form-item/index.mjs';
9
10
  import { UPDATE_MODEL_EVENT } from '../../../constants/event.mjs';
10
11
  import { EVENT_CODE } from '../../../constants/aria.mjs';
11
12
  import { radioGroupKey } from '../../../tokens/radio.mjs';
13
+ import { debugWarn } from '../../../utils/error.mjs';
12
14
 
13
15
  const _sfc_main = defineComponent({
14
16
  name: "ElRadioGroup",
@@ -64,7 +66,7 @@ const _sfc_main = defineComponent({
64
66
  ...toRefs(props),
65
67
  changeEvent
66
68
  }));
67
- watch(() => props.modelValue, () => formItem == null ? void 0 : formItem.validate("change"));
69
+ watch(() => props.modelValue, () => formItem == null ? void 0 : formItem.validate("change").catch((err) => debugWarn(err)));
68
70
  return {
69
71
  ns,
70
72
  radioGroupRef,
@@ -1 +1 @@
1
- {"version":3,"file":"radio-group2.mjs","sources":["../../../../../../packages/components/radio/src/radio-group.vue"],"sourcesContent":["<template>\n <div\n ref=\"radioGroupRef\"\n :class=\"ns.b('group')\"\n role=\"radiogroup\"\n @keydown=\"handleKeydown\"\n >\n <slot></slot>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport {\n defineComponent,\n nextTick,\n provide,\n onMounted,\n ref,\n reactive,\n toRefs,\n watch,\n} from 'vue'\nimport { EVENT_CODE, UPDATE_MODEL_EVENT } from '@element-plus/constants'\nimport { radioGroupKey } from '@element-plus/tokens'\nimport { useFormItem, useNamespace } from '@element-plus/hooks'\nimport { radioGroupEmits, radioGroupProps } from './radio-group'\nimport type { RadioGroupProps } from '..'\n\nexport default defineComponent({\n name: 'ElRadioGroup',\n props: radioGroupProps,\n emits: radioGroupEmits,\n\n setup(props, ctx) {\n const ns = useNamespace('radio')\n const radioGroupRef = ref<HTMLDivElement>()\n const { formItem } = useFormItem()\n\n const changeEvent = (value: RadioGroupProps['modelValue']) => {\n ctx.emit(UPDATE_MODEL_EVENT, value)\n nextTick(() => ctx.emit('change', value))\n }\n\n const handleKeydown = (e: KeyboardEvent) => {\n if (!radioGroupRef.value) return\n\n // 左右上下按键 可以在 radio 组内切换不同选项\n const target = e.target as HTMLInputElement\n const className =\n target.nodeName === 'INPUT' ? '[type=radio]' : '[role=radio]'\n const radios =\n radioGroupRef.value.querySelectorAll<HTMLInputElement>(className)\n const length = radios.length\n const index = Array.from(radios).indexOf(target)\n const roleRadios =\n radioGroupRef.value.querySelectorAll<HTMLInputElement>('[role=radio]')\n\n let nextIndex: number | null = null\n switch (e.code) {\n case EVENT_CODE.left:\n case EVENT_CODE.up:\n e.stopPropagation()\n e.preventDefault()\n nextIndex = index === 0 ? length - 1 : index - 1\n break\n case EVENT_CODE.right:\n case EVENT_CODE.down:\n e.stopPropagation()\n e.preventDefault()\n nextIndex = index === length - 1 ? 0 : index + 1\n break\n default:\n break\n }\n if (nextIndex === null) return\n roleRadios[nextIndex].click()\n roleRadios[nextIndex].focus()\n }\n\n onMounted(() => {\n const radios =\n radioGroupRef.value!.querySelectorAll<HTMLInputElement>('[type=radio]')\n const firstLabel = radios[0]\n if (!Array.from(radios).some((radio) => radio.checked) && firstLabel) {\n firstLabel.tabIndex = 0\n }\n })\n\n provide(\n radioGroupKey,\n reactive({\n ...toRefs(props),\n changeEvent,\n })\n )\n\n watch(\n () => props.modelValue,\n () => formItem?.validate('change')\n )\n\n return {\n ns,\n radioGroupRef,\n handleKeydown,\n }\n },\n})\n</script>\n"],"names":["_createElementBlock","_normalizeClass","_renderSlot"],"mappings":";;;;;;;;;;;;AA4BA,MAAK,YAAa,gBAAa;AAAA,EAC7B,MAAM;AAAA,EACN,OAAO;AAAA,EACP,OAAO;AAAA,EAEP,MAAM,OAAO,KAAK;AAChB,UAAM,KAAK,aAAa;AACxB,UAAM,gBAAgB;AACtB,UAAM,EAAE,aAAa;AAErB,UAAM,cAAc,CAAC,UAAyC;AAC5D,UAAI,KAAK,oBAAoB;AAC7B,eAAS,MAAM,IAAI,KAAK,UAAU;AAAA;AAGpC,UAAM,gBAAgB,CAAC,MAAqB;AAC1C,UAAI,CAAC,cAAc;AAAO;AAG1B,YAAM,SAAS,EAAE;AACjB,YAAM,YACJ,OAAO,aAAa,UAAU,iBAAiB;AACjD,YAAM,SACJ,cAAc,MAAM,iBAAmC;AACzD,YAAM,SAAS,OAAO;AACtB,YAAM,QAAQ,MAAM,KAAK,QAAQ,QAAQ;AACzC,YAAM,aACJ,cAAc,MAAM,iBAAmC;AAEzD,UAAI,YAA2B;AAC/B,cAAQ,EAAE;AAAA,aACH,WAAW;AAAA,aACX,WAAW;AACd,YAAE;AACF,YAAE;AACF,sBAAY,UAAU,IAAI,SAAS,IAAI,QAAQ;AAC/C;AAAA,aACG,WAAW;AAAA,aACX,WAAW;AACd,YAAE;AACF,YAAE;AACF,sBAAY,UAAU,SAAS,IAAI,IAAI,QAAQ;AAC/C;AAAA;AAEA;AAAA;AAEJ,UAAI,cAAc;AAAM;AACxB,iBAAW,WAAW;AACtB,iBAAW,WAAW;AAAA;AAGxB,cAAU,MAAM;AACd,YAAM,SACJ,cAAc,MAAO,iBAAmC;AAC1D,YAAM,aAAa,OAAO;AAC1B,UAAI,CAAC,MAAM,KAAK,QAAQ,KAAK,CAAC,UAAU,MAAM,YAAY,YAAY;AACpE,mBAAW,WAAW;AAAA;AAAA;AAI1B,YACE,eACA,SAAS;AAAA,SACJ,OAAO;AAAA,MACV;AAAA;AAIJ,UACE,MAAM,MAAM,YACZ,MAAM,mBAAmB;AAG3B,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA;AAAA;AAAA;;sBAvGJA,mBAOM;AAAA,IANJ,KAAI;AAAA,IACH,OAAKC,eAAE,QAAG,EAAC;AAAA,IACZ,MAAK;AAAA,IACJ,WAAO,uCAAE;AAAA;IAEVC,WAAa;AAAA;;;;;;"}
1
+ {"version":3,"file":"radio-group2.mjs","sources":["../../../../../../packages/components/radio/src/radio-group.vue"],"sourcesContent":["<template>\n <div\n ref=\"radioGroupRef\"\n :class=\"ns.b('group')\"\n role=\"radiogroup\"\n @keydown=\"handleKeydown\"\n >\n <slot></slot>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport {\n defineComponent,\n nextTick,\n provide,\n onMounted,\n ref,\n reactive,\n toRefs,\n watch,\n} from 'vue'\nimport { EVENT_CODE, UPDATE_MODEL_EVENT } from '@element-plus/constants'\nimport { radioGroupKey } from '@element-plus/tokens'\nimport { useFormItem, useNamespace } from '@element-plus/hooks'\nimport { debugWarn } from '@element-plus/utils'\nimport { radioGroupEmits, radioGroupProps } from './radio-group'\nimport type { RadioGroupProps } from '..'\n\nexport default defineComponent({\n name: 'ElRadioGroup',\n props: radioGroupProps,\n emits: radioGroupEmits,\n\n setup(props, ctx) {\n const ns = useNamespace('radio')\n const radioGroupRef = ref<HTMLDivElement>()\n const { formItem } = useFormItem()\n\n const changeEvent = (value: RadioGroupProps['modelValue']) => {\n ctx.emit(UPDATE_MODEL_EVENT, value)\n nextTick(() => ctx.emit('change', value))\n }\n\n const handleKeydown = (e: KeyboardEvent) => {\n if (!radioGroupRef.value) return\n\n // 左右上下按键 可以在 radio 组内切换不同选项\n const target = e.target as HTMLInputElement\n const className =\n target.nodeName === 'INPUT' ? '[type=radio]' : '[role=radio]'\n const radios =\n radioGroupRef.value.querySelectorAll<HTMLInputElement>(className)\n const length = radios.length\n const index = Array.from(radios).indexOf(target)\n const roleRadios =\n radioGroupRef.value.querySelectorAll<HTMLInputElement>('[role=radio]')\n\n let nextIndex: number | null = null\n switch (e.code) {\n case EVENT_CODE.left:\n case EVENT_CODE.up:\n e.stopPropagation()\n e.preventDefault()\n nextIndex = index === 0 ? length - 1 : index - 1\n break\n case EVENT_CODE.right:\n case EVENT_CODE.down:\n e.stopPropagation()\n e.preventDefault()\n nextIndex = index === length - 1 ? 0 : index + 1\n break\n default:\n break\n }\n if (nextIndex === null) return\n roleRadios[nextIndex].click()\n roleRadios[nextIndex].focus()\n }\n\n onMounted(() => {\n const radios =\n radioGroupRef.value!.querySelectorAll<HTMLInputElement>('[type=radio]')\n const firstLabel = radios[0]\n if (!Array.from(radios).some((radio) => radio.checked) && firstLabel) {\n firstLabel.tabIndex = 0\n }\n })\n\n provide(\n radioGroupKey,\n reactive({\n ...toRefs(props),\n changeEvent,\n })\n )\n\n watch(\n () => props.modelValue,\n () => formItem?.validate('change').catch((err) => debugWarn(err))\n )\n\n return {\n ns,\n radioGroupRef,\n handleKeydown,\n }\n },\n})\n</script>\n"],"names":["_createElementBlock","_normalizeClass","_renderSlot"],"mappings":";;;;;;;;;;;;;;AA6BA,MAAK,YAAa,gBAAa;AAAA,EAC7B,MAAM;AAAA,EACN,OAAO;AAAA,EACP,OAAO;AAAA,EAEP,MAAM,OAAO,KAAK;AAChB,UAAM,KAAK,aAAa;AACxB,UAAM,gBAAgB;AACtB,UAAM,EAAE,aAAa;AAErB,UAAM,cAAc,CAAC,UAAyC;AAC5D,UAAI,KAAK,oBAAoB;AAC7B,eAAS,MAAM,IAAI,KAAK,UAAU;AAAA;AAGpC,UAAM,gBAAgB,CAAC,MAAqB;AAC1C,UAAI,CAAC,cAAc;AAAO;AAG1B,YAAM,SAAS,EAAE;AACjB,YAAM,YACJ,OAAO,aAAa,UAAU,iBAAiB;AACjD,YAAM,SACJ,cAAc,MAAM,iBAAmC;AACzD,YAAM,SAAS,OAAO;AACtB,YAAM,QAAQ,MAAM,KAAK,QAAQ,QAAQ;AACzC,YAAM,aACJ,cAAc,MAAM,iBAAmC;AAEzD,UAAI,YAA2B;AAC/B,cAAQ,EAAE;AAAA,aACH,WAAW;AAAA,aACX,WAAW;AACd,YAAE;AACF,YAAE;AACF,sBAAY,UAAU,IAAI,SAAS,IAAI,QAAQ;AAC/C;AAAA,aACG,WAAW;AAAA,aACX,WAAW;AACd,YAAE;AACF,YAAE;AACF,sBAAY,UAAU,SAAS,IAAI,IAAI,QAAQ;AAC/C;AAAA;AAEA;AAAA;AAEJ,UAAI,cAAc;AAAM;AACxB,iBAAW,WAAW;AACtB,iBAAW,WAAW;AAAA;AAGxB,cAAU,MAAM;AACd,YAAM,SACJ,cAAc,MAAO,iBAAmC;AAC1D,YAAM,aAAa,OAAO;AAC1B,UAAI,CAAC,MAAM,KAAK,QAAQ,KAAK,CAAC,UAAU,MAAM,YAAY,YAAY;AACpE,mBAAW,WAAW;AAAA;AAAA;AAI1B,YACE,eACA,SAAS;AAAA,SACJ,OAAO;AAAA,MACV;AAAA;AAIJ,UACE,MAAM,MAAM,YACZ,MAAM,mBAAmB,iBAAiB,kBAAkB;AAG9D,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA;AAAA;AAAA;;sBAxGJA,mBAOM;AAAA,IANJ,KAAI;AAAA,IACH,OAAKC,eAAE,QAAG,EAAC;AAAA,IACZ,MAAK;AAAA,IACJ,WAAO,uCAAE;AAAA;IAEVC,WAAa;AAAA;;;;;;"}
@@ -45,8 +45,8 @@ declare const _default: import("vue").DefineComponent<{
45
45
  size: import("../../../utils").BuildPropType<StringConstructor, "default" | "small" | "large", never>;
46
46
  disabled: boolean;
47
47
  name: string;
48
- modelValue: import("../../../utils").BuildPropType<readonly [StringConstructor, NumberConstructor, BooleanConstructor], unknown, unknown>;
49
48
  label: import("../../../utils").BuildPropType<(BooleanConstructor | StringConstructor | NumberConstructor)[], unknown, unknown>;
49
+ modelValue: import("../../../utils").BuildPropType<readonly [StringConstructor, NumberConstructor, BooleanConstructor], unknown, unknown>;
50
50
  border: boolean;
51
51
  }>;
52
52
  export default _default;
@@ -34,7 +34,7 @@ export declare const ElRate: import("element-plus/es/utils").SFCWithInstall<impo
34
34
  };
35
35
  hoverIndex: import("vue").Ref<number>;
36
36
  currentValue: import("vue").Ref<number>;
37
- rateDisabled: import("vue").ComputedRef<boolean | undefined>;
37
+ rateDisabled: import("vue").ComputedRef<boolean>;
38
38
  text: import("vue").ComputedRef<string>;
39
39
  decimalStyle: import("vue").ComputedRef<{
40
40
  color: string | {
@@ -34,7 +34,7 @@ declare const _default: import("vue").DefineComponent<{
34
34
  };
35
35
  hoverIndex: import("vue").Ref<number>;
36
36
  currentValue: import("vue").Ref<number>;
37
- rateDisabled: import("vue").ComputedRef<boolean | undefined>;
37
+ rateDisabled: import("vue").ComputedRef<boolean>;
38
38
  text: import("vue").ComputedRef<string>;
39
39
  decimalStyle: import("vue").ComputedRef<{
40
40
  color: string | {
@@ -8,7 +8,7 @@ import { StarFilled, Star } from '@element-plus/icons-vue';
8
8
  import '../../../hooks/index.mjs';
9
9
  import { rateProps, rateEmits } from './rate.mjs';
10
10
  import _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';
11
- import { elFormKey } from '../../../tokens/form.mjs';
11
+ import { formContextKey } from '../../../tokens/form.mjs';
12
12
  import { useSize } from '../../../hooks/use-common-props/index.mjs';
13
13
  import { useNamespace } from '../../../hooks/use-namespace/index.mjs';
14
14
  import { UPDATE_MODEL_EVENT } from '../../../constants/event.mjs';
@@ -35,7 +35,7 @@ const _sfc_main = defineComponent({
35
35
  props: rateProps,
36
36
  emits: rateEmits,
37
37
  setup(props, { emit }) {
38
- const elForm = inject(elFormKey, {});
38
+ const elForm = inject(formContextKey, {});
39
39
  const rateSize = useSize();
40
40
  const ns = useNamespace("rate");
41
41
  const currentValue = ref(props.modelValue);
@@ -1 +1 @@
1
- {"version":3,"file":"rate2.mjs","sources":["../../../../../../packages/components/rate/src/rate.vue"],"sourcesContent":["<template>\n <div\n :class=\"rateKls\"\n role=\"slider\"\n :aria-valuenow=\"currentValue\"\n :aria-valuetext=\"text\"\n aria-valuemin=\"0\"\n :aria-valuemax=\"max\"\n tabindex=\"0\"\n @keydown=\"handleKey\"\n >\n <span\n v-for=\"(item, key) in max\"\n :key=\"key\"\n :class=\"ns.e('item')\"\n :style=\"{ cursor: rateDisabled ? 'auto' : 'pointer' }\"\n @mousemove=\"setCurrentValue(item, $event)\"\n @mouseleave=\"resetCurrentValue\"\n @click=\"selectValue(item)\"\n >\n <el-icon\n :class=\"[ns.e('icon'), { hover: hoverIndex === item }]\"\n :style=\"getIconStyle(item)\"\n >\n <component\n :is=\"iconComponents[item - 1]\"\n v-if=\"!showDecimalIcon(item)\"\n />\n <el-icon\n v-if=\"showDecimalIcon(item)\"\n :style=\"decimalStyle\"\n :class=\"[ns.e('icon'), ns.e('decimal')]\"\n >\n <component :is=\"decimalIconComponent\" />\n </el-icon>\n </el-icon>\n </span>\n <span\n v-if=\"showText || showScore\"\n :class=\"ns.e('text')\"\n :style=\"{ color: textColor }\"\n >\n {{ text }}\n </span>\n </div>\n</template>\n<script lang=\"ts\">\nimport { defineComponent, inject, computed, ref, watch } from 'vue'\nimport { isObject, isArray } from '@vue/shared'\nimport { elFormKey } from '@element-plus/tokens'\nimport { hasClass } from '@element-plus/utils'\nimport { EVENT_CODE, UPDATE_MODEL_EVENT } from '@element-plus/constants'\nimport { ElIcon } from '@element-plus/components/icon'\nimport { StarFilled, Star } from '@element-plus/icons-vue'\nimport { useNamespace, useSize } from '@element-plus/hooks'\nimport { rateProps, rateEmits } from './rate'\nimport type { ElFormContext } from '@element-plus/tokens'\n\nfunction getValueFromMap<T>(\n value: number,\n map: Record<string, T | { excluded?: boolean; value: T }>\n) {\n const isExcludedObject = (\n val: unknown\n ): val is { excluded?: boolean } & Record<any, unknown> => isObject(val)\n\n const matchedKeys = Object.keys(map)\n .map((key) => +key)\n .filter((key) => {\n const val = map[key]\n const excluded = isExcludedObject(val) ? val.excluded : false\n return excluded ? value < key : value <= key\n })\n .sort((a, b) => a - b)\n const matchedValue = map[matchedKeys[0]]\n return (isExcludedObject(matchedValue) && matchedValue.value) || matchedValue\n}\n\nexport default defineComponent({\n name: 'ElRate',\n components: {\n ElIcon,\n StarFilled,\n Star,\n },\n props: rateProps,\n emits: rateEmits,\n\n setup(props, { emit }) {\n const elForm = inject(elFormKey, {} as ElFormContext)\n const rateSize = useSize()\n const ns = useNamespace('rate')\n\n const currentValue = ref(props.modelValue)\n const hoverIndex = ref(-1)\n const pointerAtLeftHalf = ref(true)\n\n const rateKls = computed(() => [ns.b(), ns.m(rateSize.value)])\n\n const rateDisabled = computed(() => props.disabled || elForm.disabled)\n const text = computed(() => {\n let result = ''\n if (props.showScore) {\n result = props.scoreTemplate.replace(\n /\\{\\s*value\\s*\\}/,\n rateDisabled.value ? `${props.modelValue}` : `${currentValue.value}`\n )\n } else if (props.showText) {\n result = props.texts[Math.ceil(currentValue.value) - 1]\n }\n return result\n })\n const valueDecimal = computed(\n () => props.modelValue * 100 - Math.floor(props.modelValue) * 100\n )\n const colorMap = computed(() =>\n isArray(props.colors)\n ? {\n [props.lowThreshold]: props.colors[0],\n [props.highThreshold]: { value: props.colors[1], excluded: true },\n [props.max]: props.colors[2],\n }\n : props.colors\n )\n const activeColor = computed(() =>\n getValueFromMap(currentValue.value, colorMap.value)\n )\n const decimalStyle = computed(() => {\n let width = ''\n if (rateDisabled.value) {\n width = `${valueDecimal.value}%`\n } else if (props.allowHalf) {\n width = '50%'\n }\n return {\n color: activeColor.value,\n width,\n }\n })\n const componentMap = computed(() =>\n isArray(props.icons)\n ? {\n [props.lowThreshold]: props.icons[0],\n [props.highThreshold]: {\n value: props.icons[1],\n excluded: true,\n },\n [props.max]: props.icons[2],\n }\n : props.icons\n )\n const decimalIconComponent = computed(() =>\n getValueFromMap(props.modelValue, componentMap.value)\n )\n const voidComponent = computed(() =>\n rateDisabled.value ? props.disabledvoidIcon : props.voidIcon\n )\n const activeComponent = computed(() =>\n getValueFromMap(currentValue.value, componentMap.value)\n )\n const iconComponents = computed(() => {\n const result = Array(props.max)\n const threshold = currentValue.value\n result.fill(activeComponent.value, 0, threshold)\n result.fill(voidComponent.value, threshold, props.max)\n return result\n })\n\n function showDecimalIcon(item: number) {\n const showWhenDisabled =\n rateDisabled.value &&\n valueDecimal.value > 0 &&\n item - 1 < props.modelValue &&\n item > props.modelValue\n const showWhenAllowHalf =\n props.allowHalf &&\n pointerAtLeftHalf.value &&\n item - 0.5 <= currentValue.value &&\n item > currentValue.value\n return showWhenDisabled || showWhenAllowHalf\n }\n\n function getIconStyle(item: number) {\n const voidColor = rateDisabled.value\n ? props.disabledVoidColor\n : props.voidColor\n return {\n color: item <= currentValue.value ? activeColor.value : voidColor,\n }\n }\n\n function selectValue(value: number) {\n if (rateDisabled.value) {\n return\n }\n if (props.allowHalf && pointerAtLeftHalf.value) {\n emit(UPDATE_MODEL_EVENT, currentValue.value)\n if (props.modelValue !== currentValue.value) {\n emit('change', currentValue.value)\n }\n } else {\n emit(UPDATE_MODEL_EVENT, value)\n if (props.modelValue !== value) {\n emit('change', value)\n }\n }\n }\n\n function handleKey(e: KeyboardEvent) {\n if (rateDisabled.value) {\n return\n }\n let _currentValue = currentValue.value\n const code = e.code\n if (code === EVENT_CODE.up || code === EVENT_CODE.right) {\n if (props.allowHalf) {\n _currentValue += 0.5\n } else {\n _currentValue += 1\n }\n e.stopPropagation()\n e.preventDefault()\n } else if (code === EVENT_CODE.left || code === EVENT_CODE.down) {\n if (props.allowHalf) {\n _currentValue -= 0.5\n } else {\n _currentValue -= 1\n }\n e.stopPropagation()\n e.preventDefault()\n }\n _currentValue = _currentValue < 0 ? 0 : _currentValue\n _currentValue = _currentValue > props.max ? props.max : _currentValue\n emit(UPDATE_MODEL_EVENT, _currentValue)\n emit('change', _currentValue)\n return _currentValue\n }\n\n function setCurrentValue(value: number, event: MouseEvent) {\n if (rateDisabled.value) {\n return\n }\n if (props.allowHalf) {\n // TODO: use cache via computed https://github.com/element-plus/element-plus/pull/5456#discussion_r786472092\n let target = event.target as HTMLElement\n if (hasClass(target, ns.e('item'))) {\n target = target.querySelector(`.${ns.e('icon')}`)!\n }\n if (target.clientWidth === 0 || hasClass(target, ns.e('decimal'))) {\n target = target.parentNode as HTMLElement\n }\n pointerAtLeftHalf.value = event.offsetX * 2 <= target.clientWidth\n currentValue.value = pointerAtLeftHalf.value ? value - 0.5 : value\n } else {\n currentValue.value = value\n }\n hoverIndex.value = value\n }\n\n function resetCurrentValue() {\n if (rateDisabled.value) {\n return\n }\n if (props.allowHalf) {\n pointerAtLeftHalf.value =\n props.modelValue !== Math.floor(props.modelValue)\n }\n currentValue.value = props.modelValue\n hoverIndex.value = -1\n }\n\n watch(\n () => props.modelValue,\n (val) => {\n currentValue.value = val\n pointerAtLeftHalf.value =\n props.modelValue !== Math.floor(props.modelValue)\n }\n )\n\n if (!props.modelValue) {\n emit(UPDATE_MODEL_EVENT, 0)\n }\n\n return {\n ns,\n hoverIndex,\n currentValue,\n rateDisabled,\n text,\n decimalStyle,\n decimalIconComponent,\n iconComponents,\n rateKls,\n\n showDecimalIcon,\n getIconStyle,\n selectValue,\n handleKey,\n setCurrentValue,\n resetCurrentValue,\n }\n },\n})\n</script>\n"],"names":["_createElementBlock","_normalizeClass","_Fragment","_normalizeStyle","_createVNode","_createBlock","_resolveDynamicComponent"],"mappings":"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"}
1
+ {"version":3,"file":"rate2.mjs","sources":["../../../../../../packages/components/rate/src/rate.vue"],"sourcesContent":["<template>\n <div\n :class=\"rateKls\"\n role=\"slider\"\n :aria-valuenow=\"currentValue\"\n :aria-valuetext=\"text\"\n aria-valuemin=\"0\"\n :aria-valuemax=\"max\"\n tabindex=\"0\"\n @keydown=\"handleKey\"\n >\n <span\n v-for=\"(item, key) in max\"\n :key=\"key\"\n :class=\"ns.e('item')\"\n :style=\"{ cursor: rateDisabled ? 'auto' : 'pointer' }\"\n @mousemove=\"setCurrentValue(item, $event)\"\n @mouseleave=\"resetCurrentValue\"\n @click=\"selectValue(item)\"\n >\n <el-icon\n :class=\"[ns.e('icon'), { hover: hoverIndex === item }]\"\n :style=\"getIconStyle(item)\"\n >\n <component\n :is=\"iconComponents[item - 1]\"\n v-if=\"!showDecimalIcon(item)\"\n />\n <el-icon\n v-if=\"showDecimalIcon(item)\"\n :style=\"decimalStyle\"\n :class=\"[ns.e('icon'), ns.e('decimal')]\"\n >\n <component :is=\"decimalIconComponent\" />\n </el-icon>\n </el-icon>\n </span>\n <span\n v-if=\"showText || showScore\"\n :class=\"ns.e('text')\"\n :style=\"{ color: textColor }\"\n >\n {{ text }}\n </span>\n </div>\n</template>\n<script lang=\"ts\">\nimport { defineComponent, inject, computed, ref, watch } from 'vue'\nimport { isObject, isArray } from '@vue/shared'\nimport { formContextKey } from '@element-plus/tokens'\nimport { hasClass } from '@element-plus/utils'\nimport { EVENT_CODE, UPDATE_MODEL_EVENT } from '@element-plus/constants'\nimport { ElIcon } from '@element-plus/components/icon'\nimport { StarFilled, Star } from '@element-plus/icons-vue'\nimport { useNamespace, useSize } from '@element-plus/hooks'\nimport { rateProps, rateEmits } from './rate'\n\nimport type { FormContext } from '@element-plus/tokens'\n\nfunction getValueFromMap<T>(\n value: number,\n map: Record<string, T | { excluded?: boolean; value: T }>\n) {\n const isExcludedObject = (\n val: unknown\n ): val is { excluded?: boolean } & Record<any, unknown> => isObject(val)\n\n const matchedKeys = Object.keys(map)\n .map((key) => +key)\n .filter((key) => {\n const val = map[key]\n const excluded = isExcludedObject(val) ? val.excluded : false\n return excluded ? value < key : value <= key\n })\n .sort((a, b) => a - b)\n const matchedValue = map[matchedKeys[0]]\n return (isExcludedObject(matchedValue) && matchedValue.value) || matchedValue\n}\n\nexport default defineComponent({\n name: 'ElRate',\n components: {\n ElIcon,\n StarFilled,\n Star,\n },\n props: rateProps,\n emits: rateEmits,\n\n setup(props, { emit }) {\n const elForm = inject(formContextKey, {} as FormContext)\n\n const rateSize = useSize()\n const ns = useNamespace('rate')\n\n const currentValue = ref(props.modelValue)\n const hoverIndex = ref(-1)\n const pointerAtLeftHalf = ref(true)\n\n const rateKls = computed(() => [ns.b(), ns.m(rateSize.value)])\n\n const rateDisabled = computed(() => props.disabled || elForm.disabled)\n const text = computed(() => {\n let result = ''\n if (props.showScore) {\n result = props.scoreTemplate.replace(\n /\\{\\s*value\\s*\\}/,\n rateDisabled.value ? `${props.modelValue}` : `${currentValue.value}`\n )\n } else if (props.showText) {\n result = props.texts[Math.ceil(currentValue.value) - 1]\n }\n return result\n })\n const valueDecimal = computed(\n () => props.modelValue * 100 - Math.floor(props.modelValue) * 100\n )\n const colorMap = computed(() =>\n isArray(props.colors)\n ? {\n [props.lowThreshold]: props.colors[0],\n [props.highThreshold]: { value: props.colors[1], excluded: true },\n [props.max]: props.colors[2],\n }\n : props.colors\n )\n const activeColor = computed(() =>\n getValueFromMap(currentValue.value, colorMap.value)\n )\n const decimalStyle = computed(() => {\n let width = ''\n if (rateDisabled.value) {\n width = `${valueDecimal.value}%`\n } else if (props.allowHalf) {\n width = '50%'\n }\n return {\n color: activeColor.value,\n width,\n }\n })\n const componentMap = computed(() =>\n isArray(props.icons)\n ? {\n [props.lowThreshold]: props.icons[0],\n [props.highThreshold]: {\n value: props.icons[1],\n excluded: true,\n },\n [props.max]: props.icons[2],\n }\n : props.icons\n )\n const decimalIconComponent = computed(() =>\n getValueFromMap(props.modelValue, componentMap.value)\n )\n const voidComponent = computed(() =>\n rateDisabled.value ? props.disabledvoidIcon : props.voidIcon\n )\n const activeComponent = computed(() =>\n getValueFromMap(currentValue.value, componentMap.value)\n )\n const iconComponents = computed(() => {\n const result = Array(props.max)\n const threshold = currentValue.value\n result.fill(activeComponent.value, 0, threshold)\n result.fill(voidComponent.value, threshold, props.max)\n return result\n })\n\n function showDecimalIcon(item: number) {\n const showWhenDisabled =\n rateDisabled.value &&\n valueDecimal.value > 0 &&\n item - 1 < props.modelValue &&\n item > props.modelValue\n const showWhenAllowHalf =\n props.allowHalf &&\n pointerAtLeftHalf.value &&\n item - 0.5 <= currentValue.value &&\n item > currentValue.value\n return showWhenDisabled || showWhenAllowHalf\n }\n\n function getIconStyle(item: number) {\n const voidColor = rateDisabled.value\n ? props.disabledVoidColor\n : props.voidColor\n return {\n color: item <= currentValue.value ? activeColor.value : voidColor,\n }\n }\n\n function selectValue(value: number) {\n if (rateDisabled.value) {\n return\n }\n if (props.allowHalf && pointerAtLeftHalf.value) {\n emit(UPDATE_MODEL_EVENT, currentValue.value)\n if (props.modelValue !== currentValue.value) {\n emit('change', currentValue.value)\n }\n } else {\n emit(UPDATE_MODEL_EVENT, value)\n if (props.modelValue !== value) {\n emit('change', value)\n }\n }\n }\n\n function handleKey(e: KeyboardEvent) {\n if (rateDisabled.value) {\n return\n }\n let _currentValue = currentValue.value\n const code = e.code\n if (code === EVENT_CODE.up || code === EVENT_CODE.right) {\n if (props.allowHalf) {\n _currentValue += 0.5\n } else {\n _currentValue += 1\n }\n e.stopPropagation()\n e.preventDefault()\n } else if (code === EVENT_CODE.left || code === EVENT_CODE.down) {\n if (props.allowHalf) {\n _currentValue -= 0.5\n } else {\n _currentValue -= 1\n }\n e.stopPropagation()\n e.preventDefault()\n }\n _currentValue = _currentValue < 0 ? 0 : _currentValue\n _currentValue = _currentValue > props.max ? props.max : _currentValue\n emit(UPDATE_MODEL_EVENT, _currentValue)\n emit('change', _currentValue)\n return _currentValue\n }\n\n function setCurrentValue(value: number, event: MouseEvent) {\n if (rateDisabled.value) {\n return\n }\n if (props.allowHalf) {\n // TODO: use cache via computed https://github.com/element-plus/element-plus/pull/5456#discussion_r786472092\n let target = event.target as HTMLElement\n if (hasClass(target, ns.e('item'))) {\n target = target.querySelector(`.${ns.e('icon')}`)!\n }\n if (target.clientWidth === 0 || hasClass(target, ns.e('decimal'))) {\n target = target.parentNode as HTMLElement\n }\n pointerAtLeftHalf.value = event.offsetX * 2 <= target.clientWidth\n currentValue.value = pointerAtLeftHalf.value ? value - 0.5 : value\n } else {\n currentValue.value = value\n }\n hoverIndex.value = value\n }\n\n function resetCurrentValue() {\n if (rateDisabled.value) {\n return\n }\n if (props.allowHalf) {\n pointerAtLeftHalf.value =\n props.modelValue !== Math.floor(props.modelValue)\n }\n currentValue.value = props.modelValue\n hoverIndex.value = -1\n }\n\n watch(\n () => props.modelValue,\n (val) => {\n currentValue.value = val\n pointerAtLeftHalf.value =\n props.modelValue !== Math.floor(props.modelValue)\n }\n )\n\n if (!props.modelValue) {\n emit(UPDATE_MODEL_EVENT, 0)\n }\n\n return {\n ns,\n hoverIndex,\n currentValue,\n rateDisabled,\n text,\n decimalStyle,\n decimalIconComponent,\n iconComponents,\n rateKls,\n\n showDecimalIcon,\n getIconStyle,\n selectValue,\n handleKey,\n setCurrentValue,\n resetCurrentValue,\n }\n },\n})\n</script>\n"],"names":["_createElementBlock","_normalizeClass","_Fragment","_normalizeStyle","_createVNode","_createBlock","_resolveDynamicComponent"],"mappings":"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"}
@@ -5,7 +5,7 @@ export declare const ElScrollbar: import("element-plus/es/utils").SFCWithInstall
5
5
  readonly wrapStyle: import("element-plus/es/utils").BuildPropReturn<import("element-plus/es/utils").PropWrapper<import("vue").StyleValue>, "", unknown, unknown, unknown>;
6
6
  readonly wrapClass: import("element-plus/es/utils").BuildPropReturn<readonly [StringConstructor, ArrayConstructor], "", unknown, unknown, unknown>;
7
7
  readonly viewClass: import("element-plus/es/utils").BuildPropReturn<readonly [StringConstructor, ArrayConstructor], "", unknown, unknown, unknown>;
8
- readonly viewStyle: import("element-plus/es/utils").BuildPropReturn<readonly [StringConstructor, ArrayConstructor], "", unknown, unknown, unknown>;
8
+ readonly viewStyle: import("element-plus/es/utils").BuildPropReturn<readonly [StringConstructor, ArrayConstructor, ObjectConstructor], "", unknown, unknown, unknown>;
9
9
  readonly noresize: BooleanConstructor;
10
10
  readonly tag: import("element-plus/es/utils").BuildPropReturn<StringConstructor, "div", unknown, unknown, unknown>;
11
11
  readonly always: import("element-plus/es/utils").BuildPropReturn<BooleanConstructor, false, unknown, unknown, unknown>;
@@ -52,7 +52,7 @@ export declare const ElScrollbar: import("element-plus/es/utils").SFCWithInstall
52
52
  readonly wrapStyle: import("element-plus/es/utils").BuildPropReturn<import("element-plus/es/utils").PropWrapper<import("vue").StyleValue>, "", unknown, unknown, unknown>;
53
53
  readonly wrapClass: import("element-plus/es/utils").BuildPropReturn<readonly [StringConstructor, ArrayConstructor], "", unknown, unknown, unknown>;
54
54
  readonly viewClass: import("element-plus/es/utils").BuildPropReturn<readonly [StringConstructor, ArrayConstructor], "", unknown, unknown, unknown>;
55
- readonly viewStyle: import("element-plus/es/utils").BuildPropReturn<readonly [StringConstructor, ArrayConstructor], "", unknown, unknown, unknown>;
55
+ readonly viewStyle: import("element-plus/es/utils").BuildPropReturn<readonly [StringConstructor, ArrayConstructor, ObjectConstructor], "", unknown, unknown, unknown>;
56
56
  readonly noresize: BooleanConstructor;
57
57
  readonly tag: import("element-plus/es/utils").BuildPropReturn<StringConstructor, "div", unknown, unknown, unknown>;
58
58
  readonly always: import("element-plus/es/utils").BuildPropReturn<BooleanConstructor, false, unknown, unknown, unknown>;
@@ -70,7 +70,7 @@ export declare const ElScrollbar: import("element-plus/es/utils").SFCWithInstall
70
70
  wrapStyle: import("vue").StyleValue;
71
71
  wrapClass: import("element-plus/es/utils").BuildPropType<readonly [StringConstructor, ArrayConstructor], unknown, unknown>;
72
72
  viewClass: import("element-plus/es/utils").BuildPropType<readonly [StringConstructor, ArrayConstructor], unknown, unknown>;
73
- viewStyle: import("element-plus/es/utils").BuildPropType<readonly [StringConstructor, ArrayConstructor], unknown, unknown>;
73
+ viewStyle: import("element-plus/es/utils").BuildPropType<readonly [StringConstructor, ArrayConstructor, ObjectConstructor], unknown, unknown>;
74
74
  tag: string;
75
75
  minSize: number;
76
76
  noresize: boolean;
@@ -6,7 +6,7 @@ export declare const scrollbarProps: {
6
6
  readonly wrapStyle: import("element-plus/es/utils").BuildPropReturn<import("element-plus/es/utils").PropWrapper<StyleValue>, "", unknown, unknown, unknown>;
7
7
  readonly wrapClass: import("element-plus/es/utils").BuildPropReturn<readonly [StringConstructor, ArrayConstructor], "", unknown, unknown, unknown>;
8
8
  readonly viewClass: import("element-plus/es/utils").BuildPropReturn<readonly [StringConstructor, ArrayConstructor], "", unknown, unknown, unknown>;
9
- readonly viewStyle: import("element-plus/es/utils").BuildPropReturn<readonly [StringConstructor, ArrayConstructor], "", unknown, unknown, unknown>;
9
+ readonly viewStyle: import("element-plus/es/utils").BuildPropReturn<readonly [StringConstructor, ArrayConstructor, ObjectConstructor], "", unknown, unknown, unknown>;
10
10
  readonly noresize: BooleanConstructor;
11
11
  readonly tag: import("element-plus/es/utils").BuildPropReturn<StringConstructor, "div", unknown, unknown, unknown>;
12
12
  readonly always: import("element-plus/es/utils").BuildPropReturn<BooleanConstructor, false, unknown, unknown, unknown>;
@@ -28,7 +28,7 @@ const scrollbarProps = buildProps({
28
28
  default: ""
29
29
  },
30
30
  viewStyle: {
31
- type: [String, Array],
31
+ type: [String, Array, Object],
32
32
  default: ""
33
33
  },
34
34
  noresize: Boolean,
@@ -1 +1 @@
1
- {"version":3,"file":"scrollbar.mjs","sources":["../../../../../../packages/components/scrollbar/src/scrollbar.ts"],"sourcesContent":["import { buildProps, definePropType, isNumber } from '@element-plus/utils'\nimport type { StyleValue, ExtractPropTypes } from 'vue'\n\nexport const scrollbarProps = buildProps({\n height: {\n type: [String, Number],\n default: '',\n },\n maxHeight: {\n type: [String, Number],\n default: '',\n },\n native: {\n type: Boolean,\n default: false,\n },\n wrapStyle: {\n type: definePropType<StyleValue>([String, Object, Array]),\n default: '',\n },\n wrapClass: {\n type: [String, Array],\n default: '',\n },\n viewClass: {\n type: [String, Array],\n default: '',\n },\n viewStyle: {\n type: [String, Array],\n default: '',\n },\n noresize: Boolean, // 如果 container 尺寸不会发生变化,最好设置它可以优化性能\n tag: {\n type: String,\n default: 'div',\n },\n always: {\n type: Boolean,\n default: false,\n },\n minSize: {\n type: Number,\n default: 20,\n },\n} as const)\n\nexport type ScrollbarProps = ExtractPropTypes<typeof scrollbarProps>\n\nexport const scrollbarEmits = {\n scroll: ({\n scrollTop,\n scrollLeft,\n }: {\n scrollTop: number\n scrollLeft: number\n }) => isNumber(scrollTop) && isNumber(scrollLeft),\n}\nexport type ScrollbarEmits = typeof scrollbarEmits\n"],"names":[],"mappings":";;;;AACY,MAAC,cAAc,GAAG,UAAU,CAAC;AACzC,EAAE,MAAM,EAAE;AACV,IAAI,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;AAC1B,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,EAAE,SAAS,EAAE;AACb,IAAI,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;AAC1B,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,EAAE,MAAM,EAAE;AACV,IAAI,IAAI,EAAE,OAAO;AACjB,IAAI,OAAO,EAAE,KAAK;AAClB,GAAG;AACH,EAAE,SAAS,EAAE;AACb,IAAI,IAAI,EAAE,cAAc,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;AACjD,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,EAAE,SAAS,EAAE;AACb,IAAI,IAAI,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC;AACzB,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,EAAE,SAAS,EAAE;AACb,IAAI,IAAI,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC;AACzB,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,EAAE,SAAS,EAAE;AACb,IAAI,IAAI,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC;AACzB,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,EAAE,QAAQ,EAAE,OAAO;AACnB,EAAE,GAAG,EAAE;AACP,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,KAAK;AAClB,GAAG;AACH,EAAE,MAAM,EAAE;AACV,IAAI,IAAI,EAAE,OAAO;AACjB,IAAI,OAAO,EAAE,KAAK;AAClB,GAAG;AACH,EAAE,OAAO,EAAE;AACX,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,CAAC,EAAE;AACS,MAAC,cAAc,GAAG;AAC9B,EAAE,MAAM,EAAE,CAAC;AACX,IAAI,SAAS;AACb,IAAI,UAAU;AACd,GAAG,KAAK,QAAQ,CAAC,SAAS,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC;AACnD;;;;"}
1
+ {"version":3,"file":"scrollbar.mjs","sources":["../../../../../../packages/components/scrollbar/src/scrollbar.ts"],"sourcesContent":["import { buildProps, definePropType, isNumber } from '@element-plus/utils'\nimport type { StyleValue, ExtractPropTypes } from 'vue'\n\nexport const scrollbarProps = buildProps({\n height: {\n type: [String, Number],\n default: '',\n },\n maxHeight: {\n type: [String, Number],\n default: '',\n },\n native: {\n type: Boolean,\n default: false,\n },\n wrapStyle: {\n type: definePropType<StyleValue>([String, Object, Array]),\n default: '',\n },\n wrapClass: {\n type: [String, Array],\n default: '',\n },\n viewClass: {\n type: [String, Array],\n default: '',\n },\n viewStyle: {\n type: [String, Array, Object],\n default: '',\n },\n noresize: Boolean, // 如果 container 尺寸不会发生变化,最好设置它可以优化性能\n tag: {\n type: String,\n default: 'div',\n },\n always: {\n type: Boolean,\n default: false,\n },\n minSize: {\n type: Number,\n default: 20,\n },\n} as const)\n\nexport type ScrollbarProps = ExtractPropTypes<typeof scrollbarProps>\n\nexport const scrollbarEmits = {\n scroll: ({\n scrollTop,\n scrollLeft,\n }: {\n scrollTop: number\n scrollLeft: number\n }) => isNumber(scrollTop) && isNumber(scrollLeft),\n}\nexport type ScrollbarEmits = typeof scrollbarEmits\n"],"names":[],"mappings":";;;;AACY,MAAC,cAAc,GAAG,UAAU,CAAC;AACzC,EAAE,MAAM,EAAE;AACV,IAAI,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;AAC1B,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,EAAE,SAAS,EAAE;AACb,IAAI,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;AAC1B,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,EAAE,MAAM,EAAE;AACV,IAAI,IAAI,EAAE,OAAO;AACjB,IAAI,OAAO,EAAE,KAAK;AAClB,GAAG;AACH,EAAE,SAAS,EAAE;AACb,IAAI,IAAI,EAAE,cAAc,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;AACjD,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,EAAE,SAAS,EAAE;AACb,IAAI,IAAI,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC;AACzB,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,EAAE,SAAS,EAAE;AACb,IAAI,IAAI,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC;AACzB,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,EAAE,SAAS,EAAE;AACb,IAAI,IAAI,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC;AACjC,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,EAAE,QAAQ,EAAE,OAAO;AACnB,EAAE,GAAG,EAAE;AACP,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,KAAK;AAClB,GAAG;AACH,EAAE,MAAM,EAAE;AACV,IAAI,IAAI,EAAE,OAAO;AACjB,IAAI,OAAO,EAAE,KAAK;AAClB,GAAG;AACH,EAAE,OAAO,EAAE;AACX,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,CAAC,EAAE;AACS,MAAC,cAAc,GAAG;AAC9B,EAAE,MAAM,EAAE,CAAC;AACX,IAAI,SAAS;AACb,IAAI,UAAU;AACd,GAAG,KAAK,QAAQ,CAAC,SAAS,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC;AACnD;;;;"}
@@ -6,7 +6,7 @@ declare const _default: import("vue").DefineComponent<{
6
6
  readonly wrapStyle: import("element-plus/es/utils").BuildPropReturn<import("element-plus/es/utils").PropWrapper<StyleValue>, "", unknown, unknown, unknown>;
7
7
  readonly wrapClass: import("element-plus/es/utils").BuildPropReturn<readonly [StringConstructor, ArrayConstructor], "", unknown, unknown, unknown>;
8
8
  readonly viewClass: import("element-plus/es/utils").BuildPropReturn<readonly [StringConstructor, ArrayConstructor], "", unknown, unknown, unknown>;
9
- readonly viewStyle: import("element-plus/es/utils").BuildPropReturn<readonly [StringConstructor, ArrayConstructor], "", unknown, unknown, unknown>;
9
+ readonly viewStyle: import("element-plus/es/utils").BuildPropReturn<readonly [StringConstructor, ArrayConstructor, ObjectConstructor], "", unknown, unknown, unknown>;
10
10
  readonly noresize: BooleanConstructor;
11
11
  readonly tag: import("element-plus/es/utils").BuildPropReturn<StringConstructor, "div", unknown, unknown, unknown>;
12
12
  readonly always: import("element-plus/es/utils").BuildPropReturn<BooleanConstructor, false, unknown, unknown, unknown>;
@@ -53,7 +53,7 @@ declare const _default: import("vue").DefineComponent<{
53
53
  readonly wrapStyle: import("element-plus/es/utils").BuildPropReturn<import("element-plus/es/utils").PropWrapper<StyleValue>, "", unknown, unknown, unknown>;
54
54
  readonly wrapClass: import("element-plus/es/utils").BuildPropReturn<readonly [StringConstructor, ArrayConstructor], "", unknown, unknown, unknown>;
55
55
  readonly viewClass: import("element-plus/es/utils").BuildPropReturn<readonly [StringConstructor, ArrayConstructor], "", unknown, unknown, unknown>;
56
- readonly viewStyle: import("element-plus/es/utils").BuildPropReturn<readonly [StringConstructor, ArrayConstructor], "", unknown, unknown, unknown>;
56
+ readonly viewStyle: import("element-plus/es/utils").BuildPropReturn<readonly [StringConstructor, ArrayConstructor, ObjectConstructor], "", unknown, unknown, unknown>;
57
57
  readonly noresize: BooleanConstructor;
58
58
  readonly tag: import("element-plus/es/utils").BuildPropReturn<StringConstructor, "div", unknown, unknown, unknown>;
59
59
  readonly always: import("element-plus/es/utils").BuildPropReturn<BooleanConstructor, false, unknown, unknown, unknown>;
@@ -71,7 +71,7 @@ declare const _default: import("vue").DefineComponent<{
71
71
  wrapStyle: StyleValue;
72
72
  wrapClass: import("element-plus/es/utils").BuildPropType<readonly [StringConstructor, ArrayConstructor], unknown, unknown>;
73
73
  viewClass: import("element-plus/es/utils").BuildPropType<readonly [StringConstructor, ArrayConstructor], unknown, unknown>;
74
- viewStyle: import("element-plus/es/utils").BuildPropType<readonly [StringConstructor, ArrayConstructor], unknown, unknown>;
74
+ viewStyle: import("element-plus/es/utils").BuildPropType<readonly [StringConstructor, ArrayConstructor, ObjectConstructor], unknown, unknown>;
75
75
  tag: string;
76
76
  minSize: number;
77
77
  noresize: boolean;
@@ -56,6 +56,10 @@ export declare const ElSelect: import("element-plus/es/utils").SFCWithInstall<im
56
56
  default: undefined;
57
57
  };
58
58
  teleported: import("element-plus/es/utils").BuildPropReturn<BooleanConstructor, true, unknown, unknown, unknown>;
59
+ persistent: {
60
+ type: BooleanConstructor;
61
+ default: boolean;
62
+ };
59
63
  clearIcon: {
60
64
  type: import("vue").PropType<string | import("vue").Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions>>;
61
65
  default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, import("vue").EmitsOptions, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
@@ -778,6 +782,10 @@ export declare const ElSelect: import("element-plus/es/utils").SFCWithInstall<im
778
782
  default: undefined;
779
783
  };
780
784
  teleported: import("element-plus/es/utils").BuildPropReturn<BooleanConstructor, true, unknown, unknown, unknown>;
785
+ persistent: {
786
+ type: BooleanConstructor;
787
+ default: boolean;
788
+ };
781
789
  clearIcon: {
782
790
  type: import("vue").PropType<string | import("vue").Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions>>;
783
791
  default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, import("vue").EmitsOptions, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
@@ -814,6 +822,7 @@ export declare const ElSelect: import("element-plus/es/utils").SFCWithInstall<im
814
822
  popperClass: string;
815
823
  popperAppendToBody: boolean;
816
824
  teleported: import("element-plus/es/utils").BuildPropType<BooleanConstructor, unknown, unknown>;
825
+ persistent: boolean;
817
826
  multiple: boolean;
818
827
  autocomplete: string;
819
828
  clearable: boolean;
@@ -98,6 +98,10 @@ const _sfc_main = defineComponent({
98
98
  default: void 0
99
99
  },
100
100
  teleported: useTooltipContentProps.teleported,
101
+ persistent: {
102
+ type: Boolean,
103
+ default: true
104
+ },
101
105
  clearIcon: {
102
106
  type: [String, Object],
103
107
  default: CircleClose
@@ -374,7 +378,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
374
378
  transition: `${_ctx.nsSelect.namespace.value}-zoom-in-top`,
375
379
  "stop-popper-mouse-event": false,
376
380
  "gpu-acceleration": false,
377
- persistent: "",
381
+ persistent: _ctx.persistent,
378
382
  onShow: _ctx.handleMenuEnter
379
383
  }, {
380
384
  default: withCtx(() => [
@@ -594,7 +598,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
594
598
  })
595
599
  ]),
596
600
  _: 3
597
- }, 8, ["visible", "teleported", "popper-class", "effect", "transition", "onShow"])
601
+ }, 8, ["visible", "teleported", "popper-class", "effect", "transition", "persistent", "onShow"])
598
602
  ], 2)), [
599
603
  [_directive_click_outside, _ctx.handleClose, _ctx.popperPaneRef]
600
604
  ]);
@@ -1 +1 @@
1
- {"version":3,"file":"select.mjs","sources":["../../../../../../packages/components/select/src/select.vue"],"sourcesContent":["<template>\n <div\n ref=\"selectWrapper\"\n v-click-outside:[popperPaneRef]=\"handleClose\"\n :class=\"wrapperKls\"\n @click.stop=\"toggleMenu\"\n >\n <el-tooltip\n ref=\"tooltipRef\"\n v-model:visible=\"dropMenuVisible\"\n placement=\"bottom-start\"\n :teleported=\"compatTeleported\"\n :popper-class=\"[nsSelect.e('popper'), popperClass]\"\n :fallback-placements=\"['bottom-start', 'top-start', 'right', 'left']\"\n :effect=\"effect\"\n pure\n trigger=\"click\"\n :transition=\"`${nsSelect.namespace.value}-zoom-in-top`\"\n :stop-popper-mouse-event=\"false\"\n :gpu-acceleration=\"false\"\n persistent\n @show=\"handleMenuEnter\"\n >\n <template #default>\n <div class=\"select-trigger\">\n <div\n v-if=\"multiple\"\n ref=\"tags\"\n :class=\"nsSelect.e('tags')\"\n :style=\"selectTagsStyle\"\n >\n <span\n v-if=\"collapseTags && selected.length\"\n :style=\"{\n marginLeft:\n prefixWidth && selected.length ? `${prefixWidth}px` : '',\n }\"\n >\n <el-tag\n :closable=\"!selectDisabled && !selected[0].isDisabled\"\n :size=\"collapseTagSize\"\n :hit=\"selected[0].hitState\"\n :type=\"tagType\"\n disable-transitions\n @close=\"deleteTag($event, selected[0])\"\n >\n <span\n :class=\"nsSelect.e('tags-text')\"\n :style=\"{ maxWidth: inputWidth - 123 + 'px' }\"\n >{{ selected[0].currentLabel }}</span\n >\n </el-tag>\n <el-tag\n v-if=\"selected.length > 1\"\n :closable=\"false\"\n :size=\"collapseTagSize\"\n :type=\"tagType\"\n disable-transitions\n >\n <span :class=\"nsSelect.e('tags-text')\"\n >+ {{ selected.length - 1 }}</span\n >\n </el-tag>\n </span>\n <!-- <div> -->\n <transition v-if=\"!collapseTags\" @after-leave=\"resetInputHeight\">\n <span\n :style=\"{\n marginLeft:\n prefixWidth && selected.length ? `${prefixWidth}px` : '',\n }\"\n >\n <el-tag\n v-for=\"item in selected\"\n :key=\"getValueKey(item)\"\n :closable=\"!selectDisabled && !item.isDisabled\"\n :size=\"collapseTagSize\"\n :hit=\"item.hitState\"\n :type=\"tagType\"\n disable-transitions\n @close=\"deleteTag($event, item)\"\n >\n <span\n :class=\"nsSelect.e('tags-text')\"\n :style=\"{ maxWidth: inputWidth - 75 + 'px' }\"\n >{{ item.currentLabel }}</span\n >\n </el-tag>\n </span>\n </transition>\n <!-- </div> -->\n <input\n v-if=\"filterable\"\n ref=\"input\"\n v-model=\"query\"\n type=\"text\"\n :class=\"[nsSelect.e('input'), nsSelect.is(selectSize)]\"\n :disabled=\"selectDisabled\"\n :autocomplete=\"autocomplete\"\n :style=\"{\n marginLeft:\n (prefixWidth && !selected.length) || tagInMultiLine\n ? `${prefixWidth}px`\n : '',\n flexGrow: 1,\n width: `${inputLength / (inputWidth - 32)}%`,\n maxWidth: `${inputWidth - 42}px`,\n }\"\n @focus=\"handleFocus\"\n @blur=\"handleBlur\"\n @keyup=\"managePlaceholder\"\n @keydown=\"resetInputState\"\n @keydown.down.prevent=\"navigateOptions('next')\"\n @keydown.up.prevent=\"navigateOptions('prev')\"\n @keydown.esc.stop.prevent=\"visible = false\"\n @keydown.enter.stop.prevent=\"selectOption\"\n @keydown.delete=\"deletePrevTag\"\n @keydown.tab=\"visible = false\"\n @compositionstart=\"handleComposition\"\n @compositionupdate=\"handleComposition\"\n @compositionend=\"handleComposition\"\n @input=\"debouncedQueryChange\"\n />\n </div>\n <el-input\n :id=\"id\"\n ref=\"reference\"\n v-model=\"selectedLabel\"\n type=\"text\"\n :placeholder=\"currentPlaceholder\"\n :name=\"name\"\n :autocomplete=\"autocomplete\"\n :size=\"selectSize\"\n :disabled=\"selectDisabled\"\n :readonly=\"readonly\"\n :validate-event=\"false\"\n :class=\"[nsSelect.is('focus', visible)]\"\n :tabindex=\"multiple && filterable ? -1 : undefined\"\n @focus=\"handleFocus\"\n @blur=\"handleBlur\"\n @input=\"debouncedOnInputChange\"\n @paste=\"debouncedOnInputChange\"\n @compositionstart=\"handleComposition\"\n @compositionupdate=\"handleComposition\"\n @compositionend=\"handleComposition\"\n @keydown.down.stop.prevent=\"navigateOptions('next')\"\n @keydown.up.stop.prevent=\"navigateOptions('prev')\"\n @keydown.enter.stop.prevent=\"selectOption\"\n @keydown.esc.stop.prevent=\"visible = false\"\n @keydown.tab=\"visible = false\"\n @mouseenter=\"inputHovering = true\"\n @mouseleave=\"inputHovering = false\"\n >\n <template v-if=\"$slots.prefix\" #prefix>\n <div\n style=\"\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n \"\n >\n <slot name=\"prefix\"></slot>\n </div>\n </template>\n <template #suffix>\n <el-icon\n v-if=\"iconComponent\"\n v-show=\"!showClose\"\n :class=\"[nsSelect.e('caret'), nsSelect.e('icon'), iconReverse]\"\n >\n <component :is=\"iconComponent\" />\n </el-icon>\n <el-icon\n v-if=\"showClose && clearIcon\"\n :class=\"[nsSelect.e('caret'), nsSelect.e('icon')]\"\n @click=\"handleClearClick\"\n >\n <component :is=\"clearIcon\" />\n </el-icon>\n </template>\n </el-input>\n </div>\n </template>\n <template #content>\n <el-select-menu>\n <el-scrollbar\n v-show=\"options.size > 0 && !loading\"\n ref=\"scrollbar\"\n tag=\"ul\"\n :wrap-class=\"nsSelect.be('dropdown', 'wrap')\"\n :view-class=\"nsSelect.be('dropdown', 'list')\"\n :class=\"[\n nsSelect.is(\n 'empty',\n !allowCreate && query && filteredOptionsCount === 0\n ),\n ]\"\n >\n <el-option v-if=\"showNewOption\" :value=\"query\" :created=\"true\" />\n <slot></slot>\n </el-scrollbar>\n <template\n v-if=\"\n emptyText &&\n (!allowCreate || loading || (allowCreate && options.size === 0))\n \"\n >\n <slot v-if=\"$slots.empty\" name=\"empty\"></slot>\n <p v-else :class=\"nsSelect.be('dropdown', 'empty')\">\n {{ emptyText }}\n </p>\n </template>\n </el-select-menu>\n </template>\n </el-tooltip>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport {\n toRefs,\n defineComponent,\n onMounted,\n onBeforeUnmount,\n nextTick,\n reactive,\n provide,\n computed,\n unref,\n} from 'vue'\nimport { ClickOutside } from '@element-plus/directives'\nimport { useFocus, useLocale, useNamespace } from '@element-plus/hooks'\nimport ElInput from '@element-plus/components/input'\nimport ElTooltip, {\n useTooltipContentProps,\n} from '@element-plus/components/tooltip'\nimport ElScrollbar from '@element-plus/components/scrollbar'\nimport ElTag, { tagProps } from '@element-plus/components/tag'\nimport ElIcon from '@element-plus/components/icon'\nimport { useDeprecateAppendToBody } from '@element-plus/components/popper'\nimport { UPDATE_MODEL_EVENT, CHANGE_EVENT } from '@element-plus/constants'\nimport {\n addResizeListener,\n removeResizeListener,\n isValidComponentSize,\n} from '@element-plus/utils'\nimport { CircleClose, ArrowUp } from '@element-plus/icons-vue'\nimport ElOption from './option.vue'\nimport ElSelectMenu from './select-dropdown.vue'\nimport { useSelect, useSelectStates } from './useSelect'\nimport { selectKey } from './token'\n\nimport type { PropType, Component } from 'vue'\nimport type { ComponentSize } from '@element-plus/constants'\nimport type { SelectContext } from './token'\n\nconst COMPONENT_NAME = 'ElSelect'\nexport default defineComponent({\n name: COMPONENT_NAME,\n componentName: COMPONENT_NAME,\n components: {\n ElInput,\n ElSelectMenu,\n ElOption,\n ElTag,\n ElScrollbar,\n ElTooltip,\n ElIcon,\n },\n directives: { ClickOutside },\n props: {\n name: String,\n id: String,\n modelValue: {\n type: [Array, String, Number, Boolean, Object],\n default: undefined,\n },\n autocomplete: {\n type: String,\n default: 'off',\n },\n automaticDropdown: Boolean,\n size: {\n type: String as PropType<ComponentSize>,\n validator: isValidComponentSize,\n },\n effect: {\n type: String as PropType<'light' | 'dark' | string>,\n default: 'light',\n },\n disabled: Boolean,\n clearable: Boolean,\n filterable: Boolean,\n allowCreate: Boolean,\n loading: Boolean,\n popperClass: {\n type: String,\n default: '',\n },\n remote: Boolean,\n loadingText: String,\n noMatchText: String,\n noDataText: String,\n remoteMethod: Function,\n filterMethod: Function,\n multiple: Boolean,\n multipleLimit: {\n type: Number,\n default: 0,\n },\n placeholder: {\n type: String,\n },\n defaultFirstOption: Boolean,\n reserveKeyword: {\n type: Boolean,\n default: true,\n },\n valueKey: {\n type: String,\n default: 'value',\n },\n collapseTags: Boolean,\n popperAppendToBody: {\n type: Boolean,\n default: undefined,\n },\n teleported: useTooltipContentProps.teleported,\n clearIcon: {\n type: [String, Object] as PropType<string | Component>,\n default: CircleClose,\n },\n fitInputWidth: {\n type: Boolean,\n default: false,\n },\n suffixIcon: {\n type: [String, Object] as PropType<string | Component>,\n default: ArrowUp,\n },\n // eslint-disable-next-line vue/require-prop-types\n tagType: { ...tagProps.type, default: 'info' },\n },\n emits: [\n UPDATE_MODEL_EVENT,\n CHANGE_EVENT,\n 'remove-tag',\n 'clear',\n 'visible-change',\n 'focus',\n 'blur',\n ],\n\n setup(props, ctx) {\n const nsSelect = useNamespace('select')\n const nsInput = useNamespace('input')\n const { t } = useLocale()\n const states = useSelectStates(props)\n const {\n optionsArray,\n selectSize,\n readonly,\n handleResize,\n collapseTagSize,\n debouncedOnInputChange,\n debouncedQueryChange,\n deletePrevTag,\n deleteTag,\n deleteSelected,\n handleOptionSelect,\n scrollToOption,\n setSelected,\n resetInputHeight,\n managePlaceholder,\n showClose,\n selectDisabled,\n iconComponent,\n iconReverse,\n showNewOption,\n emptyText,\n toggleLastOptionHitState,\n resetInputState,\n handleComposition,\n onOptionCreate,\n onOptionDestroy,\n handleMenuEnter,\n handleFocus,\n blur,\n handleBlur,\n handleClearClick,\n handleClose,\n toggleMenu,\n selectOption,\n getValueKey,\n navigateOptions,\n dropMenuVisible,\n\n reference,\n input,\n tooltipRef,\n tags,\n selectWrapper,\n scrollbar,\n queryChange,\n groupQueryChange,\n } = useSelect(props, states, ctx)\n\n const { focus } = useFocus(reference)\n\n const {\n inputWidth,\n selected,\n inputLength,\n filteredOptionsCount,\n visible,\n softFocus,\n selectedLabel,\n hoverIndex,\n query,\n inputHovering,\n currentPlaceholder,\n menuVisibleOnFocus,\n isOnComposition,\n isSilentBlur,\n options,\n cachedOptions,\n optionsCount,\n prefixWidth,\n tagInMultiLine,\n } = toRefs(states)\n\n const wrapperKls = computed(() => {\n const classList = [nsSelect.b()]\n const _selectSize = unref(selectSize)\n if (_selectSize) {\n classList.push(nsSelect.m(_selectSize))\n }\n if (props.disabled) {\n classList.push(nsSelect.m('disabled'))\n }\n return classList\n })\n\n const selectTagsStyle = computed(() => ({\n maxWidth: `${unref(inputWidth) - 32}px`,\n width: '100%',\n }))\n\n provide(\n selectKey,\n reactive({\n props,\n options,\n optionsArray,\n cachedOptions,\n optionsCount,\n filteredOptionsCount,\n hoverIndex,\n handleOptionSelect,\n onOptionCreate,\n onOptionDestroy,\n selectWrapper,\n selected,\n setSelected,\n queryChange,\n groupQueryChange,\n }) as unknown as SelectContext\n )\n\n onMounted(() => {\n states.cachedPlaceHolder = currentPlaceholder.value =\n props.placeholder || t('el.select.placeholder')\n if (\n props.multiple &&\n Array.isArray(props.modelValue) &&\n props.modelValue.length > 0\n ) {\n currentPlaceholder.value = ''\n }\n addResizeListener(selectWrapper.value as any, handleResize)\n if (reference.value && reference.value.$el) {\n const sizeMap = {\n large: 36,\n default: 32,\n small: 28,\n }\n const input = reference.value.input as HTMLInputElement\n states.initialInputHeight =\n input.getBoundingClientRect().height || sizeMap[selectSize.value]\n }\n if (props.remote && props.multiple) {\n resetInputHeight()\n }\n nextTick(() => {\n if (!reference.value) return\n if (reference.value.$el) {\n inputWidth.value = reference.value.$el.getBoundingClientRect().width\n }\n if (ctx.slots.prefix) {\n const inputChildNodes = reference.value.$el.childNodes\n const input = (Array.from(inputChildNodes) as HTMLElement[]).filter(\n (item) => item.tagName === 'INPUT'\n )[0]\n const prefix = reference.value.$el.querySelector(\n `.${nsInput.e('prefix')}`\n )\n prefixWidth.value = Math.max(\n prefix.getBoundingClientRect().width + 5,\n 30\n )\n if (states.prefixWidth) {\n input.style.paddingLeft = `${Math.max(states.prefixWidth, 30)}px`\n }\n }\n })\n setSelected()\n })\n\n onBeforeUnmount(() => {\n removeResizeListener(selectWrapper.value as any, handleResize)\n })\n\n if (props.multiple && !Array.isArray(props.modelValue)) {\n ctx.emit(UPDATE_MODEL_EVENT, [])\n }\n if (!props.multiple && Array.isArray(props.modelValue)) {\n ctx.emit(UPDATE_MODEL_EVENT, '')\n }\n\n const popperPaneRef = computed(() => {\n return tooltipRef.value?.popperRef?.contentRef\n })\n\n const { compatTeleported } = useDeprecateAppendToBody(\n COMPONENT_NAME,\n 'popperAppendToBody'\n )\n\n return {\n tagInMultiLine,\n prefixWidth,\n selectSize,\n readonly,\n handleResize,\n collapseTagSize,\n debouncedOnInputChange,\n debouncedQueryChange,\n deletePrevTag,\n deleteTag,\n deleteSelected,\n handleOptionSelect,\n scrollToOption,\n inputWidth,\n selected,\n inputLength,\n filteredOptionsCount,\n visible,\n softFocus,\n selectedLabel,\n hoverIndex,\n query,\n inputHovering,\n currentPlaceholder,\n menuVisibleOnFocus,\n isOnComposition,\n isSilentBlur,\n options,\n resetInputHeight,\n managePlaceholder,\n showClose,\n selectDisabled,\n iconComponent,\n iconReverse,\n showNewOption,\n emptyText,\n toggleLastOptionHitState,\n resetInputState,\n handleComposition,\n handleMenuEnter,\n handleFocus,\n blur,\n handleBlur,\n handleClearClick,\n handleClose,\n toggleMenu,\n selectOption,\n getValueKey,\n navigateOptions,\n dropMenuVisible,\n focus,\n\n reference,\n input,\n tooltipRef,\n popperPaneRef,\n tags,\n selectWrapper,\n scrollbar,\n\n wrapperKls,\n selectTagsStyle,\n compatTeleported,\n nsSelect,\n }\n },\n})\n</script>\n"],"names":["ElOption","_withDirectives","_normalizeClass","_openBlock","_createCommentVNode"],"mappings":"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"}
1
+ {"version":3,"file":"select.mjs","sources":["../../../../../../packages/components/select/src/select.vue"],"sourcesContent":["<template>\n <div\n ref=\"selectWrapper\"\n v-click-outside:[popperPaneRef]=\"handleClose\"\n :class=\"wrapperKls\"\n @click.stop=\"toggleMenu\"\n >\n <el-tooltip\n ref=\"tooltipRef\"\n v-model:visible=\"dropMenuVisible\"\n placement=\"bottom-start\"\n :teleported=\"compatTeleported\"\n :popper-class=\"[nsSelect.e('popper'), popperClass]\"\n :fallback-placements=\"['bottom-start', 'top-start', 'right', 'left']\"\n :effect=\"effect\"\n pure\n trigger=\"click\"\n :transition=\"`${nsSelect.namespace.value}-zoom-in-top`\"\n :stop-popper-mouse-event=\"false\"\n :gpu-acceleration=\"false\"\n :persistent=\"persistent\"\n @show=\"handleMenuEnter\"\n >\n <template #default>\n <div class=\"select-trigger\">\n <div\n v-if=\"multiple\"\n ref=\"tags\"\n :class=\"nsSelect.e('tags')\"\n :style=\"selectTagsStyle\"\n >\n <span\n v-if=\"collapseTags && selected.length\"\n :style=\"{\n marginLeft:\n prefixWidth && selected.length ? `${prefixWidth}px` : '',\n }\"\n >\n <el-tag\n :closable=\"!selectDisabled && !selected[0].isDisabled\"\n :size=\"collapseTagSize\"\n :hit=\"selected[0].hitState\"\n :type=\"tagType\"\n disable-transitions\n @close=\"deleteTag($event, selected[0])\"\n >\n <span\n :class=\"nsSelect.e('tags-text')\"\n :style=\"{ maxWidth: inputWidth - 123 + 'px' }\"\n >{{ selected[0].currentLabel }}</span\n >\n </el-tag>\n <el-tag\n v-if=\"selected.length > 1\"\n :closable=\"false\"\n :size=\"collapseTagSize\"\n :type=\"tagType\"\n disable-transitions\n >\n <span :class=\"nsSelect.e('tags-text')\"\n >+ {{ selected.length - 1 }}</span\n >\n </el-tag>\n </span>\n <!-- <div> -->\n <transition v-if=\"!collapseTags\" @after-leave=\"resetInputHeight\">\n <span\n :style=\"{\n marginLeft:\n prefixWidth && selected.length ? `${prefixWidth}px` : '',\n }\"\n >\n <el-tag\n v-for=\"item in selected\"\n :key=\"getValueKey(item)\"\n :closable=\"!selectDisabled && !item.isDisabled\"\n :size=\"collapseTagSize\"\n :hit=\"item.hitState\"\n :type=\"tagType\"\n disable-transitions\n @close=\"deleteTag($event, item)\"\n >\n <span\n :class=\"nsSelect.e('tags-text')\"\n :style=\"{ maxWidth: inputWidth - 75 + 'px' }\"\n >{{ item.currentLabel }}</span\n >\n </el-tag>\n </span>\n </transition>\n <!-- </div> -->\n <input\n v-if=\"filterable\"\n ref=\"input\"\n v-model=\"query\"\n type=\"text\"\n :class=\"[nsSelect.e('input'), nsSelect.is(selectSize)]\"\n :disabled=\"selectDisabled\"\n :autocomplete=\"autocomplete\"\n :style=\"{\n marginLeft:\n (prefixWidth && !selected.length) || tagInMultiLine\n ? `${prefixWidth}px`\n : '',\n flexGrow: 1,\n width: `${inputLength / (inputWidth - 32)}%`,\n maxWidth: `${inputWidth - 42}px`,\n }\"\n @focus=\"handleFocus\"\n @blur=\"handleBlur\"\n @keyup=\"managePlaceholder\"\n @keydown=\"resetInputState\"\n @keydown.down.prevent=\"navigateOptions('next')\"\n @keydown.up.prevent=\"navigateOptions('prev')\"\n @keydown.esc.stop.prevent=\"visible = false\"\n @keydown.enter.stop.prevent=\"selectOption\"\n @keydown.delete=\"deletePrevTag\"\n @keydown.tab=\"visible = false\"\n @compositionstart=\"handleComposition\"\n @compositionupdate=\"handleComposition\"\n @compositionend=\"handleComposition\"\n @input=\"debouncedQueryChange\"\n />\n </div>\n <el-input\n :id=\"id\"\n ref=\"reference\"\n v-model=\"selectedLabel\"\n type=\"text\"\n :placeholder=\"currentPlaceholder\"\n :name=\"name\"\n :autocomplete=\"autocomplete\"\n :size=\"selectSize\"\n :disabled=\"selectDisabled\"\n :readonly=\"readonly\"\n :validate-event=\"false\"\n :class=\"[nsSelect.is('focus', visible)]\"\n :tabindex=\"multiple && filterable ? -1 : undefined\"\n @focus=\"handleFocus\"\n @blur=\"handleBlur\"\n @input=\"debouncedOnInputChange\"\n @paste=\"debouncedOnInputChange\"\n @compositionstart=\"handleComposition\"\n @compositionupdate=\"handleComposition\"\n @compositionend=\"handleComposition\"\n @keydown.down.stop.prevent=\"navigateOptions('next')\"\n @keydown.up.stop.prevent=\"navigateOptions('prev')\"\n @keydown.enter.stop.prevent=\"selectOption\"\n @keydown.esc.stop.prevent=\"visible = false\"\n @keydown.tab=\"visible = false\"\n @mouseenter=\"inputHovering = true\"\n @mouseleave=\"inputHovering = false\"\n >\n <template v-if=\"$slots.prefix\" #prefix>\n <div\n style=\"\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n \"\n >\n <slot name=\"prefix\"></slot>\n </div>\n </template>\n <template #suffix>\n <el-icon\n v-if=\"iconComponent\"\n v-show=\"!showClose\"\n :class=\"[nsSelect.e('caret'), nsSelect.e('icon'), iconReverse]\"\n >\n <component :is=\"iconComponent\" />\n </el-icon>\n <el-icon\n v-if=\"showClose && clearIcon\"\n :class=\"[nsSelect.e('caret'), nsSelect.e('icon')]\"\n @click=\"handleClearClick\"\n >\n <component :is=\"clearIcon\" />\n </el-icon>\n </template>\n </el-input>\n </div>\n </template>\n <template #content>\n <el-select-menu>\n <el-scrollbar\n v-show=\"options.size > 0 && !loading\"\n ref=\"scrollbar\"\n tag=\"ul\"\n :wrap-class=\"nsSelect.be('dropdown', 'wrap')\"\n :view-class=\"nsSelect.be('dropdown', 'list')\"\n :class=\"[\n nsSelect.is(\n 'empty',\n !allowCreate && query && filteredOptionsCount === 0\n ),\n ]\"\n >\n <el-option v-if=\"showNewOption\" :value=\"query\" :created=\"true\" />\n <slot></slot>\n </el-scrollbar>\n <template\n v-if=\"\n emptyText &&\n (!allowCreate || loading || (allowCreate && options.size === 0))\n \"\n >\n <slot v-if=\"$slots.empty\" name=\"empty\"></slot>\n <p v-else :class=\"nsSelect.be('dropdown', 'empty')\">\n {{ emptyText }}\n </p>\n </template>\n </el-select-menu>\n </template>\n </el-tooltip>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport {\n toRefs,\n defineComponent,\n onMounted,\n onBeforeUnmount,\n nextTick,\n reactive,\n provide,\n computed,\n unref,\n} from 'vue'\nimport { ClickOutside } from '@element-plus/directives'\nimport { useFocus, useLocale, useNamespace } from '@element-plus/hooks'\nimport ElInput from '@element-plus/components/input'\nimport ElTooltip, {\n useTooltipContentProps,\n} from '@element-plus/components/tooltip'\nimport ElScrollbar from '@element-plus/components/scrollbar'\nimport ElTag, { tagProps } from '@element-plus/components/tag'\nimport ElIcon from '@element-plus/components/icon'\nimport { useDeprecateAppendToBody } from '@element-plus/components/popper'\nimport { UPDATE_MODEL_EVENT, CHANGE_EVENT } from '@element-plus/constants'\nimport {\n addResizeListener,\n removeResizeListener,\n isValidComponentSize,\n} from '@element-plus/utils'\nimport { CircleClose, ArrowUp } from '@element-plus/icons-vue'\nimport ElOption from './option.vue'\nimport ElSelectMenu from './select-dropdown.vue'\nimport { useSelect, useSelectStates } from './useSelect'\nimport { selectKey } from './token'\n\nimport type { PropType, Component } from 'vue'\nimport type { ComponentSize } from '@element-plus/constants'\nimport type { SelectContext } from './token'\n\nconst COMPONENT_NAME = 'ElSelect'\nexport default defineComponent({\n name: COMPONENT_NAME,\n componentName: COMPONENT_NAME,\n components: {\n ElInput,\n ElSelectMenu,\n ElOption,\n ElTag,\n ElScrollbar,\n ElTooltip,\n ElIcon,\n },\n directives: { ClickOutside },\n props: {\n name: String,\n id: String,\n modelValue: {\n type: [Array, String, Number, Boolean, Object],\n default: undefined,\n },\n autocomplete: {\n type: String,\n default: 'off',\n },\n automaticDropdown: Boolean,\n size: {\n type: String as PropType<ComponentSize>,\n validator: isValidComponentSize,\n },\n effect: {\n type: String as PropType<'light' | 'dark' | string>,\n default: 'light',\n },\n disabled: Boolean,\n clearable: Boolean,\n filterable: Boolean,\n allowCreate: Boolean,\n loading: Boolean,\n popperClass: {\n type: String,\n default: '',\n },\n remote: Boolean,\n loadingText: String,\n noMatchText: String,\n noDataText: String,\n remoteMethod: Function,\n filterMethod: Function,\n multiple: Boolean,\n multipleLimit: {\n type: Number,\n default: 0,\n },\n placeholder: {\n type: String,\n },\n defaultFirstOption: Boolean,\n reserveKeyword: {\n type: Boolean,\n default: true,\n },\n valueKey: {\n type: String,\n default: 'value',\n },\n collapseTags: Boolean,\n popperAppendToBody: {\n type: Boolean,\n default: undefined,\n },\n teleported: useTooltipContentProps.teleported,\n persistent: {\n type: Boolean,\n default: true,\n },\n clearIcon: {\n type: [String, Object] as PropType<string | Component>,\n default: CircleClose,\n },\n fitInputWidth: {\n type: Boolean,\n default: false,\n },\n suffixIcon: {\n type: [String, Object] as PropType<string | Component>,\n default: ArrowUp,\n },\n // eslint-disable-next-line vue/require-prop-types\n tagType: { ...tagProps.type, default: 'info' },\n },\n emits: [\n UPDATE_MODEL_EVENT,\n CHANGE_EVENT,\n 'remove-tag',\n 'clear',\n 'visible-change',\n 'focus',\n 'blur',\n ],\n\n setup(props, ctx) {\n const nsSelect = useNamespace('select')\n const nsInput = useNamespace('input')\n const { t } = useLocale()\n const states = useSelectStates(props)\n const {\n optionsArray,\n selectSize,\n readonly,\n handleResize,\n collapseTagSize,\n debouncedOnInputChange,\n debouncedQueryChange,\n deletePrevTag,\n deleteTag,\n deleteSelected,\n handleOptionSelect,\n scrollToOption,\n setSelected,\n resetInputHeight,\n managePlaceholder,\n showClose,\n selectDisabled,\n iconComponent,\n iconReverse,\n showNewOption,\n emptyText,\n toggleLastOptionHitState,\n resetInputState,\n handleComposition,\n onOptionCreate,\n onOptionDestroy,\n handleMenuEnter,\n handleFocus,\n blur,\n handleBlur,\n handleClearClick,\n handleClose,\n toggleMenu,\n selectOption,\n getValueKey,\n navigateOptions,\n dropMenuVisible,\n\n reference,\n input,\n tooltipRef,\n tags,\n selectWrapper,\n scrollbar,\n queryChange,\n groupQueryChange,\n } = useSelect(props, states, ctx)\n\n const { focus } = useFocus(reference)\n\n const {\n inputWidth,\n selected,\n inputLength,\n filteredOptionsCount,\n visible,\n softFocus,\n selectedLabel,\n hoverIndex,\n query,\n inputHovering,\n currentPlaceholder,\n menuVisibleOnFocus,\n isOnComposition,\n isSilentBlur,\n options,\n cachedOptions,\n optionsCount,\n prefixWidth,\n tagInMultiLine,\n } = toRefs(states)\n\n const wrapperKls = computed(() => {\n const classList = [nsSelect.b()]\n const _selectSize = unref(selectSize)\n if (_selectSize) {\n classList.push(nsSelect.m(_selectSize))\n }\n if (props.disabled) {\n classList.push(nsSelect.m('disabled'))\n }\n return classList\n })\n\n const selectTagsStyle = computed(() => ({\n maxWidth: `${unref(inputWidth) - 32}px`,\n width: '100%',\n }))\n\n provide(\n selectKey,\n reactive({\n props,\n options,\n optionsArray,\n cachedOptions,\n optionsCount,\n filteredOptionsCount,\n hoverIndex,\n handleOptionSelect,\n onOptionCreate,\n onOptionDestroy,\n selectWrapper,\n selected,\n setSelected,\n queryChange,\n groupQueryChange,\n }) as unknown as SelectContext\n )\n\n onMounted(() => {\n states.cachedPlaceHolder = currentPlaceholder.value =\n props.placeholder || t('el.select.placeholder')\n if (\n props.multiple &&\n Array.isArray(props.modelValue) &&\n props.modelValue.length > 0\n ) {\n currentPlaceholder.value = ''\n }\n addResizeListener(selectWrapper.value as any, handleResize)\n if (reference.value && reference.value.$el) {\n const sizeMap = {\n large: 36,\n default: 32,\n small: 28,\n }\n const input = reference.value.input as HTMLInputElement\n states.initialInputHeight =\n input.getBoundingClientRect().height || sizeMap[selectSize.value]\n }\n if (props.remote && props.multiple) {\n resetInputHeight()\n }\n nextTick(() => {\n if (!reference.value) return\n if (reference.value.$el) {\n inputWidth.value = reference.value.$el.getBoundingClientRect().width\n }\n if (ctx.slots.prefix) {\n const inputChildNodes = reference.value.$el.childNodes\n const input = (Array.from(inputChildNodes) as HTMLElement[]).filter(\n (item) => item.tagName === 'INPUT'\n )[0]\n const prefix = reference.value.$el.querySelector(\n `.${nsInput.e('prefix')}`\n )\n prefixWidth.value = Math.max(\n prefix.getBoundingClientRect().width + 5,\n 30\n )\n if (states.prefixWidth) {\n input.style.paddingLeft = `${Math.max(states.prefixWidth, 30)}px`\n }\n }\n })\n setSelected()\n })\n\n onBeforeUnmount(() => {\n removeResizeListener(selectWrapper.value as any, handleResize)\n })\n\n if (props.multiple && !Array.isArray(props.modelValue)) {\n ctx.emit(UPDATE_MODEL_EVENT, [])\n }\n if (!props.multiple && Array.isArray(props.modelValue)) {\n ctx.emit(UPDATE_MODEL_EVENT, '')\n }\n\n const popperPaneRef = computed(() => {\n return tooltipRef.value?.popperRef?.contentRef\n })\n\n const { compatTeleported } = useDeprecateAppendToBody(\n COMPONENT_NAME,\n 'popperAppendToBody'\n )\n\n return {\n tagInMultiLine,\n prefixWidth,\n selectSize,\n readonly,\n handleResize,\n collapseTagSize,\n debouncedOnInputChange,\n debouncedQueryChange,\n deletePrevTag,\n deleteTag,\n deleteSelected,\n handleOptionSelect,\n scrollToOption,\n inputWidth,\n selected,\n inputLength,\n filteredOptionsCount,\n visible,\n softFocus,\n selectedLabel,\n hoverIndex,\n query,\n inputHovering,\n currentPlaceholder,\n menuVisibleOnFocus,\n isOnComposition,\n isSilentBlur,\n options,\n resetInputHeight,\n managePlaceholder,\n showClose,\n selectDisabled,\n iconComponent,\n iconReverse,\n showNewOption,\n emptyText,\n toggleLastOptionHitState,\n resetInputState,\n handleComposition,\n handleMenuEnter,\n handleFocus,\n blur,\n handleBlur,\n handleClearClick,\n handleClose,\n toggleMenu,\n selectOption,\n getValueKey,\n navigateOptions,\n dropMenuVisible,\n focus,\n\n reference,\n input,\n tooltipRef,\n popperPaneRef,\n tags,\n selectWrapper,\n scrollbar,\n\n wrapperKls,\n selectTagsStyle,\n compatTeleported,\n nsSelect,\n }\n },\n})\n</script>\n"],"names":["ElOption","_withDirectives","_normalizeClass","_openBlock","_createCommentVNode"],"mappings":"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"}
@@ -58,6 +58,10 @@ declare const _default: import("vue").DefineComponent<{
58
58
  default: undefined;
59
59
  };
60
60
  teleported: import("element-plus/es/utils").BuildPropReturn<BooleanConstructor, true, unknown, unknown, unknown>;
61
+ persistent: {
62
+ type: BooleanConstructor;
63
+ default: boolean;
64
+ };
61
65
  clearIcon: {
62
66
  type: PropType<string | Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions>>;
63
67
  default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, import("vue").EmitsOptions, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
@@ -780,6 +784,10 @@ declare const _default: import("vue").DefineComponent<{
780
784
  default: undefined;
781
785
  };
782
786
  teleported: import("element-plus/es/utils").BuildPropReturn<BooleanConstructor, true, unknown, unknown, unknown>;
787
+ persistent: {
788
+ type: BooleanConstructor;
789
+ default: boolean;
790
+ };
783
791
  clearIcon: {
784
792
  type: PropType<string | Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions>>;
785
793
  default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, import("vue").EmitsOptions, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
@@ -816,6 +824,7 @@ declare const _default: import("vue").DefineComponent<{
816
824
  popperClass: string;
817
825
  popperAppendToBody: boolean;
818
826
  teleported: import("element-plus/es/utils").BuildPropType<BooleanConstructor, unknown, unknown>;
827
+ persistent: boolean;
819
828
  multiple: boolean;
820
829
  autocomplete: string;
821
830
  clearable: boolean;
@@ -8,8 +8,9 @@ import '../../../hooks/index.mjs';
8
8
  import '../../../tokens/index.mjs';
9
9
  import { useLocale } from '../../../hooks/use-locale/index.mjs';
10
10
  import { useNamespace } from '../../../hooks/use-namespace/index.mjs';
11
- import { elFormKey, elFormItemKey } from '../../../tokens/form.mjs';
11
+ import { formContextKey, formItemContextKey } from '../../../tokens/form.mjs';
12
12
  import { useSize } from '../../../hooks/use-common-props/index.mjs';
13
+ import { debugWarn } from '../../../utils/error.mjs';
13
14
  import { CHANGE_EVENT, UPDATE_MODEL_EVENT } from '../../../constants/event.mjs';
14
15
  import { scrollIntoView } from '../../../utils/dom/scroll.mjs';
15
16
  import { EVENT_CODE } from '../../../constants/aria.mjs';
@@ -56,8 +57,8 @@ const useSelect = (props, states, ctx) => {
56
57
  const hoverOption = ref(-1);
57
58
  const queryChange = shallowRef({ query: "" });
58
59
  const groupQueryChange = shallowRef("");
59
- const elForm = inject(elFormKey, {});
60
- const elFormItem = inject(elFormItemKey, {});
60
+ const elForm = inject(formContextKey, {});
61
+ const elFormItem = inject(formItemContextKey, {});
61
62
  const readonly = computed(() => !props.filterable || props.multiple || !states.visible);
62
63
  const selectDisabled = computed(() => props.disabled || elForm.disabled);
63
64
  const showClose = computed(() => {
@@ -130,7 +131,7 @@ const useSelect = (props, states, ctx) => {
130
131
  states.inputLength = 20;
131
132
  }
132
133
  if (!isEqual(val, oldVal)) {
133
- (_a = elFormItem.validate) == null ? void 0 : _a.call(elFormItem, "change");
134
+ (_a = elFormItem.validate) == null ? void 0 : _a.call(elFormItem, "change").catch((err) => debugWarn(err));
134
135
  }
135
136
  }, {
136
137
  flush: "post",
@@ -539,10 +540,10 @@ const useSelect = (props, states, ctx) => {
539
540
  const handleFocus = (event) => {
540
541
  if (!states.softFocus) {
541
542
  if (props.automaticDropdown || props.filterable) {
542
- states.visible = true;
543
- if (props.filterable) {
543
+ if (props.filterable && !states.visible) {
544
544
  states.menuVisibleOnFocus = true;
545
545
  }
546
+ states.visible = true;
546
547
  }
547
548
  ctx.emit("focus", event);
548
549
  } else {