@element-plus/nightly 0.0.20241122 → 0.0.20241124

Sign up to get free protection for your applications and to get access to all the features.
Files changed (366) hide show
  1. package/dist/index.full.js +26 -12
  2. package/dist/index.full.min.js +15 -15
  3. package/dist/index.full.min.js.map +1 -1
  4. package/dist/index.full.min.mjs +15 -15
  5. package/dist/index.full.min.mjs.map +1 -1
  6. package/dist/index.full.mjs +26 -13
  7. package/dist/locale/af.js +1 -1
  8. package/dist/locale/af.min.js +1 -1
  9. package/dist/locale/af.min.mjs +1 -1
  10. package/dist/locale/af.mjs +1 -1
  11. package/dist/locale/ar-eg.js +1 -1
  12. package/dist/locale/ar-eg.min.js +1 -1
  13. package/dist/locale/ar-eg.min.mjs +1 -1
  14. package/dist/locale/ar-eg.mjs +1 -1
  15. package/dist/locale/ar.js +1 -1
  16. package/dist/locale/ar.min.js +1 -1
  17. package/dist/locale/ar.min.mjs +1 -1
  18. package/dist/locale/ar.mjs +1 -1
  19. package/dist/locale/az.js +1 -1
  20. package/dist/locale/az.min.js +1 -1
  21. package/dist/locale/az.min.mjs +1 -1
  22. package/dist/locale/az.mjs +1 -1
  23. package/dist/locale/bg.js +1 -1
  24. package/dist/locale/bg.min.js +1 -1
  25. package/dist/locale/bg.min.mjs +1 -1
  26. package/dist/locale/bg.mjs +1 -1
  27. package/dist/locale/bn.js +1 -1
  28. package/dist/locale/bn.min.js +1 -1
  29. package/dist/locale/bn.min.mjs +1 -1
  30. package/dist/locale/bn.mjs +1 -1
  31. package/dist/locale/ca.js +1 -1
  32. package/dist/locale/ca.min.js +1 -1
  33. package/dist/locale/ca.min.mjs +1 -1
  34. package/dist/locale/ca.mjs +1 -1
  35. package/dist/locale/ckb.js +1 -1
  36. package/dist/locale/ckb.min.js +1 -1
  37. package/dist/locale/ckb.min.mjs +1 -1
  38. package/dist/locale/ckb.mjs +1 -1
  39. package/dist/locale/cs.js +1 -1
  40. package/dist/locale/cs.min.js +1 -1
  41. package/dist/locale/cs.min.mjs +1 -1
  42. package/dist/locale/cs.mjs +1 -1
  43. package/dist/locale/da.js +1 -1
  44. package/dist/locale/da.min.js +1 -1
  45. package/dist/locale/da.min.mjs +1 -1
  46. package/dist/locale/da.mjs +1 -1
  47. package/dist/locale/de.js +1 -1
  48. package/dist/locale/de.min.js +1 -1
  49. package/dist/locale/de.min.mjs +1 -1
  50. package/dist/locale/de.mjs +1 -1
  51. package/dist/locale/el.js +1 -1
  52. package/dist/locale/el.min.js +1 -1
  53. package/dist/locale/el.min.mjs +1 -1
  54. package/dist/locale/el.mjs +1 -1
  55. package/dist/locale/en.js +1 -1
  56. package/dist/locale/en.min.js +1 -1
  57. package/dist/locale/en.min.mjs +1 -1
  58. package/dist/locale/en.mjs +1 -1
  59. package/dist/locale/eo.js +1 -1
  60. package/dist/locale/eo.min.js +1 -1
  61. package/dist/locale/eo.min.mjs +1 -1
  62. package/dist/locale/eo.mjs +1 -1
  63. package/dist/locale/es.js +1 -1
  64. package/dist/locale/es.min.js +1 -1
  65. package/dist/locale/es.min.mjs +1 -1
  66. package/dist/locale/es.mjs +1 -1
  67. package/dist/locale/et.js +1 -1
  68. package/dist/locale/et.min.js +1 -1
  69. package/dist/locale/et.min.mjs +1 -1
  70. package/dist/locale/et.mjs +1 -1
  71. package/dist/locale/eu.js +1 -1
  72. package/dist/locale/eu.min.js +1 -1
  73. package/dist/locale/eu.min.mjs +1 -1
  74. package/dist/locale/eu.mjs +1 -1
  75. package/dist/locale/fa.js +1 -1
  76. package/dist/locale/fa.min.js +1 -1
  77. package/dist/locale/fa.min.mjs +1 -1
  78. package/dist/locale/fa.mjs +1 -1
  79. package/dist/locale/fi.js +1 -1
  80. package/dist/locale/fi.min.js +1 -1
  81. package/dist/locale/fi.min.mjs +1 -1
  82. package/dist/locale/fi.mjs +1 -1
  83. package/dist/locale/fr.js +1 -1
  84. package/dist/locale/fr.min.js +1 -1
  85. package/dist/locale/fr.min.mjs +1 -1
  86. package/dist/locale/fr.mjs +1 -1
  87. package/dist/locale/he.js +1 -1
  88. package/dist/locale/he.min.js +1 -1
  89. package/dist/locale/he.min.mjs +1 -1
  90. package/dist/locale/he.mjs +1 -1
  91. package/dist/locale/hr.js +1 -1
  92. package/dist/locale/hr.min.js +1 -1
  93. package/dist/locale/hr.min.mjs +1 -1
  94. package/dist/locale/hr.mjs +1 -1
  95. package/dist/locale/hu.js +1 -1
  96. package/dist/locale/hu.min.js +1 -1
  97. package/dist/locale/hu.min.mjs +1 -1
  98. package/dist/locale/hu.mjs +1 -1
  99. package/dist/locale/hy-am.js +1 -1
  100. package/dist/locale/hy-am.min.js +1 -1
  101. package/dist/locale/hy-am.min.mjs +1 -1
  102. package/dist/locale/hy-am.mjs +1 -1
  103. package/dist/locale/id.js +1 -1
  104. package/dist/locale/id.min.js +1 -1
  105. package/dist/locale/id.min.mjs +1 -1
  106. package/dist/locale/id.mjs +1 -1
  107. package/dist/locale/it.js +1 -1
  108. package/dist/locale/it.min.js +1 -1
  109. package/dist/locale/it.min.mjs +1 -1
  110. package/dist/locale/it.mjs +1 -1
  111. package/dist/locale/ja.js +1 -1
  112. package/dist/locale/ja.min.js +1 -1
  113. package/dist/locale/ja.min.mjs +1 -1
  114. package/dist/locale/ja.mjs +1 -1
  115. package/dist/locale/kk.js +1 -1
  116. package/dist/locale/kk.min.js +1 -1
  117. package/dist/locale/kk.min.mjs +1 -1
  118. package/dist/locale/kk.mjs +1 -1
  119. package/dist/locale/km.js +1 -1
  120. package/dist/locale/km.min.js +1 -1
  121. package/dist/locale/km.min.mjs +1 -1
  122. package/dist/locale/km.mjs +1 -1
  123. package/dist/locale/ko.js +1 -1
  124. package/dist/locale/ko.min.js +1 -1
  125. package/dist/locale/ko.min.mjs +1 -1
  126. package/dist/locale/ko.mjs +1 -1
  127. package/dist/locale/ku.js +1 -1
  128. package/dist/locale/ku.min.js +1 -1
  129. package/dist/locale/ku.min.mjs +1 -1
  130. package/dist/locale/ku.mjs +1 -1
  131. package/dist/locale/ky.js +1 -1
  132. package/dist/locale/ky.min.js +1 -1
  133. package/dist/locale/ky.min.mjs +1 -1
  134. package/dist/locale/ky.mjs +1 -1
  135. package/dist/locale/lt.js +1 -1
  136. package/dist/locale/lt.min.js +1 -1
  137. package/dist/locale/lt.min.mjs +1 -1
  138. package/dist/locale/lt.mjs +1 -1
  139. package/dist/locale/lv.js +1 -1
  140. package/dist/locale/lv.min.js +1 -1
  141. package/dist/locale/lv.min.mjs +1 -1
  142. package/dist/locale/lv.mjs +1 -1
  143. package/dist/locale/mg.js +1 -1
  144. package/dist/locale/mg.min.js +1 -1
  145. package/dist/locale/mg.min.mjs +1 -1
  146. package/dist/locale/mg.mjs +1 -1
  147. package/dist/locale/mn.js +1 -1
  148. package/dist/locale/mn.min.js +1 -1
  149. package/dist/locale/mn.min.mjs +1 -1
  150. package/dist/locale/mn.mjs +1 -1
  151. package/dist/locale/ms.js +1 -1
  152. package/dist/locale/ms.min.js +1 -1
  153. package/dist/locale/ms.min.mjs +1 -1
  154. package/dist/locale/ms.mjs +1 -1
  155. package/dist/locale/my.js +1 -1
  156. package/dist/locale/my.min.js +1 -1
  157. package/dist/locale/my.min.mjs +1 -1
  158. package/dist/locale/my.mjs +1 -1
  159. package/dist/locale/nb-no.js +1 -1
  160. package/dist/locale/nb-no.min.js +1 -1
  161. package/dist/locale/nb-no.min.mjs +1 -1
  162. package/dist/locale/nb-no.mjs +1 -1
  163. package/dist/locale/nl.js +1 -1
  164. package/dist/locale/nl.min.js +1 -1
  165. package/dist/locale/nl.min.mjs +1 -1
  166. package/dist/locale/nl.mjs +1 -1
  167. package/dist/locale/pa.js +1 -1
  168. package/dist/locale/pa.min.js +1 -1
  169. package/dist/locale/pa.min.mjs +1 -1
  170. package/dist/locale/pa.mjs +1 -1
  171. package/dist/locale/pl.js +1 -1
  172. package/dist/locale/pl.min.js +1 -1
  173. package/dist/locale/pl.min.mjs +1 -1
  174. package/dist/locale/pl.mjs +1 -1
  175. package/dist/locale/pt-br.js +1 -1
  176. package/dist/locale/pt-br.min.js +1 -1
  177. package/dist/locale/pt-br.min.mjs +1 -1
  178. package/dist/locale/pt-br.mjs +1 -1
  179. package/dist/locale/pt.js +1 -1
  180. package/dist/locale/pt.min.js +1 -1
  181. package/dist/locale/pt.min.mjs +1 -1
  182. package/dist/locale/pt.mjs +1 -1
  183. package/dist/locale/ro.js +1 -1
  184. package/dist/locale/ro.min.js +1 -1
  185. package/dist/locale/ro.min.mjs +1 -1
  186. package/dist/locale/ro.mjs +1 -1
  187. package/dist/locale/ru.js +1 -1
  188. package/dist/locale/ru.min.js +1 -1
  189. package/dist/locale/ru.min.mjs +1 -1
  190. package/dist/locale/ru.mjs +1 -1
  191. package/dist/locale/sk.js +1 -1
  192. package/dist/locale/sk.min.js +1 -1
  193. package/dist/locale/sk.min.mjs +1 -1
  194. package/dist/locale/sk.mjs +1 -1
  195. package/dist/locale/sl.js +1 -1
  196. package/dist/locale/sl.min.js +1 -1
  197. package/dist/locale/sl.min.mjs +1 -1
  198. package/dist/locale/sl.mjs +1 -1
  199. package/dist/locale/sr.js +1 -1
  200. package/dist/locale/sr.min.js +1 -1
  201. package/dist/locale/sr.min.mjs +1 -1
  202. package/dist/locale/sr.mjs +1 -1
  203. package/dist/locale/sv.js +1 -1
  204. package/dist/locale/sv.min.js +1 -1
  205. package/dist/locale/sv.min.mjs +1 -1
  206. package/dist/locale/sv.mjs +1 -1
  207. package/dist/locale/sw.js +1 -1
  208. package/dist/locale/sw.min.js +1 -1
  209. package/dist/locale/sw.min.mjs +1 -1
  210. package/dist/locale/sw.mjs +1 -1
  211. package/dist/locale/ta.js +1 -1
  212. package/dist/locale/ta.min.js +1 -1
  213. package/dist/locale/ta.min.mjs +1 -1
  214. package/dist/locale/ta.mjs +1 -1
  215. package/dist/locale/th.js +1 -1
  216. package/dist/locale/th.min.js +1 -1
  217. package/dist/locale/th.min.mjs +1 -1
  218. package/dist/locale/th.mjs +1 -1
  219. package/dist/locale/tk.js +1 -1
  220. package/dist/locale/tk.min.js +1 -1
  221. package/dist/locale/tk.min.mjs +1 -1
  222. package/dist/locale/tk.mjs +1 -1
  223. package/dist/locale/tr.js +1 -1
  224. package/dist/locale/tr.min.js +1 -1
  225. package/dist/locale/tr.min.mjs +1 -1
  226. package/dist/locale/tr.mjs +1 -1
  227. package/dist/locale/ug-cn.js +1 -1
  228. package/dist/locale/ug-cn.min.js +1 -1
  229. package/dist/locale/ug-cn.min.mjs +1 -1
  230. package/dist/locale/ug-cn.mjs +1 -1
  231. package/dist/locale/uk.js +1 -1
  232. package/dist/locale/uk.min.js +1 -1
  233. package/dist/locale/uk.min.mjs +1 -1
  234. package/dist/locale/uk.mjs +1 -1
  235. package/dist/locale/uz-uz.js +1 -1
  236. package/dist/locale/uz-uz.min.js +1 -1
  237. package/dist/locale/uz-uz.min.mjs +1 -1
  238. package/dist/locale/uz-uz.mjs +1 -1
  239. package/dist/locale/vi.js +1 -1
  240. package/dist/locale/vi.min.js +1 -1
  241. package/dist/locale/vi.min.mjs +1 -1
  242. package/dist/locale/vi.mjs +1 -1
  243. package/dist/locale/zh-cn.js +1 -1
  244. package/dist/locale/zh-cn.min.js +1 -1
  245. package/dist/locale/zh-cn.min.mjs +1 -1
  246. package/dist/locale/zh-cn.mjs +1 -1
  247. package/dist/locale/zh-tw.js +1 -1
  248. package/dist/locale/zh-tw.min.js +1 -1
  249. package/dist/locale/zh-tw.min.mjs +1 -1
  250. package/dist/locale/zh-tw.mjs +1 -1
  251. package/es/components/autocomplete/src/autocomplete.vue.d.ts +2 -2
  252. package/es/components/card/index.mjs +2 -2
  253. package/es/components/card/src/card.mjs +43 -21
  254. package/es/components/card/src/card.mjs.map +1 -1
  255. package/es/components/card/src/card2.mjs +21 -43
  256. package/es/components/card/src/card2.mjs.map +1 -1
  257. package/es/components/checkbox/index.mjs +2 -2
  258. package/es/components/checkbox/src/checkbox-group.mjs +30 -73
  259. package/es/components/checkbox/src/checkbox-group.mjs.map +1 -1
  260. package/es/components/checkbox/src/checkbox-group2.mjs +73 -30
  261. package/es/components/checkbox/src/checkbox-group2.mjs.map +1 -1
  262. package/es/components/date-picker/src/date-picker.d.ts +12 -11
  263. package/es/components/date-picker/src/date-picker.mjs.map +1 -1
  264. package/es/components/index.mjs +6 -6
  265. package/es/components/input/src/input.vue.d.ts +1 -1
  266. package/es/components/input/src/input2.mjs +4 -4
  267. package/es/components/input/src/input2.mjs.map +1 -1
  268. package/es/components/mention/src/mention-dropdown.mjs +167 -15
  269. package/es/components/mention/src/mention-dropdown.mjs.map +1 -1
  270. package/es/components/mention/src/mention-dropdown2.mjs +15 -167
  271. package/es/components/mention/src/mention-dropdown2.mjs.map +1 -1
  272. package/es/components/mention/src/mention.vue.d.ts +2 -2
  273. package/es/components/mention/src/mention2.mjs +1 -1
  274. package/es/components/menu/index.mjs +2 -2
  275. package/es/components/menu/src/menu-item.mjs +97 -14
  276. package/es/components/menu/src/menu-item.mjs.map +1 -1
  277. package/es/components/menu/src/menu-item2.mjs +14 -97
  278. package/es/components/menu/src/menu-item2.mjs.map +1 -1
  279. package/es/components/segmented/index.mjs +2 -2
  280. package/es/components/segmented/src/segmented.mjs +169 -34
  281. package/es/components/segmented/src/segmented.mjs.map +1 -1
  282. package/es/components/segmented/src/segmented2.mjs +34 -169
  283. package/es/components/segmented/src/segmented2.mjs.map +1 -1
  284. package/es/components/skeleton/index.mjs +2 -2
  285. package/es/components/skeleton/src/skeleton-item.mjs +18 -23
  286. package/es/components/skeleton/src/skeleton-item.mjs.map +1 -1
  287. package/es/components/skeleton/src/skeleton-item2.mjs +23 -18
  288. package/es/components/skeleton/src/skeleton-item2.mjs.map +1 -1
  289. package/es/components/skeleton/src/skeleton2.mjs +1 -1
  290. package/es/components/time-picker/index.mjs +1 -1
  291. package/es/components/time-picker/src/common/picker.mjs +5 -5
  292. package/es/components/time-picker/src/common/picker.mjs.map +1 -1
  293. package/es/components/time-picker/src/utils.d.ts +2 -0
  294. package/es/components/time-picker/src/utils.mjs +4 -1
  295. package/es/components/time-picker/src/utils.mjs.map +1 -1
  296. package/es/components/transfer/src/transfer-panel.vue.d.ts +1 -0
  297. package/es/components/transfer/src/transfer-panel2.mjs +6 -2
  298. package/es/components/transfer/src/transfer-panel2.mjs.map +1 -1
  299. package/es/components/transfer/src/transfer.vue.d.ts +4 -0
  300. package/es/components/transfer/src/transfer2.mjs +6 -0
  301. package/es/components/transfer/src/transfer2.mjs.map +1 -1
  302. package/es/index.mjs +6 -6
  303. package/es/version.d.ts +1 -1
  304. package/es/version.mjs +1 -1
  305. package/es/version.mjs.map +1 -1
  306. package/lib/components/autocomplete/src/autocomplete.vue.d.ts +2 -2
  307. package/lib/components/card/index.js +2 -2
  308. package/lib/components/card/src/card.js +43 -21
  309. package/lib/components/card/src/card.js.map +1 -1
  310. package/lib/components/card/src/card2.js +21 -43
  311. package/lib/components/card/src/card2.js.map +1 -1
  312. package/lib/components/checkbox/index.js +2 -2
  313. package/lib/components/checkbox/src/checkbox-group.js +31 -73
  314. package/lib/components/checkbox/src/checkbox-group.js.map +1 -1
  315. package/lib/components/checkbox/src/checkbox-group2.js +73 -31
  316. package/lib/components/checkbox/src/checkbox-group2.js.map +1 -1
  317. package/lib/components/date-picker/src/date-picker.d.ts +12 -11
  318. package/lib/components/date-picker/src/date-picker.js.map +1 -1
  319. package/lib/components/index.js +6 -5
  320. package/lib/components/index.js.map +1 -1
  321. package/lib/components/input/src/input.vue.d.ts +1 -1
  322. package/lib/components/input/src/input2.js +4 -4
  323. package/lib/components/input/src/input2.js.map +1 -1
  324. package/lib/components/mention/src/mention-dropdown.js +167 -16
  325. package/lib/components/mention/src/mention-dropdown.js.map +1 -1
  326. package/lib/components/mention/src/mention-dropdown2.js +16 -167
  327. package/lib/components/mention/src/mention-dropdown2.js.map +1 -1
  328. package/lib/components/mention/src/mention.vue.d.ts +2 -2
  329. package/lib/components/mention/src/mention2.js +1 -1
  330. package/lib/components/menu/index.js +2 -2
  331. package/lib/components/menu/src/menu-item.js +97 -15
  332. package/lib/components/menu/src/menu-item.js.map +1 -1
  333. package/lib/components/menu/src/menu-item2.js +15 -97
  334. package/lib/components/menu/src/menu-item2.js.map +1 -1
  335. package/lib/components/segmented/index.js +2 -2
  336. package/lib/components/segmented/src/segmented.js +168 -34
  337. package/lib/components/segmented/src/segmented.js.map +1 -1
  338. package/lib/components/segmented/src/segmented2.js +34 -168
  339. package/lib/components/segmented/src/segmented2.js.map +1 -1
  340. package/lib/components/skeleton/index.js +2 -2
  341. package/lib/components/skeleton/src/skeleton-item.js +18 -23
  342. package/lib/components/skeleton/src/skeleton-item.js.map +1 -1
  343. package/lib/components/skeleton/src/skeleton-item2.js +23 -18
  344. package/lib/components/skeleton/src/skeleton-item2.js.map +1 -1
  345. package/lib/components/skeleton/src/skeleton2.js +1 -1
  346. package/lib/components/time-picker/index.js +1 -0
  347. package/lib/components/time-picker/index.js.map +1 -1
  348. package/lib/components/time-picker/src/common/picker.js +4 -4
  349. package/lib/components/time-picker/src/common/picker.js.map +1 -1
  350. package/lib/components/time-picker/src/utils.d.ts +2 -0
  351. package/lib/components/time-picker/src/utils.js +4 -0
  352. package/lib/components/time-picker/src/utils.js.map +1 -1
  353. package/lib/components/transfer/src/transfer-panel.vue.d.ts +1 -0
  354. package/lib/components/transfer/src/transfer-panel2.js +6 -2
  355. package/lib/components/transfer/src/transfer-panel2.js.map +1 -1
  356. package/lib/components/transfer/src/transfer.vue.d.ts +4 -0
  357. package/lib/components/transfer/src/transfer2.js +6 -0
  358. package/lib/components/transfer/src/transfer2.js.map +1 -1
  359. package/lib/index.js +6 -5
  360. package/lib/index.js.map +1 -1
  361. package/lib/version.d.ts +1 -1
  362. package/lib/version.js +1 -1
  363. package/lib/version.js.map +1 -1
  364. package/package.json +2 -2
  365. package/theme-chalk/src/segmented.scss +1 -1
  366. package/web-types.json +1 -1
@@ -187,13 +187,13 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
187
187
  handleCompositionEnd
188
188
  } = index$4.useComposition({ emit, afterComposition: handleInput });
189
189
  const handlePasswordVisible = () => {
190
+ recordCursor();
190
191
  passwordVisible.value = !passwordVisible.value;
191
- focus();
192
+ setTimeout(setCursor);
192
193
  };
193
- const focus = async () => {
194
+ const focus = () => {
194
195
  var _a;
195
- await vue.nextTick();
196
- (_a = _ref.value) == null ? void 0 : _a.focus();
196
+ return (_a = _ref.value) == null ? void 0 : _a.focus();
197
197
  };
198
198
  const blur = () => {
199
199
  var _a;
@@ -1 +1 @@
1
- {"version":3,"file":"input2.js","sources":["../../../../../../packages/components/input/src/input.vue"],"sourcesContent":["<template>\n <div\n :class=\"[\n containerKls,\n {\n [nsInput.bm('group', 'append')]: $slots.append,\n [nsInput.bm('group', 'prepend')]: $slots.prepend,\n },\n ]\"\n :style=\"containerStyle\"\n @mouseenter=\"handleMouseEnter\"\n @mouseleave=\"handleMouseLeave\"\n >\n <!-- input -->\n <template v-if=\"type !== 'textarea'\">\n <!-- prepend slot -->\n <div v-if=\"$slots.prepend\" :class=\"nsInput.be('group', 'prepend')\">\n <slot name=\"prepend\" />\n </div>\n\n <div ref=\"wrapperRef\" :class=\"wrapperKls\">\n <!-- prefix slot -->\n <span v-if=\"$slots.prefix || prefixIcon\" :class=\"nsInput.e('prefix')\">\n <span :class=\"nsInput.e('prefix-inner')\">\n <slot name=\"prefix\" />\n <el-icon v-if=\"prefixIcon\" :class=\"nsInput.e('icon')\">\n <component :is=\"prefixIcon\" />\n </el-icon>\n </span>\n </span>\n\n <input\n :id=\"inputId\"\n ref=\"input\"\n :class=\"nsInput.e('inner')\"\n v-bind=\"attrs\"\n :minlength=\"minlength\"\n :maxlength=\"maxlength\"\n :type=\"showPassword ? (passwordVisible ? 'text' : 'password') : type\"\n :disabled=\"inputDisabled\"\n :readonly=\"readonly\"\n :autocomplete=\"autocomplete\"\n :tabindex=\"tabindex\"\n :aria-label=\"ariaLabel\"\n :placeholder=\"placeholder\"\n :style=\"inputStyle\"\n :form=\"form\"\n :autofocus=\"autofocus\"\n :role=\"containerRole\"\n @compositionstart=\"handleCompositionStart\"\n @compositionupdate=\"handleCompositionUpdate\"\n @compositionend=\"handleCompositionEnd\"\n @input=\"handleInput\"\n @change=\"handleChange\"\n @keydown=\"handleKeydown\"\n />\n\n <!-- suffix slot -->\n <span v-if=\"suffixVisible\" :class=\"nsInput.e('suffix')\">\n <span :class=\"nsInput.e('suffix-inner')\">\n <template\n v-if=\"!showClear || !showPwdVisible || !isWordLimitVisible\"\n >\n <slot name=\"suffix\" />\n <el-icon v-if=\"suffixIcon\" :class=\"nsInput.e('icon')\">\n <component :is=\"suffixIcon\" />\n </el-icon>\n </template>\n <el-icon\n v-if=\"showClear\"\n :class=\"[nsInput.e('icon'), nsInput.e('clear')]\"\n @mousedown.prevent=\"NOOP\"\n @click=\"clear\"\n >\n <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 }} / {{ maxlength }}\n </span>\n </span>\n <el-icon\n v-if=\"validateState && validateIcon && needStatusIcon\"\n :class=\"[\n nsInput.e('icon'),\n nsInput.e('validateIcon'),\n nsInput.is('loading', validateState === 'validating'),\n ]\"\n >\n <component :is=\"validateIcon\" />\n </el-icon>\n </span>\n </span>\n </div>\n\n <!-- append slot -->\n <div v-if=\"$slots.append\" :class=\"nsInput.be('group', 'append')\">\n <slot name=\"append\" />\n </div>\n </template>\n\n <!-- textarea -->\n <template v-else>\n <textarea\n :id=\"inputId\"\n ref=\"textarea\"\n :class=\"[nsTextarea.e('inner'), nsInput.is('focus', isFocused)]\"\n v-bind=\"attrs\"\n :minlength=\"minlength\"\n :maxlength=\"maxlength\"\n :tabindex=\"tabindex\"\n :disabled=\"inputDisabled\"\n :readonly=\"readonly\"\n :autocomplete=\"autocomplete\"\n :style=\"textareaStyle\"\n :aria-label=\"ariaLabel\"\n :placeholder=\"placeholder\"\n :form=\"form\"\n :autofocus=\"autofocus\"\n :rows=\"rows\"\n :role=\"containerRole\"\n @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\n v-if=\"isWordLimitVisible\"\n :style=\"countStyle\"\n :class=\"nsInput.e('count')\"\n >\n {{ textLength }} / {{ maxlength }}\n </span>\n </template>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n computed,\n nextTick,\n onMounted,\n ref,\n shallowRef,\n toRef,\n useAttrs as useRawAttrs,\n useSlots,\n watch,\n} from 'vue'\nimport { useResizeObserver } from '@vueuse/core'\nimport { isNil } from 'lodash-unified'\nimport { ElIcon } from '@element-plus/components/icon'\nimport {\n CircleClose,\n Hide as IconHide,\n View as IconView,\n} from '@element-plus/icons-vue'\nimport {\n useFormDisabled,\n useFormItem,\n useFormItemInputId,\n useFormSize,\n} from '@element-plus/components/form'\nimport {\n NOOP,\n ValidateComponentsMap,\n debugWarn,\n isClient,\n isObject,\n} from '@element-plus/utils'\nimport {\n useAttrs,\n useComposition,\n useCursor,\n useFocusController,\n useNamespace,\n} from '@element-plus/hooks'\nimport { 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\n\ndefineOptions({\n name: 'ElInput',\n inheritAttrs: false,\n})\nconst props = defineProps(inputProps)\nconst emit = defineEmits(inputEmits)\n\nconst rawAttrs = useRawAttrs()\nconst attrs = useAttrs()\nconst slots = useSlots()\n\nconst containerKls = computed(() => [\n props.type === 'textarea' ? nsTextarea.b() : nsInput.b(),\n nsInput.m(inputSize.value),\n nsInput.is('disabled', inputDisabled.value),\n nsInput.is('exceed', inputExceed.value),\n {\n [nsInput.b('group')]: slots.prepend || slots.append,\n [nsInput.m('prefix')]: slots.prefix || props.prefixIcon,\n [nsInput.m('suffix')]:\n slots.suffix || props.suffixIcon || props.clearable || props.showPassword,\n [nsInput.bm('suffix', 'password-clear')]:\n showClear.value && showPwdVisible.value,\n [nsInput.b('hidden')]: props.type === 'hidden',\n },\n rawAttrs.class,\n])\n\nconst wrapperKls = computed(() => [\n nsInput.e('wrapper'),\n nsInput.is('focus', isFocused.value),\n])\n\nconst { form: elForm, formItem: elFormItem } = useFormItem()\nconst { inputId } = useFormItemInputId(props, {\n formItemContext: elFormItem,\n})\nconst inputSize = useFormSize()\nconst inputDisabled = useFormDisabled()\nconst nsInput = useNamespace('input')\nconst nsTextarea = useNamespace('textarea')\n\nconst input = shallowRef<HTMLInputElement>()\nconst textarea = shallowRef<HTMLTextAreaElement>()\n\nconst hovering = ref(false)\nconst passwordVisible = ref(false)\nconst countStyle = ref<StyleValue>()\nconst textareaCalcStyle = shallowRef(props.inputStyle)\n\nconst _ref = computed(() => input.value || textarea.value)\n\n// wrapperRef for type=\"text\", handleFocus and handleBlur for type=\"textarea\"\nconst { wrapperRef, isFocused, handleFocus, handleBlur } = useFocusController(\n _ref,\n {\n beforeFocus() {\n return inputDisabled.value\n },\n afterBlur() {\n if (props.validateEvent) {\n elFormItem?.validate?.('blur').catch((err) => debugWarn(err))\n }\n },\n }\n)\n\nconst needStatusIcon = computed(() => elForm?.statusIcon ?? false)\nconst validateState = computed(() => elFormItem?.validateState || '')\nconst validateIcon = computed(\n () => validateState.value && ValidateComponentsMap[validateState.value]\n)\nconst passwordIcon = computed(() =>\n passwordVisible.value ? IconView : IconHide\n)\nconst containerStyle = computed<StyleValue>(() => [\n rawAttrs.style as StyleValue,\n])\nconst textareaStyle = computed<StyleValue>(() => [\n props.inputStyle,\n textareaCalcStyle.value,\n { resize: props.resize },\n])\nconst nativeInputValue = computed(() =>\n isNil(props.modelValue) ? '' : String(props.modelValue)\n)\nconst showClear = computed(\n () =>\n props.clearable &&\n !inputDisabled.value &&\n !props.readonly &&\n !!nativeInputValue.value &&\n (isFocused.value || hovering.value)\n)\nconst showPwdVisible = computed(\n () =>\n props.showPassword &&\n !inputDisabled.value &&\n !!nativeInputValue.value &&\n (!!nativeInputValue.value || isFocused.value)\n)\nconst isWordLimitVisible = computed(\n () =>\n props.showWordLimit &&\n !!props.maxlength &&\n (props.type === 'text' || props.type === 'textarea') &&\n !inputDisabled.value &&\n !props.readonly &&\n !props.showPassword\n)\nconst textLength = computed(() => nativeInputValue.value.length)\nconst inputExceed = computed(\n () =>\n // show exceed style if length of initial value greater then maxlength\n !!isWordLimitVisible.value && textLength.value > Number(props.maxlength)\n)\nconst suffixVisible = computed(\n () =>\n !!slots.suffix ||\n !!props.suffixIcon ||\n showClear.value ||\n props.showPassword ||\n isWordLimitVisible.value ||\n (!!validateState.value && needStatusIcon.value)\n)\n\nconst [recordCursor, setCursor] = useCursor(input)\n\nuseResizeObserver(textarea, (entries) => {\n onceInitSizeTextarea()\n if (!isWordLimitVisible.value || props.resize !== 'both') return\n const entry = entries[0]\n const { width } = entry.contentRect\n countStyle.value = {\n /** right: 100% - width + padding(15) + right(6) */\n right: `calc(100% - ${width + 15 + 6}px)`,\n }\n})\n\nconst resizeTextarea = () => {\n const { type, autosize } = props\n\n if (!isClient || type !== 'textarea' || !textarea.value) return\n\n if (autosize) {\n const minRows = isObject(autosize) ? autosize.minRows : undefined\n const maxRows = isObject(autosize) ? autosize.maxRows : undefined\n const textareaStyle = calcTextareaHeight(textarea.value, minRows, maxRows)\n\n // If the scrollbar is displayed, the height of the textarea needs more space than the calculated height.\n // If set textarea height in this case, the scrollbar will not hide.\n // So we need to hide scrollbar first, and reset it in next tick.\n // see https://github.com/element-plus/element-plus/issues/8825\n textareaCalcStyle.value = {\n overflowY: 'hidden',\n ...textareaStyle,\n }\n\n nextTick(() => {\n // NOTE: Force repaint to make sure the style set above is applied.\n textarea.value!.offsetHeight\n textareaCalcStyle.value = textareaStyle\n })\n } else {\n textareaCalcStyle.value = {\n minHeight: calcTextareaHeight(textarea.value).minHeight,\n }\n }\n}\n\nconst createOnceInitResize = (resizeTextarea: () => void) => {\n let isInit = false\n return () => {\n if (isInit || !props.autosize) return\n const isElHidden = textarea.value?.offsetParent === null\n if (!isElHidden) {\n resizeTextarea()\n isInit = true\n }\n }\n}\n// fix: https://github.com/element-plus/element-plus/issues/12074\nconst onceInitSizeTextarea = createOnceInitResize(resizeTextarea)\n\nconst setNativeInputValue = () => {\n const input = _ref.value\n const formatterValue = props.formatter\n ? props.formatter(nativeInputValue.value)\n : nativeInputValue.value\n if (!input || input.value === formatterValue) return\n input.value = formatterValue\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 }\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) {\n setNativeInputValue()\n return\n }\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 {\n isComposing,\n handleCompositionStart,\n handleCompositionUpdate,\n handleCompositionEnd,\n} = useComposition({ emit, afterComposition: handleInput })\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 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 elFormItem?.validate?.('change').catch((err) => debugWarn(err))\n }\n }\n)\n\n// native input value is set explicitly\n// do not use v-model / :value in template\n// see: https://github.com/ElemeFE/element/issues/14521\nwatch(nativeInputValue, () => 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 }\n)\n\nonMounted(() => {\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 nextTick(resizeTextarea)\n})\n\ndefineExpose({\n /** @description HTML input element */\n input,\n /** @description HTML textarea element */\n textarea,\n /** @description HTML element, input or textarea */\n ref: _ref,\n /** @description style of textarea. */\n textareaStyle,\n\n /** @description from props (used on unit test) */\n autosize: toRef(props, 'autosize'),\n\n /** @description is input composing */\n isComposing,\n\n /** @description HTML input element native method */\n focus,\n /** @description HTML input element native method */\n blur,\n /** @description HTML input element native method */\n select,\n /** @description clear input value */\n clear,\n /** @description resize textarea. */\n resizeTextarea,\n})\n</script>\n"],"names":["useRawAttrs","useAttrs","useSlots","computed","useFormItem","useFormItemInputId","useFormSize","useFormDisabled","useNamespace","shallowRef","ref","useFocusController","debugWarn","IconView","IconHide","isNil","useResizeObserver","isClient","isObject","calcTextareaHeight","nextTick","textareaStyle","event","resizeTextarea","input","useComposition","UPDATE_MODEL_EVENT","watch","onMounted","toRef","_openBlock","_createElementBlock","_normalizeClass","_unref","_normalizeStyle","_createCommentVNode","_Fragment","_renderSlot","_createElementVNode"],"mappings":"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"}
1
+ {"version":3,"file":"input2.js","sources":["../../../../../../packages/components/input/src/input.vue"],"sourcesContent":["<template>\n <div\n :class=\"[\n containerKls,\n {\n [nsInput.bm('group', 'append')]: $slots.append,\n [nsInput.bm('group', 'prepend')]: $slots.prepend,\n },\n ]\"\n :style=\"containerStyle\"\n @mouseenter=\"handleMouseEnter\"\n @mouseleave=\"handleMouseLeave\"\n >\n <!-- input -->\n <template v-if=\"type !== 'textarea'\">\n <!-- prepend slot -->\n <div v-if=\"$slots.prepend\" :class=\"nsInput.be('group', 'prepend')\">\n <slot name=\"prepend\" />\n </div>\n\n <div ref=\"wrapperRef\" :class=\"wrapperKls\">\n <!-- prefix slot -->\n <span v-if=\"$slots.prefix || prefixIcon\" :class=\"nsInput.e('prefix')\">\n <span :class=\"nsInput.e('prefix-inner')\">\n <slot name=\"prefix\" />\n <el-icon v-if=\"prefixIcon\" :class=\"nsInput.e('icon')\">\n <component :is=\"prefixIcon\" />\n </el-icon>\n </span>\n </span>\n\n <input\n :id=\"inputId\"\n ref=\"input\"\n :class=\"nsInput.e('inner')\"\n v-bind=\"attrs\"\n :minlength=\"minlength\"\n :maxlength=\"maxlength\"\n :type=\"showPassword ? (passwordVisible ? 'text' : 'password') : type\"\n :disabled=\"inputDisabled\"\n :readonly=\"readonly\"\n :autocomplete=\"autocomplete\"\n :tabindex=\"tabindex\"\n :aria-label=\"ariaLabel\"\n :placeholder=\"placeholder\"\n :style=\"inputStyle\"\n :form=\"form\"\n :autofocus=\"autofocus\"\n :role=\"containerRole\"\n @compositionstart=\"handleCompositionStart\"\n @compositionupdate=\"handleCompositionUpdate\"\n @compositionend=\"handleCompositionEnd\"\n @input=\"handleInput\"\n @change=\"handleChange\"\n @keydown=\"handleKeydown\"\n />\n\n <!-- suffix slot -->\n <span v-if=\"suffixVisible\" :class=\"nsInput.e('suffix')\">\n <span :class=\"nsInput.e('suffix-inner')\">\n <template\n v-if=\"!showClear || !showPwdVisible || !isWordLimitVisible\"\n >\n <slot name=\"suffix\" />\n <el-icon v-if=\"suffixIcon\" :class=\"nsInput.e('icon')\">\n <component :is=\"suffixIcon\" />\n </el-icon>\n </template>\n <el-icon\n v-if=\"showClear\"\n :class=\"[nsInput.e('icon'), nsInput.e('clear')]\"\n @mousedown.prevent=\"NOOP\"\n @click=\"clear\"\n >\n <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 }} / {{ maxlength }}\n </span>\n </span>\n <el-icon\n v-if=\"validateState && validateIcon && needStatusIcon\"\n :class=\"[\n nsInput.e('icon'),\n nsInput.e('validateIcon'),\n nsInput.is('loading', validateState === 'validating'),\n ]\"\n >\n <component :is=\"validateIcon\" />\n </el-icon>\n </span>\n </span>\n </div>\n\n <!-- append slot -->\n <div v-if=\"$slots.append\" :class=\"nsInput.be('group', 'append')\">\n <slot name=\"append\" />\n </div>\n </template>\n\n <!-- textarea -->\n <template v-else>\n <textarea\n :id=\"inputId\"\n ref=\"textarea\"\n :class=\"[nsTextarea.e('inner'), nsInput.is('focus', isFocused)]\"\n v-bind=\"attrs\"\n :minlength=\"minlength\"\n :maxlength=\"maxlength\"\n :tabindex=\"tabindex\"\n :disabled=\"inputDisabled\"\n :readonly=\"readonly\"\n :autocomplete=\"autocomplete\"\n :style=\"textareaStyle\"\n :aria-label=\"ariaLabel\"\n :placeholder=\"placeholder\"\n :form=\"form\"\n :autofocus=\"autofocus\"\n :rows=\"rows\"\n :role=\"containerRole\"\n @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\n v-if=\"isWordLimitVisible\"\n :style=\"countStyle\"\n :class=\"nsInput.e('count')\"\n >\n {{ textLength }} / {{ maxlength }}\n </span>\n </template>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n computed,\n nextTick,\n onMounted,\n ref,\n shallowRef,\n toRef,\n useAttrs as useRawAttrs,\n useSlots,\n watch,\n} from 'vue'\nimport { useResizeObserver } from '@vueuse/core'\nimport { isNil } from 'lodash-unified'\nimport { ElIcon } from '@element-plus/components/icon'\nimport {\n CircleClose,\n Hide as IconHide,\n View as IconView,\n} from '@element-plus/icons-vue'\nimport {\n useFormDisabled,\n useFormItem,\n useFormItemInputId,\n useFormSize,\n} from '@element-plus/components/form'\nimport {\n NOOP,\n ValidateComponentsMap,\n debugWarn,\n isClient,\n isObject,\n} from '@element-plus/utils'\nimport {\n useAttrs,\n useComposition,\n useCursor,\n useFocusController,\n useNamespace,\n} from '@element-plus/hooks'\nimport { 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\n\ndefineOptions({\n name: 'ElInput',\n inheritAttrs: false,\n})\nconst props = defineProps(inputProps)\nconst emit = defineEmits(inputEmits)\n\nconst rawAttrs = useRawAttrs()\nconst attrs = useAttrs()\nconst slots = useSlots()\n\nconst containerKls = computed(() => [\n props.type === 'textarea' ? nsTextarea.b() : nsInput.b(),\n nsInput.m(inputSize.value),\n nsInput.is('disabled', inputDisabled.value),\n nsInput.is('exceed', inputExceed.value),\n {\n [nsInput.b('group')]: slots.prepend || slots.append,\n [nsInput.m('prefix')]: slots.prefix || props.prefixIcon,\n [nsInput.m('suffix')]:\n slots.suffix || props.suffixIcon || props.clearable || props.showPassword,\n [nsInput.bm('suffix', 'password-clear')]:\n showClear.value && showPwdVisible.value,\n [nsInput.b('hidden')]: props.type === 'hidden',\n },\n rawAttrs.class,\n])\n\nconst wrapperKls = computed(() => [\n nsInput.e('wrapper'),\n nsInput.is('focus', isFocused.value),\n])\n\nconst { form: elForm, formItem: elFormItem } = useFormItem()\nconst { inputId } = useFormItemInputId(props, {\n formItemContext: elFormItem,\n})\nconst inputSize = useFormSize()\nconst inputDisabled = useFormDisabled()\nconst nsInput = useNamespace('input')\nconst nsTextarea = useNamespace('textarea')\n\nconst input = shallowRef<HTMLInputElement>()\nconst textarea = shallowRef<HTMLTextAreaElement>()\n\nconst hovering = ref(false)\nconst passwordVisible = ref(false)\nconst countStyle = ref<StyleValue>()\nconst textareaCalcStyle = shallowRef(props.inputStyle)\n\nconst _ref = computed(() => input.value || textarea.value)\n\n// wrapperRef for type=\"text\", handleFocus and handleBlur for type=\"textarea\"\nconst { wrapperRef, isFocused, handleFocus, handleBlur } = useFocusController(\n _ref,\n {\n beforeFocus() {\n return inputDisabled.value\n },\n afterBlur() {\n if (props.validateEvent) {\n elFormItem?.validate?.('blur').catch((err) => debugWarn(err))\n }\n },\n }\n)\n\nconst needStatusIcon = computed(() => elForm?.statusIcon ?? false)\nconst validateState = computed(() => elFormItem?.validateState || '')\nconst validateIcon = computed(\n () => validateState.value && ValidateComponentsMap[validateState.value]\n)\nconst passwordIcon = computed(() =>\n passwordVisible.value ? IconView : IconHide\n)\nconst containerStyle = computed<StyleValue>(() => [\n rawAttrs.style as StyleValue,\n])\nconst textareaStyle = computed<StyleValue>(() => [\n props.inputStyle,\n textareaCalcStyle.value,\n { resize: props.resize },\n])\nconst nativeInputValue = computed(() =>\n isNil(props.modelValue) ? '' : String(props.modelValue)\n)\nconst showClear = computed(\n () =>\n props.clearable &&\n !inputDisabled.value &&\n !props.readonly &&\n !!nativeInputValue.value &&\n (isFocused.value || hovering.value)\n)\nconst showPwdVisible = computed(\n () =>\n props.showPassword &&\n !inputDisabled.value &&\n !!nativeInputValue.value &&\n (!!nativeInputValue.value || isFocused.value)\n)\nconst isWordLimitVisible = computed(\n () =>\n props.showWordLimit &&\n !!props.maxlength &&\n (props.type === 'text' || props.type === 'textarea') &&\n !inputDisabled.value &&\n !props.readonly &&\n !props.showPassword\n)\nconst textLength = computed(() => nativeInputValue.value.length)\nconst inputExceed = computed(\n () =>\n // show exceed style if length of initial value greater then maxlength\n !!isWordLimitVisible.value && textLength.value > Number(props.maxlength)\n)\nconst suffixVisible = computed(\n () =>\n !!slots.suffix ||\n !!props.suffixIcon ||\n showClear.value ||\n props.showPassword ||\n isWordLimitVisible.value ||\n (!!validateState.value && needStatusIcon.value)\n)\n\nconst [recordCursor, setCursor] = useCursor(input)\n\nuseResizeObserver(textarea, (entries) => {\n onceInitSizeTextarea()\n if (!isWordLimitVisible.value || props.resize !== 'both') return\n const entry = entries[0]\n const { width } = entry.contentRect\n countStyle.value = {\n /** right: 100% - width + padding(15) + right(6) */\n right: `calc(100% - ${width + 15 + 6}px)`,\n }\n})\n\nconst resizeTextarea = () => {\n const { type, autosize } = props\n\n if (!isClient || type !== 'textarea' || !textarea.value) return\n\n if (autosize) {\n const minRows = isObject(autosize) ? autosize.minRows : undefined\n const maxRows = isObject(autosize) ? autosize.maxRows : undefined\n const textareaStyle = calcTextareaHeight(textarea.value, minRows, maxRows)\n\n // If the scrollbar is displayed, the height of the textarea needs more space than the calculated height.\n // If set textarea height in this case, the scrollbar will not hide.\n // So we need to hide scrollbar first, and reset it in next tick.\n // see https://github.com/element-plus/element-plus/issues/8825\n textareaCalcStyle.value = {\n overflowY: 'hidden',\n ...textareaStyle,\n }\n\n nextTick(() => {\n // NOTE: Force repaint to make sure the style set above is applied.\n textarea.value!.offsetHeight\n textareaCalcStyle.value = textareaStyle\n })\n } else {\n textareaCalcStyle.value = {\n minHeight: calcTextareaHeight(textarea.value).minHeight,\n }\n }\n}\n\nconst createOnceInitResize = (resizeTextarea: () => void) => {\n let isInit = false\n return () => {\n if (isInit || !props.autosize) return\n const isElHidden = textarea.value?.offsetParent === null\n if (!isElHidden) {\n resizeTextarea()\n isInit = true\n }\n }\n}\n// fix: https://github.com/element-plus/element-plus/issues/12074\nconst onceInitSizeTextarea = createOnceInitResize(resizeTextarea)\n\nconst setNativeInputValue = () => {\n const input = _ref.value\n const formatterValue = props.formatter\n ? props.formatter(nativeInputValue.value)\n : nativeInputValue.value\n if (!input || input.value === formatterValue) return\n input.value = formatterValue\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 }\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) {\n setNativeInputValue()\n return\n }\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 {\n isComposing,\n handleCompositionStart,\n handleCompositionUpdate,\n handleCompositionEnd,\n} = useComposition({ emit, afterComposition: handleInput })\n\nconst handlePasswordVisible = () => {\n recordCursor()\n passwordVisible.value = !passwordVisible.value\n // The native input needs a little time to regain focus\n setTimeout(setCursor)\n}\n\nconst focus = () => _ref.value?.focus()\n\nconst blur = () => _ref.value?.blur()\n\nconst handleMouseLeave = (evt: MouseEvent) => {\n hovering.value = false\n emit('mouseleave', evt)\n}\n\nconst handleMouseEnter = (evt: MouseEvent) => {\n hovering.value = true\n emit('mouseenter', evt)\n}\n\nconst handleKeydown = (evt: KeyboardEvent) => {\n emit('keydown', evt)\n}\n\nconst select = () => {\n _ref.value?.select()\n}\n\nconst clear = () => {\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 elFormItem?.validate?.('change').catch((err) => debugWarn(err))\n }\n }\n)\n\n// native input value is set explicitly\n// do not use v-model / :value in template\n// see: https://github.com/ElemeFE/element/issues/14521\nwatch(nativeInputValue, () => 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 }\n)\n\nonMounted(() => {\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 nextTick(resizeTextarea)\n})\n\ndefineExpose({\n /** @description HTML input element */\n input,\n /** @description HTML textarea element */\n textarea,\n /** @description HTML element, input or textarea */\n ref: _ref,\n /** @description style of textarea. */\n textareaStyle,\n\n /** @description from props (used on unit test) */\n autosize: toRef(props, 'autosize'),\n\n /** @description is input composing */\n isComposing,\n\n /** @description HTML input element native method */\n focus,\n /** @description HTML input element native method */\n blur,\n /** @description HTML input element native method */\n select,\n /** @description clear input value */\n clear,\n /** @description resize textarea. */\n resizeTextarea,\n})\n</script>\n"],"names":["useRawAttrs","useAttrs","useSlots","computed","useFormItem","useFormItemInputId","useFormSize","useFormDisabled","useNamespace","shallowRef","ref","useFocusController","debugWarn","IconView","IconHide","isNil","useResizeObserver","isClient","isObject","calcTextareaHeight","nextTick","textareaStyle","event","resizeTextarea","input","useComposition","UPDATE_MODEL_EVENT","watch","onMounted","toRef","_openBlock","_createElementBlock","_normalizeClass","_unref","_normalizeStyle","_createCommentVNode","_Fragment","_renderSlot","_createElementVNode"],"mappings":"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"}
@@ -2,24 +2,175 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
+ var vue = require('vue');
6
+ require('../../../hooks/index.js');
5
7
  require('../../../utils/index.js');
6
- var runtime = require('../../../utils/vue/props/runtime.js');
7
- var shared = require('@vue/shared');
8
+ var index$2 = require('../../scrollbar/index.js');
9
+ var mentionDropdown = require('./mention-dropdown2.js');
10
+ var pluginVue_exportHelper = require('../../../_virtual/plugin-vue_export-helper.js');
11
+ var index = require('../../../hooks/use-namespace/index.js');
12
+ var index$1 = require('../../../hooks/use-locale/index.js');
13
+ var scroll = require('../../../utils/dom/scroll.js');
8
14
 
9
- const mentionDropdownProps = runtime.buildProps({
10
- options: {
11
- type: runtime.definePropType(Array),
12
- default: () => []
13
- },
14
- loading: Boolean,
15
- disabled: Boolean,
16
- contentId: String,
17
- ariaLabel: String
15
+ const __default__ = vue.defineComponent({
16
+ name: "ElMentionDropdown"
18
17
  });
19
- const mentionDropdownEmits = {
20
- select: (option) => shared.isString(option.value)
21
- };
18
+ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
19
+ ...__default__,
20
+ props: mentionDropdown.mentionDropdownProps,
21
+ emits: mentionDropdown.mentionDropdownEmits,
22
+ setup(__props, { expose, emit }) {
23
+ const props = __props;
24
+ const ns = index.useNamespace("mention");
25
+ const { t } = index$1.useLocale();
26
+ const hoveringIndex = vue.ref(-1);
27
+ const scrollbarRef = vue.ref();
28
+ const optionRefs = vue.ref();
29
+ const dropdownRef = vue.ref();
30
+ const optionkls = (item, index) => [
31
+ ns.be("dropdown", "item"),
32
+ ns.is("hovering", hoveringIndex.value === index),
33
+ ns.is("disabled", item.disabled || props.disabled)
34
+ ];
35
+ const handleSelect = (item) => {
36
+ if (item.disabled || props.disabled)
37
+ return;
38
+ emit("select", item);
39
+ };
40
+ const handleMouseEnter = (index) => {
41
+ hoveringIndex.value = index;
42
+ };
43
+ const filteredAllDisabled = vue.computed(() => props.disabled || props.options.every((item) => item.disabled));
44
+ const hoverOption = vue.computed(() => props.options[hoveringIndex.value]);
45
+ const selectHoverOption = () => {
46
+ if (!hoverOption.value)
47
+ return;
48
+ emit("select", hoverOption.value);
49
+ };
50
+ const navigateOptions = (direction) => {
51
+ const { options } = props;
52
+ if (options.length === 0 || filteredAllDisabled.value)
53
+ return;
54
+ if (direction === "next") {
55
+ hoveringIndex.value++;
56
+ if (hoveringIndex.value === options.length) {
57
+ hoveringIndex.value = 0;
58
+ }
59
+ } else if (direction === "prev") {
60
+ hoveringIndex.value--;
61
+ if (hoveringIndex.value < 0) {
62
+ hoveringIndex.value = options.length - 1;
63
+ }
64
+ }
65
+ const option = options[hoveringIndex.value];
66
+ if (option.disabled) {
67
+ navigateOptions(direction);
68
+ return;
69
+ }
70
+ vue.nextTick(() => scrollToOption(option));
71
+ };
72
+ const scrollToOption = (option) => {
73
+ var _a, _b, _c, _d;
74
+ const { options } = props;
75
+ const index = options.findIndex((item) => item.value === option.value);
76
+ const target = (_a = optionRefs.value) == null ? void 0 : _a[index];
77
+ if (target) {
78
+ const menu = (_c = (_b = dropdownRef.value) == null ? void 0 : _b.querySelector) == null ? void 0 : _c.call(_b, `.${ns.be("dropdown", "wrap")}`);
79
+ if (menu) {
80
+ scroll.scrollIntoView(menu, target);
81
+ }
82
+ }
83
+ (_d = scrollbarRef.value) == null ? void 0 : _d.handleScroll();
84
+ };
85
+ const resetHoveringIndex = () => {
86
+ if (filteredAllDisabled.value || props.options.length === 0) {
87
+ hoveringIndex.value = -1;
88
+ } else {
89
+ hoveringIndex.value = 0;
90
+ }
91
+ };
92
+ vue.watch(() => props.options, resetHoveringIndex, {
93
+ immediate: true
94
+ });
95
+ expose({
96
+ hoveringIndex,
97
+ navigateOptions,
98
+ selectHoverOption,
99
+ hoverOption
100
+ });
101
+ return (_ctx, _cache) => {
102
+ return vue.openBlock(), vue.createElementBlock("div", {
103
+ ref_key: "dropdownRef",
104
+ ref: dropdownRef,
105
+ class: vue.normalizeClass(vue.unref(ns).b("dropdown"))
106
+ }, [
107
+ _ctx.$slots.header ? (vue.openBlock(), vue.createElementBlock("div", {
108
+ key: 0,
109
+ class: vue.normalizeClass(vue.unref(ns).be("dropdown", "header"))
110
+ }, [
111
+ vue.renderSlot(_ctx.$slots, "header")
112
+ ], 2)) : vue.createCommentVNode("v-if", true),
113
+ vue.withDirectives(vue.createVNode(vue.unref(index$2.ElScrollbar), {
114
+ id: _ctx.contentId,
115
+ ref_key: "scrollbarRef",
116
+ ref: scrollbarRef,
117
+ tag: "ul",
118
+ "wrap-class": vue.unref(ns).be("dropdown", "wrap"),
119
+ "view-class": vue.unref(ns).be("dropdown", "list"),
120
+ role: "listbox",
121
+ "aria-label": _ctx.ariaLabel,
122
+ "aria-orientation": "vertical"
123
+ }, {
124
+ default: vue.withCtx(() => [
125
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.options, (item, index) => {
126
+ return vue.openBlock(), vue.createElementBlock("li", {
127
+ id: `${_ctx.contentId}-${index}`,
128
+ ref_for: true,
129
+ ref_key: "optionRefs",
130
+ ref: optionRefs,
131
+ key: index,
132
+ class: vue.normalizeClass(optionkls(item, index)),
133
+ role: "option",
134
+ "aria-disabled": item.disabled || _ctx.disabled || void 0,
135
+ "aria-selected": hoveringIndex.value === index,
136
+ onMousemove: ($event) => handleMouseEnter(index),
137
+ onClick: vue.withModifiers(($event) => handleSelect(item), ["stop"])
138
+ }, [
139
+ vue.renderSlot(_ctx.$slots, "label", {
140
+ item,
141
+ index
142
+ }, () => {
143
+ var _a;
144
+ return [
145
+ vue.createElementVNode("span", null, vue.toDisplayString((_a = item.label) != null ? _a : item.value), 1)
146
+ ];
147
+ })
148
+ ], 42, ["id", "aria-disabled", "aria-selected", "onMousemove", "onClick"]);
149
+ }), 128))
150
+ ]),
151
+ _: 3
152
+ }, 8, ["id", "wrap-class", "view-class", "aria-label"]), [
153
+ [vue.vShow, _ctx.options.length > 0 && !_ctx.loading]
154
+ ]),
155
+ _ctx.loading ? (vue.openBlock(), vue.createElementBlock("div", {
156
+ key: 1,
157
+ class: vue.normalizeClass(vue.unref(ns).be("dropdown", "loading"))
158
+ }, [
159
+ vue.renderSlot(_ctx.$slots, "loading", {}, () => [
160
+ vue.createTextVNode(vue.toDisplayString(vue.unref(t)("el.mention.loading")), 1)
161
+ ])
162
+ ], 2)) : vue.createCommentVNode("v-if", true),
163
+ _ctx.$slots.footer ? (vue.openBlock(), vue.createElementBlock("div", {
164
+ key: 2,
165
+ class: vue.normalizeClass(vue.unref(ns).be("dropdown", "footer"))
166
+ }, [
167
+ vue.renderSlot(_ctx.$slots, "footer")
168
+ ], 2)) : vue.createCommentVNode("v-if", true)
169
+ ], 2);
170
+ };
171
+ }
172
+ });
173
+ var ElMentionDropdown = /* @__PURE__ */ pluginVue_exportHelper["default"](_sfc_main, [["__file", "mention-dropdown.vue"]]);
22
174
 
23
- exports.mentionDropdownEmits = mentionDropdownEmits;
24
- exports.mentionDropdownProps = mentionDropdownProps;
175
+ exports["default"] = ElMentionDropdown;
25
176
  //# sourceMappingURL=mention-dropdown.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mention-dropdown.js","sources":["../../../../../../packages/components/mention/src/mention-dropdown.ts"],"sourcesContent":["import { buildProps, definePropType, isString } from '@element-plus/utils'\n\nimport type { MentionOption } from './types'\n\nexport const mentionDropdownProps = buildProps({\n options: {\n type: definePropType<MentionOption[]>(Array),\n default: () => [],\n },\n loading: Boolean,\n disabled: Boolean,\n contentId: String,\n ariaLabel: String,\n})\n\nexport const mentionDropdownEmits = {\n select: (option: MentionOption) => isString(option.value),\n}\n"],"names":["buildProps","definePropType","isString"],"mappings":";;;;;;;;AACY,MAAC,oBAAoB,GAAGA,kBAAU,CAAC;AAC/C,EAAE,OAAO,EAAE;AACX,IAAI,IAAI,EAAEC,sBAAc,CAAC,KAAK,CAAC;AAC/B,IAAI,OAAO,EAAE,MAAM,EAAE;AACrB,GAAG;AACH,EAAE,OAAO,EAAE,OAAO;AAClB,EAAE,QAAQ,EAAE,OAAO;AACnB,EAAE,SAAS,EAAE,MAAM;AACnB,EAAE,SAAS,EAAE,MAAM;AACnB,CAAC,EAAE;AACS,MAAC,oBAAoB,GAAG;AACpC,EAAE,MAAM,EAAE,CAAC,MAAM,KAAKC,eAAQ,CAAC,MAAM,CAAC,KAAK,CAAC;AAC5C;;;;;"}
1
+ {"version":3,"file":"mention-dropdown.js","sources":["../../../../../../packages/components/mention/src/mention-dropdown.vue"],"sourcesContent":["<template>\n <div ref=\"dropdownRef\" :class=\"ns.b('dropdown')\">\n <div v-if=\"$slots.header\" :class=\"ns.be('dropdown', 'header')\">\n <slot name=\"header\" />\n </div>\n <el-scrollbar\n v-show=\"options.length > 0 && !loading\"\n :id=\"contentId\"\n ref=\"scrollbarRef\"\n tag=\"ul\"\n :wrap-class=\"ns.be('dropdown', 'wrap')\"\n :view-class=\"ns.be('dropdown', 'list')\"\n role=\"listbox\"\n :aria-label=\"ariaLabel\"\n aria-orientation=\"vertical\"\n >\n <li\n v-for=\"(item, index) in options\"\n :id=\"`${contentId}-${index}`\"\n ref=\"optionRefs\"\n :key=\"index\"\n :class=\"optionkls(item, index)\"\n role=\"option\"\n :aria-disabled=\"item.disabled || disabled || undefined\"\n :aria-selected=\"hoveringIndex === index\"\n @mousemove=\"handleMouseEnter(index)\"\n @click.stop=\"handleSelect(item)\"\n >\n <slot name=\"label\" :item=\"item\" :index=\"index\">\n <span>{{ item.label ?? item.value }}</span>\n </slot>\n </li>\n </el-scrollbar>\n <div v-if=\"loading\" :class=\"ns.be('dropdown', 'loading')\">\n <slot name=\"loading\"> {{ t('el.mention.loading') }} </slot>\n </div>\n <div v-if=\"$slots.footer\" :class=\"ns.be('dropdown', 'footer')\">\n <slot name=\"footer\" />\n </div>\n </div>\n</template>\n<script setup lang=\"ts\">\nimport { computed, nextTick, ref, watch } from 'vue'\nimport { useLocale, useNamespace } from '@element-plus/hooks'\nimport { scrollIntoView } from '@element-plus/utils'\nimport ElScrollbar from '@element-plus/components/scrollbar'\nimport { mentionDropdownEmits, mentionDropdownProps } from './mention-dropdown'\n\nimport type { MentionOption } from './types'\n\ndefineOptions({\n name: 'ElMentionDropdown',\n})\n\nconst props = defineProps(mentionDropdownProps)\nconst emit = defineEmits(mentionDropdownEmits)\n\nconst ns = useNamespace('mention')\nconst { t } = useLocale()\nconst hoveringIndex = ref(-1)\n\nconst scrollbarRef = ref<InstanceType<typeof ElScrollbar>>()\nconst optionRefs = ref<HTMLElement[]>()\nconst dropdownRef = ref<HTMLElement>()\n\nconst optionkls = (item: MentionOption, index: number) => [\n ns.be('dropdown', 'item'),\n ns.is('hovering', hoveringIndex.value === index),\n ns.is('disabled', item.disabled || props.disabled),\n]\n\nconst handleSelect = (item: MentionOption) => {\n if (item.disabled || props.disabled) return\n emit('select', item)\n}\n\nconst handleMouseEnter = (index: number) => {\n hoveringIndex.value = index\n}\n\nconst filteredAllDisabled = computed(\n () => props.disabled || props.options.every((item) => item.disabled)\n)\n\nconst hoverOption = computed(() => props.options[hoveringIndex.value])\n\nconst selectHoverOption = () => {\n if (!hoverOption.value) return\n emit('select', hoverOption.value)\n}\n\nconst navigateOptions = (direction: 'next' | 'prev') => {\n const { options } = props\n if (options.length === 0 || filteredAllDisabled.value) return\n\n if (direction === 'next') {\n hoveringIndex.value++\n if (hoveringIndex.value === options.length) {\n hoveringIndex.value = 0\n }\n } else if (direction === 'prev') {\n hoveringIndex.value--\n if (hoveringIndex.value < 0) {\n hoveringIndex.value = options.length - 1\n }\n }\n const option = options[hoveringIndex.value]\n if (option.disabled) {\n navigateOptions(direction)\n return\n }\n nextTick(() => scrollToOption(option))\n}\n\nconst scrollToOption = (option: MentionOption) => {\n const { options } = props\n\n const index = options.findIndex((item) => item.value === option.value)\n const target = optionRefs.value?.[index]\n\n if (target) {\n const menu = dropdownRef.value?.querySelector?.(\n `.${ns.be('dropdown', 'wrap')}`\n )\n if (menu) {\n scrollIntoView(menu as HTMLElement, target)\n }\n }\n scrollbarRef.value?.handleScroll()\n}\n\nconst resetHoveringIndex = () => {\n if (filteredAllDisabled.value || props.options.length === 0) {\n hoveringIndex.value = -1\n } else {\n hoveringIndex.value = 0\n }\n}\n\nwatch(() => props.options, resetHoveringIndex, {\n immediate: true,\n})\n\ndefineExpose({\n hoveringIndex,\n navigateOptions,\n selectHoverOption,\n hoverOption,\n})\n</script>\n"],"names":["useNamespace","useLocale","ref","computed","nextTick","scrollIntoView","watch"],"mappings":"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"}
@@ -2,175 +2,24 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var vue = require('vue');
6
- require('../../../hooks/index.js');
7
5
  require('../../../utils/index.js');
8
- var index$2 = require('../../scrollbar/index.js');
9
- var mentionDropdown = require('./mention-dropdown.js');
10
- var pluginVue_exportHelper = require('../../../_virtual/plugin-vue_export-helper.js');
11
- var index = require('../../../hooks/use-namespace/index.js');
12
- var index$1 = require('../../../hooks/use-locale/index.js');
13
- var scroll = require('../../../utils/dom/scroll.js');
6
+ var runtime = require('../../../utils/vue/props/runtime.js');
7
+ var shared = require('@vue/shared');
14
8
 
15
- const __default__ = vue.defineComponent({
16
- name: "ElMentionDropdown"
9
+ const mentionDropdownProps = runtime.buildProps({
10
+ options: {
11
+ type: runtime.definePropType(Array),
12
+ default: () => []
13
+ },
14
+ loading: Boolean,
15
+ disabled: Boolean,
16
+ contentId: String,
17
+ ariaLabel: String
17
18
  });
18
- const _sfc_main = /* @__PURE__ */ vue.defineComponent({
19
- ...__default__,
20
- props: mentionDropdown.mentionDropdownProps,
21
- emits: mentionDropdown.mentionDropdownEmits,
22
- setup(__props, { expose, emit }) {
23
- const props = __props;
24
- const ns = index.useNamespace("mention");
25
- const { t } = index$1.useLocale();
26
- const hoveringIndex = vue.ref(-1);
27
- const scrollbarRef = vue.ref();
28
- const optionRefs = vue.ref();
29
- const dropdownRef = vue.ref();
30
- const optionkls = (item, index) => [
31
- ns.be("dropdown", "item"),
32
- ns.is("hovering", hoveringIndex.value === index),
33
- ns.is("disabled", item.disabled || props.disabled)
34
- ];
35
- const handleSelect = (item) => {
36
- if (item.disabled || props.disabled)
37
- return;
38
- emit("select", item);
39
- };
40
- const handleMouseEnter = (index) => {
41
- hoveringIndex.value = index;
42
- };
43
- const filteredAllDisabled = vue.computed(() => props.disabled || props.options.every((item) => item.disabled));
44
- const hoverOption = vue.computed(() => props.options[hoveringIndex.value]);
45
- const selectHoverOption = () => {
46
- if (!hoverOption.value)
47
- return;
48
- emit("select", hoverOption.value);
49
- };
50
- const navigateOptions = (direction) => {
51
- const { options } = props;
52
- if (options.length === 0 || filteredAllDisabled.value)
53
- return;
54
- if (direction === "next") {
55
- hoveringIndex.value++;
56
- if (hoveringIndex.value === options.length) {
57
- hoveringIndex.value = 0;
58
- }
59
- } else if (direction === "prev") {
60
- hoveringIndex.value--;
61
- if (hoveringIndex.value < 0) {
62
- hoveringIndex.value = options.length - 1;
63
- }
64
- }
65
- const option = options[hoveringIndex.value];
66
- if (option.disabled) {
67
- navigateOptions(direction);
68
- return;
69
- }
70
- vue.nextTick(() => scrollToOption(option));
71
- };
72
- const scrollToOption = (option) => {
73
- var _a, _b, _c, _d;
74
- const { options } = props;
75
- const index = options.findIndex((item) => item.value === option.value);
76
- const target = (_a = optionRefs.value) == null ? void 0 : _a[index];
77
- if (target) {
78
- const menu = (_c = (_b = dropdownRef.value) == null ? void 0 : _b.querySelector) == null ? void 0 : _c.call(_b, `.${ns.be("dropdown", "wrap")}`);
79
- if (menu) {
80
- scroll.scrollIntoView(menu, target);
81
- }
82
- }
83
- (_d = scrollbarRef.value) == null ? void 0 : _d.handleScroll();
84
- };
85
- const resetHoveringIndex = () => {
86
- if (filteredAllDisabled.value || props.options.length === 0) {
87
- hoveringIndex.value = -1;
88
- } else {
89
- hoveringIndex.value = 0;
90
- }
91
- };
92
- vue.watch(() => props.options, resetHoveringIndex, {
93
- immediate: true
94
- });
95
- expose({
96
- hoveringIndex,
97
- navigateOptions,
98
- selectHoverOption,
99
- hoverOption
100
- });
101
- return (_ctx, _cache) => {
102
- return vue.openBlock(), vue.createElementBlock("div", {
103
- ref_key: "dropdownRef",
104
- ref: dropdownRef,
105
- class: vue.normalizeClass(vue.unref(ns).b("dropdown"))
106
- }, [
107
- _ctx.$slots.header ? (vue.openBlock(), vue.createElementBlock("div", {
108
- key: 0,
109
- class: vue.normalizeClass(vue.unref(ns).be("dropdown", "header"))
110
- }, [
111
- vue.renderSlot(_ctx.$slots, "header")
112
- ], 2)) : vue.createCommentVNode("v-if", true),
113
- vue.withDirectives(vue.createVNode(vue.unref(index$2.ElScrollbar), {
114
- id: _ctx.contentId,
115
- ref_key: "scrollbarRef",
116
- ref: scrollbarRef,
117
- tag: "ul",
118
- "wrap-class": vue.unref(ns).be("dropdown", "wrap"),
119
- "view-class": vue.unref(ns).be("dropdown", "list"),
120
- role: "listbox",
121
- "aria-label": _ctx.ariaLabel,
122
- "aria-orientation": "vertical"
123
- }, {
124
- default: vue.withCtx(() => [
125
- (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.options, (item, index) => {
126
- return vue.openBlock(), vue.createElementBlock("li", {
127
- id: `${_ctx.contentId}-${index}`,
128
- ref_for: true,
129
- ref_key: "optionRefs",
130
- ref: optionRefs,
131
- key: index,
132
- class: vue.normalizeClass(optionkls(item, index)),
133
- role: "option",
134
- "aria-disabled": item.disabled || _ctx.disabled || void 0,
135
- "aria-selected": hoveringIndex.value === index,
136
- onMousemove: ($event) => handleMouseEnter(index),
137
- onClick: vue.withModifiers(($event) => handleSelect(item), ["stop"])
138
- }, [
139
- vue.renderSlot(_ctx.$slots, "label", {
140
- item,
141
- index
142
- }, () => {
143
- var _a;
144
- return [
145
- vue.createElementVNode("span", null, vue.toDisplayString((_a = item.label) != null ? _a : item.value), 1)
146
- ];
147
- })
148
- ], 42, ["id", "aria-disabled", "aria-selected", "onMousemove", "onClick"]);
149
- }), 128))
150
- ]),
151
- _: 3
152
- }, 8, ["id", "wrap-class", "view-class", "aria-label"]), [
153
- [vue.vShow, _ctx.options.length > 0 && !_ctx.loading]
154
- ]),
155
- _ctx.loading ? (vue.openBlock(), vue.createElementBlock("div", {
156
- key: 1,
157
- class: vue.normalizeClass(vue.unref(ns).be("dropdown", "loading"))
158
- }, [
159
- vue.renderSlot(_ctx.$slots, "loading", {}, () => [
160
- vue.createTextVNode(vue.toDisplayString(vue.unref(t)("el.mention.loading")), 1)
161
- ])
162
- ], 2)) : vue.createCommentVNode("v-if", true),
163
- _ctx.$slots.footer ? (vue.openBlock(), vue.createElementBlock("div", {
164
- key: 2,
165
- class: vue.normalizeClass(vue.unref(ns).be("dropdown", "footer"))
166
- }, [
167
- vue.renderSlot(_ctx.$slots, "footer")
168
- ], 2)) : vue.createCommentVNode("v-if", true)
169
- ], 2);
170
- };
171
- }
172
- });
173
- var ElMentionDropdown = /* @__PURE__ */ pluginVue_exportHelper["default"](_sfc_main, [["__file", "mention-dropdown.vue"]]);
19
+ const mentionDropdownEmits = {
20
+ select: (option) => shared.isString(option.value)
21
+ };
174
22
 
175
- exports["default"] = ElMentionDropdown;
23
+ exports.mentionDropdownEmits = mentionDropdownEmits;
24
+ exports.mentionDropdownProps = mentionDropdownProps;
176
25
  //# sourceMappingURL=mention-dropdown2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mention-dropdown2.js","sources":["../../../../../../packages/components/mention/src/mention-dropdown.vue"],"sourcesContent":["<template>\n <div ref=\"dropdownRef\" :class=\"ns.b('dropdown')\">\n <div v-if=\"$slots.header\" :class=\"ns.be('dropdown', 'header')\">\n <slot name=\"header\" />\n </div>\n <el-scrollbar\n v-show=\"options.length > 0 && !loading\"\n :id=\"contentId\"\n ref=\"scrollbarRef\"\n tag=\"ul\"\n :wrap-class=\"ns.be('dropdown', 'wrap')\"\n :view-class=\"ns.be('dropdown', 'list')\"\n role=\"listbox\"\n :aria-label=\"ariaLabel\"\n aria-orientation=\"vertical\"\n >\n <li\n v-for=\"(item, index) in options\"\n :id=\"`${contentId}-${index}`\"\n ref=\"optionRefs\"\n :key=\"index\"\n :class=\"optionkls(item, index)\"\n role=\"option\"\n :aria-disabled=\"item.disabled || disabled || undefined\"\n :aria-selected=\"hoveringIndex === index\"\n @mousemove=\"handleMouseEnter(index)\"\n @click.stop=\"handleSelect(item)\"\n >\n <slot name=\"label\" :item=\"item\" :index=\"index\">\n <span>{{ item.label ?? item.value }}</span>\n </slot>\n </li>\n </el-scrollbar>\n <div v-if=\"loading\" :class=\"ns.be('dropdown', 'loading')\">\n <slot name=\"loading\"> {{ t('el.mention.loading') }} </slot>\n </div>\n <div v-if=\"$slots.footer\" :class=\"ns.be('dropdown', 'footer')\">\n <slot name=\"footer\" />\n </div>\n </div>\n</template>\n<script setup lang=\"ts\">\nimport { computed, nextTick, ref, watch } from 'vue'\nimport { useLocale, useNamespace } from '@element-plus/hooks'\nimport { scrollIntoView } from '@element-plus/utils'\nimport ElScrollbar from '@element-plus/components/scrollbar'\nimport { mentionDropdownEmits, mentionDropdownProps } from './mention-dropdown'\n\nimport type { MentionOption } from './types'\n\ndefineOptions({\n name: 'ElMentionDropdown',\n})\n\nconst props = defineProps(mentionDropdownProps)\nconst emit = defineEmits(mentionDropdownEmits)\n\nconst ns = useNamespace('mention')\nconst { t } = useLocale()\nconst hoveringIndex = ref(-1)\n\nconst scrollbarRef = ref<InstanceType<typeof ElScrollbar>>()\nconst optionRefs = ref<HTMLElement[]>()\nconst dropdownRef = ref<HTMLElement>()\n\nconst optionkls = (item: MentionOption, index: number) => [\n ns.be('dropdown', 'item'),\n ns.is('hovering', hoveringIndex.value === index),\n ns.is('disabled', item.disabled || props.disabled),\n]\n\nconst handleSelect = (item: MentionOption) => {\n if (item.disabled || props.disabled) return\n emit('select', item)\n}\n\nconst handleMouseEnter = (index: number) => {\n hoveringIndex.value = index\n}\n\nconst filteredAllDisabled = computed(\n () => props.disabled || props.options.every((item) => item.disabled)\n)\n\nconst hoverOption = computed(() => props.options[hoveringIndex.value])\n\nconst selectHoverOption = () => {\n if (!hoverOption.value) return\n emit('select', hoverOption.value)\n}\n\nconst navigateOptions = (direction: 'next' | 'prev') => {\n const { options } = props\n if (options.length === 0 || filteredAllDisabled.value) return\n\n if (direction === 'next') {\n hoveringIndex.value++\n if (hoveringIndex.value === options.length) {\n hoveringIndex.value = 0\n }\n } else if (direction === 'prev') {\n hoveringIndex.value--\n if (hoveringIndex.value < 0) {\n hoveringIndex.value = options.length - 1\n }\n }\n const option = options[hoveringIndex.value]\n if (option.disabled) {\n navigateOptions(direction)\n return\n }\n nextTick(() => scrollToOption(option))\n}\n\nconst scrollToOption = (option: MentionOption) => {\n const { options } = props\n\n const index = options.findIndex((item) => item.value === option.value)\n const target = optionRefs.value?.[index]\n\n if (target) {\n const menu = dropdownRef.value?.querySelector?.(\n `.${ns.be('dropdown', 'wrap')}`\n )\n if (menu) {\n scrollIntoView(menu as HTMLElement, target)\n }\n }\n scrollbarRef.value?.handleScroll()\n}\n\nconst resetHoveringIndex = () => {\n if (filteredAllDisabled.value || props.options.length === 0) {\n hoveringIndex.value = -1\n } else {\n hoveringIndex.value = 0\n }\n}\n\nwatch(() => props.options, resetHoveringIndex, {\n immediate: true,\n})\n\ndefineExpose({\n hoveringIndex,\n navigateOptions,\n selectHoverOption,\n hoverOption,\n})\n</script>\n"],"names":["useNamespace","useLocale","ref","computed","nextTick","scrollIntoView","watch"],"mappings":"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"}
1
+ {"version":3,"file":"mention-dropdown2.js","sources":["../../../../../../packages/components/mention/src/mention-dropdown.ts"],"sourcesContent":["import { buildProps, definePropType, isString } from '@element-plus/utils'\n\nimport type { MentionOption } from './types'\n\nexport const mentionDropdownProps = buildProps({\n options: {\n type: definePropType<MentionOption[]>(Array),\n default: () => [],\n },\n loading: Boolean,\n disabled: Boolean,\n contentId: String,\n ariaLabel: String,\n})\n\nexport const mentionDropdownEmits = {\n select: (option: MentionOption) => isString(option.value),\n}\n"],"names":["buildProps","definePropType","isString"],"mappings":";;;;;;;;AACY,MAAC,oBAAoB,GAAGA,kBAAU,CAAC;AAC/C,EAAE,OAAO,EAAE;AACX,IAAI,IAAI,EAAEC,sBAAc,CAAC,KAAK,CAAC;AAC/B,IAAI,OAAO,EAAE,MAAM,EAAE;AACrB,GAAG;AACH,EAAE,OAAO,EAAE,OAAO;AAClB,EAAE,QAAQ,EAAE,OAAO;AACnB,EAAE,SAAS,EAAE,MAAM;AACnB,EAAE,SAAS,EAAE,MAAM;AACnB,CAAC,EAAE;AACS,MAAC,oBAAoB,GAAG;AACpC,EAAE,MAAM,EAAE,CAAC,MAAM,KAAKC,eAAQ,CAAC,MAAM,CAAC,KAAK,CAAC;AAC5C;;;;;"}
@@ -338,7 +338,7 @@ declare const __VLS_component: import("vue").DefineComponent<{
338
338
  textareaStyle: import("vue").ComputedRef<import("vue").StyleValue>;
339
339
  autosize: import("vue").Ref<import("@element-plus/nightly/es/components/input").InputAutoSize>;
340
340
  isComposing: import("vue").Ref<boolean>;
341
- focus: () => Promise<void>;
341
+ focus: () => void | undefined;
342
342
  blur: () => void | undefined;
343
343
  select: () => void;
344
344
  clear: () => void;
@@ -497,7 +497,7 @@ declare const __VLS_component: import("vue").DefineComponent<{
497
497
  textareaStyle: import("vue").ComputedRef<import("vue").StyleValue>;
498
498
  autosize: import("vue").Ref<import("@element-plus/nightly/es/components/input").InputAutoSize>;
499
499
  isComposing: import("vue").Ref<boolean>;
500
- focus: () => Promise<void>;
500
+ focus: () => void | undefined;
501
501
  blur: () => void | undefined;
502
502
  select: () => void;
503
503
  clear: () => void;
@@ -12,7 +12,7 @@ require('../../form/index.js');
12
12
  require('../../../utils/index.js');
13
13
  var mention = require('./mention.js');
14
14
  var helper = require('./helper.js');
15
- var mentionDropdown = require('./mention-dropdown2.js');
15
+ var mentionDropdown = require('./mention-dropdown.js');
16
16
  var pluginVue_exportHelper = require('../../../_virtual/plugin-vue_export-helper.js');
17
17
  var input = require('../../input/src/input.js');
18
18
  var index = require('../../../hooks/use-namespace/index.js');