element-plus 2.1.10 → 2.1.11

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 (709) hide show
  1. package/attributes.json +1 -1
  2. package/dist/index.css +1 -1
  3. package/dist/index.full.js +404 -1684
  4. package/dist/index.full.min.js +6 -6
  5. package/dist/index.full.min.js.map +1 -1
  6. package/dist/index.full.min.mjs +10 -10
  7. package/dist/index.full.min.mjs.map +1 -1
  8. package/dist/index.full.mjs +404 -1684
  9. package/dist/locale/af.js +1 -1
  10. package/dist/locale/af.min.js +1 -1
  11. package/dist/locale/af.min.mjs +1 -1
  12. package/dist/locale/af.mjs +1 -1
  13. package/dist/locale/ar.js +1 -1
  14. package/dist/locale/ar.min.js +1 -1
  15. package/dist/locale/ar.min.mjs +1 -1
  16. package/dist/locale/ar.mjs +1 -1
  17. package/dist/locale/az.js +1 -1
  18. package/dist/locale/az.min.js +1 -1
  19. package/dist/locale/az.min.mjs +1 -1
  20. package/dist/locale/az.mjs +1 -1
  21. package/dist/locale/bg.js +1 -1
  22. package/dist/locale/bg.min.js +1 -1
  23. package/dist/locale/bg.min.mjs +1 -1
  24. package/dist/locale/bg.mjs +1 -1
  25. package/dist/locale/bn.js +1 -1
  26. package/dist/locale/bn.min.js +1 -1
  27. package/dist/locale/bn.min.mjs +1 -1
  28. package/dist/locale/bn.mjs +1 -1
  29. package/dist/locale/ca.js +1 -1
  30. package/dist/locale/ca.min.js +1 -1
  31. package/dist/locale/ca.min.mjs +1 -1
  32. package/dist/locale/ca.mjs +1 -1
  33. package/dist/locale/cs.js +1 -1
  34. package/dist/locale/cs.min.js +1 -1
  35. package/dist/locale/cs.min.mjs +1 -1
  36. package/dist/locale/cs.mjs +1 -1
  37. package/dist/locale/da.js +1 -1
  38. package/dist/locale/da.min.js +1 -1
  39. package/dist/locale/da.min.mjs +1 -1
  40. package/dist/locale/da.mjs +1 -1
  41. package/dist/locale/de.js +1 -1
  42. package/dist/locale/de.min.js +1 -1
  43. package/dist/locale/de.min.mjs +1 -1
  44. package/dist/locale/de.mjs +1 -1
  45. package/dist/locale/el.js +1 -1
  46. package/dist/locale/el.min.js +1 -1
  47. package/dist/locale/el.min.mjs +1 -1
  48. package/dist/locale/el.mjs +1 -1
  49. package/dist/locale/en.js +1 -1
  50. package/dist/locale/en.min.js +1 -1
  51. package/dist/locale/en.min.mjs +1 -1
  52. package/dist/locale/en.mjs +1 -1
  53. package/dist/locale/eo.js +1 -1
  54. package/dist/locale/eo.min.js +1 -1
  55. package/dist/locale/eo.min.mjs +1 -1
  56. package/dist/locale/eo.mjs +1 -1
  57. package/dist/locale/es.js +1 -1
  58. package/dist/locale/es.min.js +1 -1
  59. package/dist/locale/es.min.mjs +1 -1
  60. package/dist/locale/es.mjs +1 -1
  61. package/dist/locale/et.js +1 -1
  62. package/dist/locale/et.min.js +1 -1
  63. package/dist/locale/et.min.mjs +1 -1
  64. package/dist/locale/et.mjs +1 -1
  65. package/dist/locale/eu.js +1 -1
  66. package/dist/locale/eu.min.js +1 -1
  67. package/dist/locale/eu.min.mjs +1 -1
  68. package/dist/locale/eu.mjs +1 -1
  69. package/dist/locale/fa.js +1 -1
  70. package/dist/locale/fa.min.js +1 -1
  71. package/dist/locale/fa.min.mjs +1 -1
  72. package/dist/locale/fa.mjs +1 -1
  73. package/dist/locale/fi.js +1 -1
  74. package/dist/locale/fi.min.js +1 -1
  75. package/dist/locale/fi.min.mjs +1 -1
  76. package/dist/locale/fi.mjs +1 -1
  77. package/dist/locale/fr.js +1 -1
  78. package/dist/locale/fr.min.js +1 -1
  79. package/dist/locale/fr.min.mjs +1 -1
  80. package/dist/locale/fr.mjs +1 -1
  81. package/dist/locale/he.js +1 -1
  82. package/dist/locale/he.min.js +1 -1
  83. package/dist/locale/he.min.mjs +1 -1
  84. package/dist/locale/he.mjs +1 -1
  85. package/dist/locale/hr.js +1 -1
  86. package/dist/locale/hr.min.js +1 -1
  87. package/dist/locale/hr.min.mjs +1 -1
  88. package/dist/locale/hr.mjs +1 -1
  89. package/dist/locale/hu.js +1 -1
  90. package/dist/locale/hu.min.js +1 -1
  91. package/dist/locale/hu.min.mjs +1 -1
  92. package/dist/locale/hu.mjs +1 -1
  93. package/dist/locale/hy-am.js +1 -1
  94. package/dist/locale/hy-am.min.js +1 -1
  95. package/dist/locale/hy-am.min.mjs +1 -1
  96. package/dist/locale/hy-am.mjs +1 -1
  97. package/dist/locale/id.js +1 -1
  98. package/dist/locale/id.min.js +1 -1
  99. package/dist/locale/id.min.mjs +1 -1
  100. package/dist/locale/id.mjs +1 -1
  101. package/dist/locale/it.js +1 -1
  102. package/dist/locale/it.min.js +1 -1
  103. package/dist/locale/it.min.mjs +1 -1
  104. package/dist/locale/it.mjs +1 -1
  105. package/dist/locale/ja.js +1 -1
  106. package/dist/locale/ja.min.js +1 -1
  107. package/dist/locale/ja.min.mjs +1 -1
  108. package/dist/locale/ja.mjs +1 -1
  109. package/dist/locale/kk.js +1 -1
  110. package/dist/locale/kk.min.js +1 -1
  111. package/dist/locale/kk.min.mjs +1 -1
  112. package/dist/locale/kk.mjs +1 -1
  113. package/dist/locale/km.js +1 -1
  114. package/dist/locale/km.min.js +1 -1
  115. package/dist/locale/km.min.mjs +1 -1
  116. package/dist/locale/km.mjs +1 -1
  117. package/dist/locale/ko.js +1 -1
  118. package/dist/locale/ko.min.js +1 -1
  119. package/dist/locale/ko.min.mjs +1 -1
  120. package/dist/locale/ko.mjs +1 -1
  121. package/dist/locale/ku.js +1 -1
  122. package/dist/locale/ku.min.js +1 -1
  123. package/dist/locale/ku.min.mjs +1 -1
  124. package/dist/locale/ku.mjs +1 -1
  125. package/dist/locale/ky.js +1 -1
  126. package/dist/locale/ky.min.js +1 -1
  127. package/dist/locale/ky.min.mjs +1 -1
  128. package/dist/locale/ky.mjs +1 -1
  129. package/dist/locale/lt.js +1 -1
  130. package/dist/locale/lt.min.js +1 -1
  131. package/dist/locale/lt.min.mjs +1 -1
  132. package/dist/locale/lt.mjs +1 -1
  133. package/dist/locale/lv.js +1 -1
  134. package/dist/locale/lv.min.js +1 -1
  135. package/dist/locale/lv.min.mjs +1 -1
  136. package/dist/locale/lv.mjs +1 -1
  137. package/dist/locale/mg.js +1 -1
  138. package/dist/locale/mg.min.js +1 -1
  139. package/dist/locale/mg.min.mjs +1 -1
  140. package/dist/locale/mg.mjs +1 -1
  141. package/dist/locale/mn.js +1 -1
  142. package/dist/locale/mn.min.js +1 -1
  143. package/dist/locale/mn.min.mjs +1 -1
  144. package/dist/locale/mn.mjs +1 -1
  145. package/dist/locale/nb-no.js +1 -1
  146. package/dist/locale/nb-no.min.js +1 -1
  147. package/dist/locale/nb-no.min.mjs +1 -1
  148. package/dist/locale/nb-no.mjs +1 -1
  149. package/dist/locale/nl.js +1 -1
  150. package/dist/locale/nl.min.js +1 -1
  151. package/dist/locale/nl.min.mjs +1 -1
  152. package/dist/locale/nl.mjs +1 -1
  153. package/dist/locale/pa.js +1 -1
  154. package/dist/locale/pa.min.js +1 -1
  155. package/dist/locale/pa.min.mjs +1 -1
  156. package/dist/locale/pa.mjs +1 -1
  157. package/dist/locale/pl.js +1 -1
  158. package/dist/locale/pl.min.js +1 -1
  159. package/dist/locale/pl.min.mjs +1 -1
  160. package/dist/locale/pl.mjs +1 -1
  161. package/dist/locale/pt-br.js +1 -1
  162. package/dist/locale/pt-br.min.js +1 -1
  163. package/dist/locale/pt-br.min.mjs +1 -1
  164. package/dist/locale/pt-br.mjs +1 -1
  165. package/dist/locale/pt.js +1 -1
  166. package/dist/locale/pt.min.js +1 -1
  167. package/dist/locale/pt.min.mjs +1 -1
  168. package/dist/locale/pt.mjs +1 -1
  169. package/dist/locale/ro.js +1 -1
  170. package/dist/locale/ro.min.js +1 -1
  171. package/dist/locale/ro.min.mjs +1 -1
  172. package/dist/locale/ro.mjs +1 -1
  173. package/dist/locale/ru.js +1 -1
  174. package/dist/locale/ru.min.js +1 -1
  175. package/dist/locale/ru.min.mjs +1 -1
  176. package/dist/locale/ru.mjs +1 -1
  177. package/dist/locale/sk.js +1 -1
  178. package/dist/locale/sk.min.js +1 -1
  179. package/dist/locale/sk.min.mjs +1 -1
  180. package/dist/locale/sk.mjs +1 -1
  181. package/dist/locale/sl.js +1 -1
  182. package/dist/locale/sl.min.js +1 -1
  183. package/dist/locale/sl.min.mjs +1 -1
  184. package/dist/locale/sl.mjs +1 -1
  185. package/dist/locale/sr.js +1 -1
  186. package/dist/locale/sr.min.js +1 -1
  187. package/dist/locale/sr.min.mjs +1 -1
  188. package/dist/locale/sr.mjs +1 -1
  189. package/dist/locale/sv.js +1 -1
  190. package/dist/locale/sv.min.js +1 -1
  191. package/dist/locale/sv.min.mjs +1 -1
  192. package/dist/locale/sv.mjs +1 -1
  193. package/dist/locale/ta.js +1 -1
  194. package/dist/locale/ta.min.js +1 -1
  195. package/dist/locale/ta.min.mjs +1 -1
  196. package/dist/locale/ta.mjs +1 -1
  197. package/dist/locale/th.js +1 -1
  198. package/dist/locale/th.min.js +1 -1
  199. package/dist/locale/th.min.mjs +1 -1
  200. package/dist/locale/th.mjs +1 -1
  201. package/dist/locale/tk.js +1 -1
  202. package/dist/locale/tk.min.js +1 -1
  203. package/dist/locale/tk.min.mjs +1 -1
  204. package/dist/locale/tk.mjs +1 -1
  205. package/dist/locale/tr.js +1 -1
  206. package/dist/locale/tr.min.js +1 -1
  207. package/dist/locale/tr.min.mjs +1 -1
  208. package/dist/locale/tr.mjs +1 -1
  209. package/dist/locale/ug-cn.js +1 -1
  210. package/dist/locale/ug-cn.min.js +1 -1
  211. package/dist/locale/ug-cn.min.mjs +1 -1
  212. package/dist/locale/ug-cn.mjs +1 -1
  213. package/dist/locale/uk.js +1 -1
  214. package/dist/locale/uk.min.js +1 -1
  215. package/dist/locale/uk.min.mjs +1 -1
  216. package/dist/locale/uk.mjs +1 -1
  217. package/dist/locale/uz-uz.js +1 -1
  218. package/dist/locale/uz-uz.min.js +1 -1
  219. package/dist/locale/uz-uz.min.mjs +1 -1
  220. package/dist/locale/uz-uz.mjs +1 -1
  221. package/dist/locale/vi.js +1 -1
  222. package/dist/locale/vi.min.js +1 -1
  223. package/dist/locale/vi.min.mjs +1 -1
  224. package/dist/locale/vi.mjs +1 -1
  225. package/dist/locale/zh-cn.js +1 -1
  226. package/dist/locale/zh-cn.min.js +1 -1
  227. package/dist/locale/zh-cn.min.mjs +1 -1
  228. package/dist/locale/zh-cn.mjs +1 -1
  229. package/dist/locale/zh-tw.js +1 -1
  230. package/dist/locale/zh-tw.min.js +1 -1
  231. package/dist/locale/zh-tw.min.mjs +1 -1
  232. package/dist/locale/zh-tw.mjs +1 -1
  233. package/es/components/autocomplete/index.d.ts +29 -1
  234. package/es/components/autocomplete/src/autocomplete.mjs +1 -1
  235. package/es/components/autocomplete/src/autocomplete.vue.d.ts +29 -1
  236. package/es/components/avatar/src/avatar2.mjs +1 -1
  237. package/es/components/calendar/src/calendar2.mjs +1 -1
  238. package/es/components/calendar/src/calendar2.mjs.map +1 -1
  239. package/es/components/calendar/src/date-table2.mjs +3 -2
  240. package/es/components/calendar/src/date-table2.mjs.map +1 -1
  241. package/es/components/cascader/index.d.ts +38 -2
  242. package/es/components/cascader/src/index.mjs +1 -1
  243. package/es/components/cascader/src/index.vue.d.ts +19 -1
  244. package/es/components/col/src/col.d.ts +2 -0
  245. package/es/components/col/src/col.mjs.map +1 -1
  246. package/es/components/color-picker/src/index.mjs +4 -1
  247. package/es/components/color-picker/src/index.mjs.map +1 -1
  248. package/es/components/descriptions/src/descriptions-cell.mjs +1 -1
  249. package/es/components/dropdown/src/dropdown.mjs +1 -1
  250. package/es/components/dropdown/src/dropdown2.mjs +1 -1
  251. package/es/components/form/src/form-item2.mjs +1 -1
  252. package/es/components/icon/src/icon2.mjs +1 -1
  253. package/es/components/image/index.d.ts +8 -0
  254. package/es/components/image/src/image.d.ts +1 -0
  255. package/es/components/image/src/image.mjs +4 -0
  256. package/es/components/image/src/image.mjs.map +1 -1
  257. package/es/components/image/src/image.vue.d.ts +8 -0
  258. package/es/components/image/src/image2.mjs +2 -1
  259. package/es/components/image/src/image2.mjs.map +1 -1
  260. package/es/components/image-viewer/index.d.ts +4 -0
  261. package/es/components/image-viewer/src/image-viewer.d.ts +1 -0
  262. package/es/components/image-viewer/src/image-viewer.mjs +4 -0
  263. package/es/components/image-viewer/src/image-viewer.mjs.map +1 -1
  264. package/es/components/image-viewer/src/image-viewer.vue.d.ts +4 -0
  265. package/es/components/image-viewer/src/image-viewer2.mjs +1 -1
  266. package/es/components/image-viewer/src/image-viewer2.mjs.map +1 -1
  267. package/es/components/index.mjs +1 -1
  268. package/es/components/input/index.d.ts +10 -0
  269. package/es/components/input/src/input.d.ts +2 -0
  270. package/es/components/input/src/input.mjs +6 -0
  271. package/es/components/input/src/input.mjs.map +1 -1
  272. package/es/components/input/src/input.vue.d.ts +10 -0
  273. package/es/components/input/src/input2.mjs +30 -17
  274. package/es/components/input/src/input2.mjs.map +1 -1
  275. package/es/components/input-number/index.d.ts +20 -0
  276. package/es/components/input-number/src/input-number.vue.d.ts +20 -0
  277. package/es/components/popconfirm/src/popconfirm.mjs +1 -1
  278. package/es/components/popover/src/popover.mjs +1 -1
  279. package/es/components/scrollbar/src/scrollbar2.mjs +1 -1
  280. package/es/components/scrollbar/src/thumb.vue.d.ts +16 -16
  281. package/es/components/scrollbar/src/util.d.ts +18 -18
  282. package/es/components/scrollbar/src/util.mjs.map +1 -1
  283. package/es/components/select/src/select.mjs +6 -12
  284. package/es/components/select/src/select.mjs.map +1 -1
  285. package/es/components/select/src/useSelect.mjs +1 -1
  286. package/es/components/select/src/useSelect.mjs.map +1 -1
  287. package/es/components/select-v2/src/defaults.mjs +1 -1
  288. package/es/components/table/src/table/style-helper.mjs +1 -4
  289. package/es/components/table/src/table/style-helper.mjs.map +1 -1
  290. package/es/components/table-v2/index.d.ts +4 -1
  291. package/es/components/table-v2/index.mjs +3 -1
  292. package/es/components/table-v2/index.mjs.map +1 -1
  293. package/es/components/table-v2/src/column.d.ts +2 -2
  294. package/es/components/table-v2/src/components/cell.d.ts +4 -0
  295. package/es/components/table-v2/src/components/cell.mjs +22 -0
  296. package/es/components/table-v2/src/components/cell.mjs.map +1 -0
  297. package/{lib/components/table-v2/src → es/components/table-v2/src/components}/expand-icon.d.ts +1 -1
  298. package/es/components/table-v2/src/components/expand-icon.mjs +26 -0
  299. package/es/components/table-v2/src/components/expand-icon.mjs.map +1 -0
  300. package/es/components/table-v2/src/components/header-cell.d.ts +4 -0
  301. package/es/components/table-v2/src/components/header-cell.mjs +15 -0
  302. package/es/components/table-v2/src/components/header-cell.mjs.map +1 -0
  303. package/es/components/table-v2/src/{table-header-row.d.ts → components/header-row.d.ts} +6 -6
  304. package/es/components/table-v2/src/components/header-row.mjs +40 -0
  305. package/es/components/table-v2/src/components/header-row.mjs.map +1 -0
  306. package/{lib/components/table-v2/src/table-header.d.ts → es/components/table-v2/src/components/header.d.ts} +3 -3
  307. package/es/components/table-v2/src/components/header.mjs +96 -0
  308. package/es/components/table-v2/src/components/header.mjs.map +1 -0
  309. package/es/components/table-v2/src/components/index.d.ts +10 -0
  310. package/es/components/table-v2/src/components/index.mjs +8 -0
  311. package/es/components/table-v2/src/components/index.mjs.map +1 -0
  312. package/es/components/table-v2/src/{table-row.d.ts → components/row.d.ts} +18 -19
  313. package/es/components/table-v2/src/components/row.mjs +204 -0
  314. package/es/components/table-v2/src/components/row.mjs.map +1 -0
  315. package/es/components/table-v2/src/{sort-icon.d.ts → components/sort-icon.d.ts} +1 -1
  316. package/es/components/table-v2/src/components/sort-icon.mjs +19 -0
  317. package/es/components/table-v2/src/components/sort-icon.mjs.map +1 -0
  318. package/es/components/table-v2/src/composables/index.d.ts +5 -0
  319. package/es/components/table-v2/src/composables/index.mjs +6 -0
  320. package/es/components/table-v2/src/composables/index.mjs.map +1 -0
  321. package/{lib/components/table-v2/src → es/components/table-v2/src/composables}/use-columns.d.ts +8 -6
  322. package/es/components/table-v2/src/{use-columns.mjs → composables/use-columns.mjs} +26 -30
  323. package/es/components/table-v2/src/composables/use-columns.mjs.map +1 -0
  324. package/es/components/table-v2/src/composables/use-data.d.ts +17 -0
  325. package/es/components/table-v2/src/composables/use-data.mjs +44 -0
  326. package/es/components/table-v2/src/composables/use-data.mjs.map +1 -0
  327. package/es/components/table-v2/src/composables/use-row.d.ts +32 -0
  328. package/es/components/table-v2/src/composables/use-row.mjs +123 -0
  329. package/es/components/table-v2/src/composables/use-row.mjs.map +1 -0
  330. package/es/components/table-v2/src/composables/use-scrollbar.d.ts +26 -0
  331. package/es/components/table-v2/src/composables/use-scrollbar.mjs +55 -0
  332. package/es/components/table-v2/src/composables/use-scrollbar.mjs.map +1 -0
  333. package/es/components/table-v2/src/composables/use-styles.d.ts +25 -0
  334. package/es/components/table-v2/src/composables/use-styles.mjs +87 -0
  335. package/es/components/table-v2/src/composables/use-styles.mjs.map +1 -0
  336. package/es/components/table-v2/src/composables/utils.d.ts +3 -0
  337. package/es/components/table-v2/src/composables/utils.mjs +26 -0
  338. package/es/components/table-v2/src/composables/utils.mjs.map +1 -0
  339. package/es/components/table-v2/src/constants.d.ts +4 -0
  340. package/es/components/table-v2/src/constants.mjs +6 -1
  341. package/es/components/table-v2/src/constants.mjs.map +1 -1
  342. package/es/components/table-v2/src/grid.d.ts +4 -1
  343. package/es/components/table-v2/src/grid.mjs +5 -0
  344. package/es/components/table-v2/src/grid.mjs.map +1 -1
  345. package/es/components/table-v2/src/renderers/cell.d.ts +1 -1
  346. package/es/components/table-v2/src/renderers/cell.mjs +91 -0
  347. package/es/components/table-v2/src/renderers/cell.mjs.map +1 -0
  348. package/es/components/table-v2/src/renderers/empty.d.ts +7 -0
  349. package/es/components/table-v2/src/renderers/empty.mjs +15 -0
  350. package/es/components/table-v2/src/renderers/empty.mjs.map +1 -0
  351. package/es/components/table-v2/src/renderers/footer.d.ts +7 -0
  352. package/es/components/table-v2/src/renderers/footer.mjs +15 -0
  353. package/es/components/table-v2/src/renderers/footer.mjs.map +1 -0
  354. package/es/components/table-v2/src/renderers/header-cell.d.ts +1 -1
  355. package/es/components/table-v2/src/renderers/header-cell.mjs +65 -0
  356. package/es/components/table-v2/src/renderers/header-cell.mjs.map +1 -0
  357. package/es/components/table-v2/src/renderers/header.d.ts +1 -1
  358. package/es/components/table-v2/src/renderers/header.mjs +39 -0
  359. package/es/components/table-v2/src/renderers/header.mjs.map +1 -0
  360. package/es/components/table-v2/src/renderers/left-table.mjs +24 -0
  361. package/es/components/table-v2/src/renderers/left-table.mjs.map +1 -0
  362. package/es/components/table-v2/src/renderers/main-table.mjs +22 -0
  363. package/es/components/table-v2/src/renderers/main-table.mjs.map +1 -0
  364. package/es/components/table-v2/src/renderers/overlay.d.ts +3 -0
  365. package/es/components/table-v2/src/renderers/overlay.mjs +15 -0
  366. package/es/components/table-v2/src/renderers/overlay.mjs.map +1 -0
  367. package/es/components/table-v2/src/renderers/right-table.mjs +24 -0
  368. package/es/components/table-v2/src/renderers/right-table.mjs.map +1 -0
  369. package/es/components/table-v2/src/renderers/row.mjs +77 -0
  370. package/es/components/table-v2/src/renderers/row.mjs.map +1 -0
  371. package/es/components/table-v2/src/row.d.ts +6 -1
  372. package/es/components/table-v2/src/row.mjs.map +1 -1
  373. package/es/components/table-v2/src/table-grid.d.ts +8 -2
  374. package/es/components/table-v2/src/table-grid.mjs +221 -0
  375. package/es/components/table-v2/src/table-grid.mjs.map +1 -0
  376. package/es/components/table-v2/src/table-v2.d.ts +3 -12
  377. package/es/components/table-v2/src/table-v2.mjs +250 -0
  378. package/es/components/table-v2/src/table-v2.mjs.map +1 -0
  379. package/es/components/table-v2/src/table.d.ts +2 -5
  380. package/es/components/table-v2/src/table.mjs.map +1 -1
  381. package/es/components/table-v2/src/types.d.ts +15 -2
  382. package/es/components/table-v2/src/use-table.d.ts +20 -29
  383. package/es/components/table-v2/src/use-table.mjs +84 -238
  384. package/es/components/table-v2/src/use-table.mjs.map +1 -1
  385. package/es/components/table-v2/src/utils.mjs +1 -1
  386. package/es/components/table-v2/src/utils.mjs.map +1 -1
  387. package/es/components/tooltip/index.mjs +2 -2
  388. package/es/components/tooltip/src/content.mjs +1 -1
  389. package/es/components/tooltip/src/tooltip.mjs +62 -174
  390. package/es/components/tooltip/src/tooltip.mjs.map +1 -1
  391. package/es/components/tooltip/src/tooltip2.mjs +174 -62
  392. package/es/components/tooltip/src/tooltip2.mjs.map +1 -1
  393. package/es/components/tooltip/src/trigger.mjs +1 -1
  394. package/es/components/upload/index.d.ts +16 -12
  395. package/es/components/upload/src/upload-content.d.ts +1 -1
  396. package/es/components/upload/src/upload-content.vue.d.ts +4 -3
  397. package/es/components/upload/src/upload-content2.mjs +3 -1
  398. package/es/components/upload/src/upload-content2.mjs.map +1 -1
  399. package/es/components/upload/src/upload-list2.mjs +5 -3
  400. package/es/components/upload/src/upload-list2.mjs.map +1 -1
  401. package/es/components/upload/src/upload.d.ts +2 -2
  402. package/es/components/upload/src/upload.mjs +1 -1
  403. package/es/components/upload/src/upload.mjs.map +1 -1
  404. package/es/components/upload/src/upload.vue.d.ts +16 -12
  405. package/es/components/virtual-list/src/builders/build-grid.d.ts +11 -2
  406. package/es/components/virtual-list/src/builders/build-grid.mjs +7 -3
  407. package/es/components/virtual-list/src/builders/build-grid.mjs.map +1 -1
  408. package/es/components/virtual-list/src/components/dynamic-size-grid.d.ts +11 -2
  409. package/es/components/virtual-list/src/components/dynamic-size-grid.mjs +4 -2
  410. package/es/components/virtual-list/src/components/dynamic-size-grid.mjs.map +1 -1
  411. package/es/components/virtual-list/src/components/fixed-size-grid.d.ts +11 -2
  412. package/es/components/virtual-list/src/components/scrollbar.d.ts +2 -2
  413. package/es/components/virtual-list/src/props.d.ts +7 -3
  414. package/es/components/virtual-list/src/props.mjs +5 -1
  415. package/es/components/virtual-list/src/props.mjs.map +1 -1
  416. package/es/components/virtual-list/src/types.d.ts +7 -0
  417. package/es/components/virtual-list/src/utils.d.ts +10 -5
  418. package/es/components/virtual-list/src/utils.mjs.map +1 -1
  419. package/es/constants/index.mjs +1 -1
  420. package/es/constants/size.d.ts +0 -1
  421. package/es/constants/size.mjs +1 -4
  422. package/es/constants/size.mjs.map +1 -1
  423. package/es/directives/mousewheel/index.mjs +1 -7
  424. package/es/directives/mousewheel/index.mjs.map +1 -1
  425. package/es/hooks/index.d.ts +1 -0
  426. package/es/hooks/index.mjs +1 -0
  427. package/es/hooks/index.mjs.map +1 -1
  428. package/es/hooks/use-cursor/index.d.ts +2 -0
  429. package/es/hooks/use-cursor/index.mjs +46 -0
  430. package/es/hooks/use-cursor/index.mjs.map +1 -0
  431. package/es/hooks/use-draggable/index.mjs +1 -1
  432. package/es/index.mjs +3 -2
  433. package/es/index.mjs.map +1 -1
  434. package/es/utils/dom/index.mjs +1 -1
  435. package/es/utils/dom/style.d.ts +1 -0
  436. package/es/utils/dom/style.mjs +15 -3
  437. package/es/utils/dom/style.mjs.map +1 -1
  438. package/es/utils/index.mjs +2 -2
  439. package/es/utils/vue/index.d.ts +1 -1
  440. package/es/utils/vue/index.mjs +1 -1
  441. package/es/utils/vue/size.d.ts +1 -0
  442. package/es/utils/vue/size.mjs +9 -0
  443. package/es/utils/vue/size.mjs.map +1 -0
  444. package/es/version.d.ts +1 -1
  445. package/es/version.mjs +1 -1
  446. package/es/version.mjs.map +1 -1
  447. package/lib/components/autocomplete/index.d.ts +29 -1
  448. package/lib/components/autocomplete/src/autocomplete.js +1 -1
  449. package/lib/components/autocomplete/src/autocomplete.vue.d.ts +29 -1
  450. package/lib/components/avatar/src/avatar2.js +1 -1
  451. package/lib/components/calendar/src/calendar2.js +1 -1
  452. package/lib/components/calendar/src/calendar2.js.map +1 -1
  453. package/lib/components/calendar/src/date-table2.js +3 -2
  454. package/lib/components/calendar/src/date-table2.js.map +1 -1
  455. package/lib/components/cascader/index.d.ts +38 -2
  456. package/lib/components/cascader/src/index.js +1 -1
  457. package/lib/components/cascader/src/index.vue.d.ts +19 -1
  458. package/lib/components/col/src/col.d.ts +2 -0
  459. package/lib/components/col/src/col.js.map +1 -1
  460. package/lib/components/color-picker/src/index.js +4 -1
  461. package/lib/components/color-picker/src/index.js.map +1 -1
  462. package/lib/components/descriptions/src/descriptions-cell.js +1 -1
  463. package/lib/components/dropdown/src/dropdown.js +1 -1
  464. package/lib/components/dropdown/src/dropdown2.js +1 -1
  465. package/lib/components/form/src/form-item2.js +1 -1
  466. package/lib/components/icon/src/icon2.js +1 -1
  467. package/lib/components/image/index.d.ts +8 -0
  468. package/lib/components/image/src/image.d.ts +1 -0
  469. package/lib/components/image/src/image.js +4 -0
  470. package/lib/components/image/src/image.js.map +1 -1
  471. package/lib/components/image/src/image.vue.d.ts +8 -0
  472. package/lib/components/image/src/image2.js +2 -1
  473. package/lib/components/image/src/image2.js.map +1 -1
  474. package/lib/components/image-viewer/index.d.ts +4 -0
  475. package/lib/components/image-viewer/src/image-viewer.d.ts +1 -0
  476. package/lib/components/image-viewer/src/image-viewer.js +4 -0
  477. package/lib/components/image-viewer/src/image-viewer.js.map +1 -1
  478. package/lib/components/image-viewer/src/image-viewer.vue.d.ts +4 -0
  479. package/lib/components/image-viewer/src/image-viewer2.js +1 -1
  480. package/lib/components/image-viewer/src/image-viewer2.js.map +1 -1
  481. package/lib/components/index.js +1 -1
  482. package/lib/components/input/index.d.ts +10 -0
  483. package/lib/components/input/src/input.d.ts +2 -0
  484. package/lib/components/input/src/input.js +6 -0
  485. package/lib/components/input/src/input.js.map +1 -1
  486. package/lib/components/input/src/input.vue.d.ts +10 -0
  487. package/lib/components/input/src/input2.js +35 -22
  488. package/lib/components/input/src/input2.js.map +1 -1
  489. package/lib/components/input-number/index.d.ts +20 -0
  490. package/lib/components/input-number/src/input-number.vue.d.ts +20 -0
  491. package/lib/components/popconfirm/src/popconfirm.js +1 -1
  492. package/lib/components/popover/src/popover.js +1 -1
  493. package/lib/components/scrollbar/src/scrollbar2.js +1 -1
  494. package/lib/components/scrollbar/src/thumb.vue.d.ts +16 -16
  495. package/lib/components/scrollbar/src/util.d.ts +18 -18
  496. package/lib/components/scrollbar/src/util.js.map +1 -1
  497. package/lib/components/select/src/select.js +6 -12
  498. package/lib/components/select/src/select.js.map +1 -1
  499. package/lib/components/select/src/useSelect.js +1 -1
  500. package/lib/components/select/src/useSelect.js.map +1 -1
  501. package/lib/components/select-v2/src/defaults.js +1 -1
  502. package/lib/components/table/src/table/style-helper.js +1 -4
  503. package/lib/components/table/src/table/style-helper.js.map +1 -1
  504. package/lib/components/table-v2/index.d.ts +4 -1
  505. package/lib/components/table-v2/index.js +13 -0
  506. package/lib/components/table-v2/index.js.map +1 -1
  507. package/lib/components/table-v2/src/column.d.ts +2 -2
  508. package/lib/components/table-v2/src/components/cell.d.ts +4 -0
  509. package/lib/components/table-v2/src/components/cell.js +26 -0
  510. package/lib/components/table-v2/src/components/cell.js.map +1 -0
  511. package/{es/components/table-v2/src → lib/components/table-v2/src/components}/expand-icon.d.ts +1 -1
  512. package/lib/components/table-v2/src/components/expand-icon.js +30 -0
  513. package/lib/components/table-v2/src/components/expand-icon.js.map +1 -0
  514. package/lib/components/table-v2/src/components/header-cell.d.ts +4 -0
  515. package/lib/components/table-v2/src/components/header-cell.js +19 -0
  516. package/lib/components/table-v2/src/components/header-cell.js.map +1 -0
  517. package/lib/components/table-v2/src/{table-header-row.d.ts → components/header-row.d.ts} +6 -6
  518. package/lib/components/table-v2/src/components/header-row.js +44 -0
  519. package/lib/components/table-v2/src/components/header-row.js.map +1 -0
  520. package/{es/components/table-v2/src/table-header.d.ts → lib/components/table-v2/src/components/header.d.ts} +3 -3
  521. package/lib/components/table-v2/src/components/header.js +100 -0
  522. package/lib/components/table-v2/src/components/header.js.map +1 -0
  523. package/lib/components/table-v2/src/components/index.d.ts +10 -0
  524. package/lib/components/table-v2/src/components/index.js +22 -0
  525. package/lib/components/table-v2/src/components/index.js.map +1 -0
  526. package/lib/components/table-v2/src/{table-row.d.ts → components/row.d.ts} +18 -19
  527. package/lib/components/table-v2/src/components/row.js +208 -0
  528. package/lib/components/table-v2/src/components/row.js.map +1 -0
  529. package/lib/components/table-v2/src/{sort-icon.d.ts → components/sort-icon.d.ts} +1 -1
  530. package/lib/components/table-v2/src/components/sort-icon.js +23 -0
  531. package/lib/components/table-v2/src/components/sort-icon.js.map +1 -0
  532. package/lib/components/table-v2/src/composables/index.d.ts +5 -0
  533. package/lib/components/table-v2/src/composables/index.js +18 -0
  534. package/lib/components/table-v2/src/composables/index.js.map +1 -0
  535. package/{es/components/table-v2/src → lib/components/table-v2/src/composables}/use-columns.d.ts +8 -6
  536. package/lib/components/table-v2/src/{use-columns.js → composables/use-columns.js} +27 -31
  537. package/lib/components/table-v2/src/composables/use-columns.js.map +1 -0
  538. package/lib/components/table-v2/src/composables/use-data.d.ts +17 -0
  539. package/lib/components/table-v2/src/composables/use-data.js +48 -0
  540. package/lib/components/table-v2/src/composables/use-data.js.map +1 -0
  541. package/lib/components/table-v2/src/composables/use-row.d.ts +32 -0
  542. package/lib/components/table-v2/src/composables/use-row.js +127 -0
  543. package/lib/components/table-v2/src/composables/use-row.js.map +1 -0
  544. package/lib/components/table-v2/src/composables/use-scrollbar.d.ts +26 -0
  545. package/lib/components/table-v2/src/composables/use-scrollbar.js +59 -0
  546. package/lib/components/table-v2/src/composables/use-scrollbar.js.map +1 -0
  547. package/lib/components/table-v2/src/composables/use-styles.d.ts +25 -0
  548. package/lib/components/table-v2/src/composables/use-styles.js +91 -0
  549. package/lib/components/table-v2/src/composables/use-styles.js.map +1 -0
  550. package/lib/components/table-v2/src/composables/utils.d.ts +3 -0
  551. package/lib/components/table-v2/src/composables/utils.js +30 -0
  552. package/lib/components/table-v2/src/composables/utils.js.map +1 -0
  553. package/lib/components/table-v2/src/constants.d.ts +4 -0
  554. package/lib/components/table-v2/src/constants.js +6 -0
  555. package/lib/components/table-v2/src/constants.js.map +1 -1
  556. package/lib/components/table-v2/src/grid.d.ts +4 -1
  557. package/lib/components/table-v2/src/grid.js +5 -0
  558. package/lib/components/table-v2/src/grid.js.map +1 -1
  559. package/lib/components/table-v2/src/renderers/cell.d.ts +1 -1
  560. package/lib/components/table-v2/src/renderers/cell.js +95 -0
  561. package/lib/components/table-v2/src/renderers/cell.js.map +1 -0
  562. package/lib/components/table-v2/src/renderers/empty.d.ts +7 -0
  563. package/lib/components/table-v2/src/renderers/empty.js +19 -0
  564. package/lib/components/table-v2/src/renderers/empty.js.map +1 -0
  565. package/lib/components/table-v2/src/renderers/footer.d.ts +7 -0
  566. package/lib/components/table-v2/src/renderers/footer.js +19 -0
  567. package/lib/components/table-v2/src/renderers/footer.js.map +1 -0
  568. package/lib/components/table-v2/src/renderers/header-cell.d.ts +1 -1
  569. package/lib/components/table-v2/src/renderers/header-cell.js +69 -0
  570. package/lib/components/table-v2/src/renderers/header-cell.js.map +1 -0
  571. package/lib/components/table-v2/src/renderers/header.d.ts +1 -1
  572. package/lib/components/table-v2/src/renderers/header.js +43 -0
  573. package/lib/components/table-v2/src/renderers/header.js.map +1 -0
  574. package/lib/components/table-v2/src/renderers/left-table.js +28 -0
  575. package/lib/components/table-v2/src/renderers/left-table.js.map +1 -0
  576. package/lib/components/table-v2/src/renderers/main-table.js +26 -0
  577. package/lib/components/table-v2/src/renderers/main-table.js.map +1 -0
  578. package/lib/components/table-v2/src/renderers/overlay.d.ts +3 -0
  579. package/lib/components/table-v2/src/renderers/overlay.js +19 -0
  580. package/lib/components/table-v2/src/renderers/overlay.js.map +1 -0
  581. package/lib/components/table-v2/src/renderers/right-table.js +28 -0
  582. package/lib/components/table-v2/src/renderers/right-table.js.map +1 -0
  583. package/lib/components/table-v2/src/renderers/row.js +81 -0
  584. package/lib/components/table-v2/src/renderers/row.js.map +1 -0
  585. package/lib/components/table-v2/src/row.d.ts +6 -1
  586. package/lib/components/table-v2/src/row.js.map +1 -1
  587. package/lib/components/table-v2/src/table-grid.d.ts +8 -2
  588. package/lib/components/table-v2/src/table-grid.js +225 -0
  589. package/lib/components/table-v2/src/table-grid.js.map +1 -0
  590. package/lib/components/table-v2/src/table-v2.d.ts +3 -12
  591. package/lib/components/table-v2/src/table-v2.js +254 -0
  592. package/lib/components/table-v2/src/table-v2.js.map +1 -0
  593. package/lib/components/table-v2/src/table.d.ts +2 -5
  594. package/lib/components/table-v2/src/table.js.map +1 -1
  595. package/lib/components/table-v2/src/types.d.ts +15 -2
  596. package/lib/components/table-v2/src/use-table.d.ts +20 -29
  597. package/lib/components/table-v2/src/use-table.js +82 -236
  598. package/lib/components/table-v2/src/use-table.js.map +1 -1
  599. package/lib/components/table-v2/src/utils.js +1 -1
  600. package/lib/components/table-v2/src/utils.js.map +1 -1
  601. package/lib/components/tooltip/index.js +2 -2
  602. package/lib/components/tooltip/src/content.js +1 -1
  603. package/lib/components/tooltip/src/tooltip.js +64 -174
  604. package/lib/components/tooltip/src/tooltip.js.map +1 -1
  605. package/lib/components/tooltip/src/tooltip2.js +174 -64
  606. package/lib/components/tooltip/src/tooltip2.js.map +1 -1
  607. package/lib/components/tooltip/src/trigger.js +1 -1
  608. package/lib/components/upload/index.d.ts +16 -12
  609. package/lib/components/upload/src/upload-content.d.ts +1 -1
  610. package/lib/components/upload/src/upload-content.vue.d.ts +4 -3
  611. package/lib/components/upload/src/upload-content2.js +3 -1
  612. package/lib/components/upload/src/upload-content2.js.map +1 -1
  613. package/lib/components/upload/src/upload-list2.js +4 -2
  614. package/lib/components/upload/src/upload-list2.js.map +1 -1
  615. package/lib/components/upload/src/upload.d.ts +2 -2
  616. package/lib/components/upload/src/upload.js +1 -1
  617. package/lib/components/upload/src/upload.js.map +1 -1
  618. package/lib/components/upload/src/upload.vue.d.ts +16 -12
  619. package/lib/components/virtual-list/src/builders/build-grid.d.ts +11 -2
  620. package/lib/components/virtual-list/src/builders/build-grid.js +7 -3
  621. package/lib/components/virtual-list/src/builders/build-grid.js.map +1 -1
  622. package/lib/components/virtual-list/src/components/dynamic-size-grid.d.ts +11 -2
  623. package/lib/components/virtual-list/src/components/dynamic-size-grid.js +4 -2
  624. package/lib/components/virtual-list/src/components/dynamic-size-grid.js.map +1 -1
  625. package/lib/components/virtual-list/src/components/fixed-size-grid.d.ts +11 -2
  626. package/lib/components/virtual-list/src/components/scrollbar.d.ts +2 -2
  627. package/lib/components/virtual-list/src/props.d.ts +7 -3
  628. package/lib/components/virtual-list/src/props.js +5 -1
  629. package/lib/components/virtual-list/src/props.js.map +1 -1
  630. package/lib/components/virtual-list/src/types.d.ts +7 -0
  631. package/lib/components/virtual-list/src/utils.d.ts +10 -5
  632. package/lib/components/virtual-list/src/utils.js.map +1 -1
  633. package/lib/constants/index.js +0 -1
  634. package/lib/constants/index.js.map +1 -1
  635. package/lib/constants/size.d.ts +0 -1
  636. package/lib/constants/size.js +0 -4
  637. package/lib/constants/size.js.map +1 -1
  638. package/lib/directives/mousewheel/index.js +1 -7
  639. package/lib/directives/mousewheel/index.js.map +1 -1
  640. package/lib/hooks/index.d.ts +1 -0
  641. package/lib/hooks/index.js +2 -0
  642. package/lib/hooks/index.js.map +1 -1
  643. package/lib/hooks/use-cursor/index.d.ts +2 -0
  644. package/lib/hooks/use-cursor/index.js +50 -0
  645. package/lib/hooks/use-cursor/index.js.map +1 -0
  646. package/lib/hooks/use-draggable/index.js +1 -1
  647. package/lib/index.js +3 -2
  648. package/lib/index.js.map +1 -1
  649. package/lib/utils/dom/index.js +1 -0
  650. package/lib/utils/dom/index.js.map +1 -1
  651. package/lib/utils/dom/style.d.ts +1 -0
  652. package/lib/utils/dom/style.js +13 -0
  653. package/lib/utils/dom/style.js.map +1 -1
  654. package/lib/utils/index.js +3 -2
  655. package/lib/utils/index.js.map +1 -1
  656. package/lib/utils/vue/index.d.ts +1 -1
  657. package/lib/utils/vue/index.js +2 -2
  658. package/lib/utils/vue/size.d.ts +1 -0
  659. package/lib/utils/vue/size.js +13 -0
  660. package/lib/utils/vue/size.js.map +1 -0
  661. package/lib/version.d.ts +1 -1
  662. package/lib/version.js +1 -1
  663. package/lib/version.js.map +1 -1
  664. package/package.json +7 -7
  665. package/tags.json +1 -1
  666. package/theme-chalk/el-autocomplete.css +1 -1
  667. package/theme-chalk/el-date-picker.css +1 -1
  668. package/theme-chalk/el-input-number.css +1 -1
  669. package/theme-chalk/el-input.css +1 -1
  670. package/theme-chalk/el-pagination.css +1 -1
  671. package/theme-chalk/el-step.css +1 -1
  672. package/theme-chalk/el-table-v2.css +1 -1
  673. package/theme-chalk/el-tabs.css +1 -1
  674. package/theme-chalk/el-time-picker.css +1 -1
  675. package/theme-chalk/el-upload.css +1 -1
  676. package/theme-chalk/index.css +1 -1
  677. package/theme-chalk/src/autocomplete.scss +9 -9
  678. package/theme-chalk/src/check-tag.scss +5 -5
  679. package/theme-chalk/src/dark/var.scss +7 -7
  680. package/theme-chalk/src/date-picker/time-picker.scss +2 -2
  681. package/theme-chalk/src/date-picker/year-table.scss +2 -2
  682. package/theme-chalk/src/input-number.scss +0 -1
  683. package/theme-chalk/src/input.scss +12 -5
  684. package/theme-chalk/src/pagination.scss +6 -0
  685. package/theme-chalk/src/step.scss +1 -1
  686. package/theme-chalk/src/table-v2.scss +30 -6
  687. package/theme-chalk/src/tabs.scss +1 -1
  688. package/theme-chalk/src/upload.scss +7 -4
  689. package/web-types.json +1 -1
  690. package/es/components/table-v2/src/column-resizer.d.ts +0 -14
  691. package/es/components/table-v2/src/column-resizer.mjs +0 -24
  692. package/es/components/table-v2/src/column-resizer.mjs.map +0 -1
  693. package/es/components/table-v2/src/table-cell.d.ts +0 -9
  694. package/es/components/table-v2/src/table-column-resizer.d.ts +0 -31
  695. package/es/components/table-v2/src/table-header-cell.d.ts +0 -8
  696. package/es/components/table-v2/src/use-columns.mjs.map +0 -1
  697. package/es/utils/vue/style.d.ts +0 -1
  698. package/es/utils/vue/style.mjs +0 -19
  699. package/es/utils/vue/style.mjs.map +0 -1
  700. package/lib/components/table-v2/src/column-resizer.d.ts +0 -14
  701. package/lib/components/table-v2/src/column-resizer.js +0 -28
  702. package/lib/components/table-v2/src/column-resizer.js.map +0 -1
  703. package/lib/components/table-v2/src/table-cell.d.ts +0 -9
  704. package/lib/components/table-v2/src/table-column-resizer.d.ts +0 -31
  705. package/lib/components/table-v2/src/table-header-cell.d.ts +0 -8
  706. package/lib/components/table-v2/src/use-columns.js.map +0 -1
  707. package/lib/utils/vue/style.d.ts +0 -1
  708. package/lib/utils/vue/style.js +0 -23
  709. package/lib/utils/vue/style.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"image-viewer2.js","sources":["../../../../../../packages/components/image-viewer/src/image-viewer.vue"],"sourcesContent":["<template>\n <teleport to=\"body\" :disabled=\"!teleported\">\n <transition name=\"viewer-fade\" appear>\n <div\n ref=\"wrapper\"\n :tabindex=\"-1\"\n :class=\"ns.e('wrapper')\"\n :style=\"{ zIndex: computedZIndex }\"\n >\n <div :class=\"ns.e('mask')\" @click.self=\"hideOnClickModal && hide()\" />\n\n <!-- CLOSE -->\n <span :class=\"[ns.e('btn'), ns.e('close')]\" @click=\"hide\">\n <el-icon><Close /></el-icon>\n </span>\n\n <!-- ARROW -->\n <template v-if=\"!isSingle\">\n <span\n :class=\"[\n ns.e('btn'),\n ns.e('prev'),\n ns.is('disabled', !infinite && isFirst),\n ]\"\n @click=\"prev\"\n >\n <el-icon><ArrowLeft /></el-icon>\n </span>\n <span\n :class=\"[\n ns.e('btn'),\n ns.e('next'),\n ns.is('disabled', !infinite && isLast),\n ]\"\n @click=\"next\"\n >\n <el-icon><ArrowRight /></el-icon>\n </span>\n </template>\n <!-- ACTIONS -->\n <div :class=\"[ns.e('btn'), ns.e('actions')]\">\n <div :class=\"ns.e('actions__inner')\">\n <el-icon @click=\"handleActions('zoomOut')\">\n <ZoomOut />\n </el-icon>\n <el-icon @click=\"handleActions('zoomIn')\">\n <ZoomIn />\n </el-icon>\n <i :class=\"ns.e('actions__divider')\" />\n <el-icon @click=\"toggleMode\">\n <component :is=\"mode.icon\" />\n </el-icon>\n <i :class=\"ns.e('actions__divider')\" />\n <el-icon @click=\"handleActions('anticlockwise')\">\n <RefreshLeft />\n </el-icon>\n <el-icon @click=\"handleActions('clockwise')\">\n <RefreshRight />\n </el-icon>\n </div>\n </div>\n <!-- CANVAS -->\n <div :class=\"ns.e('canvas')\">\n <img\n v-for=\"(url, i) in urlList\"\n v-show=\"i === index\"\n :ref=\"(el) => (imgRefs[i] = el)\"\n :key=\"url\"\n :src=\"url\"\n :style=\"imgStyle\"\n :class=\"ns.e('img')\"\n @load=\"handleImgLoad\"\n @error=\"handleImgError\"\n @mousedown=\"handleMouseDown\"\n />\n </div>\n <slot />\n </div>\n </transition>\n </teleport>\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n computed,\n effectScope,\n markRaw,\n nextTick,\n onMounted,\n ref,\n watch,\n} from 'vue'\nimport { isNumber, useEventListener } from '@vueuse/core'\nimport { throttle } from 'lodash-unified'\nimport { useLocale, useNamespace, useZIndex } from '@element-plus/hooks'\nimport { EVENT_CODE } from '@element-plus/constants'\nimport { isFirefox } from '@element-plus/utils'\nimport ElIcon from '@element-plus/components/icon'\nimport {\n ArrowLeft,\n ArrowRight,\n Close,\n FullScreen,\n RefreshLeft,\n RefreshRight,\n ScaleToOriginal,\n ZoomIn,\n ZoomOut,\n} from '@element-plus/icons-vue'\nimport { imageViewerEmits, imageViewerProps } from './image-viewer'\n\nimport type { CSSProperties } from 'vue'\nimport type { ImageViewerAction } from './image-viewer'\n\nconst Mode = {\n CONTAIN: {\n name: 'contain',\n icon: markRaw(FullScreen),\n },\n ORIGINAL: {\n name: 'original',\n icon: markRaw(ScaleToOriginal),\n },\n}\n\nconst mousewheelEventName = isFirefox() ? 'DOMMouseScroll' : 'mousewheel'\n\ndefineOptions({\n name: 'ElImageViewer',\n})\n\nconst props = defineProps(imageViewerProps)\nconst emit = defineEmits(imageViewerEmits)\n\nconst { t } = useLocale()\nconst ns = useNamespace('image-viewer')\nconst { nextZIndex } = useZIndex()\nconst wrapper = ref<HTMLDivElement>()\nconst imgRefs = ref<any[]>([])\n\nconst scopeEventListener = effectScope()\n\nconst loading = ref(true)\nconst index = ref(props.initialIndex)\nconst mode = ref(Mode.CONTAIN)\nconst transform = ref({\n scale: 1,\n deg: 0,\n offsetX: 0,\n offsetY: 0,\n enableTransition: false,\n})\n\nconst isSingle = computed(() => {\n const { urlList } = props\n return urlList.length <= 1\n})\n\nconst isFirst = computed(() => {\n return index.value === 0\n})\n\nconst isLast = computed(() => {\n return index.value === props.urlList.length - 1\n})\n\nconst currentImg = computed(() => {\n return props.urlList[index.value]\n})\n\nconst imgStyle = computed(() => {\n const { scale, deg, offsetX, offsetY, enableTransition } = transform.value\n let translateX = offsetX / scale\n let translateY = offsetY / scale\n\n switch (deg % 360) {\n case 90:\n case -270:\n ;[translateX, translateY] = [translateY, -translateX]\n break\n case 180:\n case -180:\n ;[translateX, translateY] = [-translateX, -translateY]\n break\n case 270:\n case -90:\n ;[translateX, translateY] = [-translateY, translateX]\n break\n }\n\n const style: CSSProperties = {\n transform: `scale(${scale}) rotate(${deg}deg) translate(${translateX}px, ${translateY}px)`,\n transition: enableTransition ? 'transform .3s' : '',\n }\n if (mode.value.name === Mode.CONTAIN.name) {\n style.maxWidth = style.maxHeight = '100%'\n }\n return style\n})\n\nconst computedZIndex = computed(() => {\n return isNumber(props.zIndex) ? props.zIndex : nextZIndex()\n})\n\nfunction hide() {\n unregisterEventListener()\n emit('close')\n}\n\nfunction registerEventListener() {\n const keydownHandler = throttle((e: KeyboardEvent) => {\n switch (e.code) {\n // ESC\n case EVENT_CODE.esc:\n hide()\n break\n // SPACE\n case EVENT_CODE.space:\n toggleMode()\n break\n // LEFT_ARROW\n case EVENT_CODE.left:\n prev()\n break\n // UP_ARROW\n case EVENT_CODE.up:\n handleActions('zoomIn')\n break\n // RIGHT_ARROW\n case EVENT_CODE.right:\n next()\n break\n // DOWN_ARROW\n case EVENT_CODE.down:\n handleActions('zoomOut')\n break\n }\n })\n const mousewheelHandler = throttle(\n (e: WheelEvent | any /* TODO: wheelDelta is deprecated */) => {\n const delta = e.wheelDelta ? e.wheelDelta : -e.detail\n if (delta > 0) {\n handleActions('zoomIn', {\n zoomRate: 1.2,\n enableTransition: false,\n })\n } else {\n handleActions('zoomOut', {\n zoomRate: 1.2,\n enableTransition: false,\n })\n }\n }\n )\n\n scopeEventListener.run(() => {\n useEventListener(document, 'keydown', keydownHandler)\n useEventListener(document, mousewheelEventName, mousewheelHandler)\n })\n}\n\nfunction unregisterEventListener() {\n scopeEventListener.stop()\n}\n\nfunction handleImgLoad() {\n loading.value = false\n}\n\nfunction handleImgError(e: Event) {\n loading.value = false\n ;(e.target as HTMLImageElement).alt = t('el.image.error')\n}\n\nfunction handleMouseDown(e: MouseEvent) {\n if (loading.value || e.button !== 0 || !wrapper.value) return\n transform.value.enableTransition = false\n\n const { offsetX, offsetY } = transform.value\n const startX = e.pageX\n const startY = e.pageY\n\n const dragHandler = throttle((ev: MouseEvent) => {\n transform.value = {\n ...transform.value,\n offsetX: offsetX + ev.pageX - startX,\n offsetY: offsetY + ev.pageY - startY,\n }\n })\n const removeMousemove = useEventListener(document, 'mousemove', dragHandler)\n useEventListener(document, 'mouseup', () => {\n removeMousemove()\n })\n\n e.preventDefault()\n}\n\nfunction reset() {\n transform.value = {\n scale: 1,\n deg: 0,\n offsetX: 0,\n offsetY: 0,\n enableTransition: false,\n }\n}\n\nfunction toggleMode() {\n if (loading.value) return\n\n const modeNames = Object.keys(Mode)\n const modeValues = Object.values(Mode)\n const currentMode = mode.value.name\n const index = modeValues.findIndex((i) => i.name === currentMode)\n const nextIndex = (index + 1) % modeNames.length\n mode.value = Mode[modeNames[nextIndex]]\n reset()\n}\n\nfunction prev() {\n if (isFirst.value && !props.infinite) return\n const len = props.urlList.length\n index.value = (index.value - 1 + len) % len\n}\n\nfunction next() {\n if (isLast.value && !props.infinite) return\n const len = props.urlList.length\n index.value = (index.value + 1) % len\n}\n\nfunction handleActions(action: ImageViewerAction, options = {}) {\n if (loading.value) return\n const { zoomRate, rotateDeg, enableTransition } = {\n zoomRate: 1.4,\n rotateDeg: 90,\n enableTransition: true,\n ...options,\n }\n switch (action) {\n case 'zoomOut':\n if (transform.value.scale > 0.2) {\n transform.value.scale = Number.parseFloat(\n (transform.value.scale / zoomRate).toFixed(3)\n )\n }\n break\n case 'zoomIn':\n if (transform.value.scale < 7) {\n transform.value.scale = Number.parseFloat(\n (transform.value.scale * zoomRate).toFixed(3)\n )\n }\n break\n case 'clockwise':\n transform.value.deg += rotateDeg\n break\n case 'anticlockwise':\n transform.value.deg -= rotateDeg\n break\n }\n transform.value.enableTransition = enableTransition\n}\n\nwatch(currentImg, () => {\n nextTick(() => {\n const $img = imgRefs.value[0]\n if (!$img?.complete) {\n loading.value = true\n }\n })\n})\n\nwatch(index, (val) => {\n reset()\n emit('switch', val)\n})\n\nonMounted(() => {\n registerEventListener()\n // add tabindex then wrapper can be focusable via Javascript\n // focus wrapper so arrow key can't cause inner scroll behavior underneath\n wrapper.value?.focus?.()\n})\n</script>\n"],"names":["markRaw","FullScreen","ScaleToOriginal","isFirefox","useLocale","useNamespace","useZIndex","ref","effectScope","index","computed","isNumber","throttle","EVENT_CODE","useEventListener","watch","nextTick","onMounted"],"mappings":"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"}
1
+ {"version":3,"file":"image-viewer2.js","sources":["../../../../../../packages/components/image-viewer/src/image-viewer.vue"],"sourcesContent":["<template>\n <teleport to=\"body\" :disabled=\"!teleported\">\n <transition name=\"viewer-fade\" appear>\n <div\n ref=\"wrapper\"\n :tabindex=\"-1\"\n :class=\"ns.e('wrapper')\"\n :style=\"{ zIndex: computedZIndex }\"\n >\n <div :class=\"ns.e('mask')\" @click.self=\"hideOnClickModal && hide()\" />\n\n <!-- CLOSE -->\n <span :class=\"[ns.e('btn'), ns.e('close')]\" @click=\"hide\">\n <el-icon><Close /></el-icon>\n </span>\n\n <!-- ARROW -->\n <template v-if=\"!isSingle\">\n <span\n :class=\"[\n ns.e('btn'),\n ns.e('prev'),\n ns.is('disabled', !infinite && isFirst),\n ]\"\n @click=\"prev\"\n >\n <el-icon><ArrowLeft /></el-icon>\n </span>\n <span\n :class=\"[\n ns.e('btn'),\n ns.e('next'),\n ns.is('disabled', !infinite && isLast),\n ]\"\n @click=\"next\"\n >\n <el-icon><ArrowRight /></el-icon>\n </span>\n </template>\n <!-- ACTIONS -->\n <div :class=\"[ns.e('btn'), ns.e('actions')]\">\n <div :class=\"ns.e('actions__inner')\">\n <el-icon @click=\"handleActions('zoomOut')\">\n <ZoomOut />\n </el-icon>\n <el-icon @click=\"handleActions('zoomIn')\">\n <ZoomIn />\n </el-icon>\n <i :class=\"ns.e('actions__divider')\" />\n <el-icon @click=\"toggleMode\">\n <component :is=\"mode.icon\" />\n </el-icon>\n <i :class=\"ns.e('actions__divider')\" />\n <el-icon @click=\"handleActions('anticlockwise')\">\n <RefreshLeft />\n </el-icon>\n <el-icon @click=\"handleActions('clockwise')\">\n <RefreshRight />\n </el-icon>\n </div>\n </div>\n <!-- CANVAS -->\n <div :class=\"ns.e('canvas')\">\n <img\n v-for=\"(url, i) in urlList\"\n v-show=\"i === index\"\n :ref=\"(el) => (imgRefs[i] = el)\"\n :key=\"url\"\n :src=\"url\"\n :style=\"imgStyle\"\n :class=\"ns.e('img')\"\n @load=\"handleImgLoad\"\n @error=\"handleImgError\"\n @mousedown=\"handleMouseDown\"\n />\n </div>\n <slot />\n </div>\n </transition>\n </teleport>\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n computed,\n effectScope,\n markRaw,\n nextTick,\n onMounted,\n ref,\n watch,\n} from 'vue'\nimport { isNumber, useEventListener } from '@vueuse/core'\nimport { throttle } from 'lodash-unified'\nimport { useLocale, useNamespace, useZIndex } from '@element-plus/hooks'\nimport { EVENT_CODE } from '@element-plus/constants'\nimport { isFirefox } from '@element-plus/utils'\nimport ElIcon from '@element-plus/components/icon'\nimport {\n ArrowLeft,\n ArrowRight,\n Close,\n FullScreen,\n RefreshLeft,\n RefreshRight,\n ScaleToOriginal,\n ZoomIn,\n ZoomOut,\n} from '@element-plus/icons-vue'\nimport { imageViewerEmits, imageViewerProps } from './image-viewer'\n\nimport type { CSSProperties } from 'vue'\nimport type { ImageViewerAction } from './image-viewer'\n\nconst Mode = {\n CONTAIN: {\n name: 'contain',\n icon: markRaw(FullScreen),\n },\n ORIGINAL: {\n name: 'original',\n icon: markRaw(ScaleToOriginal),\n },\n}\n\nconst mousewheelEventName = isFirefox() ? 'DOMMouseScroll' : 'mousewheel'\n\ndefineOptions({\n name: 'ElImageViewer',\n})\n\nconst props = defineProps(imageViewerProps)\nconst emit = defineEmits(imageViewerEmits)\n\nconst { t } = useLocale()\nconst ns = useNamespace('image-viewer')\nconst { nextZIndex } = useZIndex()\nconst wrapper = ref<HTMLDivElement>()\nconst imgRefs = ref<any[]>([])\n\nconst scopeEventListener = effectScope()\n\nconst loading = ref(true)\nconst index = ref(props.initialIndex)\nconst mode = ref(Mode.CONTAIN)\nconst transform = ref({\n scale: 1,\n deg: 0,\n offsetX: 0,\n offsetY: 0,\n enableTransition: false,\n})\n\nconst isSingle = computed(() => {\n const { urlList } = props\n return urlList.length <= 1\n})\n\nconst isFirst = computed(() => {\n return index.value === 0\n})\n\nconst isLast = computed(() => {\n return index.value === props.urlList.length - 1\n})\n\nconst currentImg = computed(() => {\n return props.urlList[index.value]\n})\n\nconst imgStyle = computed(() => {\n const { scale, deg, offsetX, offsetY, enableTransition } = transform.value\n let translateX = offsetX / scale\n let translateY = offsetY / scale\n\n switch (deg % 360) {\n case 90:\n case -270:\n ;[translateX, translateY] = [translateY, -translateX]\n break\n case 180:\n case -180:\n ;[translateX, translateY] = [-translateX, -translateY]\n break\n case 270:\n case -90:\n ;[translateX, translateY] = [-translateY, translateX]\n break\n }\n\n const style: CSSProperties = {\n transform: `scale(${scale}) rotate(${deg}deg) translate(${translateX}px, ${translateY}px)`,\n transition: enableTransition ? 'transform .3s' : '',\n }\n if (mode.value.name === Mode.CONTAIN.name) {\n style.maxWidth = style.maxHeight = '100%'\n }\n return style\n})\n\nconst computedZIndex = computed(() => {\n return isNumber(props.zIndex) ? props.zIndex : nextZIndex()\n})\n\nfunction hide() {\n unregisterEventListener()\n emit('close')\n}\n\nfunction registerEventListener() {\n const keydownHandler = throttle((e: KeyboardEvent) => {\n switch (e.code) {\n // ESC\n case EVENT_CODE.esc:\n props.closeOnPressEscape && hide()\n break\n // SPACE\n case EVENT_CODE.space:\n toggleMode()\n break\n // LEFT_ARROW\n case EVENT_CODE.left:\n prev()\n break\n // UP_ARROW\n case EVENT_CODE.up:\n handleActions('zoomIn')\n break\n // RIGHT_ARROW\n case EVENT_CODE.right:\n next()\n break\n // DOWN_ARROW\n case EVENT_CODE.down:\n handleActions('zoomOut')\n break\n }\n })\n const mousewheelHandler = throttle(\n (e: WheelEvent | any /* TODO: wheelDelta is deprecated */) => {\n const delta = e.wheelDelta ? e.wheelDelta : -e.detail\n if (delta > 0) {\n handleActions('zoomIn', {\n zoomRate: 1.2,\n enableTransition: false,\n })\n } else {\n handleActions('zoomOut', {\n zoomRate: 1.2,\n enableTransition: false,\n })\n }\n }\n )\n\n scopeEventListener.run(() => {\n useEventListener(document, 'keydown', keydownHandler)\n useEventListener(document, mousewheelEventName, mousewheelHandler)\n })\n}\n\nfunction unregisterEventListener() {\n scopeEventListener.stop()\n}\n\nfunction handleImgLoad() {\n loading.value = false\n}\n\nfunction handleImgError(e: Event) {\n loading.value = false\n ;(e.target as HTMLImageElement).alt = t('el.image.error')\n}\n\nfunction handleMouseDown(e: MouseEvent) {\n if (loading.value || e.button !== 0 || !wrapper.value) return\n transform.value.enableTransition = false\n\n const { offsetX, offsetY } = transform.value\n const startX = e.pageX\n const startY = e.pageY\n\n const dragHandler = throttle((ev: MouseEvent) => {\n transform.value = {\n ...transform.value,\n offsetX: offsetX + ev.pageX - startX,\n offsetY: offsetY + ev.pageY - startY,\n }\n })\n const removeMousemove = useEventListener(document, 'mousemove', dragHandler)\n useEventListener(document, 'mouseup', () => {\n removeMousemove()\n })\n\n e.preventDefault()\n}\n\nfunction reset() {\n transform.value = {\n scale: 1,\n deg: 0,\n offsetX: 0,\n offsetY: 0,\n enableTransition: false,\n }\n}\n\nfunction toggleMode() {\n if (loading.value) return\n\n const modeNames = Object.keys(Mode)\n const modeValues = Object.values(Mode)\n const currentMode = mode.value.name\n const index = modeValues.findIndex((i) => i.name === currentMode)\n const nextIndex = (index + 1) % modeNames.length\n mode.value = Mode[modeNames[nextIndex]]\n reset()\n}\n\nfunction prev() {\n if (isFirst.value && !props.infinite) return\n const len = props.urlList.length\n index.value = (index.value - 1 + len) % len\n}\n\nfunction next() {\n if (isLast.value && !props.infinite) return\n const len = props.urlList.length\n index.value = (index.value + 1) % len\n}\n\nfunction handleActions(action: ImageViewerAction, options = {}) {\n if (loading.value) return\n const { zoomRate, rotateDeg, enableTransition } = {\n zoomRate: 1.4,\n rotateDeg: 90,\n enableTransition: true,\n ...options,\n }\n switch (action) {\n case 'zoomOut':\n if (transform.value.scale > 0.2) {\n transform.value.scale = Number.parseFloat(\n (transform.value.scale / zoomRate).toFixed(3)\n )\n }\n break\n case 'zoomIn':\n if (transform.value.scale < 7) {\n transform.value.scale = Number.parseFloat(\n (transform.value.scale * zoomRate).toFixed(3)\n )\n }\n break\n case 'clockwise':\n transform.value.deg += rotateDeg\n break\n case 'anticlockwise':\n transform.value.deg -= rotateDeg\n break\n }\n transform.value.enableTransition = enableTransition\n}\n\nwatch(currentImg, () => {\n nextTick(() => {\n const $img = imgRefs.value[0]\n if (!$img?.complete) {\n loading.value = true\n }\n })\n})\n\nwatch(index, (val) => {\n reset()\n emit('switch', val)\n})\n\nonMounted(() => {\n registerEventListener()\n // add tabindex then wrapper can be focusable via Javascript\n // focus wrapper so arrow key can't cause inner scroll behavior underneath\n wrapper.value?.focus?.()\n})\n</script>\n"],"names":["markRaw","FullScreen","ScaleToOriginal","isFirefox","useLocale","useNamespace","useZIndex","ref","effectScope","index","computed","isNumber","throttle","EVENT_CODE","useEventListener","watch","nextTick","onMounted"],"mappings":"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"}
@@ -154,7 +154,7 @@ var props = require('./time-picker/src/common/props.js');
154
154
  var picker = require('./time-picker/src/common/picker.js');
155
155
  var panelTimePick = require('./time-picker/src/time-picker-com/panel-time-pick.js');
156
156
  var timelineItem = require('./timeline/src/timeline-item.js');
157
- var tooltip = require('./tooltip/src/tooltip2.js');
157
+ var tooltip = require('./tooltip/src/tooltip.js');
158
158
  var tokens$1 = require('./tooltip/src/tokens.js');
159
159
  var event = require('../constants/event.js');
160
160
  var upload = require('./upload/src/upload.js');
@@ -6,6 +6,8 @@ export declare const ElInput: import("element-plus/es/utils").SFCWithInstall<imp
6
6
  readonly resize: import("element-plus/es/utils").BuildPropReturn<StringConstructor, unknown, unknown, "none" | "both" | "horizontal" | "vertical", unknown>;
7
7
  readonly autosize: import("element-plus/es/utils").BuildPropReturn<import("element-plus/es/utils").PropWrapper<import("./src/input").InputAutoSize>, false, unknown, unknown, unknown>;
8
8
  readonly autocomplete: import("element-plus/es/utils").BuildPropReturn<StringConstructor, "off", unknown, unknown, unknown>;
9
+ readonly formatter: import("element-plus/es/utils").BuildPropReturn<FunctionConstructor, unknown, unknown, unknown, unknown>;
10
+ readonly parser: import("element-plus/es/utils").BuildPropReturn<FunctionConstructor, unknown, unknown, unknown, unknown>;
9
11
  readonly placeholder: import("element-plus/es/utils").BuildPropReturn<StringConstructor, unknown, unknown, unknown, unknown>;
10
12
  readonly form: import("element-plus/es/utils").BuildPropReturn<StringConstructor, "", unknown, unknown, unknown>;
11
13
  readonly readonly: import("element-plus/es/utils").BuildPropReturn<BooleanConstructor, false, unknown, unknown, unknown>;
@@ -31,6 +33,8 @@ export declare const ElInput: import("element-plus/es/utils").SFCWithInstall<imp
31
33
  readonly resize: import("element-plus/es/utils").BuildPropReturn<StringConstructor, unknown, unknown, "none" | "both" | "horizontal" | "vertical", unknown>;
32
34
  readonly autosize: import("element-plus/es/utils").BuildPropReturn<import("element-plus/es/utils").PropWrapper<import("./src/input").InputAutoSize>, false, unknown, unknown, unknown>;
33
35
  readonly autocomplete: import("element-plus/es/utils").BuildPropReturn<StringConstructor, "off", unknown, unknown, unknown>;
36
+ readonly formatter: import("element-plus/es/utils").BuildPropReturn<FunctionConstructor, unknown, unknown, unknown, unknown>;
37
+ readonly parser: import("element-plus/es/utils").BuildPropReturn<FunctionConstructor, unknown, unknown, unknown, unknown>;
34
38
  readonly placeholder: import("element-plus/es/utils").BuildPropReturn<StringConstructor, unknown, unknown, unknown, unknown>;
35
39
  readonly form: import("element-plus/es/utils").BuildPropReturn<StringConstructor, "", unknown, unknown, unknown>;
36
40
  readonly readonly: import("element-plus/es/utils").BuildPropReturn<BooleanConstructor, false, unknown, unknown, unknown>;
@@ -119,6 +123,8 @@ export declare const ElInput: import("element-plus/es/utils").SFCWithInstall<imp
119
123
  textLength: import("vue").ComputedRef<number>;
120
124
  inputExceed: import("vue").ComputedRef<boolean>;
121
125
  suffixVisible: import("vue").ComputedRef<boolean>;
126
+ recordCursor: () => void;
127
+ setCursor: () => void;
122
128
  resizeTextarea: () => void;
123
129
  setNativeInputValue: () => void;
124
130
  calcIconOffset: (place: "prefix" | "suffix") => void;
@@ -192,6 +198,8 @@ export declare const ElInput: import("element-plus/es/utils").SFCWithInstall<imp
192
198
  readonly resize: import("element-plus/es/utils").BuildPropReturn<StringConstructor, unknown, unknown, "none" | "both" | "horizontal" | "vertical", unknown>;
193
199
  readonly autosize: import("element-plus/es/utils").BuildPropReturn<import("element-plus/es/utils").PropWrapper<import("./src/input").InputAutoSize>, false, unknown, unknown, unknown>;
194
200
  readonly autocomplete: import("element-plus/es/utils").BuildPropReturn<StringConstructor, "off", unknown, unknown, unknown>;
201
+ readonly formatter: import("element-plus/es/utils").BuildPropReturn<FunctionConstructor, unknown, unknown, unknown, unknown>;
202
+ readonly parser: import("element-plus/es/utils").BuildPropReturn<FunctionConstructor, unknown, unknown, unknown, unknown>;
195
203
  readonly placeholder: import("element-plus/es/utils").BuildPropReturn<StringConstructor, unknown, unknown, unknown, unknown>;
196
204
  readonly form: import("element-plus/es/utils").BuildPropReturn<StringConstructor, "", unknown, unknown, unknown>;
197
205
  readonly readonly: import("element-plus/es/utils").BuildPropReturn<BooleanConstructor, false, unknown, unknown, unknown>;
@@ -226,6 +234,8 @@ export declare const ElInput: import("element-plus/es/utils").SFCWithInstall<imp
226
234
  resize: import("element-plus/es/utils").BuildPropType<StringConstructor, "none" | "both" | "horizontal" | "vertical", unknown>;
227
235
  autosize: import("./src/input").InputAutoSize;
228
236
  autocomplete: string;
237
+ formatter: Function;
238
+ parser: Function;
229
239
  placeholder: string;
230
240
  form: string;
231
241
  readonly: import("element-plus/es/utils").BuildPropType<BooleanConstructor, unknown, unknown>;
@@ -12,6 +12,8 @@ export declare const inputProps: {
12
12
  readonly resize: import("element-plus/es/utils").BuildPropReturn<StringConstructor, unknown, unknown, "none" | "both" | "horizontal" | "vertical", unknown>;
13
13
  readonly autosize: import("element-plus/es/utils").BuildPropReturn<import("element-plus/es/utils").PropWrapper<InputAutoSize>, false, unknown, unknown, unknown>;
14
14
  readonly autocomplete: import("element-plus/es/utils").BuildPropReturn<StringConstructor, "off", unknown, unknown, unknown>;
15
+ readonly formatter: import("element-plus/es/utils").BuildPropReturn<FunctionConstructor, unknown, unknown, unknown, unknown>;
16
+ readonly parser: import("element-plus/es/utils").BuildPropReturn<FunctionConstructor, unknown, unknown, unknown, unknown>;
15
17
  readonly placeholder: import("element-plus/es/utils").BuildPropReturn<StringConstructor, unknown, unknown, unknown, unknown>;
16
18
  readonly form: import("element-plus/es/utils").BuildPropReturn<StringConstructor, "", unknown, unknown, unknown>;
17
19
  readonly readonly: import("element-plus/es/utils").BuildPropReturn<BooleanConstructor, false, unknown, unknown, unknown>;
@@ -39,6 +39,12 @@ const inputProps = props.buildProps({
39
39
  type: String,
40
40
  default: "off"
41
41
  },
42
+ formatter: {
43
+ type: Function
44
+ },
45
+ parser: {
46
+ type: Function
47
+ },
42
48
  placeholder: {
43
49
  type: String
44
50
  },
@@ -1 +1 @@
1
- {"version":3,"file":"input.js","sources":["../../../../../../packages/components/input/src/input.ts"],"sourcesContent":["import { isString } from '@vue/shared'\nimport {\n buildProps,\n definePropType,\n iconPropType,\n mutable,\n} from '@element-plus/utils'\nimport { UPDATE_MODEL_EVENT } from '@element-plus/constants'\nimport { useSizeProp } from '@element-plus/hooks'\nimport type Input from './input.vue'\nimport type { ExtractPropTypes, StyleValue } from 'vue'\n\nexport type InputAutoSize = { minRows?: number; maxRows?: number } | boolean\n\nexport const inputProps = buildProps({\n size: useSizeProp,\n disabled: Boolean,\n modelValue: {\n type: definePropType<string | number | null | undefined>([\n String,\n Number,\n Object,\n ]),\n default: '',\n },\n type: {\n type: String,\n default: 'text',\n },\n resize: {\n type: String,\n values: ['none', 'both', 'horizontal', 'vertical'],\n },\n autosize: {\n type: definePropType<InputAutoSize>([Boolean, Object]),\n default: false,\n },\n autocomplete: {\n type: String,\n default: 'off',\n },\n placeholder: {\n type: String,\n },\n form: {\n type: String,\n default: '',\n },\n readonly: {\n type: Boolean,\n default: false,\n },\n clearable: {\n type: Boolean,\n default: false,\n },\n showPassword: {\n type: Boolean,\n default: false,\n },\n showWordLimit: {\n type: Boolean,\n default: false,\n },\n suffixIcon: {\n type: iconPropType,\n default: '',\n },\n prefixIcon: {\n type: iconPropType,\n default: '',\n },\n label: {\n type: String,\n },\n tabindex: {\n type: [Number, String],\n },\n validateEvent: {\n type: Boolean,\n default: true,\n },\n inputStyle: {\n type: definePropType<StyleValue>([Object, Array, String]),\n default: () => mutable({} as const),\n },\n} as const)\nexport type InputProps = ExtractPropTypes<typeof inputProps>\n\nexport const inputEmits = {\n [UPDATE_MODEL_EVENT]: (value: string) => isString(value),\n input: (value: string) => isString(value),\n change: (value: string) => isString(value),\n focus: (evt: FocusEvent) => evt instanceof FocusEvent,\n blur: (evt: FocusEvent) => evt instanceof FocusEvent,\n clear: () => true,\n mouseleave: (evt: MouseEvent) => evt instanceof MouseEvent,\n mouseenter: (evt: MouseEvent) => evt instanceof MouseEvent,\n // NOTE: when autofill by browser, the keydown event is instanceof Event, not KeyboardEvent\n // relative bug report https://github.com/element-plus/element-plus/issues/6665\n keydown: (evt: KeyboardEvent | Event) => evt instanceof Event,\n compositionstart: (evt: CompositionEvent) => evt instanceof CompositionEvent,\n compositionupdate: (evt: CompositionEvent) => evt instanceof CompositionEvent,\n compositionend: (evt: CompositionEvent) => evt instanceof CompositionEvent,\n}\nexport type InputEmits = typeof inputEmits\n\nexport type InputInstance = InstanceType<typeof Input>\n"],"names":["buildProps","useSizeProp","definePropType","iconPropType","mutable","UPDATE_MODEL_EVENT","isString"],"mappings":"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"}
1
+ {"version":3,"file":"input.js","sources":["../../../../../../packages/components/input/src/input.ts"],"sourcesContent":["import { isString } from '@vue/shared'\nimport {\n buildProps,\n definePropType,\n iconPropType,\n mutable,\n} from '@element-plus/utils'\nimport { UPDATE_MODEL_EVENT } from '@element-plus/constants'\nimport { useSizeProp } from '@element-plus/hooks'\nimport type Input from './input.vue'\nimport type { ExtractPropTypes, StyleValue } from 'vue'\n\nexport type InputAutoSize = { minRows?: number; maxRows?: number } | boolean\n\nexport const inputProps = buildProps({\n size: useSizeProp,\n disabled: Boolean,\n modelValue: {\n type: definePropType<string | number | null | undefined>([\n String,\n Number,\n Object,\n ]),\n default: '',\n },\n type: {\n type: String,\n default: 'text',\n },\n resize: {\n type: String,\n values: ['none', 'both', 'horizontal', 'vertical'],\n },\n autosize: {\n type: definePropType<InputAutoSize>([Boolean, Object]),\n default: false,\n },\n autocomplete: {\n type: String,\n default: 'off',\n },\n formatter: {\n type: Function,\n },\n parser: {\n type: Function,\n },\n placeholder: {\n type: String,\n },\n form: {\n type: String,\n default: '',\n },\n readonly: {\n type: Boolean,\n default: false,\n },\n clearable: {\n type: Boolean,\n default: false,\n },\n showPassword: {\n type: Boolean,\n default: false,\n },\n showWordLimit: {\n type: Boolean,\n default: false,\n },\n suffixIcon: {\n type: iconPropType,\n default: '',\n },\n prefixIcon: {\n type: iconPropType,\n default: '',\n },\n label: {\n type: String,\n },\n tabindex: {\n type: [Number, String],\n },\n validateEvent: {\n type: Boolean,\n default: true,\n },\n inputStyle: {\n type: definePropType<StyleValue>([Object, Array, String]),\n default: () => mutable({} as const),\n },\n} as const)\nexport type InputProps = ExtractPropTypes<typeof inputProps>\n\nexport const inputEmits = {\n [UPDATE_MODEL_EVENT]: (value: string) => isString(value),\n input: (value: string) => isString(value),\n change: (value: string) => isString(value),\n focus: (evt: FocusEvent) => evt instanceof FocusEvent,\n blur: (evt: FocusEvent) => evt instanceof FocusEvent,\n clear: () => true,\n mouseleave: (evt: MouseEvent) => evt instanceof MouseEvent,\n mouseenter: (evt: MouseEvent) => evt instanceof MouseEvent,\n // NOTE: when autofill by browser, the keydown event is instanceof Event, not KeyboardEvent\n // relative bug report https://github.com/element-plus/element-plus/issues/6665\n keydown: (evt: KeyboardEvent | Event) => evt instanceof Event,\n compositionstart: (evt: CompositionEvent) => evt instanceof CompositionEvent,\n compositionupdate: (evt: CompositionEvent) => evt instanceof CompositionEvent,\n compositionend: (evt: CompositionEvent) => evt instanceof CompositionEvent,\n}\nexport type InputEmits = typeof inputEmits\n\nexport type InputInstance = InstanceType<typeof Input>\n"],"names":["buildProps","useSizeProp","definePropType","iconPropType","mutable","UPDATE_MODEL_EVENT","isString"],"mappings":"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"}
@@ -7,6 +7,8 @@ declare const _default: import("vue").DefineComponent<{
7
7
  readonly resize: import("element-plus/es/utils").BuildPropReturn<StringConstructor, unknown, unknown, "none" | "both" | "horizontal" | "vertical", unknown>;
8
8
  readonly autosize: import("element-plus/es/utils").BuildPropReturn<import("element-plus/es/utils").PropWrapper<import("./input").InputAutoSize>, false, unknown, unknown, unknown>;
9
9
  readonly autocomplete: import("element-plus/es/utils").BuildPropReturn<StringConstructor, "off", unknown, unknown, unknown>;
10
+ readonly formatter: import("element-plus/es/utils").BuildPropReturn<FunctionConstructor, unknown, unknown, unknown, unknown>;
11
+ readonly parser: import("element-plus/es/utils").BuildPropReturn<FunctionConstructor, unknown, unknown, unknown, unknown>;
10
12
  readonly placeholder: import("element-plus/es/utils").BuildPropReturn<StringConstructor, unknown, unknown, unknown, unknown>;
11
13
  readonly form: import("element-plus/es/utils").BuildPropReturn<StringConstructor, "", unknown, unknown, unknown>;
12
14
  readonly readonly: import("element-plus/es/utils").BuildPropReturn<BooleanConstructor, false, unknown, unknown, unknown>;
@@ -32,6 +34,8 @@ declare const _default: import("vue").DefineComponent<{
32
34
  readonly resize: import("element-plus/es/utils").BuildPropReturn<StringConstructor, unknown, unknown, "none" | "both" | "horizontal" | "vertical", unknown>;
33
35
  readonly autosize: import("element-plus/es/utils").BuildPropReturn<import("element-plus/es/utils").PropWrapper<import("./input").InputAutoSize>, false, unknown, unknown, unknown>;
34
36
  readonly autocomplete: import("element-plus/es/utils").BuildPropReturn<StringConstructor, "off", unknown, unknown, unknown>;
37
+ readonly formatter: import("element-plus/es/utils").BuildPropReturn<FunctionConstructor, unknown, unknown, unknown, unknown>;
38
+ readonly parser: import("element-plus/es/utils").BuildPropReturn<FunctionConstructor, unknown, unknown, unknown, unknown>;
35
39
  readonly placeholder: import("element-plus/es/utils").BuildPropReturn<StringConstructor, unknown, unknown, unknown, unknown>;
36
40
  readonly form: import("element-plus/es/utils").BuildPropReturn<StringConstructor, "", unknown, unknown, unknown>;
37
41
  readonly readonly: import("element-plus/es/utils").BuildPropReturn<BooleanConstructor, false, unknown, unknown, unknown>;
@@ -120,6 +124,8 @@ declare const _default: import("vue").DefineComponent<{
120
124
  textLength: import("vue").ComputedRef<number>;
121
125
  inputExceed: import("vue").ComputedRef<boolean>;
122
126
  suffixVisible: import("vue").ComputedRef<boolean>;
127
+ recordCursor: () => void;
128
+ setCursor: () => void;
123
129
  resizeTextarea: () => void;
124
130
  setNativeInputValue: () => void;
125
131
  calcIconOffset: (place: 'prefix' | 'suffix') => void;
@@ -193,6 +199,8 @@ declare const _default: import("vue").DefineComponent<{
193
199
  readonly resize: import("element-plus/es/utils").BuildPropReturn<StringConstructor, unknown, unknown, "none" | "both" | "horizontal" | "vertical", unknown>;
194
200
  readonly autosize: import("element-plus/es/utils").BuildPropReturn<import("element-plus/es/utils").PropWrapper<import("./input").InputAutoSize>, false, unknown, unknown, unknown>;
195
201
  readonly autocomplete: import("element-plus/es/utils").BuildPropReturn<StringConstructor, "off", unknown, unknown, unknown>;
202
+ readonly formatter: import("element-plus/es/utils").BuildPropReturn<FunctionConstructor, unknown, unknown, unknown, unknown>;
203
+ readonly parser: import("element-plus/es/utils").BuildPropReturn<FunctionConstructor, unknown, unknown, unknown, unknown>;
196
204
  readonly placeholder: import("element-plus/es/utils").BuildPropReturn<StringConstructor, unknown, unknown, unknown, unknown>;
197
205
  readonly form: import("element-plus/es/utils").BuildPropReturn<StringConstructor, "", unknown, unknown, unknown>;
198
206
  readonly readonly: import("element-plus/es/utils").BuildPropReturn<BooleanConstructor, false, unknown, unknown, unknown>;
@@ -227,6 +235,8 @@ declare const _default: import("vue").DefineComponent<{
227
235
  resize: import("element-plus/es/utils").BuildPropType<StringConstructor, "none" | "both" | "horizontal" | "vertical", unknown>;
228
236
  autosize: import("./input").InputAutoSize;
229
237
  autocomplete: string;
238
+ formatter: Function;
239
+ parser: Function;
230
240
  placeholder: string;
231
241
  form: string;
232
242
  readonly: import("element-plus/es/utils").BuildPropType<BooleanConstructor, unknown, unknown>;
@@ -5,7 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var vue = require('vue');
6
6
  var core = require('@vueuse/core');
7
7
  var lodashUnified = require('lodash-unified');
8
- var index$4 = require('../../icon/index.js');
8
+ var index$5 = require('../../icon/index.js');
9
9
  var iconsVue = require('@element-plus/icons-vue');
10
10
  require('../../../utils/index.js');
11
11
  require('../../../hooks/index.js');
@@ -18,12 +18,13 @@ var index$1 = require('../../../hooks/use-form-item/index.js');
18
18
  var index$2 = require('../../../hooks/use-common-props/index.js');
19
19
  var index$3 = require('../../../hooks/use-namespace/index.js');
20
20
  var icon = require('../../../utils/vue/icon.js');
21
+ var index$4 = require('../../../hooks/use-cursor/index.js');
21
22
  var shared = require('@vue/shared');
22
23
  var event = require('../../../constants/event.js');
23
24
  var i18n = require('../../../utils/i18n.js');
24
25
  var error = require('../../../utils/error.js');
25
26
 
26
- const _hoisted_1 = ["type", "disabled", "readonly", "autocomplete", "tabindex", "aria-label", "placeholder"];
27
+ const _hoisted_1 = ["type", "disabled", "formatter", "parser", "readonly", "autocomplete", "tabindex", "aria-label", "placeholder"];
27
28
  const _hoisted_2 = ["tabindex", "disabled", "readonly", "autocomplete", "aria-label", "placeholder"];
28
29
  const __default__ = {
29
30
  name: "ElInput",
@@ -79,6 +80,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
79
80
  const textLength = vue.computed(() => Array.from(nativeInputValue.value).length);
80
81
  const inputExceed = vue.computed(() => !!isWordLimitVisible.value && textLength.value > Number(attrs.value.maxlength));
81
82
  const suffixVisible = vue.computed(() => !!slots.suffix || !!props.suffixIcon || showClear.value || props.showPassword || isWordLimitVisible.value || !!validateState.value && needStatusIcon.value);
83
+ const [recordCursor, setCursor] = index$4.useCursor(input);
82
84
  const resizeTextarea = () => {
83
85
  const { type, autosize } = props;
84
86
  if (!core.isClient || type !== "textarea")
@@ -121,7 +123,12 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
121
123
  calcIconOffset("suffix");
122
124
  };
123
125
  const handleInput = async (event$1) => {
124
- const { value } = event$1.target;
126
+ recordCursor();
127
+ let { value } = event$1.target;
128
+ if (props.formatter) {
129
+ value = props.parser ? props.parser(value) : value;
130
+ value = props.formatter(value);
131
+ }
125
132
  if (isComposing.value)
126
133
  return;
127
134
  if (value === nativeInputValue.value)
@@ -130,6 +137,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
130
137
  emit("input", value);
131
138
  await vue.nextTick();
132
139
  setNativeInputValue();
140
+ setCursor();
133
141
  };
134
142
  const handleChange = (event) => {
135
143
  emit("change", event.target.value);
@@ -213,6 +221,9 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
213
221
  updateIconOffset();
214
222
  });
215
223
  vue.onMounted(async () => {
224
+ if (!props.formatter && props.parser) {
225
+ error.debugWarn("ElInput", "If you set the parser, you also need to set the formatter.");
226
+ }
216
227
  setNativeInputValue();
217
228
  updateIconOffset();
218
229
  await vue.nextTick();
@@ -276,7 +287,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
276
287
  class: vue.normalizeClass(vue.unref(nsInput).e("prefix-inner"))
277
288
  }, [
278
289
  vue.renderSlot(_ctx.$slots, "prefix"),
279
- _ctx.prefixIcon ? (vue.openBlock(), vue.createBlock(vue.unref(index$4.ElIcon), {
290
+ _ctx.prefixIcon ? (vue.openBlock(), vue.createBlock(vue.unref(index$5.ElIcon), {
280
291
  key: 0,
281
292
  class: vue.normalizeClass(vue.unref(nsInput).e("icon"))
282
293
  }, {
@@ -294,6 +305,8 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
294
305
  }, vue.unref(attrs), {
295
306
  type: _ctx.showPassword ? passwordVisible.value ? "text" : "password" : _ctx.type,
296
307
  disabled: vue.unref(inputDisabled),
308
+ formatter: _ctx.formatter,
309
+ parser: _ctx.parser,
297
310
  readonly: _ctx.readonly,
298
311
  autocomplete: _ctx.autocomplete,
299
312
  tabindex: _ctx.tabindex,
@@ -319,7 +332,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
319
332
  }, [
320
333
  !vue.unref(showClear) || !vue.unref(showPwdVisible) || !vue.unref(isWordLimitVisible) ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 0 }, [
321
334
  vue.renderSlot(_ctx.$slots, "suffix"),
322
- _ctx.suffixIcon ? (vue.openBlock(), vue.createBlock(vue.unref(index$4.ElIcon), {
335
+ _ctx.suffixIcon ? (vue.openBlock(), vue.createBlock(vue.unref(index$5.ElIcon), {
323
336
  key: 0,
324
337
  class: vue.normalizeClass(vue.unref(nsInput).e("icon"))
325
338
  }, {
@@ -329,7 +342,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
329
342
  _: 1
330
343
  }, 8, ["class"])) : vue.createCommentVNode("v-if", true)
331
344
  ], 64)) : vue.createCommentVNode("v-if", true),
332
- vue.unref(showClear) ? (vue.openBlock(), vue.createBlock(vue.unref(index$4.ElIcon), {
345
+ vue.unref(showClear) ? (vue.openBlock(), vue.createBlock(vue.unref(index$5.ElIcon), {
333
346
  key: 1,
334
347
  class: vue.normalizeClass([vue.unref(nsInput).e("icon"), vue.unref(nsInput).e("clear")]),
335
348
  onMousedown: _cache[0] || (_cache[0] = vue.withModifiers(() => {
@@ -341,7 +354,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
341
354
  ]),
342
355
  _: 1
343
356
  }, 8, ["class"])) : vue.createCommentVNode("v-if", true),
344
- vue.unref(showPwdVisible) ? (vue.openBlock(), vue.createBlock(vue.unref(index$4.ElIcon), {
357
+ vue.unref(showPwdVisible) ? (vue.openBlock(), vue.createBlock(vue.unref(index$5.ElIcon), {
345
358
  key: 2,
346
359
  class: vue.normalizeClass([vue.unref(nsInput).e("icon"), vue.unref(nsInput).e("password")]),
347
360
  onClick: handlePasswordVisible
@@ -358,21 +371,21 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
358
371
  vue.createElementVNode("span", {
359
372
  class: vue.normalizeClass(vue.unref(nsInput).e("count-inner"))
360
373
  }, vue.toDisplayString(vue.unref(textLength)) + " / " + vue.toDisplayString(vue.unref(attrs).maxlength), 3)
361
- ], 2)) : vue.createCommentVNode("v-if", true)
362
- ], 2),
363
- vue.unref(validateState) && vue.unref(validateIcon) && vue.unref(needStatusIcon) ? (vue.openBlock(), vue.createBlock(vue.unref(index$4.ElIcon), {
364
- key: 0,
365
- class: vue.normalizeClass([
366
- vue.unref(nsInput).e("icon"),
367
- vue.unref(nsInput).e("validateIcon"),
368
- vue.unref(nsInput).is("loading", vue.unref(validateState) === "validating")
369
- ])
370
- }, {
371
- default: vue.withCtx(() => [
372
- (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(vue.unref(validateIcon))))
373
- ]),
374
- _: 1
375
- }, 8, ["class"])) : vue.createCommentVNode("v-if", true)
374
+ ], 2)) : vue.createCommentVNode("v-if", true),
375
+ vue.unref(validateState) && vue.unref(validateIcon) && vue.unref(needStatusIcon) ? (vue.openBlock(), vue.createBlock(vue.unref(index$5.ElIcon), {
376
+ key: 4,
377
+ class: vue.normalizeClass([
378
+ vue.unref(nsInput).e("icon"),
379
+ vue.unref(nsInput).e("validateIcon"),
380
+ vue.unref(nsInput).is("loading", vue.unref(validateState) === "validating")
381
+ ])
382
+ }, {
383
+ default: vue.withCtx(() => [
384
+ (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(vue.unref(validateIcon))))
385
+ ]),
386
+ _: 1
387
+ }, 8, ["class"])) : vue.createCommentVNode("v-if", true)
388
+ ], 2)
376
389
  ], 2)) : vue.createCommentVNode("v-if", true)
377
390
  ], 2),
378
391
  vue.createCommentVNode(" append slot "),
@@ -1 +1 @@
1
- {"version":3,"file":"input2.js","sources":["../../../../../../packages/components/input/src/input.vue"],"sourcesContent":["<template>\n <div\n v-show=\"type !== 'hidden'\"\n :class=\"[\n type === 'textarea' ? nsTextarea.b() : nsInput.b(),\n nsInput.m(inputSize),\n nsInput.is('disabled', inputDisabled),\n nsInput.is('exceed', inputExceed),\n {\n [nsInput.b('group')]: $slots.prepend || $slots.append,\n [nsInput.bm('group', 'append')]: $slots.append,\n [nsInput.bm('group', 'prepend')]: $slots.prepend,\n [nsInput.m('prefix')]: $slots.prefix || prefixIcon,\n [nsInput.m('suffix')]:\n $slots.suffix || suffixIcon || clearable || showPassword,\n [nsInput.bm('suffix', 'password-clear')]: showClear && showPwdVisible,\n },\n $attrs.class,\n ]\"\n :style=\"containerStyle\"\n @mouseenter=\"handleMouseEnter\"\n @mouseleave=\"handleMouseLeave\"\n >\n <!-- input -->\n <template v-if=\"type !== 'textarea'\">\n <!-- prepend slot -->\n <div v-if=\"$slots.prepend\" :class=\"nsInput.be('group', 'prepend')\">\n <slot name=\"prepend\" />\n </div>\n\n <div :class=\"[nsInput.e('wrapper'), nsInput.is('focus', focused)]\">\n <!-- prefix slot -->\n <span v-if=\"$slots.prefix || prefixIcon\" :class=\"nsInput.e('prefix')\">\n <span :class=\"nsInput.e('prefix-inner')\">\n <slot name=\"prefix\" />\n <el-icon v-if=\"prefixIcon\" :class=\"nsInput.e('icon')\">\n <component :is=\"prefixIcon\" />\n </el-icon>\n </span>\n </span>\n\n <input\n ref=\"input\"\n :class=\"nsInput.e('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 <!-- suffix slot -->\n <span v-if=\"suffixVisible\" :class=\"nsInput.e('suffix')\">\n <span :class=\"nsInput.e('suffix-inner')\">\n <template\n v-if=\"!showClear || !showPwdVisible || !isWordLimitVisible\"\n >\n <slot name=\"suffix\" />\n <el-icon v-if=\"suffixIcon\" :class=\"nsInput.e('icon')\">\n <component :is=\"suffixIcon\" />\n </el-icon>\n </template>\n <el-icon\n v-if=\"showClear\"\n :class=\"[nsInput.e('icon'), nsInput.e('clear')]\"\n @mousedown.prevent\n @click=\"clear\"\n >\n <circle-close />\n </el-icon>\n <el-icon\n v-if=\"showPwdVisible\"\n :class=\"[nsInput.e('icon'), nsInput.e('password')]\"\n @click=\"handlePasswordVisible\"\n >\n <component :is=\"passwordIcon\" />\n </el-icon>\n <span v-if=\"isWordLimitVisible\" :class=\"nsInput.e('count')\">\n <span :class=\"nsInput.e('count-inner')\">\n {{ textLength }} / {{ attrs.maxlength }}\n </span>\n </span>\n </span>\n <el-icon\n v-if=\"validateState && validateIcon && needStatusIcon\"\n :class=\"[\n nsInput.e('icon'),\n nsInput.e('validateIcon'),\n nsInput.is('loading', validateState === 'validating'),\n ]\"\n >\n <component :is=\"validateIcon\" />\n </el-icon>\n </span>\n </div>\n\n <!-- append slot -->\n <div v-if=\"$slots.append\" :class=\"nsInput.be('group', 'append')\">\n <slot name=\"append\" />\n </div>\n </template>\n\n <!-- textarea -->\n <template v-else>\n <textarea\n ref=\"textarea\"\n :class=\"nsTextarea.e('inner')\"\n v-bind=\"attrs\"\n :tabindex=\"tabindex\"\n :disabled=\"inputDisabled\"\n :readonly=\"readonly\"\n :autocomplete=\"autocomplete\"\n :style=\"textareaStyle\"\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=\"nsInput.e('count')\">\n {{ textLength }} / {{ attrs.maxlength }}\n </span>\n </template>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n computed,\n getCurrentInstance,\n nextTick,\n onMounted,\n onUpdated,\n ref,\n shallowRef,\n toRef,\n useAttrs as useRawAttrs,\n useSlots,\n watch,\n} from 'vue'\nimport { isClient } from '@vueuse/core'\nimport { isNil } from 'lodash-unified'\nimport { ElIcon } from '@element-plus/components/icon'\nimport {\n CircleClose,\n Hide as IconHide,\n View as IconView,\n} from '@element-plus/icons-vue'\nimport {\n ValidateComponentsMap,\n debugWarn,\n isKorean,\n isObject,\n} from '@element-plus/utils'\nimport {\n useAttrs,\n useDisabled,\n useFormItem,\n useNamespace,\n useSize,\n} from '@element-plus/hooks'\nimport { UPDATE_MODEL_EVENT } from '@element-plus/constants'\nimport { calcTextareaHeight } from './utils'\nimport { inputEmits, inputProps } from './input'\nimport type { StyleValue } from 'vue'\n\ntype TargetElement = HTMLInputElement | HTMLTextAreaElement\nconst PENDANT_MAP = {\n suffix: 'append',\n prefix: 'prepend',\n} as const\n\ndefineOptions({\n name: 'ElInput',\n inheritAttrs: false,\n})\nconst props = defineProps(inputProps)\nconst emit = defineEmits(inputEmits)\n\nconst instance = getCurrentInstance()!\nconst rawAttrs = useRawAttrs()\nconst slots = useSlots()\n\nconst attrs = useAttrs()\nconst { form, formItem } = useFormItem()\nconst inputSize = useSize()\nconst inputDisabled = useDisabled()\nconst nsInput = useNamespace('input')\nconst nsTextarea = useNamespace('textarea')\n\nconst input = shallowRef<HTMLInputElement>()\nconst textarea = shallowRef<HTMLTextAreaElement>()\n\nconst focused = ref(false)\nconst hovering = ref(false)\nconst isComposing = ref(false)\nconst passwordVisible = ref(false)\nconst textareaCalcStyle = shallowRef(props.inputStyle)\n\nconst _ref = computed(() => input.value || textarea.value)\n\nconst needStatusIcon = computed(() => form?.statusIcon ?? false)\nconst validateState = computed(() => formItem?.validateState || '')\nconst validateIcon = computed(() => ValidateComponentsMap[validateState.value])\nconst passwordIcon = computed(() =>\n passwordVisible.value ? IconView : IconHide\n)\nconst containerStyle = computed<StyleValue>(() => [\n rawAttrs.style as StyleValue,\n props.inputStyle,\n])\nconst textareaStyle = computed<StyleValue>(() => [\n props.inputStyle,\n textareaCalcStyle.value,\n { resize: props.resize },\n])\nconst nativeInputValue = computed(() =>\n isNil(props.modelValue) ? '' : String(props.modelValue)\n)\nconst showClear = computed(\n () =>\n props.clearable &&\n !inputDisabled.value &&\n !props.readonly &&\n !!nativeInputValue.value &&\n (focused.value || hovering.value)\n)\nconst showPwdVisible = computed(\n () =>\n props.showPassword &&\n !inputDisabled.value &&\n !props.readonly &&\n (!!nativeInputValue.value || focused.value)\n)\nconst 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)\nconst textLength = computed(() => Array.from(nativeInputValue.value).length)\nconst 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)\nconst suffixVisible = computed(\n () =>\n !!slots.suffix ||\n !!props.suffixIcon ||\n showClear.value ||\n props.showPassword ||\n isWordLimitVisible.value ||\n (!!validateState.value && needStatusIcon.value)\n)\n\nconst 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\nconst setNativeInputValue = () => {\n const input = _ref.value\n if (!input || input.value === nativeInputValue.value) return\n input.value = nativeInputValue.value\n}\n\nconst calcIconOffset = (place: 'prefix' | 'suffix') => {\n const { el } = instance.vnode\n if (!el) return\n const elList = Array.from(\n (el as Element).querySelectorAll<HTMLSpanElement>(`.${nsInput.e(place)}`)\n )\n const target = elList.find((item) => item.parentNode === el)\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(`.${nsInput.be('group', pendant)}`).offsetWidth\n }px)`\n } else {\n target.removeAttribute('style')\n }\n}\n\nconst updateIconOffset = () => {\n calcIconOffset('prefix')\n calcIconOffset('suffix')\n}\n\nconst handleInput = async (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 await nextTick()\n setNativeInputValue()\n}\n\nconst handleChange = (event: Event) => {\n emit('change', (event.target as TargetElement).value)\n}\n\nconst handleCompositionStart = (event: CompositionEvent) => {\n emit('compositionstart', event)\n isComposing.value = true\n}\n\nconst 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\nconst handleCompositionEnd = (event: CompositionEvent) => {\n emit('compositionend', event)\n if (isComposing.value) {\n isComposing.value = false\n handleInput(event)\n }\n}\n\nconst handlePasswordVisible = () => {\n passwordVisible.value = !passwordVisible.value\n focus()\n}\n\nconst focus = async () => {\n // see: https://github.com/ElemeFE/element/issues/18573\n await nextTick()\n _ref.value?.focus()\n}\n\nconst blur = () => _ref.value?.blur()\n\nconst handleFocus = (event: FocusEvent) => {\n focused.value = true\n emit('focus', event)\n}\n\nconst handleBlur = (event: FocusEvent) => {\n focused.value = false\n emit('blur', event)\n if (props.validateEvent) {\n formItem?.validate?.('blur').catch((err) => debugWarn(err))\n }\n}\n\nconst handleMouseLeave = (evt: MouseEvent) => {\n hovering.value = false\n emit('mouseleave', evt)\n}\n\nconst handleMouseEnter = (evt: MouseEvent) => {\n hovering.value = true\n emit('mouseenter', evt)\n}\n\nconst handleKeydown = (evt: KeyboardEvent) => {\n emit('keydown', evt)\n}\n\nconst select = () => {\n _ref.value?.select()\n}\n\nconst clear = () => {\n emit(UPDATE_MODEL_EVENT, '')\n emit('change', '')\n emit('clear')\n emit('input', '')\n}\n\nwatch(\n () => props.modelValue,\n () => {\n nextTick(() => resizeTextarea())\n if (props.validateEvent) {\n formItem?.validate?.('change').catch((err) => debugWarn(err))\n }\n }\n)\n\n// native input value is set explicitly\n// do not use v-model / :value in template\n// see: https://github.com/ElemeFE/element/issues/14521\nwatch(nativeInputValue, () => setNativeInputValue())\n\n// when change between <input> and <textarea>,\n// update DOM dependent value and styles\n// https://github.com/ElemeFE/element/issues/14857\nwatch(\n () => props.type,\n async () => {\n await nextTick()\n setNativeInputValue()\n resizeTextarea()\n updateIconOffset()\n }\n)\n\nonMounted(async () => {\n setNativeInputValue()\n updateIconOffset()\n await nextTick()\n resizeTextarea()\n})\n\nonUpdated(async () => {\n await nextTick()\n updateIconOffset()\n})\n\ndefineExpose({\n /** @description HTML input element */\n input,\n /** @description HTML textarea element */\n textarea,\n /** @description HTML element, input or textarea */\n ref: _ref,\n /** @description style of textarea. */\n textareaStyle,\n\n /** @description from props (used on unit test) */\n autosize: toRef(props, 'autosize'),\n\n /** @description HTML input element native method */\n focus,\n /** @description HTML input element native method */\n blur,\n /** @description HTML input element native method */\n select,\n /** @description clear input value */\n clear,\n /** @description resize textarea. */\n resizeTextarea,\n})\n</script>\n"],"names":["getCurrentInstance","useRawAttrs","useSlots","useAttrs","useFormItem","useSize","useDisabled","useNamespace","shallowRef","ref","computed","ValidateComponentsMap","IconView","IconHide","isNil","isClient","isObject","calcTextareaHeight","event","UPDATE_MODEL_EVENT","nextTick","isKorean","debugWarn","watch","onMounted","onUpdated"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwLA,IAAA,MAAA,WAAA,GAAA;AAAA,MACA,MAAA,EAAA,QAAA;AAAA,MACA,MAAA,EAAA,SAAA;AAAA,KACA,CAAA;AASA,IAAA,MAAA,WAAAA,sBAAA,EAAA,CAAA;AACA,IAAA,MAAA,WAAAC,YAAA,EAAA,CAAA;AACA,IAAA,MAAA,QAAAC,YAAA,EAAA,CAAA;AAEA,IAAA,MAAA,QAAAC,cAAA,EAAA,CAAA;AACA,IAAA,MAAA,EAAA,IAAA,EAAA,QAAA,EAAA,GAAAC,mBAAA,EAAA,CAAA;AACA,IAAA,MAAA,YAAAC,eAAA,EAAA,CAAA;AACA,IAAA,MAAA,gBAAAC,mBAAA,EAAA,CAAA;AACA,IAAA,MAAA,OAAA,GAAAC,qBAAA,OAAA,CAAA,CAAA;AACA,IAAA,MAAA,UAAA,GAAAA,qBAAA,UAAA,CAAA,CAAA;AAEA,IAAA,MAAA,QAAAC,cAAA,EAAA,CAAA;AACA,IAAA,MAAA,WAAAA,cAAA,EAAA,CAAA;AAEA,IAAA,MAAA,OAAA,GAAAC,QAAA,KAAA,CAAA,CAAA;AACA,IAAA,MAAA,QAAA,GAAAA,QAAA,KAAA,CAAA,CAAA;AACA,IAAA,MAAA,WAAA,GAAAA,QAAA,KAAA,CAAA,CAAA;AACA,IAAA,MAAA,eAAA,GAAAA,QAAA,KAAA,CAAA,CAAA;AACA,IAAA,MAAA,iBAAA,GAAAD,cAAA,CAAA,KAAA,CAAA,UAAA,CAAA,CAAA;AAEA,IAAA,MAAA,OAAAE,YAAA,CAAA,MAAA,KAAA,CAAA,KAAA,IAAA,SAAA,KAAA,CAAA,CAAA;AAEA,IAAA,MAAA,cAAA,GAAAA,YAAA,CAAA,MAAA;AACA,MAAA,IAAA,EAAA,CAAA;AACA,MAAA,OAAA,CAAA,EAAA,GAAA,IAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,IAAA,CAAA,UAAA,sBAAA,CAAA;AACA,KAAA,CAAA,CAAA;AAGA,IAAA,MAAA,aAAA,GAAAA,mBAAA,CAAA,QAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,QAAA,CAAA,aAAA,KAAA,EAAA,CAAA,CAAA;AAAA,IAAA,MACA,YAAA,GAAAA,YAAA,CAAA,MAAAC,0BAAA,CAAA,aAAA,CAAA,KAAA,CAAA,CAAA,CAAA;AAAA,IAAA,MACA,YAAA,GAAAD,YAAA,CAAA,MAAA,eAAA,CAAA,KAAA,GAAAE,aAAA,GAAAC,aAAA,CAAA,CAAA;AAAA,IACA,MAAA,cAAA,GAAAH,YAAA,CAAA,MAAA;AACA,MAAA,QAAA,CAAA,KAAA;AAAA,MACA,KAAA,CAAA,UAAA;AAAA,KAAA,CACA,CAAA;AAAA,IACA,MAAA,aAAA,GAAAA,YAAA,CAAA,MAAA;AAAA,MACA,KAAA,CAAA,UAAA;AACA,MAAA,iBAAA,CAAA,KAAA;AAGA,MAAA,EAAA,cAAA,MACA,EAAA;AAOA,KAAA,CAAA,CAAA;AAOA,IAAA,MAAA,gBAAA,GAAAA,YACA,CAAA,MAAAI,mBACA,CAAA,KAAA,CAAA,UAAA,CAAA,GACA,EAAA,GAAA,MAAA,CAAA,KAAA,CAAA,UACA,CAAA,CAAA,CAAA;AAKA,IAAA,MAAA,SAAA,GAAAJ,mBAAA,KAAA,CAAA,SAAA,IAAA,CAAA,aAAA,CAAA,KAAA,IAAA,CAAA,KAAA,CAAA,QAAA,IAAA,CAAA,CAAA,gBAAA,CAAA,KAAA,KAAA,OAAA,CAAA,KAAA,IAAA,QAAA,CAAA,KAAA,CAAA,CAAA,CAAA;AACA,IAAA,MAAA,cAAA,GAAAA,YAGA,CAAA,MAAA,KAAA,CAAA,YAAA,IACA,CAAA,aAAA,CAAA,KAAA,IAAA,CAAA,KAAA,CAAA,QAAA,uBACA,CAAA,KAAA,IAAA,OAAA,CAAA,KAAA,CAAA,CAAA,CAAA;AACA,IAAA,MAAA,iCAEA,CAAA,MAAA,KAAA,CAAA,aACA,IAAA,CAAA,CAAA,KAAA,CAAA,eAEA,KAAA,KAAA,CAAA,mBACA,KAAA,CAAA,IAAA,KAAA,UAAA,CAAA,IACA,CAAA,aAAA,CAAA,KAAA,IAAA,CAAA,KAAA,CAAA,QACA,IAAA,CAAA,KAAA,CAAA,YAAA,CAAA,CAAA;AAEA,IAAA,MAAA,yBAAA,CAAA,MAAA,KAAA,CAAA,IAAA,CAAA,gBAAA,CAAA,KAAA,CAAA,CAAA,MAAA,CAAA,CAAA;AACA,IAAA,MAAA,WAAA,GAAAA,YAAA,CAAA,MAAA,CAAA,CAAA,kBAAA,CAAA,KAAA,IAAA,UAAA,CAAA,KAAA,GAAA,MAAA,CAAA,KAAA,CAAA,KAAA,CAAA,SAAA,CAAA,CAAA,CAAA;AAEA,IAAA,MAAA,aAAA,GAAAA,YAAA,CAAA,MAAA,CAAA,CAAA,KAAA,CAAA,MAAA,IAAA,CAAA,CAAA,KAAA,CAAA,UAAA,IAAA,SAAA,CAAA,KAAA,IAAA,KAAA,CAAA,YAAA,IAAA,kBAAA,CAAA,KAAA,IAAA,CAAA,CAAA,aAAA,CAAA,KAAA,IAAA,cAAA,CAAA,KAAA,CAAA,CAAA;AAAA,IAAA,MAAA,cAAA,GAAA,MAAA;AAEA,MAAA,MAAA,EAAA,IAAA,EAAA,QAAA,EAAA,GAAA,KAAA,CAAA;AACA,MAAA,IAAA,CAAAK,aAAA,IAAA,IAAA,KAAA,UAAA;AACA,QAAA,OAAA;AACA,MAAA,IAAA,QAAA,EAAA;AAAA,QAAA,MACA,OAAA,GAAAC,eAAA,CAAA,QAAA,CAAA,GAAA,QAAA,CAAA,OAAA,GAAA,KAAA,CAAA,CAAA;AAAA,QACA,MAAA,OAAA,GAAAA,eAAA,CAAA,QAAA,CAAA,GAAA,QAAA,CAAA,OAAA,GAAA,KAAA,CAAA,CAAA;AAAA,QACA,iBAAA,CAAA,KAAA,GAAA;AACA,UAAA,GAAAC,wBAAA,CAAA,QAAA,CAAA,KAAA,EAAA,OAAA,EAAA,OAAA,CAAA;AAAA,SAAA,CACA;AAAA,OACA,MAAA;AAAA,QACA,iBAAA,CAAA,KAAA,GAAA;AAAA,UACA,SAAA,EAAAA,wBAAA,CAAA,QAAA,CAAA,KAAA,CAAA,CAAA,SAAA;AAEA,SAAA,CAAA;AACA,OAAA;AACA,KAAA,CAAA;AAAA,IAAA,MAAA,mBAAA,GAAA,MAAA;AACA,MAAA,MAAA,SAAA,IAAA,CAAA,KAAA,CAAA;AAAA,MACA,IAAA,CAAA,MAAA,IAAA,MAAA,CAAA,KAAA,KAAA,gBAAA,CAAA,KAAA;AAEA,QAAA,OAAA;AACA,MAAA,MAAA,CAAA,QAAA,gBAAA,CAAA,KAAA,CAAA;AACA,KAAA,CAAA;AAAA,IAAA,MAAA,cAAA,GAAA,CAAA,KAAA,KAAA;AACA,MAAA,MAAA,EAAA,EAAA,EAAA,GAAA,QAAA,CAAA,KACA,CAAA;AAEA,MAAA,IAAA,CAAA;AACA,QAAA,OAAA;AAAA,MAAA,MAAA,MAAA,GAAA,KAAA,CAAA,IAAA,CAAA,EAAA,CAAA,gBAAA,CAAA,CAAA,CAAA,EAAA,OAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEA,MAAA,MAAA,eAAA,CAAA,IAAA,CAAA,CAAA,IAAA,KAAA,IAAA,CAAA,UAAA,KAAA,EAAA,CAAA,CAAA;AAEA,MAAA,IAAA,OAAA;AACA,QAAA,OAAA;AACA,MAEA,MAAA,OAAA,GAAA,WAAA,CAAA,KAAA,CAAA,CAAA;AACA,MAAA,IAAA,KAAA;AAAA,QACA,MAAA,CAAA,KAAA,CAAA,SAAA,GAAA,CAAA,WAAA,EAAA,KAAA,KAAA,QAAA,GAAA,GAAA,GAAA,EAAA,CAAA,EAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,EAAA,OAAA,CAAA,EAAA,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA;AAAA,OACA,MAAA;AAEA,QAAA,sBAAA,CAAA,OAAA,CAAA,CAAA;AACA,OAAA;AACA,KAAA,CAAA;AAAA,IACA,MAAA,gBAAA,GAAA,MAAA;AAEA,MAAA,cAAA,CAAA,UAAA;AACA,MAAA,uBAAA,CAAA,CAAA;AAIA,KAAA,CAAA;AAAA,IAAA,MAAA,WAAA,GAAA,OAAAC,OAAA,KAAA;AAIA,MAAA,eAAA,GAAAA,OAAA,CAAA,MAAA,CAAA;AAAA,MAAA,IAAA,WAAA,CAAA,KAAA;AAEA,QAAA;AACA,MAAA,IAAA,UAAA,gBAAA,CAAA,KAAA;AAIA,QAAA,OAAA;AACA,MAAA,IAAA,CAAAC,wBAAA,EAAA,KAAA,CAAA,CAAA;AAAA,MACA,IAAA,CAAA,OAAA,EAAA,KAAA,CAAA,CAAA;AAEA,MAAA,MAAAC,YAAA,EAAA,CAAA;AACA,MAAA,mBAAA,EAAA,CAAA;AAAA,KACA,CAAA;AAEA,IAAA,MAAA,YAAA,GAAA,CAAA,KAAA,KAAA;AACA,MAAA,IAAA,CAAA,sBAAA,CAAA,KAAA,CAAA,CAAA;AACA,KAAA,CAAA;AAAA,IACA,MAAA,sBAAA,GAAA,CAAA,KAAA,KAAA;AAEA,MAAA,IAAA,CAAA,kBAAA,EAAA,KAAA,CAAA,CAAA;AACA,MAAA;AACA,KAAA,CAAA;AACA,IAAA,MAAA,uBAAA,GAAA,CAAA,KAAA,KAAA;AACA,MAAA,IAAA,EAAA,CAAA;AAAA,MACA,IAAA,CAAA,mBAAA,EAAA,KAAA,CAAA,CAAA;AAEA,MAAA,MAAA,IAAA,GAAA,CAAA,EAAA,GAAA,KAAA,CAAA,MAAA,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,KAAA,CAAA;AACA,MAAA,0BAAA,CAAA,IAAA,CAAA,MAAA,GAAA,CAAA,CAAA,IAAA,EAAA,CAAA;AACA,MAAA,iBAAA,GAAA,CAAAC,aAAA,CAAA,aAAA,CAAA,CAAA;AACA,KAAA,CAAA;AACA,IAAA,MAAA,oBAAA,GAAA,CAAA,KAAA,KAAA;AAAA,MACA,IAAA,CAAA,gBAAA,EAAA,KAAA,CAAA,CAAA;AAAA,MACA,IAAA,WAAA,CAAA,KAAA,EAAA;AAEA,QAAA,0BAAA;AACA,QAAA,WAAA,CAAA,KAAA,CAAA,CAAA;AACA,OAAA;AAAA,KACA,CAAA;AAEA,IAAA,MAAA,qBAAA,GAAA,MAAA;AAEA,MAAA,eAAA,CAAA,KAAA,GAAA,CAAA,eAAA,CAAA,KAAA,CAAA;AACA,MAAA,KAAA;AAAA,KACA,CAAA;AAEA,IAAA,MAAA,KAAA,GAAA,YAAA;AAEA,MAAA,IAAA,EAAA,CAAA;AACA,MAAA,MAAAD,YAAA,EAAA,CAAA;AACA,MAAA,CAAA,EAAA,aAAA,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,KAAA,EAAA,CAAA;AAAA,KACA,CAAA;AAEA,IAAA,MAAA,IAAA,GAAA,MAAA;AACA,MAAA,IAAA,EAAA,CAAA;AACA,MAAA,aAAA,IAAA,CAAA,KAAA,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,EAAA,CAAA;AACA,KAAA,CAAA;AACA,IAAA,MAAA,WAAA,GAAA,CAAA,UAAA;AAAA,MACA,OAAA,CAAA,KAAA,GAAA,IAAA,CAAA;AAAA,MACA,IAAA,CAAA,OAAA,EAAA,KAAA,CAAA,CAAA;AAEA,KAAA,CAAA;AACA,IAAA,MAAA,UAAA,GAAA,CAAA,KAAA,KAAA;AACA,MAAA,IAAA;AAAA,MACA,OAAA,CAAA,KAAA,GAAA,KAAA,CAAA;AAEA,MAAA,IAAA,CAAA,MAAA,EAAA,KAAA,CAAA,CAAA;AACA,MAAA,IAAA,KAAA,CAAA,aAAA,EAAA;AACA,QAAA,CAAA,EAAA,eAAA,IAAA,GAAA,KAAA,CAAA,GAAA,QAAA,CAAA,QAAA,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,QAAA,EAAA,MAAA,CAAA,CAAA,KAAA,CAAA,CAAA,GAAA,KAAAE,eAAA,CAAA,GAAA,CAAA,CAAA,CAAA;AAAA,OACA;AAEA,KAAA,CAAA;AACA,IAAA,MAAA,gBAAA,GAAA,CAAA,GAAA,KAAA;AAAA,MACA,QAAA,CAAA,KAAA,GAAA,KAAA,CAAA;AAEA,MAAA,IAAA,aAAA,EAAA,GAAA,CAAA,CAAA;AACA,KAAA,CAAA;AAAA,IACA,MAAA,gBAAA,GAAA,CAAA,GAAA,KAAA;AAEA,MAAA,cAAA,GAAA,IAAA,CAAA;AACA,MAAA,IAAA,CAAA;AACA,KAAA,CAAA;AACA,IAAA,MAAA,aAAA,GAAA,CAAA,GAAA,KAAA;AACA,MAAA,IAAA,CAAA,SAAA,EAAA,GAAA,CAAA,CAAA;AAAA,KACA,CAAA;AAEA,IACA,MAAA,MAAA,GAAA,MAAA;AAEA,MAAA,IAAA,EAAA,CAAA;AACA,MAAA,CAAA,EAAA,OAAA,CAAA,KAAA,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,MAAA,EAAA,CAAA;AACA,KAAA,CAAA;AAAA,IACA,MAAA,KAAA,GAAA,MAAA;AAAA,MAEA,IAAA,CAAAH,wBAAA,EAAA,EAAA,CAAA,CAAA;AAKA,MAAA,IAAA,CAAA,QAAA,EAAA,EAAA,CAAA,CAAA;AAKA,MACA,IAAA,CAAA,OAAA,CAAA,CAAA;AAEA,MAAA,IAAA,CAAA,OAAA,EAAA,EAAA,CAAA,CAAA;AACA,KAAA,CAAA;AACA,IAAAI,SAAA,CAAA,MAAA,KAAA,CAAA,UAAA,EAAA,MAAA;AACA,MAAA,IAAA,EAAA,CAAA;AAAA,MAEAH,YAAA,CAAA,MAAA,cAAA,EAAA,CAAA,CAAA;AAEA,MAAA,IAAA,KAAA,CAAA,aAAA,EAAA;AACA,QAAA,CAAA,EAAA,GAAA,QAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,QAAA,CAAA,QAAA,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,QAAA,EAAA,QAAA,CAAA,CAAA,KAAA,CAAA,CAAA,GAAA,KAAAE,eAAA,CAAA,GAAA,CAAA,CAAA,CAAA;AACA,OAAA;AACA,KAAA,CAAA,CAAA;AACA,IAAAC,SAAA,CAAA,gBAAA,EAAA,MAAA,mBAAA,EAAA,CAAA,CAAA;AAAA,IACAA,SAAA,CAAA,MAAA,KAAA,CAAA,IAAA,EAAA,YAAA;AAEA,MAAA,MAAAH,YAAA,EAAA,CAAA;AACA,MAAA,mBAAA,EAAA,CAAA;AACA,MAAA,cAAA,EAAA,CAAA;AAAA,MACA,gBAAA,EAAA,CAAA;AAEA,KAAA,CAAA,CAAA;AAAA,IAEAI,aAAA,CAAA,YAAA;AAAA,MAEA,mBAAA,EAAA,CAAA;AAAA,MAEA,gBAAA,EAAA,CAAA;AAAA,MAEA,MAAAJ,YAAA,EAAA,CAAA;AAAA,MAGA,cAAA,EAAA,CAAA;AAAA,KAGA,CAAA,CAAA;AAAA,IAEAK,aAAA,CAAA,YAAA;AAAA,MAEA,MAAAL,YAAA,EAAA,CAAA;AAAA,MAEA,gBAAA,EAAA,CAAA;AAAA,KAEA,CAAA,CAAA;AAAA,IACA,MAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"input2.js","sources":["../../../../../../packages/components/input/src/input.vue"],"sourcesContent":["<template>\n <div\n v-show=\"type !== 'hidden'\"\n :class=\"[\n type === 'textarea' ? nsTextarea.b() : nsInput.b(),\n nsInput.m(inputSize),\n nsInput.is('disabled', inputDisabled),\n nsInput.is('exceed', inputExceed),\n {\n [nsInput.b('group')]: $slots.prepend || $slots.append,\n [nsInput.bm('group', 'append')]: $slots.append,\n [nsInput.bm('group', 'prepend')]: $slots.prepend,\n [nsInput.m('prefix')]: $slots.prefix || prefixIcon,\n [nsInput.m('suffix')]:\n $slots.suffix || suffixIcon || clearable || showPassword,\n [nsInput.bm('suffix', 'password-clear')]: showClear && showPwdVisible,\n },\n $attrs.class,\n ]\"\n :style=\"containerStyle\"\n @mouseenter=\"handleMouseEnter\"\n @mouseleave=\"handleMouseLeave\"\n >\n <!-- input -->\n <template v-if=\"type !== 'textarea'\">\n <!-- prepend slot -->\n <div v-if=\"$slots.prepend\" :class=\"nsInput.be('group', 'prepend')\">\n <slot name=\"prepend\" />\n </div>\n\n <div :class=\"[nsInput.e('wrapper'), nsInput.is('focus', focused)]\">\n <!-- prefix slot -->\n <span v-if=\"$slots.prefix || prefixIcon\" :class=\"nsInput.e('prefix')\">\n <span :class=\"nsInput.e('prefix-inner')\">\n <slot name=\"prefix\" />\n <el-icon v-if=\"prefixIcon\" :class=\"nsInput.e('icon')\">\n <component :is=\"prefixIcon\" />\n </el-icon>\n </span>\n </span>\n\n <input\n ref=\"input\"\n :class=\"nsInput.e('inner')\"\n v-bind=\"attrs\"\n :type=\"showPassword ? (passwordVisible ? 'text' : 'password') : type\"\n :disabled=\"inputDisabled\"\n :formatter=\"formatter\"\n :parser=\"parser\"\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 <!-- suffix slot -->\n <span v-if=\"suffixVisible\" :class=\"nsInput.e('suffix')\">\n <span :class=\"nsInput.e('suffix-inner')\">\n <template\n v-if=\"!showClear || !showPwdVisible || !isWordLimitVisible\"\n >\n <slot name=\"suffix\" />\n <el-icon v-if=\"suffixIcon\" :class=\"nsInput.e('icon')\">\n <component :is=\"suffixIcon\" />\n </el-icon>\n </template>\n <el-icon\n v-if=\"showClear\"\n :class=\"[nsInput.e('icon'), nsInput.e('clear')]\"\n @mousedown.prevent\n @click=\"clear\"\n >\n <circle-close />\n </el-icon>\n <el-icon\n v-if=\"showPwdVisible\"\n :class=\"[nsInput.e('icon'), nsInput.e('password')]\"\n @click=\"handlePasswordVisible\"\n >\n <component :is=\"passwordIcon\" />\n </el-icon>\n <span v-if=\"isWordLimitVisible\" :class=\"nsInput.e('count')\">\n <span :class=\"nsInput.e('count-inner')\">\n {{ textLength }} / {{ attrs.maxlength }}\n </span>\n </span>\n <el-icon\n v-if=\"validateState && validateIcon && needStatusIcon\"\n :class=\"[\n nsInput.e('icon'),\n nsInput.e('validateIcon'),\n nsInput.is('loading', validateState === 'validating'),\n ]\"\n >\n <component :is=\"validateIcon\" />\n </el-icon>\n </span>\n </span>\n </div>\n\n <!-- append slot -->\n <div v-if=\"$slots.append\" :class=\"nsInput.be('group', 'append')\">\n <slot name=\"append\" />\n </div>\n </template>\n\n <!-- textarea -->\n <template v-else>\n <textarea\n ref=\"textarea\"\n :class=\"nsTextarea.e('inner')\"\n v-bind=\"attrs\"\n :tabindex=\"tabindex\"\n :disabled=\"inputDisabled\"\n :readonly=\"readonly\"\n :autocomplete=\"autocomplete\"\n :style=\"textareaStyle\"\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=\"nsInput.e('count')\">\n {{ textLength }} / {{ attrs.maxlength }}\n </span>\n </template>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n computed,\n getCurrentInstance,\n nextTick,\n onMounted,\n onUpdated,\n ref,\n shallowRef,\n toRef,\n useAttrs as useRawAttrs,\n useSlots,\n watch,\n} from 'vue'\nimport { isClient } from '@vueuse/core'\nimport { isNil } from 'lodash-unified'\nimport { ElIcon } from '@element-plus/components/icon'\nimport {\n CircleClose,\n Hide as IconHide,\n View as IconView,\n} from '@element-plus/icons-vue'\nimport {\n ValidateComponentsMap,\n debugWarn,\n isKorean,\n isObject,\n} from '@element-plus/utils'\nimport {\n useAttrs,\n useCursor,\n useDisabled,\n useFormItem,\n useNamespace,\n useSize,\n} from '@element-plus/hooks'\nimport { UPDATE_MODEL_EVENT } from '@element-plus/constants'\nimport { calcTextareaHeight } from './utils'\nimport { inputEmits, inputProps } from './input'\nimport type { StyleValue } from 'vue'\n\ntype TargetElement = HTMLInputElement | HTMLTextAreaElement\nconst PENDANT_MAP = {\n suffix: 'append',\n prefix: 'prepend',\n} as const\n\ndefineOptions({\n name: 'ElInput',\n inheritAttrs: false,\n})\nconst props = defineProps(inputProps)\nconst emit = defineEmits(inputEmits)\n\nconst instance = getCurrentInstance()!\nconst rawAttrs = useRawAttrs()\nconst slots = useSlots()\n\nconst attrs = useAttrs()\nconst { form, formItem } = useFormItem()\nconst inputSize = useSize()\nconst inputDisabled = useDisabled()\nconst nsInput = useNamespace('input')\nconst nsTextarea = useNamespace('textarea')\n\nconst input = shallowRef<HTMLInputElement>()\nconst textarea = shallowRef<HTMLTextAreaElement>()\n\nconst focused = ref(false)\nconst hovering = ref(false)\nconst isComposing = ref(false)\nconst passwordVisible = ref(false)\nconst textareaCalcStyle = shallowRef(props.inputStyle)\n\nconst _ref = computed(() => input.value || textarea.value)\n\nconst needStatusIcon = computed(() => form?.statusIcon ?? false)\nconst validateState = computed(() => formItem?.validateState || '')\nconst validateIcon = computed(() => ValidateComponentsMap[validateState.value])\nconst passwordIcon = computed(() =>\n passwordVisible.value ? IconView : IconHide\n)\nconst containerStyle = computed<StyleValue>(() => [\n rawAttrs.style as StyleValue,\n props.inputStyle,\n])\nconst textareaStyle = computed<StyleValue>(() => [\n props.inputStyle,\n textareaCalcStyle.value,\n { resize: props.resize },\n])\nconst nativeInputValue = computed(() =>\n isNil(props.modelValue) ? '' : String(props.modelValue)\n)\nconst showClear = computed(\n () =>\n props.clearable &&\n !inputDisabled.value &&\n !props.readonly &&\n !!nativeInputValue.value &&\n (focused.value || hovering.value)\n)\nconst showPwdVisible = computed(\n () =>\n props.showPassword &&\n !inputDisabled.value &&\n !props.readonly &&\n (!!nativeInputValue.value || focused.value)\n)\nconst 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)\nconst textLength = computed(() => Array.from(nativeInputValue.value).length)\nconst 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)\nconst suffixVisible = computed(\n () =>\n !!slots.suffix ||\n !!props.suffixIcon ||\n showClear.value ||\n props.showPassword ||\n isWordLimitVisible.value ||\n (!!validateState.value && needStatusIcon.value)\n)\n\nconst [recordCursor, setCursor] = useCursor(input)\n\nconst 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\nconst setNativeInputValue = () => {\n const input = _ref.value\n if (!input || input.value === nativeInputValue.value) return\n input.value = nativeInputValue.value\n}\n\nconst calcIconOffset = (place: 'prefix' | 'suffix') => {\n const { el } = instance.vnode\n if (!el) return\n const elList = Array.from(\n (el as Element).querySelectorAll<HTMLSpanElement>(`.${nsInput.e(place)}`)\n )\n const target = elList.find((item) => item.parentNode === el)\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(`.${nsInput.be('group', pendant)}`).offsetWidth\n }px)`\n } else {\n target.removeAttribute('style')\n }\n}\n\nconst updateIconOffset = () => {\n calcIconOffset('prefix')\n calcIconOffset('suffix')\n}\n\nconst handleInput = async (event: Event) => {\n recordCursor()\n\n let { value } = event.target as TargetElement\n\n if (props.formatter) {\n value = props.parser ? props.parser(value) : value\n value = props.formatter(value)\n }\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 await nextTick()\n setNativeInputValue()\n setCursor()\n}\n\nconst handleChange = (event: Event) => {\n emit('change', (event.target as TargetElement).value)\n}\n\nconst handleCompositionStart = (event: CompositionEvent) => {\n emit('compositionstart', event)\n isComposing.value = true\n}\n\nconst 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\nconst handleCompositionEnd = (event: CompositionEvent) => {\n emit('compositionend', event)\n if (isComposing.value) {\n isComposing.value = false\n handleInput(event)\n }\n}\n\nconst handlePasswordVisible = () => {\n passwordVisible.value = !passwordVisible.value\n focus()\n}\n\nconst focus = async () => {\n // see: https://github.com/ElemeFE/element/issues/18573\n await nextTick()\n _ref.value?.focus()\n}\n\nconst blur = () => _ref.value?.blur()\n\nconst handleFocus = (event: FocusEvent) => {\n focused.value = true\n emit('focus', event)\n}\n\nconst handleBlur = (event: FocusEvent) => {\n focused.value = false\n emit('blur', event)\n if (props.validateEvent) {\n formItem?.validate?.('blur').catch((err) => debugWarn(err))\n }\n}\n\nconst handleMouseLeave = (evt: MouseEvent) => {\n hovering.value = false\n emit('mouseleave', evt)\n}\n\nconst handleMouseEnter = (evt: MouseEvent) => {\n hovering.value = true\n emit('mouseenter', evt)\n}\n\nconst handleKeydown = (evt: KeyboardEvent) => {\n emit('keydown', evt)\n}\n\nconst select = () => {\n _ref.value?.select()\n}\n\nconst clear = () => {\n emit(UPDATE_MODEL_EVENT, '')\n emit('change', '')\n emit('clear')\n emit('input', '')\n}\n\nwatch(\n () => props.modelValue,\n () => {\n nextTick(() => resizeTextarea())\n if (props.validateEvent) {\n formItem?.validate?.('change').catch((err) => debugWarn(err))\n }\n }\n)\n\n// native input value is set explicitly\n// do not use v-model / :value in template\n// see: https://github.com/ElemeFE/element/issues/14521\nwatch(nativeInputValue, () => setNativeInputValue())\n\n// when change between <input> and <textarea>,\n// update DOM dependent value and styles\n// https://github.com/ElemeFE/element/issues/14857\nwatch(\n () => props.type,\n async () => {\n await nextTick()\n setNativeInputValue()\n resizeTextarea()\n updateIconOffset()\n }\n)\n\nonMounted(async () => {\n if (!props.formatter && props.parser) {\n debugWarn(\n 'ElInput',\n 'If you set the parser, you also need to set the formatter.'\n )\n }\n setNativeInputValue()\n updateIconOffset()\n await nextTick()\n resizeTextarea()\n})\n\nonUpdated(async () => {\n await nextTick()\n updateIconOffset()\n})\n\ndefineExpose({\n /** @description HTML input element */\n input,\n /** @description HTML textarea element */\n textarea,\n /** @description HTML element, input or textarea */\n ref: _ref,\n /** @description style of textarea. */\n textareaStyle,\n\n /** @description from props (used on unit test) */\n autosize: toRef(props, 'autosize'),\n\n /** @description HTML input element native method */\n focus,\n /** @description HTML input element native method */\n blur,\n /** @description HTML input element native method */\n select,\n /** @description clear input value */\n clear,\n /** @description resize textarea. */\n resizeTextarea,\n})\n</script>\n"],"names":["getCurrentInstance","useRawAttrs","useSlots","useAttrs","useFormItem","useSize","useDisabled","useNamespace","shallowRef","ref","computed","ValidateComponentsMap","IconView","IconHide","isNil","useCursor","isClient","isObject","calcTextareaHeight","event","UPDATE_MODEL_EVENT","nextTick","isKorean","debugWarn","watch","onMounted","onUpdated"],"mappings":"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"}