@element-plus/nightly 0.0.20220104 → 0.0.20220108

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 (367) hide show
  1. package/attributes.json +1 -1
  2. package/dist/index.css +1 -1
  3. package/dist/index.full.js +655 -617
  4. package/dist/index.full.min.js +8 -8
  5. package/dist/index.full.min.js.map +1 -1
  6. package/dist/index.full.min.mjs +8 -8
  7. package/dist/index.full.min.mjs.map +1 -1
  8. package/dist/index.full.mjs +653 -614
  9. package/es/components/cascader/index.d.ts +4 -0
  10. package/es/components/cascader/src/index.vue.d.ts +2 -0
  11. package/es/components/cascader-panel/src/index.vue_vue_type_script_lang.mjs +5 -4
  12. package/es/components/cascader-panel/src/index.vue_vue_type_script_lang.mjs.map +1 -1
  13. package/es/components/cascader-panel/src/index.vue_vue_type_template_id_97c48f5c_lang.mjs.map +1 -1
  14. package/es/components/cascader-panel/src/menu.vue.d.ts +1 -0
  15. package/es/components/cascader-panel/src/menu.vue_vue_type_script_lang.mjs +6 -0
  16. package/es/components/cascader-panel/src/menu.vue_vue_type_script_lang.mjs.map +1 -1
  17. package/es/components/cascader-panel/src/menu.vue_vue_type_template_id_9c79e4e2_lang.mjs +19 -2
  18. package/es/components/cascader-panel/src/menu.vue_vue_type_template_id_9c79e4e2_lang.mjs.map +1 -1
  19. package/es/components/cascader-panel/src/types.d.ts +1 -0
  20. package/es/components/cascader-panel/src/types.mjs.map +1 -1
  21. package/es/components/checkbox/index.d.ts +6 -6
  22. package/es/components/checkbox/src/checkbox-button.vue.d.ts +2 -2
  23. package/es/components/checkbox/src/checkbox.vue.d.ts +2 -2
  24. package/es/components/config-provider/index.d.ts +6 -2
  25. package/es/components/config-provider/index.mjs +1 -1
  26. package/es/components/config-provider/src/config-provider.d.ts +13 -5
  27. package/es/components/config-provider/src/config-provider.mjs +12 -5
  28. package/es/components/config-provider/src/config-provider.mjs.map +1 -1
  29. package/es/components/date-picker/index.d.ts +4 -4
  30. package/es/components/date-picker/src/date-picker-com/basic-cell-render.mjs +1 -1
  31. package/es/components/date-picker/src/date-picker-com/basic-cell-render.mjs.map +1 -1
  32. package/es/components/date-picker/src/date-picker.d.ts +2 -2
  33. package/es/components/form/index.d.ts +1 -0
  34. package/es/components/form/src/form.vue.d.ts +1 -0
  35. package/es/components/form/src/form.vue_vue_type_script_lang.mjs +14 -0
  36. package/es/components/form/src/form.vue_vue_type_script_lang.mjs.map +1 -1
  37. package/es/components/form/src/form.vue_vue_type_template_id_602d6cf6_lang.mjs +1 -4
  38. package/es/components/form/src/form.vue_vue_type_template_id_602d6cf6_lang.mjs.map +1 -1
  39. package/es/components/index.mjs +2 -2
  40. package/es/components/input/index.d.ts +1 -0
  41. package/es/components/input/src/input.vue.d.ts +1 -0
  42. package/es/components/input/src/input.vue_vue_type_script_lang.mjs +1 -0
  43. package/es/components/input/src/input.vue_vue_type_script_lang.mjs.map +1 -1
  44. package/es/components/input/src/input.vue_vue_type_template_id_3290dcb6_lang.mjs +1 -1
  45. package/es/components/input/src/input.vue_vue_type_template_id_3290dcb6_lang.mjs.map +1 -1
  46. package/es/components/input-number/index.d.ts +5 -1
  47. package/es/components/input-number/src/input-number.vue.d.ts +5 -1
  48. package/es/components/input-number/src/input-number.vue_vue_type_script_lang.mjs +15 -1
  49. package/es/components/input-number/src/input-number.vue_vue_type_script_lang.mjs.map +1 -1
  50. package/es/components/input-number/src/input-number.vue_vue_type_template_id_dec60af6_lang.mjs +5 -4
  51. package/es/components/input-number/src/input-number.vue_vue_type_template_id_dec60af6_lang.mjs.map +1 -1
  52. package/es/components/message/src/message-method.mjs +5 -1
  53. package/es/components/message/src/message-method.mjs.map +1 -1
  54. package/es/components/message/src/message.d.ts +3 -0
  55. package/es/components/message/src/message.mjs.map +1 -1
  56. package/es/components/message/src/message.vue.d.ts +2 -2
  57. package/es/components/message-box/src/index.vue_vue_type_script_lang.mjs.map +1 -1
  58. package/es/components/message-box/src/index.vue_vue_type_template_id_7035e868_lang.mjs +1 -0
  59. package/es/components/message-box/src/index.vue_vue_type_template_id_7035e868_lang.mjs.map +1 -1
  60. package/es/components/notification/src/notification.vue.d.ts +4 -4
  61. package/es/components/popper/src/content.vue_vue_type_script_lang.mjs.map +1 -1
  62. package/es/components/popper/src/content.vue_vue_type_template_id_611b76f0_lang.mjs +1 -0
  63. package/es/components/popper/src/content.vue_vue_type_template_id_611b76f0_lang.mjs.map +1 -1
  64. package/es/components/radio/index.d.ts +6 -6
  65. package/es/components/radio/index.mjs +2 -2
  66. package/es/components/radio/src/radio-button.mjs +11 -5
  67. package/es/components/radio/src/radio-button.mjs.map +1 -1
  68. package/es/components/radio/src/radio-button.vue.d.ts +2 -2
  69. package/es/components/radio/src/radio-button.vue_vue_type_script_lang.mjs +1 -1
  70. package/es/components/radio/src/radio-button2.mjs +5 -11
  71. package/es/components/radio/src/radio-button2.mjs.map +1 -1
  72. package/es/components/radio/src/radio.vue.d.ts +2 -2
  73. package/es/components/rate/index.d.ts +7 -1
  74. package/es/components/rate/src/rate.d.ts +2 -0
  75. package/es/components/rate/src/rate.mjs +5 -0
  76. package/es/components/rate/src/rate.mjs.map +1 -1
  77. package/es/components/rate/src/rate.vue.d.ts +7 -1
  78. package/es/components/rate/src/rate.vue_vue_type_script_lang.mjs +6 -0
  79. package/es/components/rate/src/rate.vue_vue_type_script_lang.mjs.map +1 -1
  80. package/es/components/rate/src/rate.vue_vue_type_template_id_38c42df6_lang.mjs +3 -3
  81. package/es/components/rate/src/rate.vue_vue_type_template_id_38c42df6_lang.mjs.map +1 -1
  82. package/es/components/select/index.d.ts +1 -1
  83. package/es/components/select/src/select.vue.d.ts +1 -1
  84. package/es/components/select-v2/index.d.ts +2 -2
  85. package/es/components/select-v2/src/select.vue.d.ts +1 -1
  86. package/es/components/slider/index.d.ts +22 -6
  87. package/es/components/slider/src/index.vue.d.ts +11 -3
  88. package/es/components/slider/src/index.vue_vue_type_script_lang.mjs +21 -2
  89. package/es/components/slider/src/index.vue_vue_type_script_lang.mjs.map +1 -1
  90. package/es/components/slider/src/index.vue_vue_type_template_id_24c42d04_lang.mjs +19 -19
  91. package/es/components/slider/src/index.vue_vue_type_template_id_24c42d04_lang.mjs.map +1 -1
  92. package/es/components/switch/index.d.ts +7 -2
  93. package/es/components/switch/src/switch.d.ts +2 -0
  94. package/es/components/switch/src/switch.mjs +5 -0
  95. package/es/components/switch/src/switch.mjs.map +1 -1
  96. package/es/components/switch/src/switch.vue.d.ts +7 -2
  97. package/es/components/switch/src/switch.vue_vue_type_script_lang.mjs +10 -1
  98. package/es/components/switch/src/switch.vue_vue_type_script_lang.mjs.map +1 -1
  99. package/es/components/switch/src/switch.vue_vue_type_template_id_538fbc85_lang.mjs +1 -1
  100. package/es/components/switch/src/switch.vue_vue_type_template_id_538fbc85_lang.mjs.map +1 -1
  101. package/es/components/table/index.d.ts +9 -0
  102. package/es/components/table/src/table/style-helper.d.ts +7 -0
  103. package/es/components/table/src/table/style-helper.mjs +20 -17
  104. package/es/components/table/src/table/style-helper.mjs.map +1 -1
  105. package/es/components/table/src/table-body/index.mjs +5 -3
  106. package/es/components/table/src/table-body/index.mjs.map +1 -1
  107. package/es/components/table/src/table-body/styles-helper.d.ts +0 -1
  108. package/es/components/table/src/table-body/styles-helper.mjs +10 -17
  109. package/es/components/table/src/table-body/styles-helper.mjs.map +1 -1
  110. package/es/components/table/src/table-column/defaults.d.ts +1 -0
  111. package/es/components/table/src/table-column/defaults.mjs.map +1 -1
  112. package/es/components/table/src/table-column/index.mjs +1 -0
  113. package/es/components/table/src/table-column/index.mjs.map +1 -1
  114. package/es/components/table/src/table-footer/index.d.ts +4 -2
  115. package/es/components/table/src/table-footer/index.mjs +33 -18
  116. package/es/components/table/src/table-footer/index.mjs.map +1 -1
  117. package/es/components/table/src/table-footer/style-helper.d.ts +4 -2
  118. package/es/components/table/src/table-footer/style-helper.mjs +28 -31
  119. package/es/components/table/src/table-footer/style-helper.mjs.map +1 -1
  120. package/es/components/table/src/table-header/index.d.ts +3 -2
  121. package/es/components/table/src/table-header/index.mjs +89 -51
  122. package/es/components/table/src/table-header/index.mjs.map +1 -1
  123. package/es/components/table/src/table-header/style.helper.d.ts +1 -1
  124. package/es/components/table/src/table-header/style.helper.mjs +14 -24
  125. package/es/components/table/src/table-header/style.helper.mjs.map +1 -1
  126. package/es/components/table/src/table-header/utils-helper.mjs +1 -0
  127. package/es/components/table/src/table-header/utils-helper.mjs.map +1 -1
  128. package/es/components/table/src/table-layout.d.ts +1 -0
  129. package/es/components/table/src/table-layout.mjs +8 -3
  130. package/es/components/table/src/table-layout.mjs.map +1 -1
  131. package/es/components/table/src/table.vue.d.ts +9 -0
  132. package/es/components/table/src/table.vue_vue_type_script_lang.mjs +12 -2
  133. package/es/components/table/src/table.vue_vue_type_script_lang.mjs.map +1 -1
  134. package/es/components/table/src/table.vue_vue_type_template_id_4a1660ad_lang.mjs +62 -213
  135. package/es/components/table/src/table.vue_vue_type_template_id_4a1660ad_lang.mjs.map +1 -1
  136. package/es/components/table/src/util.d.ts +16 -2
  137. package/es/components/table/src/util.mjs +99 -6
  138. package/es/components/table/src/util.mjs.map +1 -1
  139. package/es/components/tabs/index.d.ts +4 -4
  140. package/es/components/tabs/src/tab-pane.vue.d.ts +2 -2
  141. package/es/components/time-picker/index.d.ts +4 -4
  142. package/es/components/time-picker/src/common/picker.vue.d.ts +2 -2
  143. package/es/components/time-picker/src/time-picker.d.ts +2 -2
  144. package/es/components/transfer/src/transfer-panel.vue.d.ts +1 -2
  145. package/es/components/transfer/src/transfer-panel.vue_vue_type_script_lang.mjs +2 -13
  146. package/es/components/transfer/src/transfer-panel.vue_vue_type_script_lang.mjs.map +1 -1
  147. package/es/components/transfer/src/transfer-panel.vue_vue_type_template_id_1a7d1f9c_lang.mjs +5 -18
  148. package/es/components/transfer/src/transfer-panel.vue_vue_type_template_id_1a7d1f9c_lang.mjs.map +1 -1
  149. package/es/defaults.d.ts +3 -1
  150. package/es/hooks/index.mjs +1 -1
  151. package/es/hooks/use-global-config/index.d.ts +3 -1
  152. package/es/hooks/use-global-config/index.mjs +3 -2
  153. package/es/hooks/use-global-config/index.mjs.map +1 -1
  154. package/es/hooks/use-id/index.mjs +2 -2
  155. package/es/hooks/use-id/index.mjs.map +1 -1
  156. package/es/hooks/use-locale/index.d.ts +2 -253
  157. package/es/hooks/use-locale/index.mjs +9 -29
  158. package/es/hooks/use-locale/index.mjs.map +1 -1
  159. package/es/hooks/use-popper-container/index.mjs +2 -2
  160. package/es/hooks/use-popper-container/index.mjs.map +1 -1
  161. package/es/index.d.ts +4 -1
  162. package/es/index.mjs +4 -3
  163. package/es/index.mjs.map +1 -1
  164. package/es/version.d.ts +1 -1
  165. package/es/version.mjs +1 -1
  166. package/es/version.mjs.map +1 -1
  167. package/lib/components/cascader/index.d.ts +4 -0
  168. package/lib/components/cascader/src/index.vue.d.ts +2 -0
  169. package/lib/components/cascader-panel/src/index.vue_vue_type_script_lang.js +5 -4
  170. package/lib/components/cascader-panel/src/index.vue_vue_type_script_lang.js.map +1 -1
  171. package/lib/components/cascader-panel/src/index.vue_vue_type_template_id_97c48f5c_lang.js.map +1 -1
  172. package/lib/components/cascader-panel/src/menu.vue.d.ts +1 -0
  173. package/lib/components/cascader-panel/src/menu.vue_vue_type_script_lang.js +10 -4
  174. package/lib/components/cascader-panel/src/menu.vue_vue_type_script_lang.js.map +1 -1
  175. package/lib/components/cascader-panel/src/menu.vue_vue_type_template_id_9c79e4e2_lang.js +18 -1
  176. package/lib/components/cascader-panel/src/menu.vue_vue_type_template_id_9c79e4e2_lang.js.map +1 -1
  177. package/lib/components/cascader-panel/src/types.d.ts +1 -0
  178. package/lib/components/cascader-panel/src/types.js.map +1 -1
  179. package/lib/components/checkbox/index.d.ts +6 -6
  180. package/lib/components/checkbox/src/checkbox-button.vue.d.ts +2 -2
  181. package/lib/components/checkbox/src/checkbox.vue.d.ts +2 -2
  182. package/lib/components/config-provider/index.d.ts +6 -2
  183. package/lib/components/config-provider/index.js +1 -0
  184. package/lib/components/config-provider/index.js.map +1 -1
  185. package/lib/components/config-provider/src/config-provider.d.ts +13 -5
  186. package/lib/components/config-provider/src/config-provider.js +13 -5
  187. package/lib/components/config-provider/src/config-provider.js.map +1 -1
  188. package/lib/components/date-picker/index.d.ts +4 -4
  189. package/lib/components/date-picker/src/date-picker-com/basic-cell-render.js +1 -1
  190. package/lib/components/date-picker/src/date-picker-com/basic-cell-render.js.map +1 -1
  191. package/lib/components/date-picker/src/date-picker.d.ts +2 -2
  192. package/lib/components/form/index.d.ts +1 -0
  193. package/lib/components/form/src/form.vue.d.ts +1 -0
  194. package/lib/components/form/src/form.vue_vue_type_script_lang.js +14 -0
  195. package/lib/components/form/src/form.vue_vue_type_script_lang.js.map +1 -1
  196. package/lib/components/form/src/form.vue_vue_type_template_id_602d6cf6_lang.js +1 -4
  197. package/lib/components/form/src/form.vue_vue_type_template_id_602d6cf6_lang.js.map +1 -1
  198. package/lib/components/index.js +2 -1
  199. package/lib/components/index.js.map +1 -1
  200. package/lib/components/input/index.d.ts +1 -0
  201. package/lib/components/input/src/input.vue.d.ts +1 -0
  202. package/lib/components/input/src/input.vue_vue_type_script_lang.js +1 -0
  203. package/lib/components/input/src/input.vue_vue_type_script_lang.js.map +1 -1
  204. package/lib/components/input/src/input.vue_vue_type_template_id_3290dcb6_lang.js +1 -1
  205. package/lib/components/input/src/input.vue_vue_type_template_id_3290dcb6_lang.js.map +1 -1
  206. package/lib/components/input-number/index.d.ts +5 -1
  207. package/lib/components/input-number/src/input-number.vue.d.ts +5 -1
  208. package/lib/components/input-number/src/input-number.vue_vue_type_script_lang.js +18 -4
  209. package/lib/components/input-number/src/input-number.vue_vue_type_script_lang.js.map +1 -1
  210. package/lib/components/input-number/src/input-number.vue_vue_type_template_id_dec60af6_lang.js +5 -4
  211. package/lib/components/input-number/src/input-number.vue_vue_type_template_id_dec60af6_lang.js.map +1 -1
  212. package/lib/components/message/src/message-method.js +5 -1
  213. package/lib/components/message/src/message-method.js.map +1 -1
  214. package/lib/components/message/src/message.d.ts +3 -0
  215. package/lib/components/message/src/message.js.map +1 -1
  216. package/lib/components/message/src/message.vue.d.ts +2 -2
  217. package/lib/components/message-box/src/index.vue_vue_type_script_lang.js.map +1 -1
  218. package/lib/components/message-box/src/index.vue_vue_type_template_id_7035e868_lang.js +1 -0
  219. package/lib/components/message-box/src/index.vue_vue_type_template_id_7035e868_lang.js.map +1 -1
  220. package/lib/components/notification/src/notification.vue.d.ts +4 -4
  221. package/lib/components/popper/src/content.vue_vue_type_script_lang.js.map +1 -1
  222. package/lib/components/popper/src/content.vue_vue_type_template_id_611b76f0_lang.js +1 -0
  223. package/lib/components/popper/src/content.vue_vue_type_template_id_611b76f0_lang.js.map +1 -1
  224. package/lib/components/radio/index.d.ts +6 -6
  225. package/lib/components/radio/index.js +2 -2
  226. package/lib/components/radio/src/radio-button.js +10 -5
  227. package/lib/components/radio/src/radio-button.js.map +1 -1
  228. package/lib/components/radio/src/radio-button.vue.d.ts +2 -2
  229. package/lib/components/radio/src/radio-button.vue_vue_type_script_lang.js +1 -1
  230. package/lib/components/radio/src/radio-button2.js +5 -10
  231. package/lib/components/radio/src/radio-button2.js.map +1 -1
  232. package/lib/components/radio/src/radio.vue.d.ts +2 -2
  233. package/lib/components/rate/index.d.ts +7 -1
  234. package/lib/components/rate/src/rate.d.ts +2 -0
  235. package/lib/components/rate/src/rate.js +5 -0
  236. package/lib/components/rate/src/rate.js.map +1 -1
  237. package/lib/components/rate/src/rate.vue.d.ts +7 -1
  238. package/lib/components/rate/src/rate.vue_vue_type_script_lang.js +6 -0
  239. package/lib/components/rate/src/rate.vue_vue_type_script_lang.js.map +1 -1
  240. package/lib/components/rate/src/rate.vue_vue_type_template_id_38c42df6_lang.js +2 -2
  241. package/lib/components/rate/src/rate.vue_vue_type_template_id_38c42df6_lang.js.map +1 -1
  242. package/lib/components/select/index.d.ts +1 -1
  243. package/lib/components/select/src/select.vue.d.ts +1 -1
  244. package/lib/components/select-v2/index.d.ts +2 -2
  245. package/lib/components/select-v2/src/select.vue.d.ts +1 -1
  246. package/lib/components/slider/index.d.ts +22 -6
  247. package/lib/components/slider/src/index.vue.d.ts +11 -3
  248. package/lib/components/slider/src/index.vue_vue_type_script_lang.js +21 -2
  249. package/lib/components/slider/src/index.vue_vue_type_script_lang.js.map +1 -1
  250. package/lib/components/slider/src/index.vue_vue_type_template_id_24c42d04_lang.js +18 -18
  251. package/lib/components/slider/src/index.vue_vue_type_template_id_24c42d04_lang.js.map +1 -1
  252. package/lib/components/switch/index.d.ts +7 -2
  253. package/lib/components/switch/src/switch.d.ts +2 -0
  254. package/lib/components/switch/src/switch.js +5 -0
  255. package/lib/components/switch/src/switch.js.map +1 -1
  256. package/lib/components/switch/src/switch.vue.d.ts +7 -2
  257. package/lib/components/switch/src/switch.vue_vue_type_script_lang.js +9 -0
  258. package/lib/components/switch/src/switch.vue_vue_type_script_lang.js.map +1 -1
  259. package/lib/components/switch/src/switch.vue_vue_type_template_id_538fbc85_lang.js +1 -1
  260. package/lib/components/switch/src/switch.vue_vue_type_template_id_538fbc85_lang.js.map +1 -1
  261. package/lib/components/table/index.d.ts +9 -0
  262. package/lib/components/table/src/table/style-helper.d.ts +7 -0
  263. package/lib/components/table/src/table/style-helper.js +20 -21
  264. package/lib/components/table/src/table/style-helper.js.map +1 -1
  265. package/lib/components/table/src/table-body/index.js +5 -3
  266. package/lib/components/table/src/table-body/index.js.map +1 -1
  267. package/lib/components/table/src/table-body/styles-helper.d.ts +0 -1
  268. package/lib/components/table/src/table-body/styles-helper.js +10 -17
  269. package/lib/components/table/src/table-body/styles-helper.js.map +1 -1
  270. package/lib/components/table/src/table-column/defaults.d.ts +1 -0
  271. package/lib/components/table/src/table-column/defaults.js.map +1 -1
  272. package/lib/components/table/src/table-column/index.js +1 -0
  273. package/lib/components/table/src/table-column/index.js.map +1 -1
  274. package/lib/components/table/src/table-footer/index.d.ts +4 -2
  275. package/lib/components/table/src/table-footer/index.js +32 -17
  276. package/lib/components/table/src/table-footer/index.js.map +1 -1
  277. package/lib/components/table/src/table-footer/style-helper.d.ts +4 -2
  278. package/lib/components/table/src/table-footer/style-helper.js +28 -31
  279. package/lib/components/table/src/table-footer/style-helper.js.map +1 -1
  280. package/lib/components/table/src/table-header/index.d.ts +3 -2
  281. package/lib/components/table/src/table-header/index.js +89 -51
  282. package/lib/components/table/src/table-header/index.js.map +1 -1
  283. package/lib/components/table/src/table-header/style.helper.d.ts +1 -1
  284. package/lib/components/table/src/table-header/style.helper.js +14 -24
  285. package/lib/components/table/src/table-header/style.helper.js.map +1 -1
  286. package/lib/components/table/src/table-header/utils-helper.js +1 -0
  287. package/lib/components/table/src/table-header/utils-helper.js.map +1 -1
  288. package/lib/components/table/src/table-layout.d.ts +1 -0
  289. package/lib/components/table/src/table-layout.js +8 -3
  290. package/lib/components/table/src/table-layout.js.map +1 -1
  291. package/lib/components/table/src/table.vue.d.ts +9 -0
  292. package/lib/components/table/src/table.vue_vue_type_script_lang.js +12 -2
  293. package/lib/components/table/src/table.vue_vue_type_script_lang.js.map +1 -1
  294. package/lib/components/table/src/table.vue_vue_type_template_id_4a1660ad_lang.js +62 -213
  295. package/lib/components/table/src/table.vue_vue_type_template_id_4a1660ad_lang.js.map +1 -1
  296. package/lib/components/table/src/util.d.ts +16 -2
  297. package/lib/components/table/src/util.js +104 -5
  298. package/lib/components/table/src/util.js.map +1 -1
  299. package/lib/components/tabs/index.d.ts +4 -4
  300. package/lib/components/tabs/src/tab-pane.vue.d.ts +2 -2
  301. package/lib/components/time-picker/index.d.ts +4 -4
  302. package/lib/components/time-picker/src/common/picker.vue.d.ts +2 -2
  303. package/lib/components/time-picker/src/time-picker.d.ts +2 -2
  304. package/lib/components/transfer/src/transfer-panel.vue.d.ts +1 -2
  305. package/lib/components/transfer/src/transfer-panel.vue_vue_type_script_lang.js +3 -14
  306. package/lib/components/transfer/src/transfer-panel.vue_vue_type_script_lang.js.map +1 -1
  307. package/lib/components/transfer/src/transfer-panel.vue_vue_type_template_id_1a7d1f9c_lang.js +4 -17
  308. package/lib/components/transfer/src/transfer-panel.vue_vue_type_template_id_1a7d1f9c_lang.js.map +1 -1
  309. package/lib/defaults.d.ts +3 -1
  310. package/lib/hooks/index.js +1 -4
  311. package/lib/hooks/index.js.map +1 -1
  312. package/lib/hooks/use-global-config/index.d.ts +3 -1
  313. package/lib/hooks/use-global-config/index.js +3 -2
  314. package/lib/hooks/use-global-config/index.js.map +1 -1
  315. package/lib/hooks/use-id/index.js +2 -2
  316. package/lib/hooks/use-id/index.js.map +1 -1
  317. package/lib/hooks/use-locale/index.d.ts +2 -253
  318. package/lib/hooks/use-locale/index.js +8 -31
  319. package/lib/hooks/use-locale/index.js.map +1 -1
  320. package/lib/hooks/use-popper-container/index.js +2 -2
  321. package/lib/hooks/use-popper-container/index.js.map +1 -1
  322. package/lib/index.d.ts +4 -1
  323. package/lib/index.js +5 -5
  324. package/lib/index.js.map +1 -1
  325. package/lib/version.d.ts +1 -1
  326. package/lib/version.js +1 -1
  327. package/lib/version.js.map +1 -1
  328. package/package.json +2 -2
  329. package/tags.json +1 -1
  330. package/theme-chalk/el-cascader.css +1 -1
  331. package/theme-chalk/el-checkbox.css +1 -1
  332. package/theme-chalk/el-date-picker.css +1 -1
  333. package/theme-chalk/el-form.css +1 -1
  334. package/theme-chalk/el-pagination.css +1 -1
  335. package/theme-chalk/el-radio.css +1 -1
  336. package/theme-chalk/el-rate.css +1 -1
  337. package/theme-chalk/el-select-v2.css +1 -1
  338. package/theme-chalk/el-slider.css +1 -1
  339. package/theme-chalk/el-switch.css +1 -1
  340. package/theme-chalk/el-table.css +1 -1
  341. package/theme-chalk/el-tag.css +1 -1
  342. package/theme-chalk/el-time-picker.css +1 -1
  343. package/theme-chalk/el-time-select.css +1 -1
  344. package/theme-chalk/el-transfer.css +1 -1
  345. package/theme-chalk/index.css +1 -1
  346. package/theme-chalk/src/cascader.scss +4 -0
  347. package/theme-chalk/src/checkbox.scss +40 -6
  348. package/theme-chalk/src/common/var.scss +2 -4
  349. package/theme-chalk/src/date-picker/picker-panel.scss +1 -1
  350. package/theme-chalk/src/date-picker/picker.scss +1 -0
  351. package/theme-chalk/src/form.scss +101 -24
  352. package/theme-chalk/src/pagination.scss +0 -3
  353. package/theme-chalk/src/radio.scss +21 -0
  354. package/theme-chalk/src/rate.scss +19 -2
  355. package/theme-chalk/src/select-v2.scss +2 -3
  356. package/theme-chalk/src/slider.scss +28 -77
  357. package/theme-chalk/src/switch.scss +43 -4
  358. package/theme-chalk/src/table.scss +176 -124
  359. package/theme-chalk/src/tag.scss +3 -3
  360. package/theme-chalk/src/transfer.scss +27 -31
  361. package/web-types.json +1 -1
  362. package/es/utils/isServer.d.ts +0 -2
  363. package/es/utils/isServer.mjs +0 -4
  364. package/es/utils/isServer.mjs.map +0 -1
  365. package/lib/utils/isServer.d.ts +0 -2
  366. package/lib/utils/isServer.js +0 -8
  367. package/lib/utils/isServer.js.map +0 -1
@@ -1,11 +1,13 @@
1
- import { defineComponent, renderSlot } from 'vue';
1
+ import { defineComponent, watch, renderSlot } from 'vue';
2
2
  import { buildProps, definePropType } from '../../../utils/props.mjs';
3
3
  import '../../../hooks/index.mjs';
4
- import { useLocaleProps, provideLocale } from '../../../hooks/use-locale/index.mjs';
5
4
  import { provideGlobalConfig } from '../../../hooks/use-global-config/index.mjs';
6
5
 
6
+ const messageConfig = {};
7
7
  const configProviderProps = buildProps({
8
- ...useLocaleProps,
8
+ locale: {
9
+ type: definePropType(Object)
10
+ },
9
11
  size: {
10
12
  type: String,
11
13
  values: ["large", "default", "small"]
@@ -13,6 +15,9 @@ const configProviderProps = buildProps({
13
15
  button: {
14
16
  type: definePropType(Object)
15
17
  },
18
+ message: {
19
+ type: definePropType(Object)
20
+ },
16
21
  zIndex: {
17
22
  type: Number
18
23
  }
@@ -21,11 +26,13 @@ var ConfigProvider = defineComponent({
21
26
  name: "ElConfigProvider",
22
27
  props: configProviderProps,
23
28
  setup(props, { slots }) {
24
- provideLocale();
29
+ watch(() => props.message, (val) => {
30
+ Object.assign(messageConfig, val != null ? val : {});
31
+ }, { immediate: true, deep: true });
25
32
  const config = provideGlobalConfig(props);
26
33
  return () => renderSlot(slots, "default", { config: config == null ? void 0 : config.value });
27
34
  }
28
35
  });
29
36
 
30
- export { configProviderProps, ConfigProvider as default };
37
+ export { configProviderProps, ConfigProvider as default, messageConfig };
31
38
  //# sourceMappingURL=config-provider.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"config-provider.mjs","sources":["../../../../../../packages/components/config-provider/src/config-provider.ts"],"sourcesContent":["import { defineComponent, renderSlot } from 'vue'\nimport { buildProps, definePropType } from '@element-plus/utils/props'\nimport {\n useLocaleProps,\n provideLocale,\n provideGlobalConfig,\n} from '@element-plus/hooks'\nimport type { ButtonConfigContext } from '@element-plus/components/button'\n\nexport const configProviderProps = buildProps({\n ...useLocaleProps,\n\n size: {\n type: String,\n values: ['large', 'default', 'small'],\n },\n\n button: {\n type: definePropType<ButtonConfigContext>(Object),\n },\n\n zIndex: {\n type: Number,\n },\n} as const)\n\nexport default defineComponent({\n name: 'ElConfigProvider',\n props: configProviderProps,\n\n setup(props, { slots }) {\n provideLocale()\n const config = provideGlobalConfig(props)\n return () => renderSlot(slots, 'default', { config: config?.value })\n },\n})\n"],"names":[],"mappings":";;;;;;AAOY,MAAC,mBAAmB,GAAG,UAAU,CAAC;AAC9C,EAAE,GAAG,cAAc;AACnB,EAAE,IAAI,EAAE;AACR,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC;AACzC,GAAG;AACH,EAAE,MAAM,EAAE;AACV,IAAI,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC;AAChC,GAAG;AACH,EAAE,MAAM,EAAE;AACV,IAAI,IAAI,EAAE,MAAM;AAChB,GAAG;AACH,CAAC,EAAE;AACH,qBAAe,eAAe,CAAC;AAC/B,EAAE,IAAI,EAAE,kBAAkB;AAC1B,EAAE,KAAK,EAAE,mBAAmB;AAC5B,EAAE,KAAK,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE;AAC1B,IAAI,aAAa,EAAE,CAAC;AACpB,IAAI,MAAM,MAAM,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;AAC9C,IAAI,OAAO,MAAM,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,MAAM,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;AAClG,GAAG;AACH,CAAC,CAAC;;;;"}
1
+ {"version":3,"file":"config-provider.mjs","sources":["../../../../../../packages/components/config-provider/src/config-provider.ts"],"sourcesContent":["import { defineComponent, renderSlot, watch } from 'vue'\nimport { buildProps, definePropType } from '@element-plus/utils/props'\nimport { provideGlobalConfig } from '@element-plus/hooks'\nimport type { Language } from '@element-plus/locale'\nimport type { ButtonConfigContext } from '@element-plus/components/button'\nimport type { MessageConfigContext } from '@element-plus/components/message'\n\nexport const messageConfig: MessageConfigContext = {}\n\nexport const configProviderProps = buildProps({\n locale: {\n type: definePropType<Language>(Object),\n },\n\n size: {\n type: String,\n values: ['large', 'default', 'small'],\n },\n\n button: {\n type: definePropType<ButtonConfigContext>(Object),\n },\n\n message: {\n type: definePropType<MessageConfigContext>(Object),\n },\n\n zIndex: {\n type: Number,\n },\n} as const)\n\nexport default defineComponent({\n name: 'ElConfigProvider',\n props: configProviderProps,\n\n setup(props, { slots }) {\n watch(\n () => props.message,\n (val) => {\n Object.assign(messageConfig, val ?? {})\n },\n { immediate: true, deep: true }\n )\n const config = provideGlobalConfig(props)\n return () => renderSlot(slots, 'default', { config: config?.value })\n },\n})\n"],"names":[],"mappings":";;;;;AAGY,MAAC,aAAa,GAAG,GAAG;AACpB,MAAC,mBAAmB,GAAG,UAAU,CAAC;AAC9C,EAAE,MAAM,EAAE;AACV,IAAI,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC;AAChC,GAAG;AACH,EAAE,IAAI,EAAE;AACR,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC;AACzC,GAAG;AACH,EAAE,MAAM,EAAE;AACV,IAAI,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC;AAChC,GAAG;AACH,EAAE,OAAO,EAAE;AACX,IAAI,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC;AAChC,GAAG;AACH,EAAE,MAAM,EAAE;AACV,IAAI,IAAI,EAAE,MAAM;AAChB,GAAG;AACH,CAAC,EAAE;AACH,qBAAe,eAAe,CAAC;AAC/B,EAAE,IAAI,EAAE,kBAAkB;AAC1B,EAAE,KAAK,EAAE,mBAAmB;AAC5B,EAAE,KAAK,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE;AAC1B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC,GAAG,KAAK;AACxC,MAAM,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC;AAC3D,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AACxC,IAAI,MAAM,MAAM,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;AAC9C,IAAI,OAAO,MAAM,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,MAAM,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;AAClG,GAAG;AACH,CAAC,CAAC;;;;"}
@@ -142,8 +142,8 @@ declare const _DatePicker: SFCWithInstall<import("vue").DefineComponent<{
142
142
  } & {
143
143
  type: import("./src/date-picker.type").IDatePickerType;
144
144
  disabled: boolean;
145
- name: string | unknown[];
146
145
  modelValue: string | number | Date | (string | number | Date)[];
146
+ name: string | unknown[];
147
147
  editable: boolean;
148
148
  popperOptions: Partial<import("@popperjs/core").Options>;
149
149
  popperClass: string;
@@ -177,8 +177,8 @@ declare const _DatePicker: SFCWithInstall<import("vue").DefineComponent<{
177
177
  }, {
178
178
  type: import("./src/date-picker.type").IDatePickerType;
179
179
  disabled: boolean;
180
- name: string | unknown[];
181
180
  modelValue: string | number | Date | (string | number | Date)[];
181
+ name: string | unknown[];
182
182
  editable: boolean;
183
183
  popperOptions: Partial<import("@popperjs/core").Options>;
184
184
  popperClass: string;
@@ -338,8 +338,8 @@ export declare const ElDatePicker: SFCWithInstall<import("vue").DefineComponent<
338
338
  } & {
339
339
  type: import("./src/date-picker.type").IDatePickerType;
340
340
  disabled: boolean;
341
- name: string | unknown[];
342
341
  modelValue: string | number | Date | (string | number | Date)[];
342
+ name: string | unknown[];
343
343
  editable: boolean;
344
344
  popperOptions: Partial<import("@popperjs/core").Options>;
345
345
  popperClass: string;
@@ -373,8 +373,8 @@ export declare const ElDatePicker: SFCWithInstall<import("vue").DefineComponent<
373
373
  }, {
374
374
  type: import("./src/date-picker.type").IDatePickerType;
375
375
  disabled: boolean;
376
- name: string | unknown[];
377
376
  modelValue: string | number | Date | (string | number | Date)[];
377
+ name: string | unknown[];
378
378
  editable: boolean;
379
379
  popperOptions: Partial<import("@popperjs/core").Options>;
380
380
  popperClass: string;
@@ -15,7 +15,7 @@ var ElDatePickerCell = defineComponent({
15
15
  const cell = props.cell;
16
16
  if (picker == null ? void 0 : picker.ctx.slots.default) {
17
17
  const list = picker.ctx.slots.default(cell).filter((item) => {
18
- return item.type.toString() !== "Symbol(Comment)";
18
+ return item.patchFlag !== -2 && item.type.toString() !== "Symbol(Comment)";
19
19
  });
20
20
  if (list.length) {
21
21
  return list;
@@ -1 +1 @@
1
- {"version":3,"file":"basic-cell-render.mjs","sources":["../../../../../../../packages/components/date-picker/src/date-picker-com/basic-cell-render.ts"],"sourcesContent":["import { h, defineComponent, inject } from 'vue'\nimport { buildProps, definePropType } from '@element-plus/utils/props'\nimport { ROOT_PICKER_INJECTION_KEY } from '../date-picker.type'\nimport type { DateCell } from '../date-picker.type'\n\nexport default defineComponent({\n name: 'ElDatePickerCell',\n props: buildProps({\n cell: {\n type: definePropType<DateCell>(Object),\n },\n }),\n setup(props) {\n const picker = inject(ROOT_PICKER_INJECTION_KEY)\n return () => {\n const cell = props.cell\n if (picker?.ctx.slots.default) {\n const list = picker.ctx.slots.default(cell).filter((item) => {\n return item.type.toString() !== 'Symbol(Comment)'\n })\n if (list.length) {\n return list\n }\n }\n return h(\n 'div',\n {\n class: 'el-date-table-cell',\n },\n [\n h(\n 'span',\n {\n class: 'el-date-table-cell__text',\n },\n [cell?.text]\n ),\n ]\n )\n }\n },\n})\n"],"names":[],"mappings":";;;;AAGA,uBAAe,eAAe,CAAC;AAC/B,EAAE,IAAI,EAAE,kBAAkB;AAC1B,EAAE,KAAK,EAAE,UAAU,CAAC;AACpB,IAAI,IAAI,EAAE;AACV,MAAM,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC;AAClC,KAAK;AACL,GAAG,CAAC;AACJ,EAAE,KAAK,CAAC,KAAK,EAAE;AACf,IAAI,MAAM,MAAM,GAAG,MAAM,CAAC,yBAAyB,CAAC,CAAC;AACrD,IAAI,OAAO,MAAM;AACjB,MAAM,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;AAC9B,MAAM,IAAI,MAAM,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE;AAC9D,QAAQ,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK;AACrE,UAAU,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,iBAAiB,CAAC;AAC5D,SAAS,CAAC,CAAC;AACX,QAAQ,IAAI,IAAI,CAAC,MAAM,EAAE;AACzB,UAAU,OAAO,IAAI,CAAC;AACtB,SAAS;AACT,OAAO;AACP,MAAM,OAAO,CAAC,CAAC,KAAK,EAAE;AACtB,QAAQ,KAAK,EAAE,oBAAoB;AACnC,OAAO,EAAE;AACT,QAAQ,CAAC,CAAC,MAAM,EAAE;AAClB,UAAU,KAAK,EAAE,0BAA0B;AAC3C,SAAS,EAAE,CAAC,IAAI,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/C,OAAO,CAAC,CAAC;AACT,KAAK,CAAC;AACN,GAAG;AACH,CAAC,CAAC;;;;"}
1
+ {"version":3,"file":"basic-cell-render.mjs","sources":["../../../../../../../packages/components/date-picker/src/date-picker-com/basic-cell-render.ts"],"sourcesContent":["import { h, defineComponent, inject } from 'vue'\nimport { buildProps, definePropType } from '@element-plus/utils/props'\nimport { ROOT_PICKER_INJECTION_KEY } from '../date-picker.type'\nimport type { DateCell } from '../date-picker.type'\n\nexport default defineComponent({\n name: 'ElDatePickerCell',\n props: buildProps({\n cell: {\n type: definePropType<DateCell>(Object),\n },\n }),\n setup(props) {\n const picker = inject(ROOT_PICKER_INJECTION_KEY)\n return () => {\n const cell = props.cell\n if (picker?.ctx.slots.default) {\n const list = picker.ctx.slots.default(cell).filter((item) => {\n return (\n item.patchFlag !== -2 && item.type.toString() !== 'Symbol(Comment)'\n )\n })\n if (list.length) {\n return list\n }\n }\n return h(\n 'div',\n {\n class: 'el-date-table-cell',\n },\n [\n h(\n 'span',\n {\n class: 'el-date-table-cell__text',\n },\n [cell?.text]\n ),\n ]\n )\n }\n },\n})\n"],"names":[],"mappings":";;;;AAGA,uBAAe,eAAe,CAAC;AAC/B,EAAE,IAAI,EAAE,kBAAkB;AAC1B,EAAE,KAAK,EAAE,UAAU,CAAC;AACpB,IAAI,IAAI,EAAE;AACV,MAAM,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC;AAClC,KAAK;AACL,GAAG,CAAC;AACJ,EAAE,KAAK,CAAC,KAAK,EAAE;AACf,IAAI,MAAM,MAAM,GAAG,MAAM,CAAC,yBAAyB,CAAC,CAAC;AACrD,IAAI,OAAO,MAAM;AACjB,MAAM,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;AAC9B,MAAM,IAAI,MAAM,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE;AAC9D,QAAQ,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK;AACrE,UAAU,OAAO,IAAI,CAAC,SAAS,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,iBAAiB,CAAC;AACrF,SAAS,CAAC,CAAC;AACX,QAAQ,IAAI,IAAI,CAAC,MAAM,EAAE;AACzB,UAAU,OAAO,IAAI,CAAC;AACtB,SAAS;AACT,OAAO;AACP,MAAM,OAAO,CAAC,CAAC,KAAK,EAAE;AACtB,QAAQ,KAAK,EAAE,oBAAoB;AACnC,OAAO,EAAE;AACT,QAAQ,CAAC,CAAC,MAAM,EAAE;AAClB,UAAU,KAAK,EAAE,0BAA0B;AAC3C,SAAS,EAAE,CAAC,IAAI,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/C,OAAO,CAAC,CAAC;AACT,KAAK,CAAC;AACN,GAAG;AACH,CAAC,CAAC;;;;"}
@@ -143,8 +143,8 @@ declare const _default: import("vue").DefineComponent<{
143
143
  } & {
144
144
  type: IDatePickerType;
145
145
  disabled: boolean;
146
- name: string | unknown[];
147
146
  modelValue: string | number | Date | (string | number | Date)[];
147
+ name: string | unknown[];
148
148
  editable: boolean;
149
149
  popperOptions: Partial<import("@popperjs/core").Options>;
150
150
  popperClass: string;
@@ -178,8 +178,8 @@ declare const _default: import("vue").DefineComponent<{
178
178
  }, {
179
179
  type: IDatePickerType;
180
180
  disabled: boolean;
181
- name: string | unknown[];
182
181
  modelValue: string | number | Date | (string | number | Date)[];
182
+ name: string | unknown[];
183
183
  editable: boolean;
184
184
  popperOptions: Partial<import("@popperjs/core").Options>;
185
185
  popperClass: string;
@@ -29,6 +29,7 @@ export declare const ElForm: import("../../utils/types").SFCWithInstall<import("
29
29
  };
30
30
  scrollToError: BooleanConstructor;
31
31
  }, {
32
+ formKls: import("vue").ComputedRef<string[]>;
32
33
  validate: (callback?: import("./src/form.vue").Callback | undefined) => Promise<boolean> | undefined;
33
34
  resetFields: () => void;
34
35
  clearValidate: (props?: string | string[]) => void;
@@ -36,6 +36,7 @@ declare const _default: import("vue").DefineComponent<{
36
36
  };
37
37
  scrollToError: BooleanConstructor;
38
38
  }, {
39
+ formKls: import("vue").ComputedRef<string[]>;
39
40
  validate: (callback?: Callback | undefined) => Promise<boolean> | undefined;
40
41
  resetFields: () => void;
41
42
  clearValidate: (props?: string | string[]) => void;
@@ -1,6 +1,8 @@
1
1
  import { ref, computed, defineComponent, watch, reactive, toRefs, provide } from 'vue';
2
2
  import '../../../tokens/index.mjs';
3
3
  import { debugWarn } from '../../../utils/error.mjs';
4
+ import '../../../hooks/index.mjs';
5
+ import { useSize } from '../../../hooks/use-common-props/index.mjs';
4
6
  import { elFormKey } from '../../../tokens/form.mjs';
5
7
 
6
8
  function useFormLabelWidth() {
@@ -80,6 +82,17 @@ var script = defineComponent({
80
82
  validate(() => ({}));
81
83
  }
82
84
  });
85
+ const formSize = useSize();
86
+ const prefix = "el-form";
87
+ const formKls = computed(() => {
88
+ const { labelPosition, inline } = props;
89
+ return [
90
+ prefix,
91
+ `${prefix}--${formSize.value}`,
92
+ labelPosition ? `${prefix}--label-${labelPosition}` : "",
93
+ inline ? `${prefix}--inline` : ""
94
+ ];
95
+ });
83
96
  const addField = (field) => {
84
97
  if (field) {
85
98
  fields.push(field);
@@ -176,6 +189,7 @@ var script = defineComponent({
176
189
  });
177
190
  provide(elFormKey, elForm);
178
191
  return {
192
+ formKls,
179
193
  validate,
180
194
  resetFields,
181
195
  clearValidate,
@@ -1 +1 @@
1
- {"version":3,"file":"form.vue_vue_type_script_lang.mjs","sources":["../../../../../../packages/components/form/src/form.vue"],"sourcesContent":["<template>\n <form\n class=\"el-form\"\n :class=\"[\n labelPosition ? 'el-form--label-' + labelPosition : '',\n { 'el-form--inline': inline },\n ]\"\n >\n <slot></slot>\n </form>\n</template>\n\n<script lang=\"ts\">\nimport {\n computed,\n defineComponent,\n provide,\n reactive,\n ref,\n toRefs,\n watch,\n} from 'vue'\nimport { elFormKey } from '@element-plus/tokens'\nimport { debugWarn } from '@element-plus/utils/error'\nimport type { ValidateFieldsError } from 'async-validator'\n\nimport type { PropType } from 'vue'\nimport type { ComponentSize } from '@element-plus/utils/types'\nimport type { FormRulesMap } from './form.type'\nimport type {\n ElFormItemContext as FormItemCtx,\n ValidateFieldCallback,\n} from '@element-plus/tokens'\n\nfunction useFormLabelWidth() {\n const potentialLabelWidthArr = ref([])\n const autoLabelWidth = computed(() => {\n if (!potentialLabelWidthArr.value.length) return '0'\n const max = Math.max(...potentialLabelWidthArr.value)\n return max ? `${max}px` : ''\n })\n\n function getLabelWidthIndex(width: number) {\n const index = potentialLabelWidthArr.value.indexOf(width)\n if (index === -1) {\n debugWarn('Form', `unexpected width ${width}`)\n }\n return index\n }\n\n function registerLabelWidth(val: number, oldVal: number) {\n if (val && oldVal) {\n const index = getLabelWidthIndex(oldVal)\n potentialLabelWidthArr.value.splice(index, 1, val)\n } else if (val) {\n potentialLabelWidthArr.value.push(val)\n }\n }\n\n function deregisterLabelWidth(val: number) {\n const index = getLabelWidthIndex(val)\n index > -1 && potentialLabelWidthArr.value.splice(index, 1)\n }\n\n return {\n autoLabelWidth,\n registerLabelWidth,\n deregisterLabelWidth,\n }\n}\n\nexport interface Callback {\n (isValid?: boolean, invalidFields?: ValidateFieldsError): void\n}\n\nexport default defineComponent({\n name: 'ElForm',\n props: {\n model: Object,\n rules: Object as PropType<FormRulesMap>,\n labelPosition: String,\n labelWidth: {\n type: [String, Number],\n default: '',\n },\n labelSuffix: {\n type: String,\n default: '',\n },\n inline: Boolean,\n inlineMessage: Boolean,\n statusIcon: Boolean,\n showMessage: {\n type: Boolean,\n default: true,\n },\n size: String as PropType<ComponentSize>,\n disabled: Boolean,\n validateOnRuleChange: {\n type: Boolean,\n default: true,\n },\n hideRequiredAsterisk: {\n type: Boolean,\n default: false,\n },\n scrollToError: Boolean,\n },\n emits: ['validate'],\n setup(props, { emit }) {\n const fields: FormItemCtx[] = []\n\n watch(\n () => props.rules,\n () => {\n fields.forEach((field) => {\n field.evaluateValidationEnabled()\n })\n\n if (props.validateOnRuleChange) {\n validate(() => ({}))\n }\n }\n )\n\n const addField = (field: FormItemCtx) => {\n if (field) {\n fields.push(field)\n }\n }\n\n const removeField = (field: FormItemCtx) => {\n if (field.prop) {\n fields.splice(fields.indexOf(field), 1)\n }\n }\n\n const resetFields = () => {\n if (!props.model) {\n debugWarn('Form', 'model is required for resetFields to work.')\n return\n }\n fields.forEach((field) => {\n field.resetField()\n })\n }\n\n const clearValidate = (props: string | string[] = []) => {\n const fds = props.length\n ? typeof props === 'string'\n ? fields.filter((field) => props === field.prop)\n : fields.filter((field) => props.indexOf(field.prop) > -1)\n : fields\n fds.forEach((field) => {\n field.clearValidate()\n })\n }\n\n const validate = (callback?: Callback) => {\n if (!props.model) {\n debugWarn('Form', 'model is required for validate to work!')\n return\n }\n\n let promise: Promise<boolean> | undefined\n // if no callback, return promise\n if (typeof callback !== 'function') {\n promise = new Promise((resolve, reject) => {\n callback = function (valid, invalidFields) {\n if (valid) {\n resolve(true)\n } else {\n reject(invalidFields)\n }\n }\n })\n }\n\n if (fields.length === 0) {\n callback(true)\n }\n let valid = true\n let count = 0\n let invalidFields = {}\n let firstInvalidFields\n for (const field of fields) {\n field.validate('', (message, field) => {\n if (message) {\n valid = false\n firstInvalidFields || (firstInvalidFields = field)\n }\n invalidFields = { ...invalidFields, ...field }\n if (++count === fields.length) {\n callback(valid, invalidFields)\n }\n })\n }\n if (!valid && props.scrollToError) {\n scrollToField(Object.keys(firstInvalidFields)[0])\n }\n return promise\n }\n\n const validateField = (\n props: string | string[],\n cb: ValidateFieldCallback\n ) => {\n props = [].concat(props)\n const fds = fields.filter((field) => props.indexOf(field.prop) !== -1)\n if (!fields.length) {\n debugWarn('Form', 'please pass correct props!')\n return\n }\n\n fds.forEach((field) => {\n field.validate('', cb)\n })\n }\n\n const scrollToField = (prop: string) => {\n fields.forEach((item) => {\n if (item.prop === prop) {\n item.$el.scrollIntoView()\n }\n })\n }\n\n const elForm = reactive({\n ...toRefs(props),\n resetFields,\n clearValidate,\n validateField,\n emit,\n addField,\n removeField,\n ...useFormLabelWidth(),\n })\n\n provide(elFormKey, elForm)\n\n return {\n validate, // export\n resetFields,\n clearValidate,\n validateField,\n scrollToField,\n }\n },\n})\n</script>\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"form.vue_vue_type_script_lang.mjs","sources":["../../../../../../packages/components/form/src/form.vue"],"sourcesContent":["<template>\n <form :class=\"formKls\">\n <slot></slot>\n </form>\n</template>\n\n<script lang=\"ts\">\nimport {\n computed,\n defineComponent,\n provide,\n reactive,\n ref,\n toRefs,\n watch,\n} from 'vue'\nimport { elFormKey } from '@element-plus/tokens'\nimport { debugWarn } from '@element-plus/utils/error'\nimport { useSize } from '@element-plus/hooks'\nimport type { ValidateFieldsError } from 'async-validator'\n\nimport type { PropType } from 'vue'\nimport type { ComponentSize } from '@element-plus/utils/types'\nimport type { FormRulesMap } from './form.type'\nimport type {\n ElFormItemContext as FormItemCtx,\n ValidateFieldCallback,\n} from '@element-plus/tokens'\n\nfunction useFormLabelWidth() {\n const potentialLabelWidthArr = ref([])\n const autoLabelWidth = computed(() => {\n if (!potentialLabelWidthArr.value.length) return '0'\n const max = Math.max(...potentialLabelWidthArr.value)\n return max ? `${max}px` : ''\n })\n\n function getLabelWidthIndex(width: number) {\n const index = potentialLabelWidthArr.value.indexOf(width)\n if (index === -1) {\n debugWarn('Form', `unexpected width ${width}`)\n }\n return index\n }\n\n function registerLabelWidth(val: number, oldVal: number) {\n if (val && oldVal) {\n const index = getLabelWidthIndex(oldVal)\n potentialLabelWidthArr.value.splice(index, 1, val)\n } else if (val) {\n potentialLabelWidthArr.value.push(val)\n }\n }\n\n function deregisterLabelWidth(val: number) {\n const index = getLabelWidthIndex(val)\n index > -1 && potentialLabelWidthArr.value.splice(index, 1)\n }\n\n return {\n autoLabelWidth,\n registerLabelWidth,\n deregisterLabelWidth,\n }\n}\n\nexport interface Callback {\n (isValid?: boolean, invalidFields?: ValidateFieldsError): void\n}\n\nexport default defineComponent({\n name: 'ElForm',\n props: {\n model: Object,\n rules: Object as PropType<FormRulesMap>,\n labelPosition: String,\n labelWidth: {\n type: [String, Number],\n default: '',\n },\n labelSuffix: {\n type: String,\n default: '',\n },\n inline: Boolean,\n inlineMessage: Boolean,\n statusIcon: Boolean,\n showMessage: {\n type: Boolean,\n default: true,\n },\n size: String as PropType<ComponentSize>,\n disabled: Boolean,\n validateOnRuleChange: {\n type: Boolean,\n default: true,\n },\n hideRequiredAsterisk: {\n type: Boolean,\n default: false,\n },\n scrollToError: Boolean,\n },\n emits: ['validate'],\n setup(props, { emit }) {\n const fields: FormItemCtx[] = []\n\n watch(\n () => props.rules,\n () => {\n fields.forEach((field) => {\n field.evaluateValidationEnabled()\n })\n\n if (props.validateOnRuleChange) {\n validate(() => ({}))\n }\n }\n )\n\n const formSize = useSize()\n const prefix = 'el-form'\n const formKls = computed(() => {\n const { labelPosition, inline } = props\n return [\n prefix,\n `${prefix}--${formSize.value}`,\n labelPosition ? `${prefix}--label-${labelPosition}` : '',\n inline ? `${prefix}--inline` : '',\n ]\n })\n\n const addField = (field: FormItemCtx) => {\n if (field) {\n fields.push(field)\n }\n }\n\n const removeField = (field: FormItemCtx) => {\n if (field.prop) {\n fields.splice(fields.indexOf(field), 1)\n }\n }\n\n const resetFields = () => {\n if (!props.model) {\n debugWarn('Form', 'model is required for resetFields to work.')\n return\n }\n fields.forEach((field) => {\n field.resetField()\n })\n }\n\n const clearValidate = (props: string | string[] = []) => {\n const fds = props.length\n ? typeof props === 'string'\n ? fields.filter((field) => props === field.prop)\n : fields.filter((field) => props.indexOf(field.prop) > -1)\n : fields\n fds.forEach((field) => {\n field.clearValidate()\n })\n }\n\n const validate = (callback?: Callback) => {\n if (!props.model) {\n debugWarn('Form', 'model is required for validate to work!')\n return\n }\n\n let promise: Promise<boolean> | undefined\n // if no callback, return promise\n if (typeof callback !== 'function') {\n promise = new Promise((resolve, reject) => {\n callback = function (valid, invalidFields) {\n if (valid) {\n resolve(true)\n } else {\n reject(invalidFields)\n }\n }\n })\n }\n\n if (fields.length === 0) {\n callback(true)\n }\n let valid = true\n let count = 0\n let invalidFields = {}\n let firstInvalidFields\n for (const field of fields) {\n field.validate('', (message, field) => {\n if (message) {\n valid = false\n firstInvalidFields || (firstInvalidFields = field)\n }\n invalidFields = { ...invalidFields, ...field }\n if (++count === fields.length) {\n callback(valid, invalidFields)\n }\n })\n }\n if (!valid && props.scrollToError) {\n scrollToField(Object.keys(firstInvalidFields)[0])\n }\n return promise\n }\n\n const validateField = (\n props: string | string[],\n cb: ValidateFieldCallback\n ) => {\n props = [].concat(props)\n const fds = fields.filter((field) => props.indexOf(field.prop) !== -1)\n if (!fields.length) {\n debugWarn('Form', 'please pass correct props!')\n return\n }\n\n fds.forEach((field) => {\n field.validate('', cb)\n })\n }\n\n const scrollToField = (prop: string) => {\n fields.forEach((item) => {\n if (item.prop === prop) {\n item.$el.scrollIntoView()\n }\n })\n }\n\n const elForm = reactive({\n ...toRefs(props),\n resetFields,\n clearValidate,\n validateField,\n emit,\n addField,\n removeField,\n ...useFormLabelWidth(),\n })\n\n provide(elFormKey, elForm)\n\n return {\n formKls,\n validate, // export\n resetFields,\n clearValidate,\n validateField,\n scrollToField,\n }\n },\n})\n</script>\n"],"names":[],"mappings":"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"}
@@ -2,10 +2,7 @@ import { openBlock, createElementBlock, normalizeClass, renderSlot } from 'vue';
2
2
 
3
3
  function render(_ctx, _cache, $props, $setup, $data, $options) {
4
4
  return openBlock(), createElementBlock("form", {
5
- class: normalizeClass(["el-form", [
6
- _ctx.labelPosition ? "el-form--label-" + _ctx.labelPosition : "",
7
- { "el-form--inline": _ctx.inline }
8
- ]])
5
+ class: normalizeClass(_ctx.formKls)
9
6
  }, [
10
7
  renderSlot(_ctx.$slots, "default")
11
8
  ], 2);
@@ -1 +1 @@
1
- {"version":3,"file":"form.vue_vue_type_template_id_602d6cf6_lang.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"form.vue_vue_type_template_id_602d6cf6_lang.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;"}
@@ -83,7 +83,7 @@ export { cardProps } from './card/src/card.mjs';
83
83
  export { CASCADER_PANEL_INJECTION_KEY, ExpandTrigger } from './cascader-panel/src/types.mjs';
84
84
  export { CommonProps, DefaultProps, useCascaderConfig } from './cascader-panel/src/config.mjs';
85
85
  export { colProps } from './col/src/col.mjs';
86
- export { configProviderProps } from './config-provider/src/config-provider.mjs';
86
+ export { configProviderProps, messageConfig } from './config-provider/src/config-provider.mjs';
87
87
  export { useDialog } from './dialog/src/use-dialog.mjs';
88
88
  export { dialogEmits, dialogProps } from './dialog/src/dialog.mjs';
89
89
  export { dividerProps } from './divider/src/divider.mjs';
@@ -111,7 +111,7 @@ export { POPPER_CONTENT_INJECTION_KEY, POPPER_INJECTION_KEY } from './popper/src
111
111
  export { progressProps } from './progress/src/progress.mjs';
112
112
  export { radioEmits, radioProps, radioPropsBase, useRadio } from './radio/src/radio.mjs';
113
113
  export { radioGroupEmits, radioGroupProps } from './radio/src/radio-group.mjs';
114
- export { radioButtonProps } from './radio/src/radio-button2.mjs';
114
+ export { radioButtonProps } from './radio/src/radio-button.mjs';
115
115
  export { rateEmits, rateProps } from './rate/src/rate.mjs';
116
116
  export { IconComponentMap, IconMap, resultProps } from './result/src/result.mjs';
117
117
  export { rowProps } from './row/src/row.mjs';
@@ -40,6 +40,7 @@ export declare const ElInput: import("../../utils/types").SFCWithInstall<import(
40
40
  passwordVisible: import("vue").Ref<boolean>;
41
41
  inputOrTextarea: import("vue").ComputedRef<HTMLInputElement | HTMLTextAreaElement | undefined>;
42
42
  suffixVisible: import("vue").ComputedRef<boolean>;
43
+ needStatusIcon: import("vue").ComputedRef<boolean>;
43
44
  resizeTextarea: () => void;
44
45
  handleInput: (event: Event) => void;
45
46
  handleChange: (event: Event) => void;
@@ -41,6 +41,7 @@ declare const _default: import("vue").DefineComponent<{
41
41
  passwordVisible: import("vue").Ref<boolean>;
42
42
  inputOrTextarea: import("vue").ComputedRef<HTMLInputElement | HTMLTextAreaElement | undefined>;
43
43
  suffixVisible: import("vue").ComputedRef<boolean>;
44
+ needStatusIcon: import("vue").ComputedRef<boolean>;
44
45
  resizeTextarea: () => void;
45
46
  handleInput: (event: Event) => void;
46
47
  handleChange: (event: Event) => void;
@@ -218,6 +218,7 @@ var script = defineComponent({
218
218
  passwordVisible,
219
219
  inputOrTextarea,
220
220
  suffixVisible,
221
+ needStatusIcon,
221
222
  resizeTextarea,
222
223
  handleInput,
223
224
  handleChange,
@@ -1 +1 @@
1
- {"version":3,"file":"input.vue_vue_type_script_lang.mjs","sources":["../../../../../../packages/components/input/src/input.vue"],"sourcesContent":["<template>\n <div\n v-show=\"type !== 'hidden'\"\n :class=\"[\n type === 'textarea' ? 'el-textarea' : 'el-input',\n inputSize ? 'el-input--' + inputSize : '',\n {\n 'is-disabled': inputDisabled,\n 'is-exceed': inputExceed,\n 'el-input-group': $slots.prepend || $slots.append,\n 'el-input-group--append': $slots.append,\n 'el-input-group--prepend': $slots.prepend,\n 'el-input--prefix': $slots.prefix || prefixIcon,\n 'el-input--suffix':\n $slots.suffix || suffixIcon || clearable || showPassword,\n 'el-input--suffix--password-clear': clearable && showPassword,\n },\n $attrs.class,\n ]\"\n :style=\"containerStyle\"\n @mouseenter=\"onMouseEnter\"\n @mouseleave=\"onMouseLeave\"\n >\n <!-- input -->\n <template v-if=\"type !== 'textarea'\">\n <!-- prepend slot -->\n <div v-if=\"$slots.prepend\" class=\"el-input-group__prepend\">\n <slot name=\"prepend\" />\n </div>\n\n <input\n ref=\"input\"\n class=\"el-input__inner\"\n v-bind=\"attrs\"\n :type=\"showPassword ? (passwordVisible ? 'text' : 'password') : type\"\n :disabled=\"inputDisabled\"\n :readonly=\"readonly\"\n :autocomplete=\"autocomplete\"\n :tabindex=\"tabindex\"\n :aria-label=\"label\"\n :placeholder=\"placeholder\"\n :style=\"inputStyle\"\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\n <!-- prefix slot -->\n <span v-if=\"$slots.prefix || prefixIcon\" class=\"el-input__prefix\">\n <span class=\"el-input__prefix-inner\">\n <slot name=\"prefix\"></slot>\n <el-icon v-if=\"prefixIcon\" class=\"el-input__icon\">\n <component :is=\"prefixIcon\" />\n </el-icon>\n </span>\n </span>\n\n <!-- suffix slot -->\n <span v-if=\"suffixVisible\" class=\"el-input__suffix\">\n <span class=\"el-input__suffix-inner\">\n <template v-if=\"!showClear || !showPwdVisible || !isWordLimitVisible\">\n <slot name=\"suffix\"></slot>\n <el-icon v-if=\"suffixIcon\" class=\"el-input__icon\">\n <component :is=\"suffixIcon\" />\n </el-icon>\n </template>\n <el-icon\n v-if=\"showClear\"\n class=\"el-input__icon el-input__clear\"\n @mousedown.prevent\n @click=\"clear\"\n >\n <circle-close />\n </el-icon>\n <el-icon\n v-if=\"showPwdVisible\"\n class=\"el-input__icon el-input__clear\"\n @click=\"handlePasswordVisible\"\n >\n <icon-view />\n </el-icon>\n <span v-if=\"isWordLimitVisible\" class=\"el-input__count\">\n <span class=\"el-input__count-inner\">\n {{ textLength }} / {{ attrs.maxlength }}\n </span>\n </span>\n </span>\n <el-icon\n v-if=\"validateState && validateIcon\"\n class=\"el-input__icon el-input__validateIcon\"\n >\n <component :is=\"validateIcon\" />\n </el-icon>\n </span>\n\n <!-- append slot -->\n <div v-if=\"$slots.append\" class=\"el-input-group__append\">\n <slot name=\"append\" />\n </div>\n </template>\n\n <!-- textarea -->\n <template v-else>\n <textarea\n ref=\"textarea\"\n class=\"el-textarea__inner\"\n v-bind=\"attrs\"\n :tabindex=\"tabindex\"\n :disabled=\"inputDisabled\"\n :readonly=\"readonly\"\n :autocomplete=\"autocomplete\"\n :style=\"computedTextareaStyle\"\n :aria-label=\"label\"\n :placeholder=\"placeholder\"\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 <span v-if=\"isWordLimitVisible\" class=\"el-input__count\">\n {{ textLength }} / {{ attrs.maxlength }}\n </span>\n </template>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport {\n defineComponent,\n computed,\n watch,\n nextTick,\n getCurrentInstance,\n ref,\n shallowRef,\n onMounted,\n onUpdated,\n} from 'vue'\nimport { isClient } from '@vueuse/core'\nimport { ElIcon } from '@element-plus/components/icon'\nimport { CircleClose, View as IconView } from '@element-plus/icons-vue'\nimport { ValidateComponentsMap } from '@element-plus/utils/icon'\nimport {\n useAttrs,\n useDisabled,\n useFormItem,\n useSize,\n} from '@element-plus/hooks'\nimport { UPDATE_MODEL_EVENT } from '@element-plus/utils/constants'\nimport { isObject } from '@element-plus/utils/util'\nimport { isKorean } from '@element-plus/utils/isDef'\nimport { calcTextareaHeight } from './calc-textarea-height'\nimport { inputProps, inputEmits } from './input'\n\nimport type { StyleValue } from '@element-plus/utils/types'\n\ntype TargetElement = HTMLInputElement | HTMLTextAreaElement\n\nconst PENDANT_MAP = {\n suffix: 'append',\n prefix: 'prepend',\n} as const\n\nexport default defineComponent({\n name: 'ElInput',\n\n components: { ElIcon, CircleClose, IconView },\n\n inheritAttrs: false,\n\n props: inputProps,\n emits: inputEmits,\n\n setup(props, { slots, emit, attrs: rawAttrs }) {\n const instance = getCurrentInstance()!\n const attrs = useAttrs()\n\n const { form, formItem } = useFormItem()\n const inputSize = useSize()\n const inputDisabled = useDisabled()\n\n const input = ref<HTMLInputElement>()\n const textarea = ref<HTMLTextAreaElement>()\n const focused = ref(false)\n const hovering = ref(false)\n const isComposing = ref(false)\n const passwordVisible = ref(false)\n const _textareaCalcStyle = shallowRef(props.inputStyle)\n\n const inputOrTextarea = computed(() => input.value || textarea.value)\n\n const needStatusIcon = computed(() => form?.statusIcon ?? false)\n const validateState = computed(() => formItem?.validateState || '')\n const validateIcon = computed(\n () => ValidateComponentsMap[validateState.value]\n )\n const containerStyle = computed(() => rawAttrs.style as StyleValue)\n const computedTextareaStyle = computed<StyleValue>(() => [\n props.inputStyle,\n _textareaCalcStyle.value,\n { resize: props.resize },\n ])\n const nativeInputValue = computed(() =>\n props.modelValue === null || props.modelValue === undefined\n ? ''\n : String(props.modelValue)\n )\n const showClear = computed(\n () =>\n props.clearable &&\n !inputDisabled.value &&\n !props.readonly &&\n !!nativeInputValue.value &&\n (focused.value || hovering.value)\n )\n const showPwdVisible = computed(\n () =>\n props.showPassword &&\n !inputDisabled.value &&\n !props.readonly &&\n (!!nativeInputValue.value || focused.value)\n )\n const isWordLimitVisible = computed(\n () =>\n props.showWordLimit &&\n !!attrs.value.maxlength &&\n (props.type === 'text' || props.type === 'textarea') &&\n !inputDisabled.value &&\n !props.readonly &&\n !props.showPassword\n )\n const textLength = computed(() => Array.from(nativeInputValue.value).length)\n const inputExceed = computed(\n () =>\n // show exceed style if length of initial value greater then maxlength\n !!isWordLimitVisible.value &&\n textLength.value > Number(attrs.value.maxlength)\n )\n\n const resizeTextarea = () => {\n const { type, autosize } = props\n\n if (!isClient || type !== 'textarea') return\n\n if (autosize) {\n const minRows = isObject(autosize) ? autosize.minRows : undefined\n const maxRows = isObject(autosize) ? autosize.maxRows : undefined\n _textareaCalcStyle.value = {\n ...calcTextareaHeight(textarea.value!, minRows, maxRows),\n }\n } else {\n _textareaCalcStyle.value = {\n minHeight: calcTextareaHeight(textarea.value!).minHeight,\n }\n }\n }\n\n const setNativeInputValue = () => {\n const input = inputOrTextarea.value\n if (!input || input.value === nativeInputValue.value) return\n input.value = nativeInputValue.value\n }\n\n const calcIconOffset = (place: 'prefix' | 'suffix') => {\n const { el } = instance.vnode\n if (!el) return\n const elList: HTMLSpanElement[] = Array.from(\n el.querySelectorAll(`.el-input__${place}`)\n )\n const target = elList.find((item) => item.parentNode === el)\n\n if (!target) return\n\n const pendant = PENDANT_MAP[place]\n\n if (slots[pendant]) {\n target.style.transform = `translateX(${place === 'suffix' ? '-' : ''}${\n el.querySelector(`.el-input-group__${pendant}`).offsetWidth\n }px)`\n } else {\n target.removeAttribute('style')\n }\n }\n\n const updateIconOffset = () => {\n calcIconOffset('prefix')\n calcIconOffset('suffix')\n }\n\n const handleInput = (event: Event) => {\n const { value } = event.target as TargetElement\n\n // should not emit input during composition\n // see: https://github.com/ElemeFE/element/issues/10516\n if (isComposing.value) return\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 (value === nativeInputValue.value) return\n\n emit(UPDATE_MODEL_EVENT, value)\n emit('input', value)\n\n // ensure native input value is controlled\n // see: https://github.com/ElemeFE/element/issues/12850\n nextTick(setNativeInputValue)\n }\n\n const handleChange = (event: Event) => {\n emit('change', (event.target as TargetElement).value)\n }\n\n const focus = () => {\n // see: https://github.com/ElemeFE/element/issues/18573\n nextTick(() => {\n inputOrTextarea.value?.focus()\n })\n }\n\n const blur = () => {\n inputOrTextarea.value?.blur()\n }\n\n const handleFocus = (event: FocusEvent) => {\n focused.value = true\n emit('focus', event)\n }\n\n const handleBlur = (event: FocusEvent) => {\n focused.value = false\n emit('blur', event)\n if (props.validateEvent) {\n formItem?.validate?.('blur')\n }\n }\n\n const select = () => {\n inputOrTextarea.value?.select()\n }\n\n const handleCompositionStart = (event: CompositionEvent) => {\n emit('compositionstart', event)\n isComposing.value = true\n }\n\n const handleCompositionUpdate = (event: CompositionEvent) => {\n emit('compositionupdate', event)\n const text = (event.target as HTMLInputElement)?.value\n const lastCharacter = text[text.length - 1] || ''\n isComposing.value = !isKorean(lastCharacter)\n }\n\n const handleCompositionEnd = (event: CompositionEvent) => {\n emit('compositionend', event)\n if (isComposing.value) {\n isComposing.value = false\n handleInput(event)\n }\n }\n\n const clear = () => {\n emit(UPDATE_MODEL_EVENT, '')\n emit('change', '')\n emit('clear')\n emit('input', '')\n }\n\n const handlePasswordVisible = () => {\n passwordVisible.value = !passwordVisible.value\n focus()\n }\n\n const suffixVisible = computed(\n () =>\n !!slots.suffix ||\n !!props.suffixIcon ||\n showClear.value ||\n props.showPassword ||\n isWordLimitVisible.value ||\n (!!validateState.value && needStatusIcon.value)\n )\n\n watch(\n () => props.modelValue,\n () => {\n nextTick(resizeTextarea)\n if (props.validateEvent) {\n formItem?.validate?.('change')\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\n watch(nativeInputValue, () => setNativeInputValue())\n\n // when change between <input> and <textarea>,\n // update DOM dependent value and styles\n // https://github.com/ElemeFE/element/issues/14857\n watch(\n () => props.type,\n () => {\n nextTick(() => {\n setNativeInputValue()\n resizeTextarea()\n updateIconOffset()\n })\n }\n )\n\n onMounted(() => {\n setNativeInputValue()\n updateIconOffset()\n nextTick(resizeTextarea)\n })\n\n onUpdated(() => {\n nextTick(updateIconOffset)\n })\n\n const onMouseLeave = (evt: MouseEvent) => {\n hovering.value = false\n emit('mouseleave', evt)\n }\n\n const onMouseEnter = (evt: MouseEvent) => {\n hovering.value = true\n emit('mouseenter', evt)\n }\n\n const handleKeydown = (evt: KeyboardEvent) => {\n emit('keydown', evt)\n }\n\n return {\n input,\n textarea,\n attrs,\n inputSize,\n validateState,\n validateIcon,\n containerStyle,\n computedTextareaStyle,\n inputDisabled,\n showClear,\n showPwdVisible,\n isWordLimitVisible,\n textLength,\n hovering,\n inputExceed,\n passwordVisible,\n inputOrTextarea,\n suffixVisible,\n\n resizeTextarea,\n handleInput,\n handleChange,\n handleFocus,\n handleBlur,\n handleCompositionStart,\n handleCompositionUpdate,\n handleCompositionEnd,\n handlePasswordVisible,\n clear,\n select,\n focus,\n blur,\n onMouseLeave,\n onMouseEnter,\n handleKeydown,\n }\n },\n})\n</script>\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"input.vue_vue_type_script_lang.mjs","sources":["../../../../../../packages/components/input/src/input.vue"],"sourcesContent":["<template>\n <div\n v-show=\"type !== 'hidden'\"\n :class=\"[\n type === 'textarea' ? 'el-textarea' : 'el-input',\n inputSize ? 'el-input--' + inputSize : '',\n {\n 'is-disabled': inputDisabled,\n 'is-exceed': inputExceed,\n 'el-input-group': $slots.prepend || $slots.append,\n 'el-input-group--append': $slots.append,\n 'el-input-group--prepend': $slots.prepend,\n 'el-input--prefix': $slots.prefix || prefixIcon,\n 'el-input--suffix':\n $slots.suffix || suffixIcon || clearable || showPassword,\n 'el-input--suffix--password-clear': clearable && showPassword,\n },\n $attrs.class,\n ]\"\n :style=\"containerStyle\"\n @mouseenter=\"onMouseEnter\"\n @mouseleave=\"onMouseLeave\"\n >\n <!-- input -->\n <template v-if=\"type !== 'textarea'\">\n <!-- prepend slot -->\n <div v-if=\"$slots.prepend\" class=\"el-input-group__prepend\">\n <slot name=\"prepend\" />\n </div>\n\n <input\n ref=\"input\"\n class=\"el-input__inner\"\n v-bind=\"attrs\"\n :type=\"showPassword ? (passwordVisible ? 'text' : 'password') : type\"\n :disabled=\"inputDisabled\"\n :readonly=\"readonly\"\n :autocomplete=\"autocomplete\"\n :tabindex=\"tabindex\"\n :aria-label=\"label\"\n :placeholder=\"placeholder\"\n :style=\"inputStyle\"\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\n <!-- prefix slot -->\n <span v-if=\"$slots.prefix || prefixIcon\" class=\"el-input__prefix\">\n <span class=\"el-input__prefix-inner\">\n <slot name=\"prefix\"></slot>\n <el-icon v-if=\"prefixIcon\" class=\"el-input__icon\">\n <component :is=\"prefixIcon\" />\n </el-icon>\n </span>\n </span>\n\n <!-- suffix slot -->\n <span v-if=\"suffixVisible\" class=\"el-input__suffix\">\n <span class=\"el-input__suffix-inner\">\n <template v-if=\"!showClear || !showPwdVisible || !isWordLimitVisible\">\n <slot name=\"suffix\"></slot>\n <el-icon v-if=\"suffixIcon\" class=\"el-input__icon\">\n <component :is=\"suffixIcon\" />\n </el-icon>\n </template>\n <el-icon\n v-if=\"showClear\"\n class=\"el-input__icon el-input__clear\"\n @mousedown.prevent\n @click=\"clear\"\n >\n <circle-close />\n </el-icon>\n <el-icon\n v-if=\"showPwdVisible\"\n class=\"el-input__icon el-input__clear\"\n @click=\"handlePasswordVisible\"\n >\n <icon-view />\n </el-icon>\n <span v-if=\"isWordLimitVisible\" class=\"el-input__count\">\n <span class=\"el-input__count-inner\">\n {{ textLength }} / {{ attrs.maxlength }}\n </span>\n </span>\n </span>\n <el-icon\n v-if=\"validateState && validateIcon && needStatusIcon\"\n class=\"el-input__icon el-input__validateIcon\"\n >\n <component :is=\"validateIcon\" />\n </el-icon>\n </span>\n\n <!-- append slot -->\n <div v-if=\"$slots.append\" class=\"el-input-group__append\">\n <slot name=\"append\" />\n </div>\n </template>\n\n <!-- textarea -->\n <template v-else>\n <textarea\n ref=\"textarea\"\n class=\"el-textarea__inner\"\n v-bind=\"attrs\"\n :tabindex=\"tabindex\"\n :disabled=\"inputDisabled\"\n :readonly=\"readonly\"\n :autocomplete=\"autocomplete\"\n :style=\"computedTextareaStyle\"\n :aria-label=\"label\"\n :placeholder=\"placeholder\"\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 <span v-if=\"isWordLimitVisible\" class=\"el-input__count\">\n {{ textLength }} / {{ attrs.maxlength }}\n </span>\n </template>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport {\n defineComponent,\n computed,\n watch,\n nextTick,\n getCurrentInstance,\n ref,\n shallowRef,\n onMounted,\n onUpdated,\n} from 'vue'\nimport { isClient } from '@vueuse/core'\nimport { ElIcon } from '@element-plus/components/icon'\nimport { CircleClose, View as IconView } from '@element-plus/icons-vue'\nimport { ValidateComponentsMap } from '@element-plus/utils/icon'\nimport {\n useAttrs,\n useDisabled,\n useFormItem,\n useSize,\n} from '@element-plus/hooks'\nimport { UPDATE_MODEL_EVENT } from '@element-plus/utils/constants'\nimport { isObject } from '@element-plus/utils/util'\nimport { isKorean } from '@element-plus/utils/isDef'\nimport { calcTextareaHeight } from './calc-textarea-height'\nimport { inputProps, inputEmits } from './input'\n\nimport type { StyleValue } from '@element-plus/utils/types'\n\ntype TargetElement = HTMLInputElement | HTMLTextAreaElement\n\nconst PENDANT_MAP = {\n suffix: 'append',\n prefix: 'prepend',\n} as const\n\nexport default defineComponent({\n name: 'ElInput',\n\n components: { ElIcon, CircleClose, IconView },\n\n inheritAttrs: false,\n\n props: inputProps,\n emits: inputEmits,\n\n setup(props, { slots, emit, attrs: rawAttrs }) {\n const instance = getCurrentInstance()!\n const attrs = useAttrs()\n\n const { form, formItem } = useFormItem()\n const inputSize = useSize()\n const inputDisabled = useDisabled()\n\n const input = ref<HTMLInputElement>()\n const textarea = ref<HTMLTextAreaElement>()\n const focused = ref(false)\n const hovering = ref(false)\n const isComposing = ref(false)\n const passwordVisible = ref(false)\n const _textareaCalcStyle = shallowRef(props.inputStyle)\n\n const inputOrTextarea = computed(() => input.value || textarea.value)\n\n const needStatusIcon = computed(() => form?.statusIcon ?? false)\n const validateState = computed(() => formItem?.validateState || '')\n const validateIcon = computed(\n () => ValidateComponentsMap[validateState.value]\n )\n const containerStyle = computed(() => rawAttrs.style as StyleValue)\n const computedTextareaStyle = computed<StyleValue>(() => [\n props.inputStyle,\n _textareaCalcStyle.value,\n { resize: props.resize },\n ])\n const nativeInputValue = computed(() =>\n props.modelValue === null || props.modelValue === undefined\n ? ''\n : String(props.modelValue)\n )\n const showClear = computed(\n () =>\n props.clearable &&\n !inputDisabled.value &&\n !props.readonly &&\n !!nativeInputValue.value &&\n (focused.value || hovering.value)\n )\n const showPwdVisible = computed(\n () =>\n props.showPassword &&\n !inputDisabled.value &&\n !props.readonly &&\n (!!nativeInputValue.value || focused.value)\n )\n const isWordLimitVisible = computed(\n () =>\n props.showWordLimit &&\n !!attrs.value.maxlength &&\n (props.type === 'text' || props.type === 'textarea') &&\n !inputDisabled.value &&\n !props.readonly &&\n !props.showPassword\n )\n const textLength = computed(() => Array.from(nativeInputValue.value).length)\n const inputExceed = computed(\n () =>\n // show exceed style if length of initial value greater then maxlength\n !!isWordLimitVisible.value &&\n textLength.value > Number(attrs.value.maxlength)\n )\n\n const resizeTextarea = () => {\n const { type, autosize } = props\n\n if (!isClient || type !== 'textarea') return\n\n if (autosize) {\n const minRows = isObject(autosize) ? autosize.minRows : undefined\n const maxRows = isObject(autosize) ? autosize.maxRows : undefined\n _textareaCalcStyle.value = {\n ...calcTextareaHeight(textarea.value!, minRows, maxRows),\n }\n } else {\n _textareaCalcStyle.value = {\n minHeight: calcTextareaHeight(textarea.value!).minHeight,\n }\n }\n }\n\n const setNativeInputValue = () => {\n const input = inputOrTextarea.value\n if (!input || input.value === nativeInputValue.value) return\n input.value = nativeInputValue.value\n }\n\n const calcIconOffset = (place: 'prefix' | 'suffix') => {\n const { el } = instance.vnode\n if (!el) return\n const elList: HTMLSpanElement[] = Array.from(\n el.querySelectorAll(`.el-input__${place}`)\n )\n const target = elList.find((item) => item.parentNode === el)\n\n if (!target) return\n\n const pendant = PENDANT_MAP[place]\n\n if (slots[pendant]) {\n target.style.transform = `translateX(${place === 'suffix' ? '-' : ''}${\n el.querySelector(`.el-input-group__${pendant}`).offsetWidth\n }px)`\n } else {\n target.removeAttribute('style')\n }\n }\n\n const updateIconOffset = () => {\n calcIconOffset('prefix')\n calcIconOffset('suffix')\n }\n\n const handleInput = (event: Event) => {\n const { value } = event.target as TargetElement\n\n // should not emit input during composition\n // see: https://github.com/ElemeFE/element/issues/10516\n if (isComposing.value) return\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 (value === nativeInputValue.value) return\n\n emit(UPDATE_MODEL_EVENT, value)\n emit('input', value)\n\n // ensure native input value is controlled\n // see: https://github.com/ElemeFE/element/issues/12850\n nextTick(setNativeInputValue)\n }\n\n const handleChange = (event: Event) => {\n emit('change', (event.target as TargetElement).value)\n }\n\n const focus = () => {\n // see: https://github.com/ElemeFE/element/issues/18573\n nextTick(() => {\n inputOrTextarea.value?.focus()\n })\n }\n\n const blur = () => {\n inputOrTextarea.value?.blur()\n }\n\n const handleFocus = (event: FocusEvent) => {\n focused.value = true\n emit('focus', event)\n }\n\n const handleBlur = (event: FocusEvent) => {\n focused.value = false\n emit('blur', event)\n if (props.validateEvent) {\n formItem?.validate?.('blur')\n }\n }\n\n const select = () => {\n inputOrTextarea.value?.select()\n }\n\n const handleCompositionStart = (event: CompositionEvent) => {\n emit('compositionstart', event)\n isComposing.value = true\n }\n\n const handleCompositionUpdate = (event: CompositionEvent) => {\n emit('compositionupdate', event)\n const text = (event.target as HTMLInputElement)?.value\n const lastCharacter = text[text.length - 1] || ''\n isComposing.value = !isKorean(lastCharacter)\n }\n\n const handleCompositionEnd = (event: CompositionEvent) => {\n emit('compositionend', event)\n if (isComposing.value) {\n isComposing.value = false\n handleInput(event)\n }\n }\n\n const clear = () => {\n emit(UPDATE_MODEL_EVENT, '')\n emit('change', '')\n emit('clear')\n emit('input', '')\n }\n\n const handlePasswordVisible = () => {\n passwordVisible.value = !passwordVisible.value\n focus()\n }\n\n const suffixVisible = computed(\n () =>\n !!slots.suffix ||\n !!props.suffixIcon ||\n showClear.value ||\n props.showPassword ||\n isWordLimitVisible.value ||\n (!!validateState.value && needStatusIcon.value)\n )\n\n watch(\n () => props.modelValue,\n () => {\n nextTick(resizeTextarea)\n if (props.validateEvent) {\n formItem?.validate?.('change')\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\n watch(nativeInputValue, () => setNativeInputValue())\n\n // when change between <input> and <textarea>,\n // update DOM dependent value and styles\n // https://github.com/ElemeFE/element/issues/14857\n watch(\n () => props.type,\n () => {\n nextTick(() => {\n setNativeInputValue()\n resizeTextarea()\n updateIconOffset()\n })\n }\n )\n\n onMounted(() => {\n setNativeInputValue()\n updateIconOffset()\n nextTick(resizeTextarea)\n })\n\n onUpdated(() => {\n nextTick(updateIconOffset)\n })\n\n const onMouseLeave = (evt: MouseEvent) => {\n hovering.value = false\n emit('mouseleave', evt)\n }\n\n const onMouseEnter = (evt: MouseEvent) => {\n hovering.value = true\n emit('mouseenter', evt)\n }\n\n const handleKeydown = (evt: KeyboardEvent) => {\n emit('keydown', evt)\n }\n\n return {\n input,\n textarea,\n attrs,\n inputSize,\n validateState,\n validateIcon,\n containerStyle,\n computedTextareaStyle,\n inputDisabled,\n showClear,\n showPwdVisible,\n isWordLimitVisible,\n textLength,\n hovering,\n inputExceed,\n passwordVisible,\n inputOrTextarea,\n suffixVisible,\n needStatusIcon,\n\n resizeTextarea,\n handleInput,\n handleChange,\n handleFocus,\n handleBlur,\n handleCompositionStart,\n handleCompositionUpdate,\n handleCompositionEnd,\n handlePasswordVisible,\n clear,\n select,\n focus,\n blur,\n onMouseLeave,\n onMouseEnter,\n handleKeydown,\n }\n },\n})\n</script>\n"],"names":[],"mappings":"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"}
@@ -136,7 +136,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
136
136
  createElementVNode("span", _hoisted_8, toDisplayString(_ctx.textLength) + " / " + toDisplayString(_ctx.attrs.maxlength), 1)
137
137
  ])) : createCommentVNode("v-if", true)
138
138
  ]),
139
- _ctx.validateState && _ctx.validateIcon ? (openBlock(), createBlock(_component_el_icon, {
139
+ _ctx.validateState && _ctx.validateIcon && _ctx.needStatusIcon ? (openBlock(), createBlock(_component_el_icon, {
140
140
  key: 0,
141
141
  class: "el-input__icon el-input__validateIcon"
142
142
  }, {
@@ -1 +1 @@
1
- {"version":3,"file":"input.vue_vue_type_template_id_3290dcb6_lang.mjs","sources":["../../../../../../packages/components/input/src/input.vue?vue&type=template&id=3290dcb6&lang.js"],"sourcesContent":["<template>\n <div\n v-show=\"type !== 'hidden'\"\n :class=\"[\n type === 'textarea' ? 'el-textarea' : 'el-input',\n inputSize ? 'el-input--' + inputSize : '',\n {\n 'is-disabled': inputDisabled,\n 'is-exceed': inputExceed,\n 'el-input-group': $slots.prepend || $slots.append,\n 'el-input-group--append': $slots.append,\n 'el-input-group--prepend': $slots.prepend,\n 'el-input--prefix': $slots.prefix || prefixIcon,\n 'el-input--suffix':\n $slots.suffix || suffixIcon || clearable || showPassword,\n 'el-input--suffix--password-clear': clearable && showPassword,\n },\n $attrs.class,\n ]\"\n :style=\"containerStyle\"\n @mouseenter=\"onMouseEnter\"\n @mouseleave=\"onMouseLeave\"\n >\n <!-- input -->\n <template v-if=\"type !== 'textarea'\">\n <!-- prepend slot -->\n <div v-if=\"$slots.prepend\" class=\"el-input-group__prepend\">\n <slot name=\"prepend\" />\n </div>\n\n <input\n ref=\"input\"\n class=\"el-input__inner\"\n v-bind=\"attrs\"\n :type=\"showPassword ? (passwordVisible ? 'text' : 'password') : type\"\n :disabled=\"inputDisabled\"\n :readonly=\"readonly\"\n :autocomplete=\"autocomplete\"\n :tabindex=\"tabindex\"\n :aria-label=\"label\"\n :placeholder=\"placeholder\"\n :style=\"inputStyle\"\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\n <!-- prefix slot -->\n <span v-if=\"$slots.prefix || prefixIcon\" class=\"el-input__prefix\">\n <span class=\"el-input__prefix-inner\">\n <slot name=\"prefix\"></slot>\n <el-icon v-if=\"prefixIcon\" class=\"el-input__icon\">\n <component :is=\"prefixIcon\" />\n </el-icon>\n </span>\n </span>\n\n <!-- suffix slot -->\n <span v-if=\"suffixVisible\" class=\"el-input__suffix\">\n <span class=\"el-input__suffix-inner\">\n <template v-if=\"!showClear || !showPwdVisible || !isWordLimitVisible\">\n <slot name=\"suffix\"></slot>\n <el-icon v-if=\"suffixIcon\" class=\"el-input__icon\">\n <component :is=\"suffixIcon\" />\n </el-icon>\n </template>\n <el-icon\n v-if=\"showClear\"\n class=\"el-input__icon el-input__clear\"\n @mousedown.prevent\n @click=\"clear\"\n >\n <circle-close />\n </el-icon>\n <el-icon\n v-if=\"showPwdVisible\"\n class=\"el-input__icon el-input__clear\"\n @click=\"handlePasswordVisible\"\n >\n <icon-view />\n </el-icon>\n <span v-if=\"isWordLimitVisible\" class=\"el-input__count\">\n <span class=\"el-input__count-inner\">\n {{ textLength }} / {{ attrs.maxlength }}\n </span>\n </span>\n </span>\n <el-icon\n v-if=\"validateState && validateIcon\"\n class=\"el-input__icon el-input__validateIcon\"\n >\n <component :is=\"validateIcon\" />\n </el-icon>\n </span>\n\n <!-- append slot -->\n <div v-if=\"$slots.append\" class=\"el-input-group__append\">\n <slot name=\"append\" />\n </div>\n </template>\n\n <!-- textarea -->\n <template v-else>\n <textarea\n ref=\"textarea\"\n class=\"el-textarea__inner\"\n v-bind=\"attrs\"\n :tabindex=\"tabindex\"\n :disabled=\"inputDisabled\"\n :readonly=\"readonly\"\n :autocomplete=\"autocomplete\"\n :style=\"computedTextareaStyle\"\n :aria-label=\"label\"\n :placeholder=\"placeholder\"\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 <span v-if=\"isWordLimitVisible\" class=\"el-input__count\">\n {{ textLength }} / {{ attrs.maxlength }}\n </span>\n </template>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport {\n defineComponent,\n computed,\n watch,\n nextTick,\n getCurrentInstance,\n ref,\n shallowRef,\n onMounted,\n onUpdated,\n} from 'vue'\nimport { isClient } from '@vueuse/core'\nimport { ElIcon } from '@element-plus/components/icon'\nimport { CircleClose, View as IconView } from '@element-plus/icons-vue'\nimport { ValidateComponentsMap } from '@element-plus/utils/icon'\nimport {\n useAttrs,\n useDisabled,\n useFormItem,\n useSize,\n} from '@element-plus/hooks'\nimport { UPDATE_MODEL_EVENT } from '@element-plus/utils/constants'\nimport { isObject } from '@element-plus/utils/util'\nimport { isKorean } from '@element-plus/utils/isDef'\nimport { calcTextareaHeight } from './calc-textarea-height'\nimport { inputProps, inputEmits } from './input'\n\nimport type { StyleValue } from '@element-plus/utils/types'\n\ntype TargetElement = HTMLInputElement | HTMLTextAreaElement\n\nconst PENDANT_MAP = {\n suffix: 'append',\n prefix: 'prepend',\n} as const\n\nexport default defineComponent({\n name: 'ElInput',\n\n components: { ElIcon, CircleClose, IconView },\n\n inheritAttrs: false,\n\n props: inputProps,\n emits: inputEmits,\n\n setup(props, { slots, emit, attrs: rawAttrs }) {\n const instance = getCurrentInstance()!\n const attrs = useAttrs()\n\n const { form, formItem } = useFormItem()\n const inputSize = useSize()\n const inputDisabled = useDisabled()\n\n const input = ref<HTMLInputElement>()\n const textarea = ref<HTMLTextAreaElement>()\n const focused = ref(false)\n const hovering = ref(false)\n const isComposing = ref(false)\n const passwordVisible = ref(false)\n const _textareaCalcStyle = shallowRef(props.inputStyle)\n\n const inputOrTextarea = computed(() => input.value || textarea.value)\n\n const needStatusIcon = computed(() => form?.statusIcon ?? false)\n const validateState = computed(() => formItem?.validateState || '')\n const validateIcon = computed(\n () => ValidateComponentsMap[validateState.value]\n )\n const containerStyle = computed(() => rawAttrs.style as StyleValue)\n const computedTextareaStyle = computed<StyleValue>(() => [\n props.inputStyle,\n _textareaCalcStyle.value,\n { resize: props.resize },\n ])\n const nativeInputValue = computed(() =>\n props.modelValue === null || props.modelValue === undefined\n ? ''\n : String(props.modelValue)\n )\n const showClear = computed(\n () =>\n props.clearable &&\n !inputDisabled.value &&\n !props.readonly &&\n !!nativeInputValue.value &&\n (focused.value || hovering.value)\n )\n const showPwdVisible = computed(\n () =>\n props.showPassword &&\n !inputDisabled.value &&\n !props.readonly &&\n (!!nativeInputValue.value || focused.value)\n )\n const isWordLimitVisible = computed(\n () =>\n props.showWordLimit &&\n !!attrs.value.maxlength &&\n (props.type === 'text' || props.type === 'textarea') &&\n !inputDisabled.value &&\n !props.readonly &&\n !props.showPassword\n )\n const textLength = computed(() => Array.from(nativeInputValue.value).length)\n const inputExceed = computed(\n () =>\n // show exceed style if length of initial value greater then maxlength\n !!isWordLimitVisible.value &&\n textLength.value > Number(attrs.value.maxlength)\n )\n\n const resizeTextarea = () => {\n const { type, autosize } = props\n\n if (!isClient || type !== 'textarea') return\n\n if (autosize) {\n const minRows = isObject(autosize) ? autosize.minRows : undefined\n const maxRows = isObject(autosize) ? autosize.maxRows : undefined\n _textareaCalcStyle.value = {\n ...calcTextareaHeight(textarea.value!, minRows, maxRows),\n }\n } else {\n _textareaCalcStyle.value = {\n minHeight: calcTextareaHeight(textarea.value!).minHeight,\n }\n }\n }\n\n const setNativeInputValue = () => {\n const input = inputOrTextarea.value\n if (!input || input.value === nativeInputValue.value) return\n input.value = nativeInputValue.value\n }\n\n const calcIconOffset = (place: 'prefix' | 'suffix') => {\n const { el } = instance.vnode\n if (!el) return\n const elList: HTMLSpanElement[] = Array.from(\n el.querySelectorAll(`.el-input__${place}`)\n )\n const target = elList.find((item) => item.parentNode === el)\n\n if (!target) return\n\n const pendant = PENDANT_MAP[place]\n\n if (slots[pendant]) {\n target.style.transform = `translateX(${place === 'suffix' ? '-' : ''}${\n el.querySelector(`.el-input-group__${pendant}`).offsetWidth\n }px)`\n } else {\n target.removeAttribute('style')\n }\n }\n\n const updateIconOffset = () => {\n calcIconOffset('prefix')\n calcIconOffset('suffix')\n }\n\n const handleInput = (event: Event) => {\n const { value } = event.target as TargetElement\n\n // should not emit input during composition\n // see: https://github.com/ElemeFE/element/issues/10516\n if (isComposing.value) return\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 (value === nativeInputValue.value) return\n\n emit(UPDATE_MODEL_EVENT, value)\n emit('input', value)\n\n // ensure native input value is controlled\n // see: https://github.com/ElemeFE/element/issues/12850\n nextTick(setNativeInputValue)\n }\n\n const handleChange = (event: Event) => {\n emit('change', (event.target as TargetElement).value)\n }\n\n const focus = () => {\n // see: https://github.com/ElemeFE/element/issues/18573\n nextTick(() => {\n inputOrTextarea.value?.focus()\n })\n }\n\n const blur = () => {\n inputOrTextarea.value?.blur()\n }\n\n const handleFocus = (event: FocusEvent) => {\n focused.value = true\n emit('focus', event)\n }\n\n const handleBlur = (event: FocusEvent) => {\n focused.value = false\n emit('blur', event)\n if (props.validateEvent) {\n formItem?.validate?.('blur')\n }\n }\n\n const select = () => {\n inputOrTextarea.value?.select()\n }\n\n const handleCompositionStart = (event: CompositionEvent) => {\n emit('compositionstart', event)\n isComposing.value = true\n }\n\n const handleCompositionUpdate = (event: CompositionEvent) => {\n emit('compositionupdate', event)\n const text = (event.target as HTMLInputElement)?.value\n const lastCharacter = text[text.length - 1] || ''\n isComposing.value = !isKorean(lastCharacter)\n }\n\n const handleCompositionEnd = (event: CompositionEvent) => {\n emit('compositionend', event)\n if (isComposing.value) {\n isComposing.value = false\n handleInput(event)\n }\n }\n\n const clear = () => {\n emit(UPDATE_MODEL_EVENT, '')\n emit('change', '')\n emit('clear')\n emit('input', '')\n }\n\n const handlePasswordVisible = () => {\n passwordVisible.value = !passwordVisible.value\n focus()\n }\n\n const suffixVisible = computed(\n () =>\n !!slots.suffix ||\n !!props.suffixIcon ||\n showClear.value ||\n props.showPassword ||\n isWordLimitVisible.value ||\n (!!validateState.value && needStatusIcon.value)\n )\n\n watch(\n () => props.modelValue,\n () => {\n nextTick(resizeTextarea)\n if (props.validateEvent) {\n formItem?.validate?.('change')\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\n watch(nativeInputValue, () => setNativeInputValue())\n\n // when change between <input> and <textarea>,\n // update DOM dependent value and styles\n // https://github.com/ElemeFE/element/issues/14857\n watch(\n () => props.type,\n () => {\n nextTick(() => {\n setNativeInputValue()\n resizeTextarea()\n updateIconOffset()\n })\n }\n )\n\n onMounted(() => {\n setNativeInputValue()\n updateIconOffset()\n nextTick(resizeTextarea)\n })\n\n onUpdated(() => {\n nextTick(updateIconOffset)\n })\n\n const onMouseLeave = (evt: MouseEvent) => {\n hovering.value = false\n emit('mouseleave', evt)\n }\n\n const onMouseEnter = (evt: MouseEvent) => {\n hovering.value = true\n emit('mouseenter', evt)\n }\n\n const handleKeydown = (evt: KeyboardEvent) => {\n emit('keydown', evt)\n }\n\n return {\n input,\n textarea,\n attrs,\n inputSize,\n validateState,\n validateIcon,\n containerStyle,\n computedTextareaStyle,\n inputDisabled,\n showClear,\n showPwdVisible,\n isWordLimitVisible,\n textLength,\n hovering,\n inputExceed,\n passwordVisible,\n inputOrTextarea,\n suffixVisible,\n\n resizeTextarea,\n handleInput,\n handleChange,\n handleFocus,\n handleBlur,\n handleCompositionStart,\n handleCompositionUpdate,\n handleCompositionEnd,\n handlePasswordVisible,\n clear,\n select,\n focus,\n blur,\n onMouseLeave,\n onMouseEnter,\n handleKeydown,\n }\n },\n})\n</script>\n"],"names":["_createCommentVNode","_createElementBlock","_createBlock"],"mappings":";;;;;EA0BiC;;;;;EA2Bc;;;;;EAUd;;;;;EAuBS;;;;;EAeV;;;;;EA2BM;;;;;;;;;;;;;;;;;;;;;;;;;IA7GjCA;IACA;;;;;;;;;;;;uCAUC;;;;;;mCAMqB;wBACN,EAAE;;wBAEJ,EAAE;uBACD,EAAE;;;+BAGI;;4DAEVC;;;;YAIP;;;;4BAIHC;;;;;;;;;;;;;;;;;;;;gBAWE;;;;yBAGmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAiBf;;;;;;;;;;;;;;;;;8FAY0B;;;;;;;;;6BAKhC;;;;;;;;;"}
1
+ {"version":3,"file":"input.vue_vue_type_template_id_3290dcb6_lang.mjs","sources":["../../../../../../packages/components/input/src/input.vue?vue&type=template&id=3290dcb6&lang.js"],"sourcesContent":["<template>\n <div\n v-show=\"type !== 'hidden'\"\n :class=\"[\n type === 'textarea' ? 'el-textarea' : 'el-input',\n inputSize ? 'el-input--' + inputSize : '',\n {\n 'is-disabled': inputDisabled,\n 'is-exceed': inputExceed,\n 'el-input-group': $slots.prepend || $slots.append,\n 'el-input-group--append': $slots.append,\n 'el-input-group--prepend': $slots.prepend,\n 'el-input--prefix': $slots.prefix || prefixIcon,\n 'el-input--suffix':\n $slots.suffix || suffixIcon || clearable || showPassword,\n 'el-input--suffix--password-clear': clearable && showPassword,\n },\n $attrs.class,\n ]\"\n :style=\"containerStyle\"\n @mouseenter=\"onMouseEnter\"\n @mouseleave=\"onMouseLeave\"\n >\n <!-- input -->\n <template v-if=\"type !== 'textarea'\">\n <!-- prepend slot -->\n <div v-if=\"$slots.prepend\" class=\"el-input-group__prepend\">\n <slot name=\"prepend\" />\n </div>\n\n <input\n ref=\"input\"\n class=\"el-input__inner\"\n v-bind=\"attrs\"\n :type=\"showPassword ? (passwordVisible ? 'text' : 'password') : type\"\n :disabled=\"inputDisabled\"\n :readonly=\"readonly\"\n :autocomplete=\"autocomplete\"\n :tabindex=\"tabindex\"\n :aria-label=\"label\"\n :placeholder=\"placeholder\"\n :style=\"inputStyle\"\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\n <!-- prefix slot -->\n <span v-if=\"$slots.prefix || prefixIcon\" class=\"el-input__prefix\">\n <span class=\"el-input__prefix-inner\">\n <slot name=\"prefix\"></slot>\n <el-icon v-if=\"prefixIcon\" class=\"el-input__icon\">\n <component :is=\"prefixIcon\" />\n </el-icon>\n </span>\n </span>\n\n <!-- suffix slot -->\n <span v-if=\"suffixVisible\" class=\"el-input__suffix\">\n <span class=\"el-input__suffix-inner\">\n <template v-if=\"!showClear || !showPwdVisible || !isWordLimitVisible\">\n <slot name=\"suffix\"></slot>\n <el-icon v-if=\"suffixIcon\" class=\"el-input__icon\">\n <component :is=\"suffixIcon\" />\n </el-icon>\n </template>\n <el-icon\n v-if=\"showClear\"\n class=\"el-input__icon el-input__clear\"\n @mousedown.prevent\n @click=\"clear\"\n >\n <circle-close />\n </el-icon>\n <el-icon\n v-if=\"showPwdVisible\"\n class=\"el-input__icon el-input__clear\"\n @click=\"handlePasswordVisible\"\n >\n <icon-view />\n </el-icon>\n <span v-if=\"isWordLimitVisible\" class=\"el-input__count\">\n <span class=\"el-input__count-inner\">\n {{ textLength }} / {{ attrs.maxlength }}\n </span>\n </span>\n </span>\n <el-icon\n v-if=\"validateState && validateIcon && needStatusIcon\"\n class=\"el-input__icon el-input__validateIcon\"\n >\n <component :is=\"validateIcon\" />\n </el-icon>\n </span>\n\n <!-- append slot -->\n <div v-if=\"$slots.append\" class=\"el-input-group__append\">\n <slot name=\"append\" />\n </div>\n </template>\n\n <!-- textarea -->\n <template v-else>\n <textarea\n ref=\"textarea\"\n class=\"el-textarea__inner\"\n v-bind=\"attrs\"\n :tabindex=\"tabindex\"\n :disabled=\"inputDisabled\"\n :readonly=\"readonly\"\n :autocomplete=\"autocomplete\"\n :style=\"computedTextareaStyle\"\n :aria-label=\"label\"\n :placeholder=\"placeholder\"\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 <span v-if=\"isWordLimitVisible\" class=\"el-input__count\">\n {{ textLength }} / {{ attrs.maxlength }}\n </span>\n </template>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport {\n defineComponent,\n computed,\n watch,\n nextTick,\n getCurrentInstance,\n ref,\n shallowRef,\n onMounted,\n onUpdated,\n} from 'vue'\nimport { isClient } from '@vueuse/core'\nimport { ElIcon } from '@element-plus/components/icon'\nimport { CircleClose, View as IconView } from '@element-plus/icons-vue'\nimport { ValidateComponentsMap } from '@element-plus/utils/icon'\nimport {\n useAttrs,\n useDisabled,\n useFormItem,\n useSize,\n} from '@element-plus/hooks'\nimport { UPDATE_MODEL_EVENT } from '@element-plus/utils/constants'\nimport { isObject } from '@element-plus/utils/util'\nimport { isKorean } from '@element-plus/utils/isDef'\nimport { calcTextareaHeight } from './calc-textarea-height'\nimport { inputProps, inputEmits } from './input'\n\nimport type { StyleValue } from '@element-plus/utils/types'\n\ntype TargetElement = HTMLInputElement | HTMLTextAreaElement\n\nconst PENDANT_MAP = {\n suffix: 'append',\n prefix: 'prepend',\n} as const\n\nexport default defineComponent({\n name: 'ElInput',\n\n components: { ElIcon, CircleClose, IconView },\n\n inheritAttrs: false,\n\n props: inputProps,\n emits: inputEmits,\n\n setup(props, { slots, emit, attrs: rawAttrs }) {\n const instance = getCurrentInstance()!\n const attrs = useAttrs()\n\n const { form, formItem } = useFormItem()\n const inputSize = useSize()\n const inputDisabled = useDisabled()\n\n const input = ref<HTMLInputElement>()\n const textarea = ref<HTMLTextAreaElement>()\n const focused = ref(false)\n const hovering = ref(false)\n const isComposing = ref(false)\n const passwordVisible = ref(false)\n const _textareaCalcStyle = shallowRef(props.inputStyle)\n\n const inputOrTextarea = computed(() => input.value || textarea.value)\n\n const needStatusIcon = computed(() => form?.statusIcon ?? false)\n const validateState = computed(() => formItem?.validateState || '')\n const validateIcon = computed(\n () => ValidateComponentsMap[validateState.value]\n )\n const containerStyle = computed(() => rawAttrs.style as StyleValue)\n const computedTextareaStyle = computed<StyleValue>(() => [\n props.inputStyle,\n _textareaCalcStyle.value,\n { resize: props.resize },\n ])\n const nativeInputValue = computed(() =>\n props.modelValue === null || props.modelValue === undefined\n ? ''\n : String(props.modelValue)\n )\n const showClear = computed(\n () =>\n props.clearable &&\n !inputDisabled.value &&\n !props.readonly &&\n !!nativeInputValue.value &&\n (focused.value || hovering.value)\n )\n const showPwdVisible = computed(\n () =>\n props.showPassword &&\n !inputDisabled.value &&\n !props.readonly &&\n (!!nativeInputValue.value || focused.value)\n )\n const isWordLimitVisible = computed(\n () =>\n props.showWordLimit &&\n !!attrs.value.maxlength &&\n (props.type === 'text' || props.type === 'textarea') &&\n !inputDisabled.value &&\n !props.readonly &&\n !props.showPassword\n )\n const textLength = computed(() => Array.from(nativeInputValue.value).length)\n const inputExceed = computed(\n () =>\n // show exceed style if length of initial value greater then maxlength\n !!isWordLimitVisible.value &&\n textLength.value > Number(attrs.value.maxlength)\n )\n\n const resizeTextarea = () => {\n const { type, autosize } = props\n\n if (!isClient || type !== 'textarea') return\n\n if (autosize) {\n const minRows = isObject(autosize) ? autosize.minRows : undefined\n const maxRows = isObject(autosize) ? autosize.maxRows : undefined\n _textareaCalcStyle.value = {\n ...calcTextareaHeight(textarea.value!, minRows, maxRows),\n }\n } else {\n _textareaCalcStyle.value = {\n minHeight: calcTextareaHeight(textarea.value!).minHeight,\n }\n }\n }\n\n const setNativeInputValue = () => {\n const input = inputOrTextarea.value\n if (!input || input.value === nativeInputValue.value) return\n input.value = nativeInputValue.value\n }\n\n const calcIconOffset = (place: 'prefix' | 'suffix') => {\n const { el } = instance.vnode\n if (!el) return\n const elList: HTMLSpanElement[] = Array.from(\n el.querySelectorAll(`.el-input__${place}`)\n )\n const target = elList.find((item) => item.parentNode === el)\n\n if (!target) return\n\n const pendant = PENDANT_MAP[place]\n\n if (slots[pendant]) {\n target.style.transform = `translateX(${place === 'suffix' ? '-' : ''}${\n el.querySelector(`.el-input-group__${pendant}`).offsetWidth\n }px)`\n } else {\n target.removeAttribute('style')\n }\n }\n\n const updateIconOffset = () => {\n calcIconOffset('prefix')\n calcIconOffset('suffix')\n }\n\n const handleInput = (event: Event) => {\n const { value } = event.target as TargetElement\n\n // should not emit input during composition\n // see: https://github.com/ElemeFE/element/issues/10516\n if (isComposing.value) return\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 (value === nativeInputValue.value) return\n\n emit(UPDATE_MODEL_EVENT, value)\n emit('input', value)\n\n // ensure native input value is controlled\n // see: https://github.com/ElemeFE/element/issues/12850\n nextTick(setNativeInputValue)\n }\n\n const handleChange = (event: Event) => {\n emit('change', (event.target as TargetElement).value)\n }\n\n const focus = () => {\n // see: https://github.com/ElemeFE/element/issues/18573\n nextTick(() => {\n inputOrTextarea.value?.focus()\n })\n }\n\n const blur = () => {\n inputOrTextarea.value?.blur()\n }\n\n const handleFocus = (event: FocusEvent) => {\n focused.value = true\n emit('focus', event)\n }\n\n const handleBlur = (event: FocusEvent) => {\n focused.value = false\n emit('blur', event)\n if (props.validateEvent) {\n formItem?.validate?.('blur')\n }\n }\n\n const select = () => {\n inputOrTextarea.value?.select()\n }\n\n const handleCompositionStart = (event: CompositionEvent) => {\n emit('compositionstart', event)\n isComposing.value = true\n }\n\n const handleCompositionUpdate = (event: CompositionEvent) => {\n emit('compositionupdate', event)\n const text = (event.target as HTMLInputElement)?.value\n const lastCharacter = text[text.length - 1] || ''\n isComposing.value = !isKorean(lastCharacter)\n }\n\n const handleCompositionEnd = (event: CompositionEvent) => {\n emit('compositionend', event)\n if (isComposing.value) {\n isComposing.value = false\n handleInput(event)\n }\n }\n\n const clear = () => {\n emit(UPDATE_MODEL_EVENT, '')\n emit('change', '')\n emit('clear')\n emit('input', '')\n }\n\n const handlePasswordVisible = () => {\n passwordVisible.value = !passwordVisible.value\n focus()\n }\n\n const suffixVisible = computed(\n () =>\n !!slots.suffix ||\n !!props.suffixIcon ||\n showClear.value ||\n props.showPassword ||\n isWordLimitVisible.value ||\n (!!validateState.value && needStatusIcon.value)\n )\n\n watch(\n () => props.modelValue,\n () => {\n nextTick(resizeTextarea)\n if (props.validateEvent) {\n formItem?.validate?.('change')\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\n watch(nativeInputValue, () => setNativeInputValue())\n\n // when change between <input> and <textarea>,\n // update DOM dependent value and styles\n // https://github.com/ElemeFE/element/issues/14857\n watch(\n () => props.type,\n () => {\n nextTick(() => {\n setNativeInputValue()\n resizeTextarea()\n updateIconOffset()\n })\n }\n )\n\n onMounted(() => {\n setNativeInputValue()\n updateIconOffset()\n nextTick(resizeTextarea)\n })\n\n onUpdated(() => {\n nextTick(updateIconOffset)\n })\n\n const onMouseLeave = (evt: MouseEvent) => {\n hovering.value = false\n emit('mouseleave', evt)\n }\n\n const onMouseEnter = (evt: MouseEvent) => {\n hovering.value = true\n emit('mouseenter', evt)\n }\n\n const handleKeydown = (evt: KeyboardEvent) => {\n emit('keydown', evt)\n }\n\n return {\n input,\n textarea,\n attrs,\n inputSize,\n validateState,\n validateIcon,\n containerStyle,\n computedTextareaStyle,\n inputDisabled,\n showClear,\n showPwdVisible,\n isWordLimitVisible,\n textLength,\n hovering,\n inputExceed,\n passwordVisible,\n inputOrTextarea,\n suffixVisible,\n needStatusIcon,\n\n resizeTextarea,\n handleInput,\n handleChange,\n handleFocus,\n handleBlur,\n handleCompositionStart,\n handleCompositionUpdate,\n handleCompositionEnd,\n handlePasswordVisible,\n clear,\n select,\n focus,\n blur,\n onMouseLeave,\n onMouseEnter,\n handleKeydown,\n }\n },\n})\n</script>\n"],"names":["_createCommentVNode","_createElementBlock","_createBlock"],"mappings":";;;;;EA0BiC;;;;;EA2Bc;;;;;EAUd;;;;;EAuBS;;;;;EAeV;;;;;EA2BM;;;;;;;;;;;;;;;;;;;;;;;;;IA7GjCA;IACA;;;;;;;;;;;;uCAUC;;;;;;mCAMqB;wBACN,EAAE;;wBAEJ,EAAE;uBACD,EAAE;;;+BAGI;;4DAEVC;;;;YAIP;;;;4BAIHC;;;;;;;;;;;;;;;;;;;;gBAWE;;;;yBAGmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAiBf;;;;;;;;;;;;;;;;;8FAY0B;;;;;;;;;6BAKhC;;;;;;;;;"}
@@ -55,6 +55,7 @@ export declare const ElInputNumber: import("../../utils/types").SFCWithInstall<i
55
55
  passwordVisible: import("vue").Ref<boolean>;
56
56
  inputOrTextarea: import("vue").ComputedRef<HTMLInputElement | HTMLTextAreaElement | undefined>;
57
57
  suffixVisible: import("vue").ComputedRef<boolean>;
58
+ needStatusIcon: import("vue").ComputedRef<boolean>;
58
59
  resizeTextarea: () => void;
59
60
  handleInput: (event: Event) => void;
60
61
  handleChange: (event: Event) => void;
@@ -206,6 +207,7 @@ export declare const ElInputNumber: import("../../utils/types").SFCWithInstall<i
206
207
  passwordVisible: import("vue").Ref<boolean>;
207
208
  inputOrTextarea: import("vue").ComputedRef<HTMLInputElement | HTMLTextAreaElement | undefined>;
208
209
  suffixVisible: import("vue").ComputedRef<boolean>;
210
+ needStatusIcon: import("vue").ComputedRef<boolean>;
209
211
  resizeTextarea: () => void;
210
212
  handleInput: (event: Event) => void;
211
213
  handleChange: (event: Event) => void;
@@ -328,6 +330,8 @@ export declare const ElInputNumber: import("../../utils/types").SFCWithInstall<i
328
330
  minDisabled: import("vue").ComputedRef<boolean>;
329
331
  focus: () => void;
330
332
  blur: () => void;
333
+ handleFocus: (event: MouseEvent) => void;
334
+ handleBlur: (event: MouseEvent) => void;
331
335
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
332
336
  change: (prev: number, cur: number) => boolean;
333
337
  blur: (e: FocusEvent) => boolean;
@@ -358,9 +362,9 @@ export declare const ElInputNumber: import("../../utils/types").SFCWithInstall<i
358
362
  controlsPosition: import("../../utils/props").BuildPropType<StringConstructor, "" | "right", unknown>;
359
363
  } & {
360
364
  size?: import("../../utils/props").BuildPropType<StringConstructor, "small" | "default" | "large", unknown> | undefined;
361
- name?: string | undefined;
362
365
  modelValue?: number | undefined;
363
366
  label?: string | undefined;
367
+ name?: string | undefined;
364
368
  placeholder?: string | undefined;
365
369
  precision?: number | undefined;
366
370
  }> & {
@@ -56,6 +56,7 @@ declare const _default: import("vue").DefineComponent<{
56
56
  passwordVisible: import("vue").Ref<boolean>;
57
57
  inputOrTextarea: import("vue").ComputedRef<HTMLInputElement | HTMLTextAreaElement | undefined>;
58
58
  suffixVisible: import("vue").ComputedRef<boolean>;
59
+ needStatusIcon: import("vue").ComputedRef<boolean>;
59
60
  resizeTextarea: () => void;
60
61
  handleInput: (event: Event) => void;
61
62
  handleChange: (event: Event) => void;
@@ -207,6 +208,7 @@ declare const _default: import("vue").DefineComponent<{
207
208
  passwordVisible: import("vue").Ref<boolean>;
208
209
  inputOrTextarea: import("vue").ComputedRef<HTMLInputElement | HTMLTextAreaElement | undefined>;
209
210
  suffixVisible: import("vue").ComputedRef<boolean>;
211
+ needStatusIcon: import("vue").ComputedRef<boolean>;
210
212
  resizeTextarea: () => void;
211
213
  handleInput: (event: Event) => void;
212
214
  handleChange: (event: Event) => void;
@@ -329,6 +331,8 @@ declare const _default: import("vue").DefineComponent<{
329
331
  minDisabled: import("vue").ComputedRef<boolean>;
330
332
  focus: () => void;
331
333
  blur: () => void;
334
+ handleFocus: (event: MouseEvent) => void;
335
+ handleBlur: (event: MouseEvent) => void;
332
336
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
333
337
  change: (prev: number, cur: number) => boolean;
334
338
  blur: (e: FocusEvent) => boolean;
@@ -359,9 +363,9 @@ declare const _default: import("vue").DefineComponent<{
359
363
  controlsPosition: import("../../../utils/props").BuildPropType<StringConstructor, "" | "right", unknown>;
360
364
  } & {
361
365
  size?: import("../../../utils/props").BuildPropType<StringConstructor, "small" | "default" | "large", unknown> | undefined;
362
- name?: string | undefined;
363
366
  modelValue?: number | undefined;
364
367
  label?: string | undefined;
368
+ name?: string | undefined;
365
369
  placeholder?: string | undefined;
366
370
  precision?: number | undefined;
367
371
  }> & {