element-plus 2.13.6 → 2.13.7

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 (870) hide show
  1. package/attributes.json +1 -1
  2. package/dist/index.css +1 -1
  3. package/dist/index.full.js +199 -101
  4. package/dist/index.full.min.js +7 -7
  5. package/dist/index.full.min.js.map +1 -1
  6. package/dist/index.full.min.mjs +7 -7
  7. package/dist/index.full.min.mjs.map +1 -1
  8. package/dist/index.full.mjs +199 -101
  9. package/dist/locale/af.js +1 -1
  10. package/dist/locale/af.min.js +1 -1
  11. package/dist/locale/af.min.mjs +1 -1
  12. package/dist/locale/af.mjs +1 -1
  13. package/dist/locale/ar-eg.js +1 -1
  14. package/dist/locale/ar-eg.min.js +1 -1
  15. package/dist/locale/ar-eg.min.mjs +1 -1
  16. package/dist/locale/ar-eg.mjs +1 -1
  17. package/dist/locale/ar.js +1 -1
  18. package/dist/locale/ar.min.js +1 -1
  19. package/dist/locale/ar.min.mjs +1 -1
  20. package/dist/locale/ar.mjs +1 -1
  21. package/dist/locale/az.js +1 -1
  22. package/dist/locale/az.min.js +1 -1
  23. package/dist/locale/az.min.mjs +1 -1
  24. package/dist/locale/az.mjs +1 -1
  25. package/dist/locale/bg.js +1 -1
  26. package/dist/locale/bg.min.js +1 -1
  27. package/dist/locale/bg.min.mjs +1 -1
  28. package/dist/locale/bg.mjs +1 -1
  29. package/dist/locale/bn.js +1 -1
  30. package/dist/locale/bn.min.js +1 -1
  31. package/dist/locale/bn.min.mjs +1 -1
  32. package/dist/locale/bn.mjs +1 -1
  33. package/dist/locale/ca.js +1 -1
  34. package/dist/locale/ca.min.js +1 -1
  35. package/dist/locale/ca.min.mjs +1 -1
  36. package/dist/locale/ca.mjs +1 -1
  37. package/dist/locale/ckb.js +1 -1
  38. package/dist/locale/ckb.min.js +1 -1
  39. package/dist/locale/ckb.min.mjs +1 -1
  40. package/dist/locale/ckb.mjs +1 -1
  41. package/dist/locale/cs.js +1 -1
  42. package/dist/locale/cs.min.js +1 -1
  43. package/dist/locale/cs.min.mjs +1 -1
  44. package/dist/locale/cs.mjs +1 -1
  45. package/dist/locale/da.js +1 -1
  46. package/dist/locale/da.min.js +1 -1
  47. package/dist/locale/da.min.mjs +1 -1
  48. package/dist/locale/da.mjs +1 -1
  49. package/dist/locale/de.js +1 -1
  50. package/dist/locale/de.min.js +1 -1
  51. package/dist/locale/de.min.mjs +1 -1
  52. package/dist/locale/de.mjs +1 -1
  53. package/dist/locale/el.js +1 -1
  54. package/dist/locale/el.min.js +1 -1
  55. package/dist/locale/el.min.mjs +1 -1
  56. package/dist/locale/el.mjs +1 -1
  57. package/dist/locale/en.js +1 -1
  58. package/dist/locale/en.min.js +1 -1
  59. package/dist/locale/en.min.mjs +1 -1
  60. package/dist/locale/en.mjs +1 -1
  61. package/dist/locale/eo.js +1 -1
  62. package/dist/locale/eo.min.js +1 -1
  63. package/dist/locale/eo.min.mjs +1 -1
  64. package/dist/locale/eo.mjs +1 -1
  65. package/dist/locale/es.js +1 -1
  66. package/dist/locale/es.min.js +1 -1
  67. package/dist/locale/es.min.mjs +1 -1
  68. package/dist/locale/es.mjs +1 -1
  69. package/dist/locale/et.js +1 -1
  70. package/dist/locale/et.min.js +1 -1
  71. package/dist/locale/et.min.mjs +1 -1
  72. package/dist/locale/et.mjs +1 -1
  73. package/dist/locale/eu.js +1 -1
  74. package/dist/locale/eu.min.js +1 -1
  75. package/dist/locale/eu.min.mjs +1 -1
  76. package/dist/locale/eu.mjs +1 -1
  77. package/dist/locale/fa.js +1 -1
  78. package/dist/locale/fa.min.js +1 -1
  79. package/dist/locale/fa.min.mjs +1 -1
  80. package/dist/locale/fa.mjs +1 -1
  81. package/dist/locale/fi.js +1 -1
  82. package/dist/locale/fi.min.js +1 -1
  83. package/dist/locale/fi.min.mjs +1 -1
  84. package/dist/locale/fi.mjs +1 -1
  85. package/dist/locale/fr.js +1 -1
  86. package/dist/locale/fr.min.js +1 -1
  87. package/dist/locale/fr.min.mjs +1 -1
  88. package/dist/locale/fr.mjs +1 -1
  89. package/dist/locale/he.js +1 -1
  90. package/dist/locale/he.min.js +1 -1
  91. package/dist/locale/he.min.mjs +1 -1
  92. package/dist/locale/he.mjs +1 -1
  93. package/dist/locale/hi.js +1 -1
  94. package/dist/locale/hi.min.js +1 -1
  95. package/dist/locale/hi.min.mjs +1 -1
  96. package/dist/locale/hi.mjs +1 -1
  97. package/dist/locale/hr.js +1 -1
  98. package/dist/locale/hr.min.js +1 -1
  99. package/dist/locale/hr.min.mjs +1 -1
  100. package/dist/locale/hr.mjs +1 -1
  101. package/dist/locale/hu.js +1 -1
  102. package/dist/locale/hu.min.js +1 -1
  103. package/dist/locale/hu.min.mjs +1 -1
  104. package/dist/locale/hu.mjs +1 -1
  105. package/dist/locale/hy-am.js +1 -1
  106. package/dist/locale/hy-am.min.js +1 -1
  107. package/dist/locale/hy-am.min.mjs +1 -1
  108. package/dist/locale/hy-am.mjs +1 -1
  109. package/dist/locale/id.js +1 -1
  110. package/dist/locale/id.min.js +1 -1
  111. package/dist/locale/id.min.mjs +1 -1
  112. package/dist/locale/id.mjs +1 -1
  113. package/dist/locale/it.js +1 -1
  114. package/dist/locale/it.min.js +1 -1
  115. package/dist/locale/it.min.mjs +1 -1
  116. package/dist/locale/it.mjs +1 -1
  117. package/dist/locale/ja.js +1 -1
  118. package/dist/locale/ja.min.js +1 -1
  119. package/dist/locale/ja.min.mjs +1 -1
  120. package/dist/locale/ja.mjs +1 -1
  121. package/dist/locale/kk.js +1 -1
  122. package/dist/locale/kk.min.js +1 -1
  123. package/dist/locale/kk.min.mjs +1 -1
  124. package/dist/locale/kk.mjs +1 -1
  125. package/dist/locale/km.js +1 -1
  126. package/dist/locale/km.min.js +1 -1
  127. package/dist/locale/km.min.mjs +1 -1
  128. package/dist/locale/km.mjs +1 -1
  129. package/dist/locale/ko.js +1 -1
  130. package/dist/locale/ko.min.js +1 -1
  131. package/dist/locale/ko.min.mjs +1 -1
  132. package/dist/locale/ko.mjs +1 -1
  133. package/dist/locale/ku.js +1 -1
  134. package/dist/locale/ku.min.js +1 -1
  135. package/dist/locale/ku.min.mjs +1 -1
  136. package/dist/locale/ku.mjs +1 -1
  137. package/dist/locale/ky.js +1 -1
  138. package/dist/locale/ky.min.js +1 -1
  139. package/dist/locale/ky.min.mjs +1 -1
  140. package/dist/locale/ky.mjs +1 -1
  141. package/dist/locale/lo.js +1 -1
  142. package/dist/locale/lo.min.js +1 -1
  143. package/dist/locale/lo.min.mjs +1 -1
  144. package/dist/locale/lo.mjs +1 -1
  145. package/dist/locale/lt.js +1 -1
  146. package/dist/locale/lt.min.js +1 -1
  147. package/dist/locale/lt.min.mjs +1 -1
  148. package/dist/locale/lt.mjs +1 -1
  149. package/dist/locale/lv.js +1 -1
  150. package/dist/locale/lv.min.js +1 -1
  151. package/dist/locale/lv.min.mjs +1 -1
  152. package/dist/locale/lv.mjs +1 -1
  153. package/dist/locale/mg.js +1 -1
  154. package/dist/locale/mg.min.js +1 -1
  155. package/dist/locale/mg.min.mjs +1 -1
  156. package/dist/locale/mg.mjs +1 -1
  157. package/dist/locale/mn.js +1 -1
  158. package/dist/locale/mn.min.js +1 -1
  159. package/dist/locale/mn.min.mjs +1 -1
  160. package/dist/locale/mn.mjs +1 -1
  161. package/dist/locale/ms.js +1 -1
  162. package/dist/locale/ms.min.js +1 -1
  163. package/dist/locale/ms.min.mjs +1 -1
  164. package/dist/locale/ms.mjs +1 -1
  165. package/dist/locale/my.js +1 -1
  166. package/dist/locale/my.min.js +1 -1
  167. package/dist/locale/my.min.mjs +1 -1
  168. package/dist/locale/my.mjs +1 -1
  169. package/dist/locale/nb-no.js +1 -1
  170. package/dist/locale/nb-no.min.js +1 -1
  171. package/dist/locale/nb-no.min.mjs +1 -1
  172. package/dist/locale/nb-no.mjs +1 -1
  173. package/dist/locale/nl.js +1 -1
  174. package/dist/locale/nl.min.js +1 -1
  175. package/dist/locale/nl.min.mjs +1 -1
  176. package/dist/locale/nl.mjs +1 -1
  177. package/dist/locale/no.js +1 -1
  178. package/dist/locale/no.min.js +1 -1
  179. package/dist/locale/no.min.mjs +1 -1
  180. package/dist/locale/no.mjs +1 -1
  181. package/dist/locale/pa.js +1 -1
  182. package/dist/locale/pa.min.js +1 -1
  183. package/dist/locale/pa.min.mjs +1 -1
  184. package/dist/locale/pa.mjs +1 -1
  185. package/dist/locale/pl.js +1 -1
  186. package/dist/locale/pl.min.js +1 -1
  187. package/dist/locale/pl.min.mjs +1 -1
  188. package/dist/locale/pl.mjs +1 -1
  189. package/dist/locale/pt-br.js +1 -1
  190. package/dist/locale/pt-br.min.js +1 -1
  191. package/dist/locale/pt-br.min.mjs +1 -1
  192. package/dist/locale/pt-br.mjs +1 -1
  193. package/dist/locale/pt.js +1 -1
  194. package/dist/locale/pt.min.js +1 -1
  195. package/dist/locale/pt.min.mjs +1 -1
  196. package/dist/locale/pt.mjs +1 -1
  197. package/dist/locale/ro.js +1 -1
  198. package/dist/locale/ro.min.js +1 -1
  199. package/dist/locale/ro.min.mjs +1 -1
  200. package/dist/locale/ro.mjs +1 -1
  201. package/dist/locale/ru.js +1 -1
  202. package/dist/locale/ru.min.js +1 -1
  203. package/dist/locale/ru.min.mjs +1 -1
  204. package/dist/locale/ru.mjs +1 -1
  205. package/dist/locale/sk.js +1 -1
  206. package/dist/locale/sk.min.js +1 -1
  207. package/dist/locale/sk.min.mjs +1 -1
  208. package/dist/locale/sk.mjs +1 -1
  209. package/dist/locale/sl.js +1 -1
  210. package/dist/locale/sl.min.js +1 -1
  211. package/dist/locale/sl.min.mjs +1 -1
  212. package/dist/locale/sl.mjs +1 -1
  213. package/dist/locale/sr.js +1 -1
  214. package/dist/locale/sr.min.js +1 -1
  215. package/dist/locale/sr.min.mjs +1 -1
  216. package/dist/locale/sr.mjs +1 -1
  217. package/dist/locale/sv.js +1 -1
  218. package/dist/locale/sv.min.js +1 -1
  219. package/dist/locale/sv.min.mjs +1 -1
  220. package/dist/locale/sv.mjs +1 -1
  221. package/dist/locale/sw.js +1 -1
  222. package/dist/locale/sw.min.js +1 -1
  223. package/dist/locale/sw.min.mjs +1 -1
  224. package/dist/locale/sw.mjs +1 -1
  225. package/dist/locale/ta.js +1 -1
  226. package/dist/locale/ta.min.js +1 -1
  227. package/dist/locale/ta.min.mjs +1 -1
  228. package/dist/locale/ta.mjs +1 -1
  229. package/dist/locale/te.js +1 -1
  230. package/dist/locale/te.min.js +1 -1
  231. package/dist/locale/te.min.mjs +1 -1
  232. package/dist/locale/te.mjs +1 -1
  233. package/dist/locale/th.js +1 -1
  234. package/dist/locale/th.min.js +1 -1
  235. package/dist/locale/th.min.mjs +1 -1
  236. package/dist/locale/th.mjs +1 -1
  237. package/dist/locale/tk.js +1 -1
  238. package/dist/locale/tk.min.js +1 -1
  239. package/dist/locale/tk.min.mjs +1 -1
  240. package/dist/locale/tk.mjs +1 -1
  241. package/dist/locale/tr.js +1 -1
  242. package/dist/locale/tr.min.js +1 -1
  243. package/dist/locale/tr.min.mjs +1 -1
  244. package/dist/locale/tr.mjs +1 -1
  245. package/dist/locale/ug-cn.js +1 -1
  246. package/dist/locale/ug-cn.min.js +1 -1
  247. package/dist/locale/ug-cn.min.mjs +1 -1
  248. package/dist/locale/ug-cn.mjs +1 -1
  249. package/dist/locale/uk.js +1 -1
  250. package/dist/locale/uk.min.js +1 -1
  251. package/dist/locale/uk.min.mjs +1 -1
  252. package/dist/locale/uk.mjs +1 -1
  253. package/dist/locale/uz-uz.js +1 -1
  254. package/dist/locale/uz-uz.min.js +1 -1
  255. package/dist/locale/uz-uz.min.mjs +1 -1
  256. package/dist/locale/uz-uz.mjs +1 -1
  257. package/dist/locale/vi.js +1 -1
  258. package/dist/locale/vi.min.js +1 -1
  259. package/dist/locale/vi.min.mjs +1 -1
  260. package/dist/locale/vi.mjs +1 -1
  261. package/dist/locale/zh-cn.js +1 -1
  262. package/dist/locale/zh-cn.min.js +1 -1
  263. package/dist/locale/zh-cn.min.mjs +1 -1
  264. package/dist/locale/zh-cn.mjs +1 -1
  265. package/dist/locale/zh-hk.js +1 -1
  266. package/dist/locale/zh-hk.min.js +1 -1
  267. package/dist/locale/zh-hk.min.mjs +1 -1
  268. package/dist/locale/zh-hk.mjs +1 -1
  269. package/dist/locale/zh-mo.js +1 -1
  270. package/dist/locale/zh-mo.min.js +1 -1
  271. package/dist/locale/zh-mo.min.mjs +1 -1
  272. package/dist/locale/zh-mo.mjs +1 -1
  273. package/dist/locale/zh-tw.js +1 -1
  274. package/dist/locale/zh-tw.min.js +1 -1
  275. package/dist/locale/zh-tw.min.mjs +1 -1
  276. package/dist/locale/zh-tw.mjs +1 -1
  277. package/es/component.mjs +3 -3
  278. package/es/components/affix/src/affix.d.ts +3 -2
  279. package/es/components/affix/src/affix.vue.d.ts +4 -5
  280. package/es/components/alert/src/alert.vue.d.ts +1 -1
  281. package/es/components/anchor/src/anchor-link.vue.d.ts +1 -3
  282. package/es/components/anchor/src/anchor-link.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  283. package/es/components/anchor/src/anchor-link2.mjs.map +1 -1
  284. package/es/components/anchor/src/anchor.vue.d.ts +2 -2
  285. package/es/components/autocomplete/index.d.ts +2 -2
  286. package/es/components/autocomplete/src/autocomplete.d.ts +21 -13
  287. package/es/components/autocomplete/src/autocomplete.mjs.map +1 -1
  288. package/es/components/autocomplete/src/autocomplete.vue.d.ts +55 -80
  289. package/es/components/autocomplete/src/autocomplete.vue_vue_type_script_setup_true_lang.mjs +4 -2
  290. package/es/components/autocomplete/src/autocomplete.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  291. package/es/components/autocomplete/src/autocomplete2.mjs.map +1 -1
  292. package/es/components/avatar/src/avatar-group-props.d.ts +1 -1
  293. package/es/components/avatar/src/avatar-group.d.ts +2 -2
  294. package/es/components/avatar/src/avatar.d.ts +3 -2
  295. package/es/components/avatar/src/avatar.vue.d.ts +2 -3
  296. package/es/components/backtop/src/backtop.vue.d.ts +1 -1
  297. package/es/components/badge/src/badge.vue.d.ts +1 -1
  298. package/es/components/button/src/button-custom.mjs +17 -0
  299. package/es/components/button/src/button-custom.mjs.map +1 -1
  300. package/es/components/button/src/button.d.ts +1 -1
  301. package/es/components/button/src/button.vue.d.ts +3 -3
  302. package/es/components/calendar/src/use-date-table.mjs +2 -1
  303. package/es/components/calendar/src/use-date-table.mjs.map +1 -1
  304. package/es/components/card/src/card.d.ts +1 -1
  305. package/es/components/carousel/src/carousel-item.vue.d.ts +1 -1
  306. package/es/components/carousel/src/carousel.d.ts +1 -1
  307. package/es/components/cascader/src/cascader.d.ts +2 -2
  308. package/es/components/cascader/src/cascader.vue.d.ts +15 -15
  309. package/es/components/cascader/src/cascader.vue_vue_type_script_setup_true_lang.mjs +9 -4
  310. package/es/components/cascader/src/cascader.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  311. package/es/components/cascader/src/cascader2.mjs.map +1 -1
  312. package/es/components/cascader-panel/src/index.mjs.map +1 -1
  313. package/es/components/cascader-panel/src/index.vue.d.ts +2 -2
  314. package/es/components/cascader-panel/src/index.vue_vue_type_script_setup_true_lang.mjs +1 -1
  315. package/es/components/cascader-panel/src/index.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  316. package/es/components/checkbox/src/checkbox-button.vue.d.ts +4 -4
  317. package/es/components/checkbox/src/checkbox-group.d.ts +1 -1
  318. package/es/components/checkbox/src/checkbox-group.vue.d.ts +2 -2
  319. package/es/components/checkbox/src/checkbox.d.ts +3 -3
  320. package/es/components/checkbox/src/checkbox.vue.d.ts +4 -4
  321. package/es/components/checkbox/src/composables/use-checkbox-model.mjs +6 -2
  322. package/es/components/checkbox/src/composables/use-checkbox-model.mjs.map +1 -1
  323. package/es/components/checkbox/src/composables/use-checkbox-status.d.ts +2 -2
  324. package/es/components/checkbox/src/composables/use-checkbox.d.ts +2 -2
  325. package/es/components/col/src/col.vue.d.ts +1 -1
  326. package/es/components/collapse/src/collapse.d.ts +1 -1
  327. package/es/components/collapse/src/collapse.vue.d.ts +1 -1
  328. package/es/components/color-picker/src/color-picker.d.ts +1 -1
  329. package/es/components/color-picker/src/color-picker.vue.d.ts +7 -7
  330. package/es/components/color-picker/src/color-picker.vue_vue_type_script_setup_true_lang.mjs +1 -1
  331. package/es/components/color-picker-panel/src/color-picker-panel.vue.d.ts +1 -1
  332. package/es/components/color-picker-panel/src/composables/use-predefine.mjs.map +1 -1
  333. package/es/components/config-provider/src/config-provider-props.d.ts +1 -1
  334. package/es/components/config-provider/src/config-provider.d.ts +3 -3
  335. package/es/components/config-provider/src/hooks/use-global-config.d.ts +1 -1
  336. package/es/components/countdown/src/countdown.vue_vue_type_script_setup_true_lang.mjs +1 -1
  337. package/es/components/date-picker/src/date-picker.d.ts +12 -12
  338. package/es/components/date-picker/src/props.d.ts +2 -2
  339. package/es/components/date-picker-panel/src/date-picker-com/panel-date-pick.mjs.map +1 -1
  340. package/es/components/date-picker-panel/src/date-picker-com/panel-date-pick.vue_vue_type_script_setup_true_lang.mjs +2 -2
  341. package/es/components/date-picker-panel/src/date-picker-com/panel-date-pick.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  342. package/es/components/date-picker-panel/src/date-picker-com/panel-date-range.vue_vue_type_script_setup_true_lang.mjs +1 -1
  343. package/es/components/date-picker-panel/src/date-picker-panel.d.ts +3 -3
  344. package/es/components/descriptions/src/description-item.d.ts +8 -8
  345. package/es/components/descriptions/src/description.d.ts +1 -1
  346. package/es/components/descriptions/src/description.mjs.map +1 -1
  347. package/es/components/descriptions/src/description.vue.d.ts +1 -1
  348. package/es/components/dialog/src/dialog.vue.d.ts +11 -11
  349. package/es/components/dialog/src/dialog.vue_vue_type_script_setup_true_lang.mjs +6 -5
  350. package/es/components/dialog/src/dialog.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  351. package/es/components/dialog/src/dialog2.mjs.map +1 -1
  352. package/es/components/dialog/src/use-dialog.d.ts +4 -2
  353. package/es/components/dialog/src/use-dialog.mjs +8 -1
  354. package/es/components/dialog/src/use-dialog.mjs.map +1 -1
  355. package/es/components/divider/src/divider.d.ts +1 -1
  356. package/es/components/drawer/src/drawer.vue.d.ts +5 -5
  357. package/es/components/dropdown/src/dropdown-item.vue.d.ts +4 -10
  358. package/es/components/dropdown/src/dropdown-menu.vue.d.ts +1 -1
  359. package/es/components/dropdown/src/dropdown.d.ts +2 -2
  360. package/es/components/dropdown/src/dropdown.vue.d.ts +60 -66
  361. package/es/components/focus-trap/src/focus-trap.vue.d.ts +1 -1
  362. package/es/components/form/src/form-item.d.ts +2 -2
  363. package/es/components/form/src/form-item.vue.d.ts +1 -1
  364. package/es/components/form/src/form-item.vue_vue_type_script_setup_true_lang.mjs +11 -1
  365. package/es/components/form/src/form-item.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  366. package/es/components/form/src/form-item2.mjs.map +1 -1
  367. package/es/components/form/src/form.d.ts +4 -4
  368. package/es/components/form/src/form.vue.d.ts +1 -1
  369. package/es/components/form/src/form.vue_vue_type_script_setup_true_lang.mjs +11 -3
  370. package/es/components/form/src/form.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  371. package/es/components/form/src/form2.mjs.map +1 -1
  372. package/es/components/form/src/hooks/use-form-common-props.d.ts +2 -2
  373. package/es/components/form/src/types.d.ts +2 -1
  374. package/es/components/icon/src/icon.vue.d.ts +1 -3
  375. package/es/components/icon/src/icon.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  376. package/es/components/icon/src/icon2.mjs.map +1 -1
  377. package/es/components/image/src/image.d.ts +1 -1
  378. package/es/components/image/src/image.vue.d.ts +3 -3
  379. package/es/components/image-viewer/src/image-viewer.vue.d.ts +2 -2
  380. package/es/components/index.d.ts +2 -2
  381. package/es/components/index.mjs +6 -6
  382. package/es/components/input/src/input.d.ts +13 -3
  383. package/es/components/input/src/input.mjs +1 -0
  384. package/es/components/input/src/input.mjs.map +1 -1
  385. package/es/components/input/src/input.vue.d.ts +6 -5
  386. package/es/components/input/src/input.vue_vue_type_script_setup_true_lang.mjs +76 -11
  387. package/es/components/input/src/input.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  388. package/es/components/input/src/input2.mjs.map +1 -1
  389. package/es/components/input-number/src/input-number.d.ts +3 -3
  390. package/es/components/input-number/src/input-number.vue.d.ts +5 -5
  391. package/es/components/input-number/src/input-number.vue_vue_type_script_setup_true_lang.mjs +1 -1
  392. package/es/components/input-tag/src/composables/use-input-tag.d.ts +1 -1
  393. package/es/components/input-tag/src/input-tag.d.ts +2 -2
  394. package/es/components/input-tag/src/input-tag.vue.d.ts +9 -9
  395. package/es/components/link/src/link.d.ts +1 -1
  396. package/es/components/link/src/link.vue.d.ts +1 -1
  397. package/es/components/mention/src/helper.d.ts +1 -1
  398. package/es/components/mention/src/helper.mjs.map +1 -1
  399. package/es/components/mention/src/mention.d.ts +17 -10
  400. package/es/components/mention/src/mention.mjs.map +1 -1
  401. package/es/components/mention/src/mention.vue.d.ts +48 -55
  402. package/es/components/mention/src/mention.vue_vue_type_script_setup_true_lang.mjs +5 -3
  403. package/es/components/mention/src/mention.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  404. package/es/components/mention/src/mention2.mjs.map +1 -1
  405. package/es/components/menu/src/menu.d.ts +1 -1
  406. package/es/components/menu/src/menu.mjs +1 -1
  407. package/es/components/menu/src/sub-menu.d.ts +1 -1
  408. package/es/components/menu/src/utils/menu-item.mjs +1 -1
  409. package/es/components/menu/src/utils/submenu.mjs +1 -1
  410. package/es/components/message/src/message.d.ts +1 -1
  411. package/es/components/message/src/message.vue.d.ts +3 -3
  412. package/es/components/message/src/message.vue_vue_type_script_setup_true_lang.mjs +1 -1
  413. package/es/components/message/src/message.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  414. package/es/components/message/src/message2.mjs.map +1 -1
  415. package/es/components/message-box/src/index.vue_vue_type_script_lang.mjs +1 -1
  416. package/es/components/message-box/src/message-box.type.d.ts +5 -3
  417. package/es/components/notification/src/notification.vue.d.ts +4 -4
  418. package/es/components/overlay/index.d.ts +3 -3
  419. package/es/components/overlay/src/overlay.d.ts +2 -2
  420. package/es/components/pagination/src/pagination.d.ts +6 -6
  421. package/es/components/popconfirm/src/popconfirm.vue.d.ts +2 -2
  422. package/es/components/popover/src/popover.d.ts +1 -1
  423. package/es/components/popover/src/popover.vue.d.ts +7 -7
  424. package/es/components/popper/src/composables/use-content.d.ts +5 -5
  425. package/es/components/popper/src/composables/use-focus-trap.d.ts +1 -1
  426. package/es/components/popper/src/content.d.ts +4 -4
  427. package/es/components/popper/src/content.vue.d.ts +4 -4
  428. package/es/components/popper/src/popper.d.ts +2 -2
  429. package/es/components/popper/src/trigger.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  430. package/es/components/popper/src/trigger2.mjs.map +1 -1
  431. package/es/components/progress/src/progress.vue.d.ts +2 -2
  432. package/es/components/radio/src/radio-button.d.ts +1 -1
  433. package/es/components/radio/src/radio-button.vue.d.ts +2 -2
  434. package/es/components/radio/src/radio-group.d.ts +1 -1
  435. package/es/components/radio/src/radio-group.vue.d.ts +4 -4
  436. package/es/components/radio/src/radio.d.ts +2 -2
  437. package/es/components/radio/src/radio.vue.d.ts +4 -4
  438. package/es/components/rate/src/rate.d.ts +1 -1
  439. package/es/components/rate/src/rate.vue.d.ts +2 -2
  440. package/es/components/roving-focus-group/src/roving-focus-item.vue.d.ts +1 -1
  441. package/es/components/row/src/row.d.ts +1 -1
  442. package/es/components/scrollbar/src/scrollbar.vue.d.ts +1 -1
  443. package/es/components/scrollbar/src/scrollbar.vue_vue_type_script_setup_true_lang.mjs +4 -3
  444. package/es/components/scrollbar/src/scrollbar.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  445. package/es/components/scrollbar/src/scrollbar2.mjs.map +1 -1
  446. package/es/components/segmented/index.d.ts +2 -2
  447. package/es/components/segmented/src/segmented.d.ts +1 -1
  448. package/es/components/segmented/src/segmented.vue.d.ts +1 -1
  449. package/es/components/segmented/src/segmented.vue_vue_type_script_setup_true_lang.mjs +2 -57
  450. package/es/components/segmented/src/segmented.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  451. package/es/components/select/src/option.d.ts +1 -1
  452. package/es/components/select/src/option.vue.d.ts +3 -2
  453. package/es/components/select/src/option.vue_vue_type_script_lang.mjs +11 -0
  454. package/es/components/select/src/option.vue_vue_type_script_lang.mjs.map +1 -1
  455. package/es/components/select/src/option2.mjs +2 -1
  456. package/es/components/select/src/option2.mjs.map +1 -1
  457. package/es/components/select/src/select.d.ts +3 -3
  458. package/es/components/select/src/select.vue.d.ts +76 -81
  459. package/es/components/select/src/select.vue_vue_type_script_lang.mjs +1 -1
  460. package/es/components/select/src/type.d.ts +1 -0
  461. package/es/components/select-v2/src/defaults.d.ts +2 -2
  462. package/es/components/select-v2/src/defaults.mjs.map +1 -1
  463. package/es/components/select-v2/src/option-item.mjs +2 -1
  464. package/es/components/select-v2/src/option-item.mjs.map +1 -1
  465. package/es/components/select-v2/src/option-item.vue_vue_type_script_lang.mjs +13 -1
  466. package/es/components/select-v2/src/option-item.vue_vue_type_script_lang.mjs.map +1 -1
  467. package/es/components/select-v2/src/select.vue.d.ts +62 -68
  468. package/es/components/select-v2/src/select.vue_vue_type_script_lang.mjs +1 -1
  469. package/es/components/skeleton/src/skeleton-item.d.ts +1 -1
  470. package/es/components/skeleton/src/skeleton.vue.d.ts +1 -1
  471. package/es/components/slider/src/button.vue.d.ts +1 -1
  472. package/es/components/slider/src/slider.d.ts +2 -2
  473. package/es/components/slider/src/slider.vue.d.ts +9 -9
  474. package/es/components/space/src/space.d.ts +10 -9
  475. package/es/components/steps/src/steps.vue.d.ts +1 -1
  476. package/es/components/switch/src/switch.d.ts +1 -1
  477. package/es/components/switch/src/switch.vue.d.ts +3 -3
  478. package/es/components/table/src/table-body/index.d.ts +1 -1
  479. package/es/components/table/src/table-column/index.d.ts +15 -15
  480. package/es/components/table/src/table-footer/index.d.ts +1 -1
  481. package/es/components/table/src/table-header/index.d.ts +15 -15
  482. package/es/components/table/src/table.vue.d.ts +35 -35
  483. package/es/components/table/src/table.vue_vue_type_script_lang.mjs +1 -1
  484. package/es/components/table-v2/src/components/header.d.ts +1 -1
  485. package/es/components/table-v2/src/components/index.d.ts +2 -2
  486. package/es/components/table-v2/src/components/row.d.ts +12 -3
  487. package/es/components/table-v2/src/components/row.mjs.map +1 -1
  488. package/es/components/table-v2/src/table-grid.d.ts +2 -2
  489. package/es/components/table-v2/src/table-v2.d.ts +18 -6
  490. package/es/components/table-v2/src/table-v2.mjs +1 -0
  491. package/es/components/table-v2/src/table-v2.mjs.map +1 -1
  492. package/es/components/tabs/src/tab-bar.vue.d.ts +1 -1
  493. package/es/components/tabs/src/tab-bar.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  494. package/es/components/tabs/src/tab-bar2.mjs.map +1 -1
  495. package/es/components/tabs/src/tab-nav.d.ts +1 -1
  496. package/es/components/tabs/src/tabs.d.ts +5 -5
  497. package/es/components/tag/src/tag.d.ts +1 -1
  498. package/es/components/text/src/text.d.ts +1 -1
  499. package/es/components/time-picker/src/common/picker.mjs.map +1 -1
  500. package/es/components/time-picker/src/common/picker.vue.d.ts +16 -16
  501. package/es/components/time-picker/src/common/picker.vue_vue_type_script_setup_true_lang.mjs +4 -3
  502. package/es/components/time-picker/src/common/picker.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  503. package/es/components/time-picker/src/common/props.d.ts +2 -2
  504. package/es/components/time-picker/src/time-picker-com/basic-time-spinner.vue_vue_type_script_setup_true_lang.mjs +1 -1
  505. package/es/components/time-picker/src/time-picker.d.ts +12 -12
  506. package/es/components/time-select/src/time-select.d.ts +1 -1
  507. package/es/components/time-select/src/time-select.vue.d.ts +5 -5
  508. package/es/components/timeline/src/timeline-item.d.ts +2 -2
  509. package/es/components/timeline/src/timeline-item.vue.d.ts +1 -1
  510. package/es/components/tooltip/src/content.d.ts +1 -1
  511. package/es/components/tooltip/src/content.vue.d.ts +6 -6
  512. package/es/components/tooltip/src/tooltip.d.ts +2 -2
  513. package/es/components/tooltip/src/tooltip.vue.d.ts +12 -12
  514. package/es/components/tour/src/content.d.ts +2 -2
  515. package/es/components/tour/src/step.d.ts +1 -1
  516. package/es/components/tour/src/tour.d.ts +1 -1
  517. package/es/components/tour/src/tour.vue.d.ts +3 -3
  518. package/es/components/transfer/src/composables/use-check.d.ts +4 -4
  519. package/es/components/transfer/src/composables/use-check.mjs.map +1 -1
  520. package/es/components/transfer/src/composables/use-computed-data.d.ts +3 -3
  521. package/es/components/transfer/src/composables/use-computed-data.mjs +1 -1
  522. package/es/components/transfer/src/composables/use-computed-data.mjs.map +1 -1
  523. package/es/components/transfer/src/composables/use-move.d.ts +2 -2
  524. package/es/components/transfer/src/composables/use-move.mjs.map +1 -1
  525. package/es/components/transfer/src/composables/use-props-alias.d.ts +4 -2
  526. package/es/components/transfer/src/composables/use-props-alias.mjs.map +1 -1
  527. package/es/components/transfer/src/transfer-panel.d.ts +11 -10
  528. package/es/components/transfer/src/transfer-panel.mjs.map +1 -1
  529. package/es/components/transfer/src/transfer-panel.vue.d.ts +23 -25
  530. package/es/components/transfer/src/transfer-panel.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  531. package/es/components/transfer/src/transfer-panel2.mjs.map +1 -1
  532. package/es/components/transfer/src/transfer.d.ts +9 -8
  533. package/es/components/transfer/src/transfer.mjs.map +1 -1
  534. package/es/components/transfer/src/transfer.vue.d.ts +32 -42
  535. package/es/components/transfer/src/transfer.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  536. package/es/components/transfer/src/transfer2.mjs.map +1 -1
  537. package/es/components/tree/src/tree.vue.d.ts +19 -25
  538. package/es/components/tree-select/src/tree-select.vue.d.ts +31 -31
  539. package/es/components/tree-v2/src/tree.vue.d.ts +3 -3
  540. package/es/components/upload/src/upload-content.mjs.map +1 -1
  541. package/es/components/upload/src/upload-content.vue.d.ts +1 -1
  542. package/es/components/upload/src/upload.vue.d.ts +2 -2
  543. package/es/components/virtual-list/src/builders/build-grid.d.ts +1 -1
  544. package/es/components/virtual-list/src/components/dynamic-size-grid.d.ts +1 -1
  545. package/es/components/virtual-list/src/components/dynamic-size-list.d.ts +2 -2
  546. package/es/components/virtual-list/src/components/fixed-size-grid.d.ts +1 -1
  547. package/es/components/virtual-list/src/components/fixed-size-list.d.ts +2 -2
  548. package/es/constants/index.mjs +2 -2
  549. package/es/directives/trap-focus/index.mjs +1 -1
  550. package/es/hooks/use-floating/index.d.ts +8 -8
  551. package/es/hooks/use-popper/index.d.ts +5 -5
  552. package/es/hooks/use-size/index.d.ts +3 -3
  553. package/es/hooks/use-timeout/index.mjs +6 -2
  554. package/es/hooks/use-timeout/index.mjs.map +1 -1
  555. package/es/index.d.ts +2 -2
  556. package/es/index.mjs +13 -13
  557. package/es/plugin.mjs +1 -1
  558. package/es/utils/index.d.ts +2 -2
  559. package/es/utils/typescript.d.ts +22 -5
  560. package/es/utils/typescript.mjs.map +1 -1
  561. package/es/utils/vue/typescript.d.ts +3 -2
  562. package/es/utils/vue/vnode.d.ts +4 -4
  563. package/es/version.mjs +1 -1
  564. package/es/version.mjs.map +1 -1
  565. package/lib/component.js +107 -107
  566. package/lib/components/affix/src/affix.d.ts +3 -2
  567. package/lib/components/affix/src/affix.vue.d.ts +4 -5
  568. package/lib/components/alert/src/alert.vue.d.ts +1 -1
  569. package/lib/components/anchor/src/anchor-link.vue.d.ts +1 -3
  570. package/lib/components/anchor/src/anchor-link.vue_vue_type_script_setup_true_lang.js.map +1 -1
  571. package/lib/components/anchor/src/anchor-link2.js.map +1 -1
  572. package/lib/components/anchor/src/anchor.vue.d.ts +2 -2
  573. package/lib/components/autocomplete/index.d.ts +2 -2
  574. package/lib/components/autocomplete/src/autocomplete.d.ts +21 -13
  575. package/lib/components/autocomplete/src/autocomplete.js.map +1 -1
  576. package/lib/components/autocomplete/src/autocomplete.vue.d.ts +55 -80
  577. package/lib/components/autocomplete/src/autocomplete.vue_vue_type_script_setup_true_lang.js +4 -2
  578. package/lib/components/autocomplete/src/autocomplete.vue_vue_type_script_setup_true_lang.js.map +1 -1
  579. package/lib/components/autocomplete/src/autocomplete2.js.map +1 -1
  580. package/lib/components/avatar/src/avatar-group-props.d.ts +1 -1
  581. package/lib/components/avatar/src/avatar-group.d.ts +2 -2
  582. package/lib/components/avatar/src/avatar.d.ts +3 -2
  583. package/lib/components/avatar/src/avatar.vue.d.ts +2 -3
  584. package/lib/components/backtop/src/backtop.vue.d.ts +1 -1
  585. package/lib/components/badge/src/badge.vue.d.ts +1 -1
  586. package/lib/components/button/src/button-custom.js +17 -0
  587. package/lib/components/button/src/button-custom.js.map +1 -1
  588. package/lib/components/button/src/button.d.ts +1 -1
  589. package/lib/components/button/src/button.vue.d.ts +3 -3
  590. package/lib/components/calendar/src/use-date-table.js +2 -1
  591. package/lib/components/calendar/src/use-date-table.js.map +1 -1
  592. package/lib/components/card/src/card.d.ts +1 -1
  593. package/lib/components/carousel/src/carousel-item.vue.d.ts +1 -1
  594. package/lib/components/carousel/src/carousel.d.ts +1 -1
  595. package/lib/components/cascader/src/cascader.d.ts +2 -2
  596. package/lib/components/cascader/src/cascader.vue.d.ts +15 -15
  597. package/lib/components/cascader/src/cascader.vue_vue_type_script_setup_true_lang.js +44 -39
  598. package/lib/components/cascader/src/cascader.vue_vue_type_script_setup_true_lang.js.map +1 -1
  599. package/lib/components/cascader/src/cascader2.js.map +1 -1
  600. package/lib/components/cascader-panel/src/index.js.map +1 -1
  601. package/lib/components/cascader-panel/src/index.vue.d.ts +2 -2
  602. package/lib/components/cascader-panel/src/index.vue_vue_type_script_setup_true_lang.js +11 -11
  603. package/lib/components/cascader-panel/src/index.vue_vue_type_script_setup_true_lang.js.map +1 -1
  604. package/lib/components/checkbox/src/checkbox-button.vue.d.ts +4 -4
  605. package/lib/components/checkbox/src/checkbox-group.d.ts +1 -1
  606. package/lib/components/checkbox/src/checkbox-group.vue.d.ts +2 -2
  607. package/lib/components/checkbox/src/checkbox.d.ts +3 -3
  608. package/lib/components/checkbox/src/checkbox.vue.d.ts +4 -4
  609. package/lib/components/checkbox/src/composables/use-checkbox-model.js +6 -2
  610. package/lib/components/checkbox/src/composables/use-checkbox-model.js.map +1 -1
  611. package/lib/components/checkbox/src/composables/use-checkbox-status.d.ts +2 -2
  612. package/lib/components/checkbox/src/composables/use-checkbox.d.ts +2 -2
  613. package/lib/components/col/src/col.vue.d.ts +1 -1
  614. package/lib/components/collapse/src/collapse.d.ts +1 -1
  615. package/lib/components/collapse/src/collapse.vue.d.ts +1 -1
  616. package/lib/components/color-picker/src/color-picker.d.ts +1 -1
  617. package/lib/components/color-picker/src/color-picker.vue.d.ts +7 -7
  618. package/lib/components/color-picker/src/color-picker.vue_vue_type_script_setup_true_lang.js +18 -18
  619. package/lib/components/color-picker/src/color-picker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  620. package/lib/components/color-picker-panel/src/color-picker-panel.vue.d.ts +1 -1
  621. package/lib/components/color-picker-panel/src/composables/use-predefine.js.map +1 -1
  622. package/lib/components/config-provider/src/config-provider-props.d.ts +1 -1
  623. package/lib/components/config-provider/src/config-provider.d.ts +3 -3
  624. package/lib/components/config-provider/src/hooks/use-global-config.d.ts +1 -1
  625. package/lib/components/countdown/src/countdown.vue_vue_type_script_setup_true_lang.js +1 -1
  626. package/lib/components/date-picker/src/date-picker.d.ts +12 -12
  627. package/lib/components/date-picker/src/props.d.ts +2 -2
  628. package/lib/components/date-picker-panel/src/date-picker-com/panel-date-pick.js.map +1 -1
  629. package/lib/components/date-picker-panel/src/date-picker-com/panel-date-pick.vue_vue_type_script_setup_true_lang.js +19 -19
  630. package/lib/components/date-picker-panel/src/date-picker-com/panel-date-pick.vue_vue_type_script_setup_true_lang.js.map +1 -1
  631. package/lib/components/date-picker-panel/src/date-picker-com/panel-date-range.vue_vue_type_script_setup_true_lang.js +23 -23
  632. package/lib/components/date-picker-panel/src/date-picker-com/panel-date-range.vue_vue_type_script_setup_true_lang.js.map +1 -1
  633. package/lib/components/date-picker-panel/src/date-picker-panel.d.ts +3 -3
  634. package/lib/components/descriptions/src/description-item.d.ts +8 -8
  635. package/lib/components/descriptions/src/description.d.ts +1 -1
  636. package/lib/components/descriptions/src/description.js.map +1 -1
  637. package/lib/components/descriptions/src/description.vue.d.ts +1 -1
  638. package/lib/components/dialog/src/dialog.vue.d.ts +11 -11
  639. package/lib/components/dialog/src/dialog.vue_vue_type_script_setup_true_lang.js +6 -5
  640. package/lib/components/dialog/src/dialog.vue_vue_type_script_setup_true_lang.js.map +1 -1
  641. package/lib/components/dialog/src/dialog2.js.map +1 -1
  642. package/lib/components/dialog/src/use-dialog.d.ts +4 -2
  643. package/lib/components/dialog/src/use-dialog.js +8 -1
  644. package/lib/components/dialog/src/use-dialog.js.map +1 -1
  645. package/lib/components/divider/src/divider.d.ts +1 -1
  646. package/lib/components/drawer/src/drawer.vue.d.ts +5 -5
  647. package/lib/components/dropdown/src/dropdown-item.vue.d.ts +4 -10
  648. package/lib/components/dropdown/src/dropdown-menu.vue.d.ts +1 -1
  649. package/lib/components/dropdown/src/dropdown.d.ts +2 -2
  650. package/lib/components/dropdown/src/dropdown.vue.d.ts +60 -66
  651. package/lib/components/focus-trap/src/focus-trap.vue.d.ts +1 -1
  652. package/lib/components/form/src/form-item.d.ts +2 -2
  653. package/lib/components/form/src/form-item.vue.d.ts +1 -1
  654. package/lib/components/form/src/form-item.vue_vue_type_script_setup_true_lang.js +11 -1
  655. package/lib/components/form/src/form-item.vue_vue_type_script_setup_true_lang.js.map +1 -1
  656. package/lib/components/form/src/form-item2.js.map +1 -1
  657. package/lib/components/form/src/form.d.ts +4 -4
  658. package/lib/components/form/src/form.vue.d.ts +1 -1
  659. package/lib/components/form/src/form.vue_vue_type_script_setup_true_lang.js +11 -3
  660. package/lib/components/form/src/form.vue_vue_type_script_setup_true_lang.js.map +1 -1
  661. package/lib/components/form/src/form2.js.map +1 -1
  662. package/lib/components/form/src/hooks/use-form-common-props.d.ts +2 -2
  663. package/lib/components/form/src/types.d.ts +2 -1
  664. package/lib/components/icon/src/icon.vue.d.ts +1 -3
  665. package/lib/components/icon/src/icon.vue_vue_type_script_setup_true_lang.js.map +1 -1
  666. package/lib/components/icon/src/icon2.js.map +1 -1
  667. package/lib/components/image/src/image.d.ts +1 -1
  668. package/lib/components/image/src/image.vue.d.ts +3 -3
  669. package/lib/components/image-viewer/src/image-viewer.vue.d.ts +2 -2
  670. package/lib/components/index.d.ts +2 -2
  671. package/lib/components/index.js +123 -123
  672. package/lib/components/input/src/input.d.ts +13 -3
  673. package/lib/components/input/src/input.js +1 -0
  674. package/lib/components/input/src/input.js.map +1 -1
  675. package/lib/components/input/src/input.vue.d.ts +6 -5
  676. package/lib/components/input/src/input.vue_vue_type_script_setup_true_lang.js +76 -11
  677. package/lib/components/input/src/input.vue_vue_type_script_setup_true_lang.js.map +1 -1
  678. package/lib/components/input/src/input2.js.map +1 -1
  679. package/lib/components/input-number/src/input-number.d.ts +3 -3
  680. package/lib/components/input-number/src/input-number.vue.d.ts +5 -5
  681. package/lib/components/input-number/src/input-number.vue_vue_type_script_setup_true_lang.js +12 -12
  682. package/lib/components/input-number/src/input-number.vue_vue_type_script_setup_true_lang.js.map +1 -1
  683. package/lib/components/input-tag/src/composables/use-input-tag.d.ts +1 -1
  684. package/lib/components/input-tag/src/input-tag.d.ts +2 -2
  685. package/lib/components/input-tag/src/input-tag.vue.d.ts +9 -9
  686. package/lib/components/link/src/link.d.ts +1 -1
  687. package/lib/components/link/src/link.vue.d.ts +1 -1
  688. package/lib/components/mention/src/helper.d.ts +1 -1
  689. package/lib/components/mention/src/helper.js.map +1 -1
  690. package/lib/components/mention/src/mention.d.ts +17 -10
  691. package/lib/components/mention/src/mention.js.map +1 -1
  692. package/lib/components/mention/src/mention.vue.d.ts +48 -55
  693. package/lib/components/mention/src/mention.vue_vue_type_script_setup_true_lang.js +4 -2
  694. package/lib/components/mention/src/mention.vue_vue_type_script_setup_true_lang.js.map +1 -1
  695. package/lib/components/mention/src/mention2.js.map +1 -1
  696. package/lib/components/menu/src/menu.d.ts +1 -1
  697. package/lib/components/menu/src/menu.js +7 -7
  698. package/lib/components/menu/src/menu.js.map +1 -1
  699. package/lib/components/menu/src/sub-menu.d.ts +1 -1
  700. package/lib/components/menu/src/utils/menu-item.js +11 -11
  701. package/lib/components/menu/src/utils/menu-item.js.map +1 -1
  702. package/lib/components/menu/src/utils/submenu.js +9 -9
  703. package/lib/components/menu/src/utils/submenu.js.map +1 -1
  704. package/lib/components/message/src/message.d.ts +1 -1
  705. package/lib/components/message/src/message.vue.d.ts +3 -3
  706. package/lib/components/message/src/message.vue_vue_type_script_setup_true_lang.js +1 -1
  707. package/lib/components/message/src/message.vue_vue_type_script_setup_true_lang.js.map +1 -1
  708. package/lib/components/message/src/message2.js.map +1 -1
  709. package/lib/components/message-box/src/index.vue_vue_type_script_lang.js +19 -19
  710. package/lib/components/message-box/src/index.vue_vue_type_script_lang.js.map +1 -1
  711. package/lib/components/message-box/src/message-box.type.d.ts +5 -3
  712. package/lib/components/notification/src/notification.vue.d.ts +4 -4
  713. package/lib/components/overlay/index.d.ts +3 -3
  714. package/lib/components/overlay/src/overlay.d.ts +2 -2
  715. package/lib/components/pagination/src/pagination.d.ts +6 -6
  716. package/lib/components/popconfirm/src/popconfirm.vue.d.ts +2 -2
  717. package/lib/components/popover/src/popover.d.ts +1 -1
  718. package/lib/components/popover/src/popover.vue.d.ts +7 -7
  719. package/lib/components/popper/src/composables/use-content.d.ts +5 -5
  720. package/lib/components/popper/src/composables/use-focus-trap.d.ts +1 -1
  721. package/lib/components/popper/src/content.d.ts +4 -4
  722. package/lib/components/popper/src/content.vue.d.ts +4 -4
  723. package/lib/components/popper/src/popper.d.ts +2 -2
  724. package/lib/components/popper/src/trigger.vue_vue_type_script_setup_true_lang.js.map +1 -1
  725. package/lib/components/popper/src/trigger2.js.map +1 -1
  726. package/lib/components/progress/src/progress.vue.d.ts +2 -2
  727. package/lib/components/radio/src/radio-button.d.ts +1 -1
  728. package/lib/components/radio/src/radio-button.vue.d.ts +2 -2
  729. package/lib/components/radio/src/radio-group.d.ts +1 -1
  730. package/lib/components/radio/src/radio-group.vue.d.ts +4 -4
  731. package/lib/components/radio/src/radio.d.ts +2 -2
  732. package/lib/components/radio/src/radio.vue.d.ts +4 -4
  733. package/lib/components/rate/src/rate.d.ts +1 -1
  734. package/lib/components/rate/src/rate.vue.d.ts +2 -2
  735. package/lib/components/roving-focus-group/src/roving-focus-item.vue.d.ts +1 -1
  736. package/lib/components/row/src/row.d.ts +1 -1
  737. package/lib/components/scrollbar/src/scrollbar.vue.d.ts +1 -1
  738. package/lib/components/scrollbar/src/scrollbar.vue_vue_type_script_setup_true_lang.js +4 -3
  739. package/lib/components/scrollbar/src/scrollbar.vue_vue_type_script_setup_true_lang.js.map +1 -1
  740. package/lib/components/scrollbar/src/scrollbar2.js.map +1 -1
  741. package/lib/components/segmented/index.d.ts +2 -2
  742. package/lib/components/segmented/src/segmented.d.ts +1 -1
  743. package/lib/components/segmented/src/segmented.vue.d.ts +1 -1
  744. package/lib/components/segmented/src/segmented.vue_vue_type_script_setup_true_lang.js +1 -56
  745. package/lib/components/segmented/src/segmented.vue_vue_type_script_setup_true_lang.js.map +1 -1
  746. package/lib/components/select/src/option.d.ts +1 -1
  747. package/lib/components/select/src/option.vue.d.ts +3 -2
  748. package/lib/components/select/src/option.vue_vue_type_script_lang.js +11 -0
  749. package/lib/components/select/src/option.vue_vue_type_script_lang.js.map +1 -1
  750. package/lib/components/select/src/option2.js +2 -1
  751. package/lib/components/select/src/option2.js.map +1 -1
  752. package/lib/components/select/src/select.d.ts +3 -3
  753. package/lib/components/select/src/select.vue.d.ts +76 -81
  754. package/lib/components/select/src/select.vue_vue_type_script_lang.js +10 -10
  755. package/lib/components/select/src/select.vue_vue_type_script_lang.js.map +1 -1
  756. package/lib/components/select/src/type.d.ts +1 -0
  757. package/lib/components/select-v2/src/defaults.d.ts +2 -2
  758. package/lib/components/select-v2/src/defaults.js.map +1 -1
  759. package/lib/components/select-v2/src/option-item.js +2 -1
  760. package/lib/components/select-v2/src/option-item.js.map +1 -1
  761. package/lib/components/select-v2/src/option-item.vue_vue_type_script_lang.js +13 -1
  762. package/lib/components/select-v2/src/option-item.vue_vue_type_script_lang.js.map +1 -1
  763. package/lib/components/select-v2/src/select.vue.d.ts +62 -68
  764. package/lib/components/select-v2/src/select.vue_vue_type_script_lang.js +10 -10
  765. package/lib/components/select-v2/src/select.vue_vue_type_script_lang.js.map +1 -1
  766. package/lib/components/skeleton/src/skeleton-item.d.ts +1 -1
  767. package/lib/components/skeleton/src/skeleton.vue.d.ts +1 -1
  768. package/lib/components/slider/src/button.vue.d.ts +1 -1
  769. package/lib/components/slider/src/slider.d.ts +2 -2
  770. package/lib/components/slider/src/slider.vue.d.ts +9 -9
  771. package/lib/components/space/src/space.d.ts +10 -9
  772. package/lib/components/steps/src/steps.vue.d.ts +1 -1
  773. package/lib/components/switch/src/switch.d.ts +1 -1
  774. package/lib/components/switch/src/switch.vue.d.ts +3 -3
  775. package/lib/components/table/src/table-body/index.d.ts +1 -1
  776. package/lib/components/table/src/table-column/index.d.ts +15 -15
  777. package/lib/components/table/src/table-footer/index.d.ts +1 -1
  778. package/lib/components/table/src/table-header/index.d.ts +15 -15
  779. package/lib/components/table/src/table.vue.d.ts +35 -35
  780. package/lib/components/table/src/table.vue_vue_type_script_lang.js +8 -8
  781. package/lib/components/table/src/table.vue_vue_type_script_lang.js.map +1 -1
  782. package/lib/components/table-v2/src/components/header.d.ts +1 -1
  783. package/lib/components/table-v2/src/components/index.d.ts +2 -2
  784. package/lib/components/table-v2/src/components/row.d.ts +12 -3
  785. package/lib/components/table-v2/src/components/row.js.map +1 -1
  786. package/lib/components/table-v2/src/table-grid.d.ts +2 -2
  787. package/lib/components/table-v2/src/table-v2.d.ts +18 -6
  788. package/lib/components/table-v2/src/table-v2.js +1 -0
  789. package/lib/components/table-v2/src/table-v2.js.map +1 -1
  790. package/lib/components/tabs/src/tab-bar.vue.d.ts +1 -1
  791. package/lib/components/tabs/src/tab-bar.vue_vue_type_script_setup_true_lang.js.map +1 -1
  792. package/lib/components/tabs/src/tab-bar2.js.map +1 -1
  793. package/lib/components/tabs/src/tab-nav.d.ts +1 -1
  794. package/lib/components/tabs/src/tabs.d.ts +5 -5
  795. package/lib/components/tag/src/tag.d.ts +1 -1
  796. package/lib/components/text/src/text.d.ts +1 -1
  797. package/lib/components/time-picker/src/common/picker.js.map +1 -1
  798. package/lib/components/time-picker/src/common/picker.vue.d.ts +16 -16
  799. package/lib/components/time-picker/src/common/picker.vue_vue_type_script_setup_true_lang.js +4 -3
  800. package/lib/components/time-picker/src/common/picker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  801. package/lib/components/time-picker/src/common/props.d.ts +2 -2
  802. package/lib/components/time-picker/src/time-picker-com/basic-time-spinner.vue_vue_type_script_setup_true_lang.js +10 -10
  803. package/lib/components/time-picker/src/time-picker-com/basic-time-spinner.vue_vue_type_script_setup_true_lang.js.map +1 -1
  804. package/lib/components/time-picker/src/time-picker.d.ts +12 -12
  805. package/lib/components/time-select/src/time-select.d.ts +1 -1
  806. package/lib/components/time-select/src/time-select.vue.d.ts +5 -5
  807. package/lib/components/timeline/src/timeline-item.d.ts +2 -2
  808. package/lib/components/timeline/src/timeline-item.vue.d.ts +1 -1
  809. package/lib/components/tooltip/src/content.d.ts +1 -1
  810. package/lib/components/tooltip/src/content.vue.d.ts +6 -6
  811. package/lib/components/tooltip/src/tooltip.d.ts +2 -2
  812. package/lib/components/tooltip/src/tooltip.vue.d.ts +12 -12
  813. package/lib/components/tour/src/content.d.ts +2 -2
  814. package/lib/components/tour/src/step.d.ts +1 -1
  815. package/lib/components/tour/src/tour.d.ts +1 -1
  816. package/lib/components/tour/src/tour.vue.d.ts +3 -3
  817. package/lib/components/transfer/src/composables/use-check.d.ts +4 -4
  818. package/lib/components/transfer/src/composables/use-check.js.map +1 -1
  819. package/lib/components/transfer/src/composables/use-computed-data.d.ts +3 -3
  820. package/lib/components/transfer/src/composables/use-computed-data.js +1 -1
  821. package/lib/components/transfer/src/composables/use-computed-data.js.map +1 -1
  822. package/lib/components/transfer/src/composables/use-move.d.ts +2 -2
  823. package/lib/components/transfer/src/composables/use-move.js.map +1 -1
  824. package/lib/components/transfer/src/composables/use-props-alias.d.ts +4 -2
  825. package/lib/components/transfer/src/composables/use-props-alias.js.map +1 -1
  826. package/lib/components/transfer/src/transfer-panel.d.ts +11 -10
  827. package/lib/components/transfer/src/transfer-panel.js.map +1 -1
  828. package/lib/components/transfer/src/transfer-panel.vue.d.ts +23 -25
  829. package/lib/components/transfer/src/transfer-panel.vue_vue_type_script_setup_true_lang.js.map +1 -1
  830. package/lib/components/transfer/src/transfer-panel2.js.map +1 -1
  831. package/lib/components/transfer/src/transfer.d.ts +9 -8
  832. package/lib/components/transfer/src/transfer.js.map +1 -1
  833. package/lib/components/transfer/src/transfer.vue.d.ts +32 -42
  834. package/lib/components/transfer/src/transfer.vue_vue_type_script_setup_true_lang.js.map +1 -1
  835. package/lib/components/transfer/src/transfer2.js.map +1 -1
  836. package/lib/components/tree/src/tree.vue.d.ts +19 -25
  837. package/lib/components/tree-select/src/tree-select.vue.d.ts +31 -31
  838. package/lib/components/tree-v2/src/tree.vue.d.ts +3 -3
  839. package/lib/components/upload/src/upload-content.js.map +1 -1
  840. package/lib/components/upload/src/upload-content.vue.d.ts +1 -1
  841. package/lib/components/upload/src/upload.vue.d.ts +2 -2
  842. package/lib/components/virtual-list/src/builders/build-grid.d.ts +1 -1
  843. package/lib/components/virtual-list/src/components/dynamic-size-grid.d.ts +1 -1
  844. package/lib/components/virtual-list/src/components/dynamic-size-list.d.ts +2 -2
  845. package/lib/components/virtual-list/src/components/fixed-size-grid.d.ts +1 -1
  846. package/lib/components/virtual-list/src/components/fixed-size-list.d.ts +2 -2
  847. package/lib/constants/index.js +2 -2
  848. package/lib/directives/trap-focus/index.js +5 -5
  849. package/lib/directives/trap-focus/index.js.map +1 -1
  850. package/lib/hooks/use-floating/index.d.ts +8 -8
  851. package/lib/hooks/use-popper/index.d.ts +5 -5
  852. package/lib/hooks/use-size/index.d.ts +3 -3
  853. package/lib/hooks/use-timeout/index.js +6 -2
  854. package/lib/hooks/use-timeout/index.js.map +1 -1
  855. package/lib/index.d.ts +2 -2
  856. package/lib/index.js +267 -267
  857. package/lib/plugin.js +12 -12
  858. package/lib/utils/index.d.ts +2 -2
  859. package/lib/utils/typescript.d.ts +22 -5
  860. package/lib/utils/typescript.js.map +1 -1
  861. package/lib/utils/vue/typescript.d.ts +3 -2
  862. package/lib/utils/vue/vnode.d.ts +4 -4
  863. package/lib/version.js +1 -1
  864. package/lib/version.js.map +1 -1
  865. package/package.json +2 -2
  866. package/tags.json +1 -1
  867. package/theme-chalk/el-table.css +1 -1
  868. package/theme-chalk/index.css +1 -1
  869. package/theme-chalk/src/table.scss +1 -1
  870. package/web-types.json +1 -1
@@ -64,7 +64,6 @@ var input_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.
64
64
  const props = __props;
65
65
  const emit = __emit;
66
66
  const rawAttrs = (0, vue.useAttrs)();
67
- const attrs = require_index.useAttrs();
68
67
  const slots = (0, vue.useSlots)();
69
68
  const containerKls = (0, vue.computed)(() => [
70
69
  props.type === "textarea" ? nsTextarea.b() : nsInput.b(),
@@ -81,6 +80,8 @@ var input_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.
81
80
  rawAttrs.class
82
81
  ]);
83
82
  const wrapperKls = (0, vue.computed)(() => [nsInput.e("wrapper"), nsInput.is("focus", isFocused.value)]);
83
+ const attrs = require_index.useAttrs();
84
+ const maxlength = (0, vue.computed)(() => props.maxlength?.toString());
84
85
  const { form: elForm, formItem: elFormItem } = require_use_form_item.useFormItem();
85
86
  const { inputId } = require_use_form_item.useFormItemInputId(props, { formItemContext: elFormItem });
86
87
  const inputSize = require_use_form_common_props.useFormSize();
@@ -93,6 +94,7 @@ var input_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.
93
94
  const passwordVisible = (0, vue.ref)(false);
94
95
  const countStyle = (0, vue.ref)();
95
96
  const textareaCalcStyle = (0, vue.shallowRef)(props.inputStyle);
97
+ const saveValue = (0, vue.ref)("");
96
98
  const _ref = (0, vue.computed)(() => input.value || textarea.value);
97
99
  const { wrapperRef, isFocused, handleFocus, handleBlur } = require_index$3.useFocusController(_ref, {
98
100
  disabled: inputDisabled,
@@ -113,9 +115,12 @@ var input_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.
113
115
  const nativeInputValue = (0, vue.computed)(() => (0, lodash_unified.isNil)(props.modelValue) ? "" : String(props.modelValue));
114
116
  const showClear = (0, vue.computed)(() => props.clearable && !inputDisabled.value && !props.readonly && !!nativeInputValue.value && (isFocused.value || hovering.value));
115
117
  const showPwdVisible = (0, vue.computed)(() => props.showPassword && !inputDisabled.value && !!nativeInputValue.value);
116
- const isWordLimitVisible = (0, vue.computed)(() => props.showWordLimit && !!props.maxlength && (props.type === "text" || props.type === "textarea") && !inputDisabled.value && !props.readonly && !props.showPassword);
117
- const textLength = (0, vue.computed)(() => nativeInputValue.value.length);
118
- const inputExceed = (0, vue.computed)(() => !!isWordLimitVisible.value && textLength.value > Number(props.maxlength));
118
+ const isWordLimitVisible = (0, vue.computed)(() => props.showWordLimit && !!maxlength.value && (props.type === "text" || props.type === "textarea") && !inputDisabled.value && !props.readonly && !props.showPassword);
119
+ const textLength = (0, vue.computed)(() => {
120
+ if (props.countGraphemes && props.showWordLimit) return props.countGraphemes(nativeInputValue.value);
121
+ return nativeInputValue.value.length;
122
+ });
123
+ const inputExceed = (0, vue.computed)(() => !!isWordLimitVisible.value && textLength.value > Number(maxlength.value));
119
124
  const suffixVisible = (0, vue.computed)(() => !!slots.suffix || !!props.suffixIcon || showClear.value || props.showPassword || isWordLimitVisible.value || !!validateState.value && needStatusIcon.value);
120
125
  const hasModelModifiers = (0, vue.computed)(() => !!Object.keys(props.modelModifiers).length);
121
126
  const [recordCursor, setCursor] = require_index$2.useCursor(input);
@@ -170,15 +175,71 @@ var input_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.
170
175
  if (isComposing.value) return;
171
176
  const { lazy } = props.modelModifiers;
172
177
  let { value } = event.target;
178
+ let shouldForceNativeUpdate = false;
173
179
  if (lazy) {
174
180
  emit(require_event.INPUT_EVENT, value);
175
181
  return;
176
182
  }
177
183
  value = formatValue(value);
184
+ if (props.countGraphemes && maxlength.value != null) {
185
+ const limit = Number(maxlength.value);
186
+ const graphemes = props.countGraphemes(value);
187
+ const saveGraphemes = props.countGraphemes(saveValue.value);
188
+ if (graphemes > limit && graphemes > saveGraphemes) if (saveGraphemes > limit) {
189
+ value = saveValue.value;
190
+ shouldForceNativeUpdate = true;
191
+ } else {
192
+ const prevValue = saveValue.value;
193
+ const nextValue = value;
194
+ let prefixLen = 0;
195
+ while (prefixLen < prevValue.length && prefixLen < nextValue.length && prevValue[prefixLen] === nextValue[prefixLen]) prefixLen++;
196
+ let prevSuffixIndex = prevValue.length;
197
+ let nextSuffixIndex = nextValue.length;
198
+ while (prevSuffixIndex > prefixLen && nextSuffixIndex > prefixLen && prevValue[prevSuffixIndex - 1] === nextValue[nextSuffixIndex - 1]) {
199
+ prevSuffixIndex--;
200
+ nextSuffixIndex--;
201
+ }
202
+ const before = nextValue.slice(0, prefixLen);
203
+ const removed = prevValue.slice(prefixLen, prevSuffixIndex);
204
+ const inserted = nextValue.slice(prefixLen, nextSuffixIndex);
205
+ const after = nextValue.slice(nextSuffixIndex);
206
+ const baseCount = saveGraphemes - props.countGraphemes(removed);
207
+ const availableInserted = Math.max(0, limit - baseCount);
208
+ let acceptedInserted = "";
209
+ if (availableInserted > 0) if (typeof Intl !== "undefined" && "Segmenter" in Intl) {
210
+ const segmenter = new Intl.Segmenter(void 0, { granularity: "grapheme" });
211
+ for (const { segment } of segmenter.segment(inserted)) {
212
+ const candidate = acceptedInserted + segment;
213
+ if (props.countGraphemes(candidate) > availableInserted) break;
214
+ acceptedInserted = candidate;
215
+ }
216
+ } else for (const char of Array.from(inserted)) {
217
+ const candidate = acceptedInserted + char;
218
+ if (props.countGraphemes(candidate) > availableInserted) break;
219
+ acceptedInserted = candidate;
220
+ }
221
+ value = before + acceptedInserted + after;
222
+ shouldForceNativeUpdate = true;
223
+ }
224
+ }
178
225
  if (String(value) === nativeInputValue.value) {
179
- if (props.formatter) setNativeInputValue();
226
+ if (props.formatter || shouldForceNativeUpdate) {
227
+ const target = event.target;
228
+ const blockedValue = target.value;
229
+ const selectionStart = target.selectionStart;
230
+ const selectionEnd = target.selectionEnd;
231
+ setNativeInputValue();
232
+ if (shouldForceNativeUpdate && _ref.value && selectionStart != null && selectionEnd != null) {
233
+ const restoredValue = _ref.value.value;
234
+ const afterTxt = blockedValue.slice(Math.max(0, selectionEnd));
235
+ let caretPos = Math.min(selectionStart, restoredValue.length);
236
+ if (afterTxt && restoredValue.endsWith(afterTxt)) caretPos = restoredValue.length - afterTxt.length;
237
+ _ref.value.setSelectionRange(caretPos, caretPos);
238
+ }
239
+ }
180
240
  return;
181
241
  }
242
+ saveValue.value = value;
182
243
  recordCursor();
183
244
  emit(require_event.UPDATE_MODEL_EVENT, value);
184
245
  emit(require_event.INPUT_EVENT, value);
@@ -227,6 +288,9 @@ var input_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.
227
288
  (0, vue.nextTick)(() => resizeTextarea());
228
289
  if (props.validateEvent) elFormItem?.validate?.("change").catch((err) => require_error.debugWarn(err));
229
290
  });
291
+ (0, vue.watch)(() => nativeInputValue.value, (val) => {
292
+ saveValue.value = val;
293
+ }, { immediate: true });
230
294
  (0, vue.watch)(nativeInputValue, (newValue) => {
231
295
  if (!_ref.value) return;
232
296
  const { trim, number } = props.modelModifiers;
@@ -255,6 +319,7 @@ var input_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.
255
319
  textareaStyle,
256
320
  autosize: (0, vue.toRef)(props, "autosize"),
257
321
  isComposing,
322
+ passwordVisible,
258
323
  focus,
259
324
  blur,
260
325
  select,
@@ -299,8 +364,8 @@ var input_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.
299
364
  class: (0, vue.unref)(nsInput).e("inner")
300
365
  }, (0, vue.unref)(attrs), {
301
366
  name: __props.name,
302
- minlength: __props.minlength,
303
- maxlength: __props.maxlength,
367
+ minlength: __props.countGraphemes ? void 0 : __props.minlength,
368
+ maxlength: __props.countGraphemes ? void 0 : maxlength.value,
304
369
  type: __props.showPassword ? passwordVisible.value ? "text" : "password" : __props.type,
305
370
  disabled: (0, vue.unref)(inputDisabled),
306
371
  readonly: __props.readonly,
@@ -358,7 +423,7 @@ var input_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.
358
423
  isWordLimitVisible.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", {
359
424
  key: 3,
360
425
  class: (0, vue.normalizeClass)([(0, vue.unref)(nsInput).e("count"), (0, vue.unref)(nsInput).is("outside", __props.wordLimitPosition === "outside")])
361
- }, [(0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)((0, vue.unref)(nsInput).e("count-inner")) }, (0, vue.toDisplayString)(textLength.value) + " / " + (0, vue.toDisplayString)(__props.maxlength), 3)], 2)) : (0, vue.createCommentVNode)("v-if", true),
426
+ }, [(0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)((0, vue.unref)(nsInput).e("count-inner")) }, (0, vue.toDisplayString)(textLength.value) + " / " + (0, vue.toDisplayString)(maxlength.value), 3)], 2)) : (0, vue.createCommentVNode)("v-if", true),
362
427
  validateState.value && validateIcon.value && needStatusIcon.value ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(require_index$5.ElIcon), {
363
428
  key: 4,
364
429
  class: (0, vue.normalizeClass)([
@@ -390,8 +455,8 @@ var input_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.
390
455
  ]
391
456
  }, (0, vue.unref)(attrs), {
392
457
  name: __props.name,
393
- minlength: __props.minlength,
394
- maxlength: __props.maxlength,
458
+ minlength: __props.countGraphemes ? void 0 : __props.minlength,
459
+ maxlength: __props.countGraphemes ? void 0 : maxlength.value,
395
460
  tabindex: __props.tabindex,
396
461
  disabled: (0, vue.unref)(inputDisabled),
397
462
  readonly: __props.readonly,
@@ -426,7 +491,7 @@ var input_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.
426
491
  key: 1,
427
492
  style: (0, vue.normalizeStyle)(countStyle.value),
428
493
  class: (0, vue.normalizeClass)([(0, vue.unref)(nsInput).e("count"), (0, vue.unref)(nsInput).is("outside", __props.wordLimitPosition === "outside")])
429
- }, (0, vue.toDisplayString)(textLength.value) + " / " + (0, vue.toDisplayString)(__props.maxlength), 7)) : (0, vue.createCommentVNode)("v-if", true)
494
+ }, (0, vue.toDisplayString)(textLength.value) + " / " + (0, vue.toDisplayString)(maxlength.value), 7)) : (0, vue.createCommentVNode)("v-if", true)
430
495
  ], 64))], 38);
431
496
  };
432
497
  }
@@ -1 +1 @@
1
- {"version":3,"file":"input.vue_vue_type_script_setup_true_lang.js","names":["$slots"],"sources":["../../../../../../packages/components/input/src/input.vue"],"sourcesContent":["<template>\n <div\n :class=\"[\n containerKls,\n {\n [nsInput.bm('group', 'append')]: $slots.append,\n [nsInput.bm('group', 'prepend')]: $slots.prepend,\n },\n ]\"\n :style=\"containerStyle\"\n @mouseenter=\"handleMouseEnter\"\n @mouseleave=\"handleMouseLeave\"\n >\n <!-- input -->\n <template v-if=\"type !== 'textarea'\">\n <!-- prepend slot -->\n <div v-if=\"$slots.prepend\" :class=\"nsInput.be('group', 'prepend')\">\n <slot name=\"prepend\" />\n </div>\n\n <div ref=\"wrapperRef\" :class=\"wrapperKls\">\n <!-- prefix slot -->\n <span v-if=\"$slots.prefix || prefixIcon\" :class=\"nsInput.e('prefix')\">\n <span :class=\"nsInput.e('prefix-inner')\">\n <slot name=\"prefix\" />\n <el-icon v-if=\"prefixIcon\" :class=\"nsInput.e('icon')\">\n <component :is=\"prefixIcon\" />\n </el-icon>\n </span>\n </span>\n\n <input\n :id=\"inputId\"\n ref=\"input\"\n :class=\"nsInput.e('inner')\"\n v-bind=\"attrs\"\n :name=\"name\"\n :minlength=\"minlength\"\n :maxlength=\"maxlength\"\n :type=\"showPassword ? (passwordVisible ? 'text' : 'password') : type\"\n :disabled=\"inputDisabled\"\n :readonly=\"readonly\"\n :autocomplete=\"autocomplete\"\n :tabindex=\"tabindex\"\n :aria-label=\"ariaLabel\"\n :placeholder=\"placeholder\"\n :style=\"inputStyle\"\n :form=\"form\"\n :autofocus=\"autofocus\"\n :role=\"containerRole\"\n :inputmode=\"inputmode\"\n @compositionstart=\"handleCompositionStart\"\n @compositionupdate=\"handleCompositionUpdate\"\n @compositionend=\"handleCompositionEnd\"\n @input=\"handleInput\"\n @change=\"handleChange\"\n @keydown=\"handleKeydown\"\n />\n\n <!-- suffix slot -->\n <span v-if=\"suffixVisible\" :class=\"nsInput.e('suffix')\">\n <span :class=\"nsInput.e('suffix-inner')\">\n <template\n v-if=\"!showClear || !showPwdVisible || !isWordLimitVisible\"\n >\n <slot name=\"suffix\" />\n <el-icon v-if=\"suffixIcon\" :class=\"nsInput.e('icon')\">\n <component :is=\"suffixIcon\" />\n </el-icon>\n </template>\n <el-icon\n v-if=\"showClear\"\n :class=\"[nsInput.e('icon'), nsInput.e('clear')]\"\n @mousedown.prevent=\"NOOP\"\n @click=\"clear\"\n >\n <component :is=\"clearIcon\" />\n </el-icon>\n <el-icon\n v-if=\"showPwdVisible\"\n :class=\"[nsInput.e('icon'), nsInput.e('password')]\"\n @click=\"handlePasswordVisible\"\n @mousedown.prevent=\"NOOP\"\n @mouseup.prevent=\"NOOP\"\n >\n <slot name=\"password-icon\" :visible=\"passwordVisible\">\n <component :is=\"passwordIcon\" />\n </slot>\n </el-icon>\n <span\n v-if=\"isWordLimitVisible\"\n :class=\"[\n nsInput.e('count'),\n nsInput.is('outside', wordLimitPosition === 'outside'),\n ]\"\n >\n <span :class=\"nsInput.e('count-inner')\">\n {{ textLength }} / {{ maxlength }}\n </span>\n </span>\n <el-icon\n v-if=\"validateState && validateIcon && needStatusIcon\"\n :class=\"[\n nsInput.e('icon'),\n nsInput.e('validateIcon'),\n nsInput.is('loading', validateState === 'validating'),\n ]\"\n >\n <component :is=\"validateIcon\" />\n </el-icon>\n </span>\n </span>\n </div>\n\n <!-- append slot -->\n <div v-if=\"$slots.append\" :class=\"nsInput.be('group', 'append')\">\n <slot name=\"append\" />\n </div>\n </template>\n\n <!-- textarea -->\n <template v-else>\n <textarea\n :id=\"inputId\"\n ref=\"textarea\"\n :class=\"[\n nsTextarea.e('inner'),\n nsInput.is('focus', isFocused),\n nsTextarea.is('clearable', clearable),\n ]\"\n v-bind=\"attrs\"\n :name=\"name\"\n :minlength=\"minlength\"\n :maxlength=\"maxlength\"\n :tabindex=\"tabindex\"\n :disabled=\"inputDisabled\"\n :readonly=\"readonly\"\n :autocomplete=\"autocomplete\"\n :style=\"textareaStyle\"\n :aria-label=\"ariaLabel\"\n :placeholder=\"placeholder\"\n :form=\"form\"\n :autofocus=\"autofocus\"\n :rows=\"rows\"\n :role=\"containerRole\"\n :inputmode=\"inputmode\"\n @compositionstart=\"handleCompositionStart\"\n @compositionupdate=\"handleCompositionUpdate\"\n @compositionend=\"handleCompositionEnd\"\n @input=\"handleInput\"\n @focus=\"handleFocus\"\n @blur=\"handleBlur\"\n @change=\"handleChange\"\n @keydown=\"handleKeydown\"\n />\n <el-icon\n v-if=\"showClear\"\n :class=\"[nsTextarea.e('icon'), nsTextarea.e('clear')]\"\n @mousedown.prevent=\"NOOP\"\n @click=\"clear\"\n >\n <component :is=\"clearIcon\" />\n </el-icon>\n <span\n v-if=\"isWordLimitVisible\"\n :style=\"countStyle\"\n :class=\"[\n nsInput.e('count'),\n nsInput.is('outside', wordLimitPosition === 'outside'),\n ]\"\n >\n {{ textLength }} / {{ maxlength }}\n </span>\n </template>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n computed,\n nextTick,\n onMounted,\n ref,\n shallowRef,\n toRef,\n useAttrs as useRawAttrs,\n useSlots,\n watch,\n} from 'vue'\nimport { useResizeObserver } from '@vueuse/core'\nimport { isNil } from 'lodash-unified'\nimport { ElIcon } from '@element-plus/components/icon'\nimport { Hide, View } from '@element-plus/icons-vue'\nimport {\n useFormDisabled,\n useFormItem,\n useFormItemInputId,\n useFormSize,\n} from '@element-plus/components/form'\nimport {\n NOOP,\n ValidateComponentsMap,\n debugWarn,\n isClient,\n isObject,\n} from '@element-plus/utils'\nimport {\n useAttrs,\n useComposition,\n useCursor,\n useFocusController,\n useNamespace,\n} from '@element-plus/hooks'\nimport {\n CHANGE_EVENT,\n INPUT_EVENT,\n UPDATE_MODEL_EVENT,\n} from '@element-plus/constants'\nimport { calcTextareaHeight, looseToNumber } from './utils'\nimport { inputEmits, inputPropsDefaults } from './input'\n\nimport type { StyleValue } from 'vue'\nimport type { InputProps } from './input'\n\ntype TargetElement = HTMLInputElement | HTMLTextAreaElement\n\nconst COMPONENT_NAME = 'ElInput'\ndefineOptions({\n name: COMPONENT_NAME,\n inheritAttrs: false,\n})\nconst props = withDefaults(defineProps<InputProps>(), inputPropsDefaults)\nconst emit = defineEmits(inputEmits)\n\nconst rawAttrs = useRawAttrs()\nconst attrs = useAttrs()\nconst slots = useSlots()\n\nconst containerKls = computed(() => [\n props.type === 'textarea' ? nsTextarea.b() : nsInput.b(),\n nsInput.m(inputSize.value),\n nsInput.is('disabled', inputDisabled.value),\n nsInput.is('exceed', inputExceed.value),\n {\n [nsInput.b('group')]: slots.prepend || slots.append,\n [nsInput.m('prefix')]: slots.prefix || props.prefixIcon,\n [nsInput.m('suffix')]:\n slots.suffix || props.suffixIcon || props.clearable || props.showPassword,\n [nsInput.bm('suffix', 'password-clear')]:\n showClear.value && showPwdVisible.value,\n [nsInput.b('hidden')]: props.type === 'hidden',\n },\n rawAttrs.class,\n])\n\nconst wrapperKls = computed(() => [\n nsInput.e('wrapper'),\n nsInput.is('focus', isFocused.value),\n])\n\nconst { form: elForm, formItem: elFormItem } = useFormItem()\nconst { inputId } = useFormItemInputId(props, {\n formItemContext: elFormItem,\n})\nconst inputSize = useFormSize()\nconst inputDisabled = useFormDisabled()\nconst nsInput = useNamespace('input')\nconst nsTextarea = useNamespace('textarea')\n\nconst input = shallowRef<HTMLInputElement>()\nconst textarea = shallowRef<HTMLTextAreaElement>()\n\nconst hovering = ref(false)\nconst passwordVisible = ref(false)\nconst countStyle = ref<StyleValue>()\nconst textareaCalcStyle = shallowRef(props.inputStyle)\n\nconst _ref = computed(() => input.value || textarea.value)\n\n// wrapperRef for type=\"text\", handleFocus and handleBlur for type=\"textarea\"\nconst { wrapperRef, isFocused, handleFocus, handleBlur } = useFocusController(\n _ref,\n {\n disabled: inputDisabled,\n afterBlur() {\n if (props.validateEvent) {\n elFormItem?.validate?.('blur').catch((err) => debugWarn(err))\n }\n },\n }\n)\n\nconst needStatusIcon = computed(() => elForm?.statusIcon ?? false)\nconst validateState = computed(() => elFormItem?.validateState || '')\nconst validateIcon = computed(\n () => validateState.value && ValidateComponentsMap[validateState.value]\n)\nconst passwordIcon = computed(() => (passwordVisible.value ? View : Hide))\nconst containerStyle = computed<StyleValue>(() => [\n rawAttrs.style as StyleValue,\n])\nconst textareaStyle = computed<StyleValue>(() => [\n props.inputStyle,\n textareaCalcStyle.value,\n { resize: props.resize },\n])\nconst nativeInputValue = computed(() =>\n isNil(props.modelValue) ? '' : String(props.modelValue)\n)\nconst showClear = computed(\n () =>\n props.clearable &&\n !inputDisabled.value &&\n !props.readonly &&\n !!nativeInputValue.value &&\n (isFocused.value || hovering.value)\n)\nconst showPwdVisible = computed(\n () => props.showPassword && !inputDisabled.value && !!nativeInputValue.value\n)\nconst isWordLimitVisible = computed(\n () =>\n props.showWordLimit &&\n !!props.maxlength &&\n (props.type === 'text' || props.type === 'textarea') &&\n !inputDisabled.value &&\n !props.readonly &&\n !props.showPassword\n)\nconst textLength = computed(() => nativeInputValue.value.length)\nconst inputExceed = computed(\n () =>\n // show exceed style if length of initial value greater then maxlength\n !!isWordLimitVisible.value && textLength.value > Number(props.maxlength)\n)\nconst suffixVisible = computed(\n () =>\n !!slots.suffix ||\n !!props.suffixIcon ||\n showClear.value ||\n props.showPassword ||\n isWordLimitVisible.value ||\n (!!validateState.value && needStatusIcon.value)\n)\nconst hasModelModifiers = computed(\n () => !!Object.keys(props.modelModifiers).length\n)\n\nconst [recordCursor, setCursor] = useCursor(input)\n\nuseResizeObserver(textarea, (entries) => {\n onceInitSizeTextarea()\n if (\n !isWordLimitVisible.value ||\n (props.resize !== 'both' && props.resize !== 'horizontal')\n )\n return\n const entry = entries[0]\n const { width } = entry.contentRect\n countStyle.value = {\n /** right: 100% - width + padding(22) - right(10) */\n right: `calc(100% - ${width + 22 - 10}px)`,\n }\n})\n\nconst resizeTextarea = () => {\n const { type, autosize } = props\n\n if (!isClient || type !== 'textarea' || !textarea.value) return\n\n if (autosize) {\n const minRows = isObject(autosize) ? autosize.minRows : undefined\n const maxRows = isObject(autosize) ? autosize.maxRows : undefined\n const textareaStyle = calcTextareaHeight(textarea.value, minRows, maxRows)\n\n // If the scrollbar is displayed, the height of the textarea needs more space than the calculated height.\n // If set textarea height in this case, the scrollbar will not hide.\n // So we need to hide scrollbar first, and reset it in next tick.\n // see https://github.com/element-plus/element-plus/issues/8825\n textareaCalcStyle.value = {\n overflowY: 'hidden',\n ...textareaStyle,\n }\n\n nextTick(() => {\n // NOTE: Force repaint to make sure the style set above is applied.\n textarea.value!.offsetHeight\n textareaCalcStyle.value = textareaStyle\n })\n } else {\n textareaCalcStyle.value = {\n minHeight: calcTextareaHeight(textarea.value).minHeight,\n }\n }\n}\n\nconst createOnceInitResize = (resizeTextarea: () => void) => {\n let isInit = false\n return () => {\n if (isInit || !props.autosize) return\n const isElHidden = textarea.value?.offsetParent === null\n if (!isElHidden) {\n setTimeout(resizeTextarea)\n isInit = true\n }\n }\n}\n// fix: https://github.com/element-plus/element-plus/issues/12074\nconst onceInitSizeTextarea = createOnceInitResize(resizeTextarea)\n\nconst setNativeInputValue = () => {\n const input = _ref.value\n const formatterValue = props.formatter\n ? props.formatter(nativeInputValue.value)\n : nativeInputValue.value\n if (!input || input.value === formatterValue || props.type === 'file') return\n input.value = formatterValue\n}\n\nconst formatValue = (value: string) => {\n const { trim, number } = props.modelModifiers\n if (trim) {\n value = value.trim()\n }\n if (number) {\n value = `${looseToNumber(value)}`\n }\n if (props.formatter && props.parser) {\n value = props.parser(value)\n }\n return value\n}\n\nconst handleInput = async (event: Event) => {\n // should not emit input during composition\n // see: https://github.com/ElemeFE/element/issues/10516\n if (isComposing.value) return\n\n const { lazy } = props.modelModifiers\n let { value } = event.target as TargetElement\n if (lazy) {\n emit(INPUT_EVENT, value)\n return\n }\n\n value = formatValue(value)\n\n // hack for https://github.com/ElemeFE/element/issues/8548\n // should remove the following line when we don't support IE\n if (String(value) === nativeInputValue.value) {\n // preserve native features while being compatible with #9501\n if (props.formatter) {\n setNativeInputValue()\n }\n return\n }\n\n recordCursor()\n emit(UPDATE_MODEL_EVENT, value)\n emit(INPUT_EVENT, value)\n\n // ensure native input value is controlled\n // see: https://github.com/ElemeFE/element/issues/12850\n await nextTick()\n\n if ((props.formatter && props.parser) || !hasModelModifiers.value) {\n setNativeInputValue()\n }\n setCursor()\n}\n\nconst handleChange = async (event: Event) => {\n let { value } = event.target as TargetElement\n\n value = formatValue(value)\n if (props.modelModifiers.lazy) {\n emit(UPDATE_MODEL_EVENT, value)\n }\n emit(CHANGE_EVENT, value, event)\n\n await nextTick()\n setNativeInputValue()\n}\n\nconst {\n isComposing,\n handleCompositionStart,\n handleCompositionUpdate,\n handleCompositionEnd,\n} = useComposition({ emit, afterComposition: handleInput })\n\nconst handlePasswordVisible = () => {\n passwordVisible.value = !passwordVisible.value\n}\n\nconst focus = () => _ref.value?.focus()\n\nconst blur = () => _ref.value?.blur()\n\nconst handleMouseLeave = (evt: MouseEvent) => {\n hovering.value = false\n emit('mouseleave', evt)\n}\n\nconst handleMouseEnter = (evt: MouseEvent) => {\n hovering.value = true\n emit('mouseenter', evt)\n}\n\nconst handleKeydown = (evt: KeyboardEvent) => {\n emit('keydown', evt)\n}\n\nconst select = () => {\n _ref.value?.select()\n}\n\nconst clear = (evt?: MouseEvent) => {\n emit(UPDATE_MODEL_EVENT, '')\n emit(CHANGE_EVENT, '')\n emit('clear', evt)\n emit(INPUT_EVENT, '')\n}\n\nwatch(\n () => props.modelValue,\n () => {\n nextTick(() => resizeTextarea())\n if (props.validateEvent) {\n elFormItem?.validate?.('change').catch((err) => debugWarn(err))\n }\n }\n)\n\n// native input value is set explicitly\n// do not use v-model / :value in template\n// see: https://github.com/ElemeFE/element/issues/14521\nwatch(nativeInputValue, (newValue) => {\n if (!_ref.value) {\n return\n }\n const { trim, number } = props.modelModifiers\n const elValue = _ref.value.value\n const displayValue =\n (number || props.type === 'number') && !/^0\\d/.test(elValue)\n ? `${looseToNumber(elValue)}`\n : elValue\n\n if (displayValue === newValue) {\n return\n }\n\n if (document.activeElement === _ref.value && _ref.value.type !== 'range') {\n if (trim && displayValue.trim() === newValue) {\n return\n }\n }\n\n setNativeInputValue()\n})\n\n// when change between <input> and <textarea>,\n// update DOM dependent value and styles\n// https://github.com/ElemeFE/element/issues/14857\nwatch(\n () => props.type,\n async () => {\n await nextTick()\n setNativeInputValue()\n resizeTextarea()\n }\n)\n\nonMounted(() => {\n if (!props.formatter && props.parser) {\n debugWarn(\n COMPONENT_NAME,\n 'If you set the parser, you also need to set the formatter.'\n )\n }\n setNativeInputValue()\n nextTick(resizeTextarea)\n})\n\ndefineExpose({\n /** @description HTML input element */\n input,\n /** @description HTML textarea element */\n textarea,\n /** @description HTML element, input or textarea */\n ref: _ref,\n /** @description style of textarea. */\n textareaStyle,\n\n /** @description from props (used on unit test) */\n autosize: toRef(props, 'autosize'),\n\n /** @description is input composing */\n isComposing,\n\n /** @description HTML input element native method */\n focus,\n /** @description HTML input element native method */\n blur,\n /** @description HTML input element native method */\n select,\n /** @description clear input value */\n clear,\n /** @description resize textarea. */\n resizeTextarea,\n})\n</script>\n"],"mappings":"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"}
1
+ {"version":3,"file":"input.vue_vue_type_script_setup_true_lang.js","names":["$slots"],"sources":["../../../../../../packages/components/input/src/input.vue"],"sourcesContent":["<template>\n <div\n :class=\"[\n containerKls,\n {\n [nsInput.bm('group', 'append')]: $slots.append,\n [nsInput.bm('group', 'prepend')]: $slots.prepend,\n },\n ]\"\n :style=\"containerStyle\"\n @mouseenter=\"handleMouseEnter\"\n @mouseleave=\"handleMouseLeave\"\n >\n <!-- input -->\n <template v-if=\"type !== 'textarea'\">\n <!-- prepend slot -->\n <div v-if=\"$slots.prepend\" :class=\"nsInput.be('group', 'prepend')\">\n <slot name=\"prepend\" />\n </div>\n\n <div ref=\"wrapperRef\" :class=\"wrapperKls\">\n <!-- prefix slot -->\n <span v-if=\"$slots.prefix || prefixIcon\" :class=\"nsInput.e('prefix')\">\n <span :class=\"nsInput.e('prefix-inner')\">\n <slot name=\"prefix\" />\n <el-icon v-if=\"prefixIcon\" :class=\"nsInput.e('icon')\">\n <component :is=\"prefixIcon\" />\n </el-icon>\n </span>\n </span>\n\n <input\n :id=\"inputId\"\n ref=\"input\"\n :class=\"nsInput.e('inner')\"\n v-bind=\"attrs\"\n :name=\"name\"\n :minlength=\"countGraphemes ? undefined : minlength\"\n :maxlength=\"countGraphemes ? undefined : maxlength\"\n :type=\"showPassword ? (passwordVisible ? 'text' : 'password') : type\"\n :disabled=\"inputDisabled\"\n :readonly=\"readonly\"\n :autocomplete=\"autocomplete\"\n :tabindex=\"tabindex\"\n :aria-label=\"ariaLabel\"\n :placeholder=\"placeholder\"\n :style=\"inputStyle\"\n :form=\"form\"\n :autofocus=\"autofocus\"\n :role=\"containerRole\"\n :inputmode=\"inputmode\"\n @compositionstart=\"handleCompositionStart\"\n @compositionupdate=\"handleCompositionUpdate\"\n @compositionend=\"handleCompositionEnd\"\n @input=\"handleInput\"\n @change=\"handleChange\"\n @keydown=\"handleKeydown\"\n />\n\n <!-- suffix slot -->\n <span v-if=\"suffixVisible\" :class=\"nsInput.e('suffix')\">\n <span :class=\"nsInput.e('suffix-inner')\">\n <template\n v-if=\"!showClear || !showPwdVisible || !isWordLimitVisible\"\n >\n <slot name=\"suffix\" />\n <el-icon v-if=\"suffixIcon\" :class=\"nsInput.e('icon')\">\n <component :is=\"suffixIcon\" />\n </el-icon>\n </template>\n <el-icon\n v-if=\"showClear\"\n :class=\"[nsInput.e('icon'), nsInput.e('clear')]\"\n @mousedown.prevent=\"NOOP\"\n @click=\"clear\"\n >\n <component :is=\"clearIcon\" />\n </el-icon>\n <el-icon\n v-if=\"showPwdVisible\"\n :class=\"[nsInput.e('icon'), nsInput.e('password')]\"\n @click=\"handlePasswordVisible\"\n @mousedown.prevent=\"NOOP\"\n @mouseup.prevent=\"NOOP\"\n >\n <slot name=\"password-icon\" :visible=\"passwordVisible\">\n <component :is=\"passwordIcon\" />\n </slot>\n </el-icon>\n <span\n v-if=\"isWordLimitVisible\"\n :class=\"[\n nsInput.e('count'),\n nsInput.is('outside', wordLimitPosition === 'outside'),\n ]\"\n >\n <span :class=\"nsInput.e('count-inner')\">\n {{ textLength }} / {{ maxlength }}\n </span>\n </span>\n <el-icon\n v-if=\"validateState && validateIcon && needStatusIcon\"\n :class=\"[\n nsInput.e('icon'),\n nsInput.e('validateIcon'),\n nsInput.is('loading', validateState === 'validating'),\n ]\"\n >\n <component :is=\"validateIcon\" />\n </el-icon>\n </span>\n </span>\n </div>\n\n <!-- append slot -->\n <div v-if=\"$slots.append\" :class=\"nsInput.be('group', 'append')\">\n <slot name=\"append\" />\n </div>\n </template>\n\n <!-- textarea -->\n <template v-else>\n <textarea\n :id=\"inputId\"\n ref=\"textarea\"\n :class=\"[\n nsTextarea.e('inner'),\n nsInput.is('focus', isFocused),\n nsTextarea.is('clearable', clearable),\n ]\"\n v-bind=\"attrs\"\n :name=\"name\"\n :minlength=\"countGraphemes ? undefined : minlength\"\n :maxlength=\"countGraphemes ? undefined : maxlength\"\n :tabindex=\"tabindex\"\n :disabled=\"inputDisabled\"\n :readonly=\"readonly\"\n :autocomplete=\"autocomplete\"\n :style=\"textareaStyle\"\n :aria-label=\"ariaLabel\"\n :placeholder=\"placeholder\"\n :form=\"form\"\n :autofocus=\"autofocus\"\n :rows=\"rows\"\n :role=\"containerRole\"\n :inputmode=\"inputmode\"\n @compositionstart=\"handleCompositionStart\"\n @compositionupdate=\"handleCompositionUpdate\"\n @compositionend=\"handleCompositionEnd\"\n @input=\"handleInput\"\n @focus=\"handleFocus\"\n @blur=\"handleBlur\"\n @change=\"handleChange\"\n @keydown=\"handleKeydown\"\n />\n <el-icon\n v-if=\"showClear\"\n :class=\"[nsTextarea.e('icon'), nsTextarea.e('clear')]\"\n @mousedown.prevent=\"NOOP\"\n @click=\"clear\"\n >\n <component :is=\"clearIcon\" />\n </el-icon>\n <span\n v-if=\"isWordLimitVisible\"\n :style=\"countStyle\"\n :class=\"[\n nsInput.e('count'),\n nsInput.is('outside', wordLimitPosition === 'outside'),\n ]\"\n >\n {{ textLength }} / {{ maxlength }}\n </span>\n </template>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n computed,\n nextTick,\n onMounted,\n ref,\n shallowRef,\n toRef,\n useAttrs as useRawAttrs,\n useSlots,\n watch,\n} from 'vue'\nimport { useResizeObserver } from '@vueuse/core'\nimport { isNil } from 'lodash-unified'\nimport { ElIcon } from '@element-plus/components/icon'\nimport { Hide, View } from '@element-plus/icons-vue'\nimport {\n useFormDisabled,\n useFormItem,\n useFormItemInputId,\n useFormSize,\n} from '@element-plus/components/form'\nimport {\n NOOP,\n ValidateComponentsMap,\n debugWarn,\n isClient,\n isObject,\n} from '@element-plus/utils'\nimport {\n useAttrs,\n useComposition,\n useCursor,\n useFocusController,\n useNamespace,\n} from '@element-plus/hooks'\nimport {\n CHANGE_EVENT,\n INPUT_EVENT,\n UPDATE_MODEL_EVENT,\n} from '@element-plus/constants'\nimport { calcTextareaHeight, looseToNumber } from './utils'\nimport { inputEmits, inputPropsDefaults } from './input'\n\nimport type { StyleValue } from 'vue'\nimport type { InputProps } from './input'\n\ntype TargetElement = HTMLInputElement | HTMLTextAreaElement\n\nconst COMPONENT_NAME = 'ElInput'\ndefineOptions({\n name: COMPONENT_NAME,\n inheritAttrs: false,\n})\nconst props = withDefaults(defineProps<InputProps>(), inputPropsDefaults)\nconst emit = defineEmits(inputEmits)\n\nconst rawAttrs = useRawAttrs()\nconst slots = useSlots()\n\nconst containerKls = computed(() => [\n props.type === 'textarea' ? nsTextarea.b() : nsInput.b(),\n nsInput.m(inputSize.value),\n nsInput.is('disabled', inputDisabled.value),\n nsInput.is('exceed', inputExceed.value),\n {\n [nsInput.b('group')]: slots.prepend || slots.append,\n [nsInput.m('prefix')]: slots.prefix || props.prefixIcon,\n [nsInput.m('suffix')]:\n slots.suffix || props.suffixIcon || props.clearable || props.showPassword,\n [nsInput.bm('suffix', 'password-clear')]:\n showClear.value && showPwdVisible.value,\n [nsInput.b('hidden')]: props.type === 'hidden',\n },\n rawAttrs.class,\n])\n\nconst wrapperKls = computed(() => [\n nsInput.e('wrapper'),\n nsInput.is('focus', isFocused.value),\n])\n\nconst attrs = useAttrs()\nconst maxlength = computed(() => props.maxlength?.toString())\n\nconst { form: elForm, formItem: elFormItem } = useFormItem()\nconst { inputId } = useFormItemInputId(props, {\n formItemContext: elFormItem,\n})\nconst inputSize = useFormSize()\nconst inputDisabled = useFormDisabled()\nconst nsInput = useNamespace('input')\nconst nsTextarea = useNamespace('textarea')\n\nconst input = shallowRef<HTMLInputElement>()\nconst textarea = shallowRef<HTMLTextAreaElement>()\n\nconst hovering = ref(false)\nconst passwordVisible = ref(false)\nconst countStyle = ref<StyleValue>()\nconst textareaCalcStyle = shallowRef(props.inputStyle)\nconst saveValue = ref('')\n\nconst _ref = computed(() => input.value || textarea.value)\n\n// wrapperRef for type=\"text\", handleFocus and handleBlur for type=\"textarea\"\n// @ts-ignore - used in template ref binding, TS cannot detect template usage\nconst { wrapperRef, isFocused, handleFocus, handleBlur } = useFocusController(\n _ref,\n {\n disabled: inputDisabled,\n afterBlur() {\n if (props.validateEvent) {\n elFormItem?.validate?.('blur').catch((err) => debugWarn(err))\n }\n },\n }\n)\n\nconst needStatusIcon = computed(() => elForm?.statusIcon ?? false)\nconst validateState = computed(() => elFormItem?.validateState || '')\nconst validateIcon = computed(\n () => validateState.value && ValidateComponentsMap[validateState.value]\n)\nconst passwordIcon = computed(() => (passwordVisible.value ? View : Hide))\nconst containerStyle = computed<StyleValue>(() => [\n rawAttrs.style as StyleValue,\n])\nconst textareaStyle = computed<StyleValue>(() => [\n props.inputStyle,\n textareaCalcStyle.value,\n { resize: props.resize },\n])\nconst nativeInputValue = computed(() =>\n isNil(props.modelValue) ? '' : String(props.modelValue)\n)\nconst showClear = computed(\n () =>\n props.clearable &&\n !inputDisabled.value &&\n !props.readonly &&\n !!nativeInputValue.value &&\n (isFocused.value || hovering.value)\n)\nconst showPwdVisible = computed(\n () => props.showPassword && !inputDisabled.value && !!nativeInputValue.value\n)\nconst isWordLimitVisible = computed(\n () =>\n props.showWordLimit &&\n !!maxlength.value &&\n (props.type === 'text' || props.type === 'textarea') &&\n !inputDisabled.value &&\n !props.readonly &&\n !props.showPassword\n)\nconst textLength = computed(() => {\n if (props.countGraphemes && props.showWordLimit) {\n return props.countGraphemes(nativeInputValue.value)\n }\n return nativeInputValue.value.length\n})\nconst inputExceed = computed(\n () =>\n // show exceed style if length of initial value greater then maxlength\n !!isWordLimitVisible.value && textLength.value > Number(maxlength.value)\n)\nconst suffixVisible = computed(\n () =>\n !!slots.suffix ||\n !!props.suffixIcon ||\n showClear.value ||\n props.showPassword ||\n isWordLimitVisible.value ||\n (!!validateState.value && needStatusIcon.value)\n)\nconst hasModelModifiers = computed(\n () => !!Object.keys(props.modelModifiers).length\n)\n\nconst [recordCursor, setCursor] = useCursor(input)\n\nuseResizeObserver(textarea, (entries) => {\n onceInitSizeTextarea()\n if (\n !isWordLimitVisible.value ||\n (props.resize !== 'both' && props.resize !== 'horizontal')\n )\n return\n const entry = entries[0]\n const { width } = entry.contentRect\n countStyle.value = {\n /** right: 100% - width + padding(22) - right(10) */\n right: `calc(100% - ${width + 22 - 10}px)`,\n }\n})\n\nconst resizeTextarea = () => {\n const { type, autosize } = props\n\n if (!isClient || type !== 'textarea' || !textarea.value) return\n\n if (autosize) {\n const minRows = isObject(autosize) ? autosize.minRows : undefined\n const maxRows = isObject(autosize) ? autosize.maxRows : undefined\n const textareaStyle = calcTextareaHeight(textarea.value, minRows, maxRows)\n\n // If the scrollbar is displayed, the height of the textarea needs more space than the calculated height.\n // If set textarea height in this case, the scrollbar will not hide.\n // So we need to hide scrollbar first, and reset it in next tick.\n // see https://github.com/element-plus/element-plus/issues/8825\n textareaCalcStyle.value = {\n overflowY: 'hidden',\n ...textareaStyle,\n }\n\n nextTick(() => {\n // NOTE: Force repaint to make sure the style set above is applied.\n textarea.value!.offsetHeight\n textareaCalcStyle.value = textareaStyle\n })\n } else {\n textareaCalcStyle.value = {\n minHeight: calcTextareaHeight(textarea.value).minHeight,\n }\n }\n}\n\nconst createOnceInitResize = (resizeTextarea: () => void) => {\n let isInit = false\n return () => {\n if (isInit || !props.autosize) return\n const isElHidden = textarea.value?.offsetParent === null\n if (!isElHidden) {\n setTimeout(resizeTextarea)\n isInit = true\n }\n }\n}\n// fix: https://github.com/element-plus/element-plus/issues/12074\nconst onceInitSizeTextarea = createOnceInitResize(resizeTextarea)\n\nconst setNativeInputValue = () => {\n const input = _ref.value\n const formatterValue = props.formatter\n ? props.formatter(nativeInputValue.value)\n : nativeInputValue.value\n if (!input || input.value === formatterValue || props.type === 'file') return\n input.value = formatterValue\n}\n\nconst formatValue = (value: string) => {\n const { trim, number } = props.modelModifiers\n if (trim) {\n value = value.trim()\n }\n if (number) {\n value = `${looseToNumber(value)}`\n }\n if (props.formatter && props.parser) {\n value = props.parser(value)\n }\n return value\n}\n\nconst handleInput = async (event: Event) => {\n // should not emit input during composition\n // see: https://github.com/ElemeFE/element/issues/10516\n if (isComposing.value) return\n\n const { lazy } = props.modelModifiers\n let { value } = event.target as TargetElement\n let shouldForceNativeUpdate = false\n if (lazy) {\n emit(INPUT_EVENT, value)\n return\n }\n\n value = formatValue(value)\n\n if (props.countGraphemes && maxlength.value != null) {\n const limit = Number(maxlength.value)\n const graphemes = props.countGraphemes(value)\n const saveGraphemes = props.countGraphemes(saveValue.value)\n if (graphemes > limit && graphemes > saveGraphemes) {\n // If current value already exceeds limit, block further input and keep exceed state.\n if (saveGraphemes > limit) {\n value = saveValue.value\n shouldForceNativeUpdate = true\n } else {\n // Keep unchanged suffix like native maxlength behavior.\n // Instead of truncating from the end of the whole string,\n // only limit the inserted segment to available capacity.\n const prevValue = saveValue.value\n const nextValue = value\n let prefixLen = 0\n\n while (\n prefixLen < prevValue.length &&\n prefixLen < nextValue.length &&\n prevValue[prefixLen] === nextValue[prefixLen]\n ) {\n prefixLen++\n }\n\n let prevSuffixIndex = prevValue.length\n let nextSuffixIndex = nextValue.length\n while (\n prevSuffixIndex > prefixLen &&\n nextSuffixIndex > prefixLen &&\n prevValue[prevSuffixIndex - 1] === nextValue[nextSuffixIndex - 1]\n ) {\n prevSuffixIndex--\n nextSuffixIndex--\n }\n\n const before = nextValue.slice(0, prefixLen)\n const removed = prevValue.slice(prefixLen, prevSuffixIndex)\n const inserted = nextValue.slice(prefixLen, nextSuffixIndex)\n const after = nextValue.slice(nextSuffixIndex)\n\n const removedCount = props.countGraphemes(removed)\n const baseCount = saveGraphemes - removedCount\n const availableInserted = Math.max(0, limit - baseCount)\n\n let acceptedInserted = ''\n if (availableInserted > 0) {\n // Use Intl.Segmenter for proper grapheme cluster iteration if available.\n if (typeof Intl !== 'undefined' && 'Segmenter' in Intl) {\n const segmenter = new Intl.Segmenter(undefined, {\n granularity: 'grapheme',\n })\n for (const { segment } of segmenter.segment(inserted)) {\n const candidate = acceptedInserted + segment\n const newCount = props.countGraphemes(candidate)\n if (newCount > availableInserted) break\n acceptedInserted = candidate\n }\n } else {\n // Fallback to code-point iteration for older environments.\n for (const char of Array.from(inserted)) {\n const candidate = acceptedInserted + char\n const newCount = props.countGraphemes(candidate)\n if (newCount > availableInserted) break\n acceptedInserted = candidate\n }\n }\n }\n\n value = before + acceptedInserted + after\n shouldForceNativeUpdate = true\n }\n }\n }\n\n // hack for https://github.com/ElemeFE/element/issues/8548\n // should remove the following line when we don't support IE\n if (String(value) === nativeInputValue.value) {\n // preserve native features while being compatible with #9501\n if (props.formatter || shouldForceNativeUpdate) {\n const target = event.target as TargetElement\n const blockedValue = target.value\n const selectionStart = target.selectionStart\n const selectionEnd = target.selectionEnd\n setNativeInputValue()\n // Keep caret position stable when input is blocked and value is reset.\n if (\n shouldForceNativeUpdate &&\n _ref.value &&\n selectionStart != null &&\n selectionEnd != null\n ) {\n const restoredValue = _ref.value.value\n const afterTxt = blockedValue.slice(Math.max(0, selectionEnd))\n let caretPos = Math.min(selectionStart, restoredValue.length)\n\n if (afterTxt && restoredValue.endsWith(afterTxt)) {\n caretPos = restoredValue.length - afterTxt.length\n }\n\n _ref.value.setSelectionRange(caretPos, caretPos)\n }\n }\n return\n }\n saveValue.value = value\n\n recordCursor()\n emit(UPDATE_MODEL_EVENT, value)\n emit(INPUT_EVENT, value)\n\n // ensure native input value is controlled\n // see: https://github.com/ElemeFE/element/issues/12850\n await nextTick()\n\n if ((props.formatter && props.parser) || !hasModelModifiers.value) {\n setNativeInputValue()\n }\n setCursor()\n}\n\nconst handleChange = async (event: Event) => {\n let { value } = event.target as TargetElement\n\n value = formatValue(value)\n if (props.modelModifiers.lazy) {\n emit(UPDATE_MODEL_EVENT, value)\n }\n emit(CHANGE_EVENT, value, event)\n\n await nextTick()\n setNativeInputValue()\n}\n\nconst {\n isComposing,\n handleCompositionStart,\n handleCompositionUpdate,\n handleCompositionEnd,\n} = useComposition({ emit, afterComposition: handleInput })\n\nconst handlePasswordVisible = () => {\n passwordVisible.value = !passwordVisible.value\n}\n\nconst focus = () => _ref.value?.focus()\n\nconst blur = () => _ref.value?.blur()\n\nconst handleMouseLeave = (evt: MouseEvent) => {\n hovering.value = false\n emit('mouseleave', evt)\n}\n\nconst handleMouseEnter = (evt: MouseEvent) => {\n hovering.value = true\n emit('mouseenter', evt)\n}\n\nconst handleKeydown = (evt: KeyboardEvent) => {\n emit('keydown', evt)\n}\n\nconst select = () => {\n _ref.value?.select()\n}\n\nconst clear = (evt?: MouseEvent) => {\n emit(UPDATE_MODEL_EVENT, '')\n emit(CHANGE_EVENT, '')\n emit('clear', evt)\n emit(INPUT_EVENT, '')\n}\n\nwatch(\n () => props.modelValue,\n () => {\n nextTick(() => resizeTextarea())\n if (props.validateEvent) {\n elFormItem?.validate?.('change').catch((err) => debugWarn(err))\n }\n }\n)\n\nwatch(\n () => nativeInputValue.value,\n (val) => {\n saveValue.value = val\n },\n { immediate: true }\n)\n\n// native input value is set explicitly\n// do not use v-model / :value in template\n// see: https://github.com/ElemeFE/element/issues/14521\nwatch(nativeInputValue, (newValue) => {\n if (!_ref.value) {\n return\n }\n const { trim, number } = props.modelModifiers\n const elValue = _ref.value.value\n const displayValue =\n (number || props.type === 'number') && !/^0\\d/.test(elValue)\n ? `${looseToNumber(elValue)}`\n : elValue\n\n if (displayValue === newValue) {\n return\n }\n\n if (document.activeElement === _ref.value && _ref.value.type !== 'range') {\n if (trim && displayValue.trim() === newValue) {\n return\n }\n }\n\n setNativeInputValue()\n})\n\n// when change between <input> and <textarea>,\n// update DOM dependent value and styles\n// https://github.com/ElemeFE/element/issues/14857\nwatch(\n () => props.type,\n async () => {\n await nextTick()\n setNativeInputValue()\n resizeTextarea()\n }\n)\n\nonMounted(() => {\n if (!props.formatter && props.parser) {\n debugWarn(\n COMPONENT_NAME,\n 'If you set the parser, you also need to set the formatter.'\n )\n }\n setNativeInputValue()\n nextTick(resizeTextarea)\n})\n\ndefineExpose({\n /** @description HTML input element */\n input,\n /** @description HTML textarea element */\n textarea,\n /** @description HTML element, input or textarea */\n ref: _ref,\n /** @description style of textarea. */\n textareaStyle,\n\n /** @description from props (used on unit test) */\n autosize: toRef(props, 'autosize'),\n\n /** @description is input composing */\n isComposing,\n\n /** @description whether the password is visible */\n passwordVisible,\n\n /** @description HTML input element native method */\n focus,\n /** @description HTML input element native method */\n blur,\n /** @description HTML input element native method */\n select,\n /** @description clear input value */\n clear,\n /** @description resize textarea. */\n resizeTextarea,\n})\n</script>\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"input2.js","names":[],"sources":["../../../../../../packages/components/input/src/input.vue"],"sourcesContent":["<template>\n <div\n :class=\"[\n containerKls,\n {\n [nsInput.bm('group', 'append')]: $slots.append,\n [nsInput.bm('group', 'prepend')]: $slots.prepend,\n },\n ]\"\n :style=\"containerStyle\"\n @mouseenter=\"handleMouseEnter\"\n @mouseleave=\"handleMouseLeave\"\n >\n <!-- input -->\n <template v-if=\"type !== 'textarea'\">\n <!-- prepend slot -->\n <div v-if=\"$slots.prepend\" :class=\"nsInput.be('group', 'prepend')\">\n <slot name=\"prepend\" />\n </div>\n\n <div ref=\"wrapperRef\" :class=\"wrapperKls\">\n <!-- prefix slot -->\n <span v-if=\"$slots.prefix || prefixIcon\" :class=\"nsInput.e('prefix')\">\n <span :class=\"nsInput.e('prefix-inner')\">\n <slot name=\"prefix\" />\n <el-icon v-if=\"prefixIcon\" :class=\"nsInput.e('icon')\">\n <component :is=\"prefixIcon\" />\n </el-icon>\n </span>\n </span>\n\n <input\n :id=\"inputId\"\n ref=\"input\"\n :class=\"nsInput.e('inner')\"\n v-bind=\"attrs\"\n :name=\"name\"\n :minlength=\"minlength\"\n :maxlength=\"maxlength\"\n :type=\"showPassword ? (passwordVisible ? 'text' : 'password') : type\"\n :disabled=\"inputDisabled\"\n :readonly=\"readonly\"\n :autocomplete=\"autocomplete\"\n :tabindex=\"tabindex\"\n :aria-label=\"ariaLabel\"\n :placeholder=\"placeholder\"\n :style=\"inputStyle\"\n :form=\"form\"\n :autofocus=\"autofocus\"\n :role=\"containerRole\"\n :inputmode=\"inputmode\"\n @compositionstart=\"handleCompositionStart\"\n @compositionupdate=\"handleCompositionUpdate\"\n @compositionend=\"handleCompositionEnd\"\n @input=\"handleInput\"\n @change=\"handleChange\"\n @keydown=\"handleKeydown\"\n />\n\n <!-- suffix slot -->\n <span v-if=\"suffixVisible\" :class=\"nsInput.e('suffix')\">\n <span :class=\"nsInput.e('suffix-inner')\">\n <template\n v-if=\"!showClear || !showPwdVisible || !isWordLimitVisible\"\n >\n <slot name=\"suffix\" />\n <el-icon v-if=\"suffixIcon\" :class=\"nsInput.e('icon')\">\n <component :is=\"suffixIcon\" />\n </el-icon>\n </template>\n <el-icon\n v-if=\"showClear\"\n :class=\"[nsInput.e('icon'), nsInput.e('clear')]\"\n @mousedown.prevent=\"NOOP\"\n @click=\"clear\"\n >\n <component :is=\"clearIcon\" />\n </el-icon>\n <el-icon\n v-if=\"showPwdVisible\"\n :class=\"[nsInput.e('icon'), nsInput.e('password')]\"\n @click=\"handlePasswordVisible\"\n @mousedown.prevent=\"NOOP\"\n @mouseup.prevent=\"NOOP\"\n >\n <slot name=\"password-icon\" :visible=\"passwordVisible\">\n <component :is=\"passwordIcon\" />\n </slot>\n </el-icon>\n <span\n v-if=\"isWordLimitVisible\"\n :class=\"[\n nsInput.e('count'),\n nsInput.is('outside', wordLimitPosition === 'outside'),\n ]\"\n >\n <span :class=\"nsInput.e('count-inner')\">\n {{ textLength }} / {{ maxlength }}\n </span>\n </span>\n <el-icon\n v-if=\"validateState && validateIcon && needStatusIcon\"\n :class=\"[\n nsInput.e('icon'),\n nsInput.e('validateIcon'),\n nsInput.is('loading', validateState === 'validating'),\n ]\"\n >\n <component :is=\"validateIcon\" />\n </el-icon>\n </span>\n </span>\n </div>\n\n <!-- append slot -->\n <div v-if=\"$slots.append\" :class=\"nsInput.be('group', 'append')\">\n <slot name=\"append\" />\n </div>\n </template>\n\n <!-- textarea -->\n <template v-else>\n <textarea\n :id=\"inputId\"\n ref=\"textarea\"\n :class=\"[\n nsTextarea.e('inner'),\n nsInput.is('focus', isFocused),\n nsTextarea.is('clearable', clearable),\n ]\"\n v-bind=\"attrs\"\n :name=\"name\"\n :minlength=\"minlength\"\n :maxlength=\"maxlength\"\n :tabindex=\"tabindex\"\n :disabled=\"inputDisabled\"\n :readonly=\"readonly\"\n :autocomplete=\"autocomplete\"\n :style=\"textareaStyle\"\n :aria-label=\"ariaLabel\"\n :placeholder=\"placeholder\"\n :form=\"form\"\n :autofocus=\"autofocus\"\n :rows=\"rows\"\n :role=\"containerRole\"\n :inputmode=\"inputmode\"\n @compositionstart=\"handleCompositionStart\"\n @compositionupdate=\"handleCompositionUpdate\"\n @compositionend=\"handleCompositionEnd\"\n @input=\"handleInput\"\n @focus=\"handleFocus\"\n @blur=\"handleBlur\"\n @change=\"handleChange\"\n @keydown=\"handleKeydown\"\n />\n <el-icon\n v-if=\"showClear\"\n :class=\"[nsTextarea.e('icon'), nsTextarea.e('clear')]\"\n @mousedown.prevent=\"NOOP\"\n @click=\"clear\"\n >\n <component :is=\"clearIcon\" />\n </el-icon>\n <span\n v-if=\"isWordLimitVisible\"\n :style=\"countStyle\"\n :class=\"[\n nsInput.e('count'),\n nsInput.is('outside', wordLimitPosition === 'outside'),\n ]\"\n >\n {{ textLength }} / {{ maxlength }}\n </span>\n </template>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n computed,\n nextTick,\n onMounted,\n ref,\n shallowRef,\n toRef,\n useAttrs as useRawAttrs,\n useSlots,\n watch,\n} from 'vue'\nimport { useResizeObserver } from '@vueuse/core'\nimport { isNil } from 'lodash-unified'\nimport { ElIcon } from '@element-plus/components/icon'\nimport { Hide, View } from '@element-plus/icons-vue'\nimport {\n useFormDisabled,\n useFormItem,\n useFormItemInputId,\n useFormSize,\n} from '@element-plus/components/form'\nimport {\n NOOP,\n ValidateComponentsMap,\n debugWarn,\n isClient,\n isObject,\n} from '@element-plus/utils'\nimport {\n useAttrs,\n useComposition,\n useCursor,\n useFocusController,\n useNamespace,\n} from '@element-plus/hooks'\nimport {\n CHANGE_EVENT,\n INPUT_EVENT,\n UPDATE_MODEL_EVENT,\n} from '@element-plus/constants'\nimport { calcTextareaHeight, looseToNumber } from './utils'\nimport { inputEmits, inputPropsDefaults } from './input'\n\nimport type { StyleValue } from 'vue'\nimport type { InputProps } from './input'\n\ntype TargetElement = HTMLInputElement | HTMLTextAreaElement\n\nconst COMPONENT_NAME = 'ElInput'\ndefineOptions({\n name: COMPONENT_NAME,\n inheritAttrs: false,\n})\nconst props = withDefaults(defineProps<InputProps>(), inputPropsDefaults)\nconst emit = defineEmits(inputEmits)\n\nconst rawAttrs = useRawAttrs()\nconst attrs = useAttrs()\nconst slots = useSlots()\n\nconst containerKls = computed(() => [\n props.type === 'textarea' ? nsTextarea.b() : nsInput.b(),\n nsInput.m(inputSize.value),\n nsInput.is('disabled', inputDisabled.value),\n nsInput.is('exceed', inputExceed.value),\n {\n [nsInput.b('group')]: slots.prepend || slots.append,\n [nsInput.m('prefix')]: slots.prefix || props.prefixIcon,\n [nsInput.m('suffix')]:\n slots.suffix || props.suffixIcon || props.clearable || props.showPassword,\n [nsInput.bm('suffix', 'password-clear')]:\n showClear.value && showPwdVisible.value,\n [nsInput.b('hidden')]: props.type === 'hidden',\n },\n rawAttrs.class,\n])\n\nconst wrapperKls = computed(() => [\n nsInput.e('wrapper'),\n nsInput.is('focus', isFocused.value),\n])\n\nconst { form: elForm, formItem: elFormItem } = useFormItem()\nconst { inputId } = useFormItemInputId(props, {\n formItemContext: elFormItem,\n})\nconst inputSize = useFormSize()\nconst inputDisabled = useFormDisabled()\nconst nsInput = useNamespace('input')\nconst nsTextarea = useNamespace('textarea')\n\nconst input = shallowRef<HTMLInputElement>()\nconst textarea = shallowRef<HTMLTextAreaElement>()\n\nconst hovering = ref(false)\nconst passwordVisible = ref(false)\nconst countStyle = ref<StyleValue>()\nconst textareaCalcStyle = shallowRef(props.inputStyle)\n\nconst _ref = computed(() => input.value || textarea.value)\n\n// wrapperRef for type=\"text\", handleFocus and handleBlur for type=\"textarea\"\nconst { wrapperRef, isFocused, handleFocus, handleBlur } = useFocusController(\n _ref,\n {\n disabled: inputDisabled,\n afterBlur() {\n if (props.validateEvent) {\n elFormItem?.validate?.('blur').catch((err) => debugWarn(err))\n }\n },\n }\n)\n\nconst needStatusIcon = computed(() => elForm?.statusIcon ?? false)\nconst validateState = computed(() => elFormItem?.validateState || '')\nconst validateIcon = computed(\n () => validateState.value && ValidateComponentsMap[validateState.value]\n)\nconst passwordIcon = computed(() => (passwordVisible.value ? View : Hide))\nconst containerStyle = computed<StyleValue>(() => [\n rawAttrs.style as StyleValue,\n])\nconst textareaStyle = computed<StyleValue>(() => [\n props.inputStyle,\n textareaCalcStyle.value,\n { resize: props.resize },\n])\nconst nativeInputValue = computed(() =>\n isNil(props.modelValue) ? '' : String(props.modelValue)\n)\nconst showClear = computed(\n () =>\n props.clearable &&\n !inputDisabled.value &&\n !props.readonly &&\n !!nativeInputValue.value &&\n (isFocused.value || hovering.value)\n)\nconst showPwdVisible = computed(\n () => props.showPassword && !inputDisabled.value && !!nativeInputValue.value\n)\nconst isWordLimitVisible = computed(\n () =>\n props.showWordLimit &&\n !!props.maxlength &&\n (props.type === 'text' || props.type === 'textarea') &&\n !inputDisabled.value &&\n !props.readonly &&\n !props.showPassword\n)\nconst textLength = computed(() => nativeInputValue.value.length)\nconst inputExceed = computed(\n () =>\n // show exceed style if length of initial value greater then maxlength\n !!isWordLimitVisible.value && textLength.value > Number(props.maxlength)\n)\nconst suffixVisible = computed(\n () =>\n !!slots.suffix ||\n !!props.suffixIcon ||\n showClear.value ||\n props.showPassword ||\n isWordLimitVisible.value ||\n (!!validateState.value && needStatusIcon.value)\n)\nconst hasModelModifiers = computed(\n () => !!Object.keys(props.modelModifiers).length\n)\n\nconst [recordCursor, setCursor] = useCursor(input)\n\nuseResizeObserver(textarea, (entries) => {\n onceInitSizeTextarea()\n if (\n !isWordLimitVisible.value ||\n (props.resize !== 'both' && props.resize !== 'horizontal')\n )\n return\n const entry = entries[0]\n const { width } = entry.contentRect\n countStyle.value = {\n /** right: 100% - width + padding(22) - right(10) */\n right: `calc(100% - ${width + 22 - 10}px)`,\n }\n})\n\nconst resizeTextarea = () => {\n const { type, autosize } = props\n\n if (!isClient || type !== 'textarea' || !textarea.value) return\n\n if (autosize) {\n const minRows = isObject(autosize) ? autosize.minRows : undefined\n const maxRows = isObject(autosize) ? autosize.maxRows : undefined\n const textareaStyle = calcTextareaHeight(textarea.value, minRows, maxRows)\n\n // If the scrollbar is displayed, the height of the textarea needs more space than the calculated height.\n // If set textarea height in this case, the scrollbar will not hide.\n // So we need to hide scrollbar first, and reset it in next tick.\n // see https://github.com/element-plus/element-plus/issues/8825\n textareaCalcStyle.value = {\n overflowY: 'hidden',\n ...textareaStyle,\n }\n\n nextTick(() => {\n // NOTE: Force repaint to make sure the style set above is applied.\n textarea.value!.offsetHeight\n textareaCalcStyle.value = textareaStyle\n })\n } else {\n textareaCalcStyle.value = {\n minHeight: calcTextareaHeight(textarea.value).minHeight,\n }\n }\n}\n\nconst createOnceInitResize = (resizeTextarea: () => void) => {\n let isInit = false\n return () => {\n if (isInit || !props.autosize) return\n const isElHidden = textarea.value?.offsetParent === null\n if (!isElHidden) {\n setTimeout(resizeTextarea)\n isInit = true\n }\n }\n}\n// fix: https://github.com/element-plus/element-plus/issues/12074\nconst onceInitSizeTextarea = createOnceInitResize(resizeTextarea)\n\nconst setNativeInputValue = () => {\n const input = _ref.value\n const formatterValue = props.formatter\n ? props.formatter(nativeInputValue.value)\n : nativeInputValue.value\n if (!input || input.value === formatterValue || props.type === 'file') return\n input.value = formatterValue\n}\n\nconst formatValue = (value: string) => {\n const { trim, number } = props.modelModifiers\n if (trim) {\n value = value.trim()\n }\n if (number) {\n value = `${looseToNumber(value)}`\n }\n if (props.formatter && props.parser) {\n value = props.parser(value)\n }\n return value\n}\n\nconst handleInput = async (event: Event) => {\n // should not emit input during composition\n // see: https://github.com/ElemeFE/element/issues/10516\n if (isComposing.value) return\n\n const { lazy } = props.modelModifiers\n let { value } = event.target as TargetElement\n if (lazy) {\n emit(INPUT_EVENT, value)\n return\n }\n\n value = formatValue(value)\n\n // hack for https://github.com/ElemeFE/element/issues/8548\n // should remove the following line when we don't support IE\n if (String(value) === nativeInputValue.value) {\n // preserve native features while being compatible with #9501\n if (props.formatter) {\n setNativeInputValue()\n }\n return\n }\n\n recordCursor()\n emit(UPDATE_MODEL_EVENT, value)\n emit(INPUT_EVENT, value)\n\n // ensure native input value is controlled\n // see: https://github.com/ElemeFE/element/issues/12850\n await nextTick()\n\n if ((props.formatter && props.parser) || !hasModelModifiers.value) {\n setNativeInputValue()\n }\n setCursor()\n}\n\nconst handleChange = async (event: Event) => {\n let { value } = event.target as TargetElement\n\n value = formatValue(value)\n if (props.modelModifiers.lazy) {\n emit(UPDATE_MODEL_EVENT, value)\n }\n emit(CHANGE_EVENT, value, event)\n\n await nextTick()\n setNativeInputValue()\n}\n\nconst {\n isComposing,\n handleCompositionStart,\n handleCompositionUpdate,\n handleCompositionEnd,\n} = useComposition({ emit, afterComposition: handleInput })\n\nconst handlePasswordVisible = () => {\n passwordVisible.value = !passwordVisible.value\n}\n\nconst focus = () => _ref.value?.focus()\n\nconst blur = () => _ref.value?.blur()\n\nconst handleMouseLeave = (evt: MouseEvent) => {\n hovering.value = false\n emit('mouseleave', evt)\n}\n\nconst handleMouseEnter = (evt: MouseEvent) => {\n hovering.value = true\n emit('mouseenter', evt)\n}\n\nconst handleKeydown = (evt: KeyboardEvent) => {\n emit('keydown', evt)\n}\n\nconst select = () => {\n _ref.value?.select()\n}\n\nconst clear = (evt?: MouseEvent) => {\n emit(UPDATE_MODEL_EVENT, '')\n emit(CHANGE_EVENT, '')\n emit('clear', evt)\n emit(INPUT_EVENT, '')\n}\n\nwatch(\n () => props.modelValue,\n () => {\n nextTick(() => resizeTextarea())\n if (props.validateEvent) {\n elFormItem?.validate?.('change').catch((err) => debugWarn(err))\n }\n }\n)\n\n// native input value is set explicitly\n// do not use v-model / :value in template\n// see: https://github.com/ElemeFE/element/issues/14521\nwatch(nativeInputValue, (newValue) => {\n if (!_ref.value) {\n return\n }\n const { trim, number } = props.modelModifiers\n const elValue = _ref.value.value\n const displayValue =\n (number || props.type === 'number') && !/^0\\d/.test(elValue)\n ? `${looseToNumber(elValue)}`\n : elValue\n\n if (displayValue === newValue) {\n return\n }\n\n if (document.activeElement === _ref.value && _ref.value.type !== 'range') {\n if (trim && displayValue.trim() === newValue) {\n return\n }\n }\n\n setNativeInputValue()\n})\n\n// when change between <input> and <textarea>,\n// update DOM dependent value and styles\n// https://github.com/ElemeFE/element/issues/14857\nwatch(\n () => props.type,\n async () => {\n await nextTick()\n setNativeInputValue()\n resizeTextarea()\n }\n)\n\nonMounted(() => {\n if (!props.formatter && props.parser) {\n debugWarn(\n COMPONENT_NAME,\n 'If you set the parser, you also need to set the formatter.'\n )\n }\n setNativeInputValue()\n nextTick(resizeTextarea)\n})\n\ndefineExpose({\n /** @description HTML input element */\n input,\n /** @description HTML textarea element */\n textarea,\n /** @description HTML element, input or textarea */\n ref: _ref,\n /** @description style of textarea. */\n textareaStyle,\n\n /** @description from props (used on unit test) */\n autosize: toRef(props, 'autosize'),\n\n /** @description is input composing */\n isComposing,\n\n /** @description HTML input element native method */\n focus,\n /** @description HTML input element native method */\n blur,\n /** @description HTML input element native method */\n select,\n /** @description clear input value */\n clear,\n /** @description resize textarea. */\n resizeTextarea,\n})\n</script>\n"],"mappings":""}
1
+ {"version":3,"file":"input2.js","names":[],"sources":["../../../../../../packages/components/input/src/input.vue"],"sourcesContent":["<template>\n <div\n :class=\"[\n containerKls,\n {\n [nsInput.bm('group', 'append')]: $slots.append,\n [nsInput.bm('group', 'prepend')]: $slots.prepend,\n },\n ]\"\n :style=\"containerStyle\"\n @mouseenter=\"handleMouseEnter\"\n @mouseleave=\"handleMouseLeave\"\n >\n <!-- input -->\n <template v-if=\"type !== 'textarea'\">\n <!-- prepend slot -->\n <div v-if=\"$slots.prepend\" :class=\"nsInput.be('group', 'prepend')\">\n <slot name=\"prepend\" />\n </div>\n\n <div ref=\"wrapperRef\" :class=\"wrapperKls\">\n <!-- prefix slot -->\n <span v-if=\"$slots.prefix || prefixIcon\" :class=\"nsInput.e('prefix')\">\n <span :class=\"nsInput.e('prefix-inner')\">\n <slot name=\"prefix\" />\n <el-icon v-if=\"prefixIcon\" :class=\"nsInput.e('icon')\">\n <component :is=\"prefixIcon\" />\n </el-icon>\n </span>\n </span>\n\n <input\n :id=\"inputId\"\n ref=\"input\"\n :class=\"nsInput.e('inner')\"\n v-bind=\"attrs\"\n :name=\"name\"\n :minlength=\"countGraphemes ? undefined : minlength\"\n :maxlength=\"countGraphemes ? undefined : maxlength\"\n :type=\"showPassword ? (passwordVisible ? 'text' : 'password') : type\"\n :disabled=\"inputDisabled\"\n :readonly=\"readonly\"\n :autocomplete=\"autocomplete\"\n :tabindex=\"tabindex\"\n :aria-label=\"ariaLabel\"\n :placeholder=\"placeholder\"\n :style=\"inputStyle\"\n :form=\"form\"\n :autofocus=\"autofocus\"\n :role=\"containerRole\"\n :inputmode=\"inputmode\"\n @compositionstart=\"handleCompositionStart\"\n @compositionupdate=\"handleCompositionUpdate\"\n @compositionend=\"handleCompositionEnd\"\n @input=\"handleInput\"\n @change=\"handleChange\"\n @keydown=\"handleKeydown\"\n />\n\n <!-- suffix slot -->\n <span v-if=\"suffixVisible\" :class=\"nsInput.e('suffix')\">\n <span :class=\"nsInput.e('suffix-inner')\">\n <template\n v-if=\"!showClear || !showPwdVisible || !isWordLimitVisible\"\n >\n <slot name=\"suffix\" />\n <el-icon v-if=\"suffixIcon\" :class=\"nsInput.e('icon')\">\n <component :is=\"suffixIcon\" />\n </el-icon>\n </template>\n <el-icon\n v-if=\"showClear\"\n :class=\"[nsInput.e('icon'), nsInput.e('clear')]\"\n @mousedown.prevent=\"NOOP\"\n @click=\"clear\"\n >\n <component :is=\"clearIcon\" />\n </el-icon>\n <el-icon\n v-if=\"showPwdVisible\"\n :class=\"[nsInput.e('icon'), nsInput.e('password')]\"\n @click=\"handlePasswordVisible\"\n @mousedown.prevent=\"NOOP\"\n @mouseup.prevent=\"NOOP\"\n >\n <slot name=\"password-icon\" :visible=\"passwordVisible\">\n <component :is=\"passwordIcon\" />\n </slot>\n </el-icon>\n <span\n v-if=\"isWordLimitVisible\"\n :class=\"[\n nsInput.e('count'),\n nsInput.is('outside', wordLimitPosition === 'outside'),\n ]\"\n >\n <span :class=\"nsInput.e('count-inner')\">\n {{ textLength }} / {{ maxlength }}\n </span>\n </span>\n <el-icon\n v-if=\"validateState && validateIcon && needStatusIcon\"\n :class=\"[\n nsInput.e('icon'),\n nsInput.e('validateIcon'),\n nsInput.is('loading', validateState === 'validating'),\n ]\"\n >\n <component :is=\"validateIcon\" />\n </el-icon>\n </span>\n </span>\n </div>\n\n <!-- append slot -->\n <div v-if=\"$slots.append\" :class=\"nsInput.be('group', 'append')\">\n <slot name=\"append\" />\n </div>\n </template>\n\n <!-- textarea -->\n <template v-else>\n <textarea\n :id=\"inputId\"\n ref=\"textarea\"\n :class=\"[\n nsTextarea.e('inner'),\n nsInput.is('focus', isFocused),\n nsTextarea.is('clearable', clearable),\n ]\"\n v-bind=\"attrs\"\n :name=\"name\"\n :minlength=\"countGraphemes ? undefined : minlength\"\n :maxlength=\"countGraphemes ? undefined : maxlength\"\n :tabindex=\"tabindex\"\n :disabled=\"inputDisabled\"\n :readonly=\"readonly\"\n :autocomplete=\"autocomplete\"\n :style=\"textareaStyle\"\n :aria-label=\"ariaLabel\"\n :placeholder=\"placeholder\"\n :form=\"form\"\n :autofocus=\"autofocus\"\n :rows=\"rows\"\n :role=\"containerRole\"\n :inputmode=\"inputmode\"\n @compositionstart=\"handleCompositionStart\"\n @compositionupdate=\"handleCompositionUpdate\"\n @compositionend=\"handleCompositionEnd\"\n @input=\"handleInput\"\n @focus=\"handleFocus\"\n @blur=\"handleBlur\"\n @change=\"handleChange\"\n @keydown=\"handleKeydown\"\n />\n <el-icon\n v-if=\"showClear\"\n :class=\"[nsTextarea.e('icon'), nsTextarea.e('clear')]\"\n @mousedown.prevent=\"NOOP\"\n @click=\"clear\"\n >\n <component :is=\"clearIcon\" />\n </el-icon>\n <span\n v-if=\"isWordLimitVisible\"\n :style=\"countStyle\"\n :class=\"[\n nsInput.e('count'),\n nsInput.is('outside', wordLimitPosition === 'outside'),\n ]\"\n >\n {{ textLength }} / {{ maxlength }}\n </span>\n </template>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n computed,\n nextTick,\n onMounted,\n ref,\n shallowRef,\n toRef,\n useAttrs as useRawAttrs,\n useSlots,\n watch,\n} from 'vue'\nimport { useResizeObserver } from '@vueuse/core'\nimport { isNil } from 'lodash-unified'\nimport { ElIcon } from '@element-plus/components/icon'\nimport { Hide, View } from '@element-plus/icons-vue'\nimport {\n useFormDisabled,\n useFormItem,\n useFormItemInputId,\n useFormSize,\n} from '@element-plus/components/form'\nimport {\n NOOP,\n ValidateComponentsMap,\n debugWarn,\n isClient,\n isObject,\n} from '@element-plus/utils'\nimport {\n useAttrs,\n useComposition,\n useCursor,\n useFocusController,\n useNamespace,\n} from '@element-plus/hooks'\nimport {\n CHANGE_EVENT,\n INPUT_EVENT,\n UPDATE_MODEL_EVENT,\n} from '@element-plus/constants'\nimport { calcTextareaHeight, looseToNumber } from './utils'\nimport { inputEmits, inputPropsDefaults } from './input'\n\nimport type { StyleValue } from 'vue'\nimport type { InputProps } from './input'\n\ntype TargetElement = HTMLInputElement | HTMLTextAreaElement\n\nconst COMPONENT_NAME = 'ElInput'\ndefineOptions({\n name: COMPONENT_NAME,\n inheritAttrs: false,\n})\nconst props = withDefaults(defineProps<InputProps>(), inputPropsDefaults)\nconst emit = defineEmits(inputEmits)\n\nconst rawAttrs = useRawAttrs()\nconst slots = useSlots()\n\nconst containerKls = computed(() => [\n props.type === 'textarea' ? nsTextarea.b() : nsInput.b(),\n nsInput.m(inputSize.value),\n nsInput.is('disabled', inputDisabled.value),\n nsInput.is('exceed', inputExceed.value),\n {\n [nsInput.b('group')]: slots.prepend || slots.append,\n [nsInput.m('prefix')]: slots.prefix || props.prefixIcon,\n [nsInput.m('suffix')]:\n slots.suffix || props.suffixIcon || props.clearable || props.showPassword,\n [nsInput.bm('suffix', 'password-clear')]:\n showClear.value && showPwdVisible.value,\n [nsInput.b('hidden')]: props.type === 'hidden',\n },\n rawAttrs.class,\n])\n\nconst wrapperKls = computed(() => [\n nsInput.e('wrapper'),\n nsInput.is('focus', isFocused.value),\n])\n\nconst attrs = useAttrs()\nconst maxlength = computed(() => props.maxlength?.toString())\n\nconst { form: elForm, formItem: elFormItem } = useFormItem()\nconst { inputId } = useFormItemInputId(props, {\n formItemContext: elFormItem,\n})\nconst inputSize = useFormSize()\nconst inputDisabled = useFormDisabled()\nconst nsInput = useNamespace('input')\nconst nsTextarea = useNamespace('textarea')\n\nconst input = shallowRef<HTMLInputElement>()\nconst textarea = shallowRef<HTMLTextAreaElement>()\n\nconst hovering = ref(false)\nconst passwordVisible = ref(false)\nconst countStyle = ref<StyleValue>()\nconst textareaCalcStyle = shallowRef(props.inputStyle)\nconst saveValue = ref('')\n\nconst _ref = computed(() => input.value || textarea.value)\n\n// wrapperRef for type=\"text\", handleFocus and handleBlur for type=\"textarea\"\n// @ts-ignore - used in template ref binding, TS cannot detect template usage\nconst { wrapperRef, isFocused, handleFocus, handleBlur } = useFocusController(\n _ref,\n {\n disabled: inputDisabled,\n afterBlur() {\n if (props.validateEvent) {\n elFormItem?.validate?.('blur').catch((err) => debugWarn(err))\n }\n },\n }\n)\n\nconst needStatusIcon = computed(() => elForm?.statusIcon ?? false)\nconst validateState = computed(() => elFormItem?.validateState || '')\nconst validateIcon = computed(\n () => validateState.value && ValidateComponentsMap[validateState.value]\n)\nconst passwordIcon = computed(() => (passwordVisible.value ? View : Hide))\nconst containerStyle = computed<StyleValue>(() => [\n rawAttrs.style as StyleValue,\n])\nconst textareaStyle = computed<StyleValue>(() => [\n props.inputStyle,\n textareaCalcStyle.value,\n { resize: props.resize },\n])\nconst nativeInputValue = computed(() =>\n isNil(props.modelValue) ? '' : String(props.modelValue)\n)\nconst showClear = computed(\n () =>\n props.clearable &&\n !inputDisabled.value &&\n !props.readonly &&\n !!nativeInputValue.value &&\n (isFocused.value || hovering.value)\n)\nconst showPwdVisible = computed(\n () => props.showPassword && !inputDisabled.value && !!nativeInputValue.value\n)\nconst isWordLimitVisible = computed(\n () =>\n props.showWordLimit &&\n !!maxlength.value &&\n (props.type === 'text' || props.type === 'textarea') &&\n !inputDisabled.value &&\n !props.readonly &&\n !props.showPassword\n)\nconst textLength = computed(() => {\n if (props.countGraphemes && props.showWordLimit) {\n return props.countGraphemes(nativeInputValue.value)\n }\n return nativeInputValue.value.length\n})\nconst inputExceed = computed(\n () =>\n // show exceed style if length of initial value greater then maxlength\n !!isWordLimitVisible.value && textLength.value > Number(maxlength.value)\n)\nconst suffixVisible = computed(\n () =>\n !!slots.suffix ||\n !!props.suffixIcon ||\n showClear.value ||\n props.showPassword ||\n isWordLimitVisible.value ||\n (!!validateState.value && needStatusIcon.value)\n)\nconst hasModelModifiers = computed(\n () => !!Object.keys(props.modelModifiers).length\n)\n\nconst [recordCursor, setCursor] = useCursor(input)\n\nuseResizeObserver(textarea, (entries) => {\n onceInitSizeTextarea()\n if (\n !isWordLimitVisible.value ||\n (props.resize !== 'both' && props.resize !== 'horizontal')\n )\n return\n const entry = entries[0]\n const { width } = entry.contentRect\n countStyle.value = {\n /** right: 100% - width + padding(22) - right(10) */\n right: `calc(100% - ${width + 22 - 10}px)`,\n }\n})\n\nconst resizeTextarea = () => {\n const { type, autosize } = props\n\n if (!isClient || type !== 'textarea' || !textarea.value) return\n\n if (autosize) {\n const minRows = isObject(autosize) ? autosize.minRows : undefined\n const maxRows = isObject(autosize) ? autosize.maxRows : undefined\n const textareaStyle = calcTextareaHeight(textarea.value, minRows, maxRows)\n\n // If the scrollbar is displayed, the height of the textarea needs more space than the calculated height.\n // If set textarea height in this case, the scrollbar will not hide.\n // So we need to hide scrollbar first, and reset it in next tick.\n // see https://github.com/element-plus/element-plus/issues/8825\n textareaCalcStyle.value = {\n overflowY: 'hidden',\n ...textareaStyle,\n }\n\n nextTick(() => {\n // NOTE: Force repaint to make sure the style set above is applied.\n textarea.value!.offsetHeight\n textareaCalcStyle.value = textareaStyle\n })\n } else {\n textareaCalcStyle.value = {\n minHeight: calcTextareaHeight(textarea.value).minHeight,\n }\n }\n}\n\nconst createOnceInitResize = (resizeTextarea: () => void) => {\n let isInit = false\n return () => {\n if (isInit || !props.autosize) return\n const isElHidden = textarea.value?.offsetParent === null\n if (!isElHidden) {\n setTimeout(resizeTextarea)\n isInit = true\n }\n }\n}\n// fix: https://github.com/element-plus/element-plus/issues/12074\nconst onceInitSizeTextarea = createOnceInitResize(resizeTextarea)\n\nconst setNativeInputValue = () => {\n const input = _ref.value\n const formatterValue = props.formatter\n ? props.formatter(nativeInputValue.value)\n : nativeInputValue.value\n if (!input || input.value === formatterValue || props.type === 'file') return\n input.value = formatterValue\n}\n\nconst formatValue = (value: string) => {\n const { trim, number } = props.modelModifiers\n if (trim) {\n value = value.trim()\n }\n if (number) {\n value = `${looseToNumber(value)}`\n }\n if (props.formatter && props.parser) {\n value = props.parser(value)\n }\n return value\n}\n\nconst handleInput = async (event: Event) => {\n // should not emit input during composition\n // see: https://github.com/ElemeFE/element/issues/10516\n if (isComposing.value) return\n\n const { lazy } = props.modelModifiers\n let { value } = event.target as TargetElement\n let shouldForceNativeUpdate = false\n if (lazy) {\n emit(INPUT_EVENT, value)\n return\n }\n\n value = formatValue(value)\n\n if (props.countGraphemes && maxlength.value != null) {\n const limit = Number(maxlength.value)\n const graphemes = props.countGraphemes(value)\n const saveGraphemes = props.countGraphemes(saveValue.value)\n if (graphemes > limit && graphemes > saveGraphemes) {\n // If current value already exceeds limit, block further input and keep exceed state.\n if (saveGraphemes > limit) {\n value = saveValue.value\n shouldForceNativeUpdate = true\n } else {\n // Keep unchanged suffix like native maxlength behavior.\n // Instead of truncating from the end of the whole string,\n // only limit the inserted segment to available capacity.\n const prevValue = saveValue.value\n const nextValue = value\n let prefixLen = 0\n\n while (\n prefixLen < prevValue.length &&\n prefixLen < nextValue.length &&\n prevValue[prefixLen] === nextValue[prefixLen]\n ) {\n prefixLen++\n }\n\n let prevSuffixIndex = prevValue.length\n let nextSuffixIndex = nextValue.length\n while (\n prevSuffixIndex > prefixLen &&\n nextSuffixIndex > prefixLen &&\n prevValue[prevSuffixIndex - 1] === nextValue[nextSuffixIndex - 1]\n ) {\n prevSuffixIndex--\n nextSuffixIndex--\n }\n\n const before = nextValue.slice(0, prefixLen)\n const removed = prevValue.slice(prefixLen, prevSuffixIndex)\n const inserted = nextValue.slice(prefixLen, nextSuffixIndex)\n const after = nextValue.slice(nextSuffixIndex)\n\n const removedCount = props.countGraphemes(removed)\n const baseCount = saveGraphemes - removedCount\n const availableInserted = Math.max(0, limit - baseCount)\n\n let acceptedInserted = ''\n if (availableInserted > 0) {\n // Use Intl.Segmenter for proper grapheme cluster iteration if available.\n if (typeof Intl !== 'undefined' && 'Segmenter' in Intl) {\n const segmenter = new Intl.Segmenter(undefined, {\n granularity: 'grapheme',\n })\n for (const { segment } of segmenter.segment(inserted)) {\n const candidate = acceptedInserted + segment\n const newCount = props.countGraphemes(candidate)\n if (newCount > availableInserted) break\n acceptedInserted = candidate\n }\n } else {\n // Fallback to code-point iteration for older environments.\n for (const char of Array.from(inserted)) {\n const candidate = acceptedInserted + char\n const newCount = props.countGraphemes(candidate)\n if (newCount > availableInserted) break\n acceptedInserted = candidate\n }\n }\n }\n\n value = before + acceptedInserted + after\n shouldForceNativeUpdate = true\n }\n }\n }\n\n // hack for https://github.com/ElemeFE/element/issues/8548\n // should remove the following line when we don't support IE\n if (String(value) === nativeInputValue.value) {\n // preserve native features while being compatible with #9501\n if (props.formatter || shouldForceNativeUpdate) {\n const target = event.target as TargetElement\n const blockedValue = target.value\n const selectionStart = target.selectionStart\n const selectionEnd = target.selectionEnd\n setNativeInputValue()\n // Keep caret position stable when input is blocked and value is reset.\n if (\n shouldForceNativeUpdate &&\n _ref.value &&\n selectionStart != null &&\n selectionEnd != null\n ) {\n const restoredValue = _ref.value.value\n const afterTxt = blockedValue.slice(Math.max(0, selectionEnd))\n let caretPos = Math.min(selectionStart, restoredValue.length)\n\n if (afterTxt && restoredValue.endsWith(afterTxt)) {\n caretPos = restoredValue.length - afterTxt.length\n }\n\n _ref.value.setSelectionRange(caretPos, caretPos)\n }\n }\n return\n }\n saveValue.value = value\n\n recordCursor()\n emit(UPDATE_MODEL_EVENT, value)\n emit(INPUT_EVENT, value)\n\n // ensure native input value is controlled\n // see: https://github.com/ElemeFE/element/issues/12850\n await nextTick()\n\n if ((props.formatter && props.parser) || !hasModelModifiers.value) {\n setNativeInputValue()\n }\n setCursor()\n}\n\nconst handleChange = async (event: Event) => {\n let { value } = event.target as TargetElement\n\n value = formatValue(value)\n if (props.modelModifiers.lazy) {\n emit(UPDATE_MODEL_EVENT, value)\n }\n emit(CHANGE_EVENT, value, event)\n\n await nextTick()\n setNativeInputValue()\n}\n\nconst {\n isComposing,\n handleCompositionStart,\n handleCompositionUpdate,\n handleCompositionEnd,\n} = useComposition({ emit, afterComposition: handleInput })\n\nconst handlePasswordVisible = () => {\n passwordVisible.value = !passwordVisible.value\n}\n\nconst focus = () => _ref.value?.focus()\n\nconst blur = () => _ref.value?.blur()\n\nconst handleMouseLeave = (evt: MouseEvent) => {\n hovering.value = false\n emit('mouseleave', evt)\n}\n\nconst handleMouseEnter = (evt: MouseEvent) => {\n hovering.value = true\n emit('mouseenter', evt)\n}\n\nconst handleKeydown = (evt: KeyboardEvent) => {\n emit('keydown', evt)\n}\n\nconst select = () => {\n _ref.value?.select()\n}\n\nconst clear = (evt?: MouseEvent) => {\n emit(UPDATE_MODEL_EVENT, '')\n emit(CHANGE_EVENT, '')\n emit('clear', evt)\n emit(INPUT_EVENT, '')\n}\n\nwatch(\n () => props.modelValue,\n () => {\n nextTick(() => resizeTextarea())\n if (props.validateEvent) {\n elFormItem?.validate?.('change').catch((err) => debugWarn(err))\n }\n }\n)\n\nwatch(\n () => nativeInputValue.value,\n (val) => {\n saveValue.value = val\n },\n { immediate: true }\n)\n\n// native input value is set explicitly\n// do not use v-model / :value in template\n// see: https://github.com/ElemeFE/element/issues/14521\nwatch(nativeInputValue, (newValue) => {\n if (!_ref.value) {\n return\n }\n const { trim, number } = props.modelModifiers\n const elValue = _ref.value.value\n const displayValue =\n (number || props.type === 'number') && !/^0\\d/.test(elValue)\n ? `${looseToNumber(elValue)}`\n : elValue\n\n if (displayValue === newValue) {\n return\n }\n\n if (document.activeElement === _ref.value && _ref.value.type !== 'range') {\n if (trim && displayValue.trim() === newValue) {\n return\n }\n }\n\n setNativeInputValue()\n})\n\n// when change between <input> and <textarea>,\n// update DOM dependent value and styles\n// https://github.com/ElemeFE/element/issues/14857\nwatch(\n () => props.type,\n async () => {\n await nextTick()\n setNativeInputValue()\n resizeTextarea()\n }\n)\n\nonMounted(() => {\n if (!props.formatter && props.parser) {\n debugWarn(\n COMPONENT_NAME,\n 'If you set the parser, you also need to set the formatter.'\n )\n }\n setNativeInputValue()\n nextTick(resizeTextarea)\n})\n\ndefineExpose({\n /** @description HTML input element */\n input,\n /** @description HTML textarea element */\n textarea,\n /** @description HTML element, input or textarea */\n ref: _ref,\n /** @description style of textarea. */\n textareaStyle,\n\n /** @description from props (used on unit test) */\n autosize: toRef(props, 'autosize'),\n\n /** @description is input composing */\n isComposing,\n\n /** @description whether the password is visible */\n passwordVisible,\n\n /** @description HTML input element native method */\n focus,\n /** @description HTML input element native method */\n blur,\n /** @description HTML input element native method */\n select,\n /** @description clear input value */\n clear,\n /** @description resize textarea. */\n resizeTextarea,\n})\n</script>\n"],"mappings":""}
@@ -95,8 +95,8 @@ interface InputNumberProps {
95
95
  * @deprecated Removed after 3.0.0, Use `InputNumberProps` instead.
96
96
  */
97
97
  declare const inputNumberProps: {
98
- readonly inputmode: EpPropFinalized<(new (...args: any[]) => "text" | "none" | "search" | "email" | "tel" | "url" | "numeric" | "decimal") | (() => "text" | "none" | "search" | "email" | "tel" | "url" | "numeric" | "decimal" | undefined) | (((new (...args: any[]) => "text" | "none" | "search" | "email" | "tel" | "url" | "numeric" | "decimal") | (() => "text" | "none" | "search" | "email" | "tel" | "url" | "numeric" | "decimal" | undefined)) | null)[], unknown, unknown, undefined, boolean>;
99
- readonly align: EpPropFinalized<(new (...args: any[]) => "center" | "right" | "left") | (() => "center" | "right" | "left") | (((new (...args: any[]) => "center" | "right" | "left") | (() => "center" | "right" | "left")) | null)[], unknown, unknown, "center", boolean>;
98
+ readonly inputmode: EpPropFinalized<(new (...args: any[]) => "text" | "email" | "search" | "tel" | "url" | "none" | "numeric" | "decimal") | (() => "text" | "email" | "search" | "tel" | "url" | "none" | "numeric" | "decimal" | undefined) | (((new (...args: any[]) => "text" | "email" | "search" | "tel" | "url" | "none" | "numeric" | "decimal") | (() => "text" | "email" | "search" | "tel" | "url" | "none" | "numeric" | "decimal" | undefined)) | null)[], unknown, unknown, undefined, boolean>;
99
+ readonly align: EpPropFinalized<(new (...args: any[]) => "center" | "left" | "right") | (() => "center" | "left" | "right") | (((new (...args: any[]) => "center" | "left" | "right") | (() => "center" | "left" | "right")) | null)[], unknown, unknown, "center", boolean>;
100
100
  readonly disabledScientific: BooleanConstructor;
101
101
  readonly ariaLabel: StringConstructor;
102
102
  readonly id: EpPropFinalized<StringConstructor, unknown, unknown, undefined, boolean>;
@@ -113,7 +113,7 @@ declare const inputNumberProps: {
113
113
  readonly readonly: BooleanConstructor;
114
114
  readonly disabled: EpPropFinalized<BooleanConstructor, unknown, unknown, undefined, boolean>;
115
115
  readonly size: {
116
- readonly type: vue.PropType<EpPropMergeType<StringConstructor, "" | "default" | "large" | "small", never>>;
116
+ readonly type: vue.PropType<EpPropMergeType<StringConstructor, "" | "default" | "small" | "large", never>>;
117
117
  readonly required: false;
118
118
  readonly validator: ((val: unknown) => boolean) | undefined;
119
119
  __epPropKey: true;
@@ -18,8 +18,8 @@ declare const __VLS_base: vue.DefineComponent<InputNumberProps, {
18
18
  }, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
19
19
  blur: (e: FocusEvent) => void;
20
20
  focus: (e: FocusEvent) => void;
21
- "update:modelValue": (val: number | undefined) => void;
22
21
  change: (cur: number | undefined, prev: number | undefined) => void;
22
+ "update:modelValue": (val: number | undefined) => void;
23
23
  input: (val: number | null | undefined) => void;
24
24
  }, string, vue.PublicProps, Readonly<InputNumberProps> & Readonly<{
25
25
  onBlur?: ((e: FocusEvent) => any) | undefined;
@@ -28,13 +28,13 @@ declare const __VLS_base: vue.DefineComponent<InputNumberProps, {
28
28
  onInput?: ((val: number | null | undefined) => any) | undefined;
29
29
  "onUpdate:modelValue"?: ((val: number | undefined) => any) | undefined;
30
30
  }>, {
31
- disabled: boolean;
32
- validateEvent: boolean;
33
- valueOnClear: "min" | "max" | number | null;
34
31
  id: string;
32
+ disabled: boolean;
35
33
  readonly: boolean;
36
- inputmode: "text" | "none" | "search" | "email" | "tel" | "url" | "numeric" | "decimal";
34
+ validateEvent: boolean;
35
+ inputmode: "text" | "email" | "search" | "tel" | "url" | "none" | "numeric" | "decimal";
37
36
  max: number;
37
+ valueOnClear: "min" | "max" | number | null;
38
38
  min: number;
39
39
  align: "left" | "right" | "center";
40
40
  step: number;
@@ -4,13 +4,13 @@ const require_event = require('../../../constants/event.js');
4
4
  const require_event$1 = require('../../../utils/dom/event.js');
5
5
  const require_types = require('../../../utils/types.js');
6
6
  const require_error = require('../../../utils/error.js');
7
- const require_index = require('../../../hooks/use-locale/index.js');
8
- const require_index$1 = require('../../../hooks/use-namespace/index.js');
9
- const require_index$2 = require('../../icon/index.js');
7
+ const require_index = require('../../../directives/repeat-click/index.js');
8
+ const require_index$1 = require('../../../hooks/use-locale/index.js');
9
+ const require_index$2 = require('../../../hooks/use-namespace/index.js');
10
+ const require_index$3 = require('../../icon/index.js');
10
11
  const require_use_form_common_props = require('../../form/src/hooks/use-form-common-props.js');
11
12
  const require_use_form_item = require('../../form/src/hooks/use-form-item.js');
12
- const require_index$3 = require('../../input/index.js');
13
- const require_index$4 = require('../../../directives/repeat-click/index.js');
13
+ const require_index$4 = require('../../input/index.js');
14
14
  const require_input_number = require('./input-number.js');
15
15
  let lodash_unified = require("lodash-unified");
16
16
  let _element_plus_icons_vue = require("@element-plus/icons-vue");
@@ -28,8 +28,8 @@ var input_number_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (
28
28
  setup(__props, { expose: __expose, emit: __emit }) {
29
29
  const props = __props;
30
30
  const emit = __emit;
31
- const { t } = require_index.useLocale();
32
- const ns = require_index$1.useNamespace("input-number");
31
+ const { t } = require_index$1.useLocale();
32
+ const ns = require_index$2.useNamespace("input-number");
33
33
  const input = (0, vue.ref)();
34
34
  const data = (0, vue.reactive)({
35
35
  currentValue: props.modelValue,
@@ -239,21 +239,21 @@ var input_number_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (
239
239
  "aria-label": (0, vue.unref)(t)("el.inputNumber.decrease"),
240
240
  class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("decrease"), (0, vue.unref)(ns).is("disabled", minDisabled.value)]),
241
241
  onKeydown: (0, vue.withKeys)(decrease, ["enter"])
242
- }, [(0, vue.renderSlot)(_ctx.$slots, "decrease-icon", {}, () => [(0, vue.createVNode)((0, vue.unref)(require_index$2.ElIcon), null, {
242
+ }, [(0, vue.renderSlot)(_ctx.$slots, "decrease-icon", {}, () => [(0, vue.createVNode)((0, vue.unref)(require_index$3.ElIcon), null, {
243
243
  default: (0, vue.withCtx)(() => [controlsAtRight.value ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(_element_plus_icons_vue.ArrowDown), { key: 0 })) : ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(_element_plus_icons_vue.Minus), { key: 1 }))]),
244
244
  _: 1
245
- })])], 42, _hoisted_1)), [[(0, vue.unref)(require_index$4.vRepeatClick), decrease]]) : (0, vue.createCommentVNode)("v-if", true),
245
+ })])], 42, _hoisted_1)), [[(0, vue.unref)(require_index.vRepeatClick), decrease]]) : (0, vue.createCommentVNode)("v-if", true),
246
246
  __props.controls ? (0, vue.withDirectives)(((0, vue.openBlock)(), (0, vue.createElementBlock)("span", {
247
247
  key: 1,
248
248
  role: "button",
249
249
  "aria-label": (0, vue.unref)(t)("el.inputNumber.increase"),
250
250
  class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("increase"), (0, vue.unref)(ns).is("disabled", maxDisabled.value)]),
251
251
  onKeydown: (0, vue.withKeys)(increase, ["enter"])
252
- }, [(0, vue.renderSlot)(_ctx.$slots, "increase-icon", {}, () => [(0, vue.createVNode)((0, vue.unref)(require_index$2.ElIcon), null, {
252
+ }, [(0, vue.renderSlot)(_ctx.$slots, "increase-icon", {}, () => [(0, vue.createVNode)((0, vue.unref)(require_index$3.ElIcon), null, {
253
253
  default: (0, vue.withCtx)(() => [controlsAtRight.value ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(_element_plus_icons_vue.ArrowUp), { key: 0 })) : ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(_element_plus_icons_vue.Plus), { key: 1 }))]),
254
254
  _: 1
255
- })])], 42, _hoisted_2)), [[(0, vue.unref)(require_index$4.vRepeatClick), increase]]) : (0, vue.createCommentVNode)("v-if", true),
256
- (0, vue.createVNode)((0, vue.unref)(require_index$3.ElInput), {
255
+ })])], 42, _hoisted_2)), [[(0, vue.unref)(require_index.vRepeatClick), increase]]) : (0, vue.createCommentVNode)("v-if", true),
256
+ (0, vue.createVNode)((0, vue.unref)(require_index$4.ElInput), {
257
257
  id: __props.id,
258
258
  ref_key: "input",
259
259
  ref: input,