@element-plus/nightly 0.0.20260104 → 0.0.20260105

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 (525) hide show
  1. package/attributes.json +1 -1
  2. package/dist/index.css +1 -1
  3. package/dist/index.full.js +169 -23
  4. package/dist/index.full.min.js +14 -14
  5. package/dist/index.full.min.js.map +1 -1
  6. package/dist/index.full.min.mjs +14 -14
  7. package/dist/index.full.min.mjs.map +1 -1
  8. package/dist/index.full.mjs +167 -24
  9. package/dist/locale/af.js +1 -1
  10. package/dist/locale/af.min.js +1 -1
  11. package/dist/locale/af.min.mjs +1 -1
  12. package/dist/locale/af.mjs +1 -1
  13. package/dist/locale/ar-eg.js +1 -1
  14. package/dist/locale/ar-eg.min.js +1 -1
  15. package/dist/locale/ar-eg.min.mjs +1 -1
  16. package/dist/locale/ar-eg.mjs +1 -1
  17. package/dist/locale/ar.js +1 -1
  18. package/dist/locale/ar.min.js +1 -1
  19. package/dist/locale/ar.min.mjs +1 -1
  20. package/dist/locale/ar.mjs +1 -1
  21. package/dist/locale/az.js +1 -1
  22. package/dist/locale/az.min.js +1 -1
  23. package/dist/locale/az.min.mjs +1 -1
  24. package/dist/locale/az.mjs +1 -1
  25. package/dist/locale/bg.js +1 -1
  26. package/dist/locale/bg.min.js +1 -1
  27. package/dist/locale/bg.min.mjs +1 -1
  28. package/dist/locale/bg.mjs +1 -1
  29. package/dist/locale/bn.js +1 -1
  30. package/dist/locale/bn.min.js +1 -1
  31. package/dist/locale/bn.min.mjs +1 -1
  32. package/dist/locale/bn.mjs +1 -1
  33. package/dist/locale/ca.js +1 -1
  34. package/dist/locale/ca.min.js +1 -1
  35. package/dist/locale/ca.min.mjs +1 -1
  36. package/dist/locale/ca.mjs +1 -1
  37. package/dist/locale/ckb.js +1 -1
  38. package/dist/locale/ckb.min.js +1 -1
  39. package/dist/locale/ckb.min.mjs +1 -1
  40. package/dist/locale/ckb.mjs +1 -1
  41. package/dist/locale/cs.js +1 -1
  42. package/dist/locale/cs.min.js +1 -1
  43. package/dist/locale/cs.min.mjs +1 -1
  44. package/dist/locale/cs.mjs +1 -1
  45. package/dist/locale/da.js +1 -1
  46. package/dist/locale/da.min.js +1 -1
  47. package/dist/locale/da.min.mjs +1 -1
  48. package/dist/locale/da.mjs +1 -1
  49. package/dist/locale/de.js +1 -1
  50. package/dist/locale/de.min.js +1 -1
  51. package/dist/locale/de.min.mjs +1 -1
  52. package/dist/locale/de.mjs +1 -1
  53. package/dist/locale/el.js +1 -1
  54. package/dist/locale/el.min.js +1 -1
  55. package/dist/locale/el.min.mjs +1 -1
  56. package/dist/locale/el.mjs +1 -1
  57. package/dist/locale/en.js +1 -1
  58. package/dist/locale/en.min.js +1 -1
  59. package/dist/locale/en.min.mjs +1 -1
  60. package/dist/locale/en.mjs +1 -1
  61. package/dist/locale/eo.js +1 -1
  62. package/dist/locale/eo.min.js +1 -1
  63. package/dist/locale/eo.min.mjs +1 -1
  64. package/dist/locale/eo.mjs +1 -1
  65. package/dist/locale/es.js +1 -1
  66. package/dist/locale/es.min.js +1 -1
  67. package/dist/locale/es.min.mjs +1 -1
  68. package/dist/locale/es.mjs +1 -1
  69. package/dist/locale/et.js +1 -1
  70. package/dist/locale/et.min.js +1 -1
  71. package/dist/locale/et.min.mjs +1 -1
  72. package/dist/locale/et.mjs +1 -1
  73. package/dist/locale/eu.js +1 -1
  74. package/dist/locale/eu.min.js +1 -1
  75. package/dist/locale/eu.min.mjs +1 -1
  76. package/dist/locale/eu.mjs +1 -1
  77. package/dist/locale/fa.js +1 -1
  78. package/dist/locale/fa.min.js +1 -1
  79. package/dist/locale/fa.min.mjs +1 -1
  80. package/dist/locale/fa.mjs +1 -1
  81. package/dist/locale/fi.js +1 -1
  82. package/dist/locale/fi.min.js +1 -1
  83. package/dist/locale/fi.min.mjs +1 -1
  84. package/dist/locale/fi.mjs +1 -1
  85. package/dist/locale/fr.js +1 -1
  86. package/dist/locale/fr.min.js +1 -1
  87. package/dist/locale/fr.min.mjs +1 -1
  88. package/dist/locale/fr.mjs +1 -1
  89. package/dist/locale/he.js +1 -1
  90. package/dist/locale/he.min.js +1 -1
  91. package/dist/locale/he.min.mjs +1 -1
  92. package/dist/locale/he.mjs +1 -1
  93. package/dist/locale/hi.js +1 -1
  94. package/dist/locale/hi.min.js +1 -1
  95. package/dist/locale/hi.min.mjs +1 -1
  96. package/dist/locale/hi.mjs +1 -1
  97. package/dist/locale/hr.js +1 -1
  98. package/dist/locale/hr.min.js +1 -1
  99. package/dist/locale/hr.min.mjs +1 -1
  100. package/dist/locale/hr.mjs +1 -1
  101. package/dist/locale/hu.js +1 -1
  102. package/dist/locale/hu.min.js +1 -1
  103. package/dist/locale/hu.min.mjs +1 -1
  104. package/dist/locale/hu.mjs +1 -1
  105. package/dist/locale/hy-am.js +1 -1
  106. package/dist/locale/hy-am.min.js +1 -1
  107. package/dist/locale/hy-am.min.mjs +1 -1
  108. package/dist/locale/hy-am.mjs +1 -1
  109. package/dist/locale/id.js +1 -1
  110. package/dist/locale/id.min.js +1 -1
  111. package/dist/locale/id.min.mjs +1 -1
  112. package/dist/locale/id.mjs +1 -1
  113. package/dist/locale/it.js +1 -1
  114. package/dist/locale/it.min.js +1 -1
  115. package/dist/locale/it.min.mjs +1 -1
  116. package/dist/locale/it.mjs +1 -1
  117. package/dist/locale/ja.js +1 -1
  118. package/dist/locale/ja.min.js +1 -1
  119. package/dist/locale/ja.min.mjs +1 -1
  120. package/dist/locale/ja.mjs +1 -1
  121. package/dist/locale/kk.js +1 -1
  122. package/dist/locale/kk.min.js +1 -1
  123. package/dist/locale/kk.min.mjs +1 -1
  124. package/dist/locale/kk.mjs +1 -1
  125. package/dist/locale/km.js +1 -1
  126. package/dist/locale/km.min.js +1 -1
  127. package/dist/locale/km.min.mjs +1 -1
  128. package/dist/locale/km.mjs +1 -1
  129. package/dist/locale/ko.js +1 -1
  130. package/dist/locale/ko.min.js +1 -1
  131. package/dist/locale/ko.min.mjs +1 -1
  132. package/dist/locale/ko.mjs +1 -1
  133. package/dist/locale/ku.js +1 -1
  134. package/dist/locale/ku.min.js +1 -1
  135. package/dist/locale/ku.min.mjs +1 -1
  136. package/dist/locale/ku.mjs +1 -1
  137. package/dist/locale/ky.js +1 -1
  138. package/dist/locale/ky.min.js +1 -1
  139. package/dist/locale/ky.min.mjs +1 -1
  140. package/dist/locale/ky.mjs +1 -1
  141. package/dist/locale/lo.js +1 -1
  142. package/dist/locale/lo.min.js +1 -1
  143. package/dist/locale/lo.min.mjs +1 -1
  144. package/dist/locale/lo.mjs +1 -1
  145. package/dist/locale/lt.js +1 -1
  146. package/dist/locale/lt.min.js +1 -1
  147. package/dist/locale/lt.min.mjs +1 -1
  148. package/dist/locale/lt.mjs +1 -1
  149. package/dist/locale/lv.js +1 -1
  150. package/dist/locale/lv.min.js +1 -1
  151. package/dist/locale/lv.min.mjs +1 -1
  152. package/dist/locale/lv.mjs +1 -1
  153. package/dist/locale/mg.js +1 -1
  154. package/dist/locale/mg.min.js +1 -1
  155. package/dist/locale/mg.min.mjs +1 -1
  156. package/dist/locale/mg.mjs +1 -1
  157. package/dist/locale/mn.js +1 -1
  158. package/dist/locale/mn.min.js +1 -1
  159. package/dist/locale/mn.min.mjs +1 -1
  160. package/dist/locale/mn.mjs +1 -1
  161. package/dist/locale/ms.js +1 -1
  162. package/dist/locale/ms.min.js +1 -1
  163. package/dist/locale/ms.min.mjs +1 -1
  164. package/dist/locale/ms.mjs +1 -1
  165. package/dist/locale/my.js +1 -1
  166. package/dist/locale/my.min.js +1 -1
  167. package/dist/locale/my.min.mjs +1 -1
  168. package/dist/locale/my.mjs +1 -1
  169. package/dist/locale/nb-no.js +1 -1
  170. package/dist/locale/nb-no.min.js +1 -1
  171. package/dist/locale/nb-no.min.mjs +1 -1
  172. package/dist/locale/nb-no.mjs +1 -1
  173. package/dist/locale/nl.js +1 -1
  174. package/dist/locale/nl.min.js +1 -1
  175. package/dist/locale/nl.min.mjs +1 -1
  176. package/dist/locale/nl.mjs +1 -1
  177. package/dist/locale/no.js +1 -1
  178. package/dist/locale/no.min.js +1 -1
  179. package/dist/locale/no.min.mjs +1 -1
  180. package/dist/locale/no.mjs +1 -1
  181. package/dist/locale/pa.js +1 -1
  182. package/dist/locale/pa.min.js +1 -1
  183. package/dist/locale/pa.min.mjs +1 -1
  184. package/dist/locale/pa.mjs +1 -1
  185. package/dist/locale/pl.js +1 -1
  186. package/dist/locale/pl.min.js +1 -1
  187. package/dist/locale/pl.min.mjs +1 -1
  188. package/dist/locale/pl.mjs +1 -1
  189. package/dist/locale/pt-br.js +1 -1
  190. package/dist/locale/pt-br.min.js +1 -1
  191. package/dist/locale/pt-br.min.mjs +1 -1
  192. package/dist/locale/pt-br.mjs +1 -1
  193. package/dist/locale/pt.js +1 -1
  194. package/dist/locale/pt.min.js +1 -1
  195. package/dist/locale/pt.min.mjs +1 -1
  196. package/dist/locale/pt.mjs +1 -1
  197. package/dist/locale/ro.js +1 -1
  198. package/dist/locale/ro.min.js +1 -1
  199. package/dist/locale/ro.min.mjs +1 -1
  200. package/dist/locale/ro.mjs +1 -1
  201. package/dist/locale/ru.js +1 -1
  202. package/dist/locale/ru.min.js +1 -1
  203. package/dist/locale/ru.min.mjs +1 -1
  204. package/dist/locale/ru.mjs +1 -1
  205. package/dist/locale/sk.js +1 -1
  206. package/dist/locale/sk.min.js +1 -1
  207. package/dist/locale/sk.min.mjs +1 -1
  208. package/dist/locale/sk.mjs +1 -1
  209. package/dist/locale/sl.js +1 -1
  210. package/dist/locale/sl.min.js +1 -1
  211. package/dist/locale/sl.min.mjs +1 -1
  212. package/dist/locale/sl.mjs +1 -1
  213. package/dist/locale/sr.js +1 -1
  214. package/dist/locale/sr.min.js +1 -1
  215. package/dist/locale/sr.min.mjs +1 -1
  216. package/dist/locale/sr.mjs +1 -1
  217. package/dist/locale/sv.js +1 -1
  218. package/dist/locale/sv.min.js +1 -1
  219. package/dist/locale/sv.min.mjs +1 -1
  220. package/dist/locale/sv.mjs +1 -1
  221. package/dist/locale/sw.js +1 -1
  222. package/dist/locale/sw.min.js +1 -1
  223. package/dist/locale/sw.min.mjs +1 -1
  224. package/dist/locale/sw.mjs +1 -1
  225. package/dist/locale/ta.js +1 -1
  226. package/dist/locale/ta.min.js +1 -1
  227. package/dist/locale/ta.min.mjs +1 -1
  228. package/dist/locale/ta.mjs +1 -1
  229. package/dist/locale/te.js +1 -1
  230. package/dist/locale/te.min.js +1 -1
  231. package/dist/locale/te.min.mjs +1 -1
  232. package/dist/locale/te.mjs +1 -1
  233. package/dist/locale/th.js +1 -1
  234. package/dist/locale/th.min.js +1 -1
  235. package/dist/locale/th.min.mjs +1 -1
  236. package/dist/locale/th.mjs +1 -1
  237. package/dist/locale/tk.js +1 -1
  238. package/dist/locale/tk.min.js +1 -1
  239. package/dist/locale/tk.min.mjs +1 -1
  240. package/dist/locale/tk.mjs +1 -1
  241. package/dist/locale/tr.js +1 -1
  242. package/dist/locale/tr.min.js +1 -1
  243. package/dist/locale/tr.min.mjs +1 -1
  244. package/dist/locale/tr.mjs +1 -1
  245. package/dist/locale/ug-cn.js +1 -1
  246. package/dist/locale/ug-cn.min.js +1 -1
  247. package/dist/locale/ug-cn.min.mjs +1 -1
  248. package/dist/locale/ug-cn.mjs +1 -1
  249. package/dist/locale/uk.js +1 -1
  250. package/dist/locale/uk.min.js +1 -1
  251. package/dist/locale/uk.min.mjs +1 -1
  252. package/dist/locale/uk.mjs +1 -1
  253. package/dist/locale/uz-uz.js +1 -1
  254. package/dist/locale/uz-uz.min.js +1 -1
  255. package/dist/locale/uz-uz.min.mjs +1 -1
  256. package/dist/locale/uz-uz.mjs +1 -1
  257. package/dist/locale/vi.js +1 -1
  258. package/dist/locale/vi.min.js +1 -1
  259. package/dist/locale/vi.min.mjs +1 -1
  260. package/dist/locale/vi.mjs +1 -1
  261. package/dist/locale/zh-cn.js +1 -1
  262. package/dist/locale/zh-cn.min.js +1 -1
  263. package/dist/locale/zh-cn.min.mjs +1 -1
  264. package/dist/locale/zh-cn.mjs +1 -1
  265. package/dist/locale/zh-hk.js +1 -1
  266. package/dist/locale/zh-hk.min.js +1 -1
  267. package/dist/locale/zh-hk.min.mjs +1 -1
  268. package/dist/locale/zh-hk.mjs +1 -1
  269. package/dist/locale/zh-mo.js +1 -1
  270. package/dist/locale/zh-mo.min.js +1 -1
  271. package/dist/locale/zh-mo.min.mjs +1 -1
  272. package/dist/locale/zh-mo.mjs +1 -1
  273. package/dist/locale/zh-tw.js +1 -1
  274. package/dist/locale/zh-tw.min.js +1 -1
  275. package/dist/locale/zh-tw.min.mjs +1 -1
  276. package/dist/locale/zh-tw.mjs +1 -1
  277. package/es/component.mjs +2 -1
  278. package/es/component.mjs.map +1 -1
  279. package/es/components/alert/index.mjs +2 -2
  280. package/es/components/alert/src/alert.mjs +135 -39
  281. package/es/components/alert/src/alert.mjs.map +1 -1
  282. package/es/components/alert/src/alert2.mjs +39 -135
  283. package/es/components/alert/src/alert2.mjs.map +1 -1
  284. package/es/components/avatar/index.d.ts +8 -2
  285. package/es/components/avatar/index.mjs +9 -3
  286. package/es/components/avatar/index.mjs.map +1 -1
  287. package/es/components/avatar/src/avatar-group-props.d.ts +138 -0
  288. package/es/components/avatar/src/avatar-group-props.mjs +33 -0
  289. package/es/components/avatar/src/avatar-group-props.mjs.map +1 -0
  290. package/es/components/avatar/src/avatar-group.d.ts +274 -0
  291. package/es/components/avatar/src/avatar-group.mjs +61 -0
  292. package/es/components/avatar/src/avatar-group.mjs.map +1 -0
  293. package/es/components/avatar/src/avatar.d.ts +12 -2
  294. package/es/components/avatar/src/avatar.mjs +1 -3
  295. package/es/components/avatar/src/avatar.mjs.map +1 -1
  296. package/es/components/avatar/src/avatar.vue.d.ts +24 -6
  297. package/es/components/avatar/src/avatar2.mjs +20 -9
  298. package/es/components/avatar/src/avatar2.mjs.map +1 -1
  299. package/es/components/avatar/src/constants.d.ts +7 -0
  300. package/es/components/avatar/src/constants.mjs +6 -0
  301. package/es/components/avatar/src/constants.mjs.map +1 -0
  302. package/es/components/avatar/src/instance.d.ts +2 -0
  303. package/es/components/avatar-group/style/css.d.ts +3 -0
  304. package/es/components/avatar-group/style/css.mjs +4 -0
  305. package/es/components/avatar-group/style/css.mjs.map +1 -0
  306. package/es/components/avatar-group/style/index.d.ts +3 -0
  307. package/es/components/avatar-group/style/index.mjs +4 -0
  308. package/es/components/avatar-group/style/index.mjs.map +1 -0
  309. package/es/components/breadcrumb/index.mjs +2 -2
  310. package/es/components/breadcrumb/src/breadcrumb.mjs +9 -37
  311. package/es/components/breadcrumb/src/breadcrumb.mjs.map +1 -1
  312. package/es/components/breadcrumb/src/breadcrumb2.mjs +37 -9
  313. package/es/components/breadcrumb/src/breadcrumb2.mjs.map +1 -1
  314. package/es/components/calendar/index.mjs +2 -2
  315. package/es/components/calendar/src/calendar.mjs +23 -196
  316. package/es/components/calendar/src/calendar.mjs.map +1 -1
  317. package/es/components/calendar/src/calendar2.mjs +196 -23
  318. package/es/components/calendar/src/calendar2.mjs.map +1 -1
  319. package/es/components/carousel/index.mjs +2 -2
  320. package/es/components/carousel/src/carousel-item.mjs +7 -79
  321. package/es/components/carousel/src/carousel-item.mjs.map +1 -1
  322. package/es/components/carousel/src/carousel-item2.mjs +79 -7
  323. package/es/components/carousel/src/carousel-item2.mjs.map +1 -1
  324. package/es/components/cascader/index.mjs +2 -2
  325. package/es/components/cascader/src/cascader.mjs +103 -843
  326. package/es/components/cascader/src/cascader.mjs.map +1 -1
  327. package/es/components/cascader/src/cascader2.mjs +843 -103
  328. package/es/components/cascader/src/cascader2.mjs.map +1 -1
  329. package/es/components/collapse/index.mjs +4 -4
  330. package/es/components/collapse/src/collapse-item.mjs +17 -118
  331. package/es/components/collapse/src/collapse-item.mjs.map +1 -1
  332. package/es/components/collapse/src/collapse-item2.mjs +118 -17
  333. package/es/components/collapse/src/collapse-item2.mjs.map +1 -1
  334. package/es/components/collapse/src/collapse.mjs +24 -33
  335. package/es/components/collapse/src/collapse.mjs.map +1 -1
  336. package/es/components/collapse/src/collapse2.mjs +33 -24
  337. package/es/components/collapse/src/collapse2.mjs.map +1 -1
  338. package/es/components/drawer/index.mjs +2 -2
  339. package/es/components/drawer/src/drawer.mjs +225 -31
  340. package/es/components/drawer/src/drawer.mjs.map +1 -1
  341. package/es/components/drawer/src/drawer2.mjs +31 -225
  342. package/es/components/drawer/src/drawer2.mjs.map +1 -1
  343. package/es/components/image-viewer/index.mjs +2 -2
  344. package/es/components/image-viewer/src/image-viewer.mjs +50 -557
  345. package/es/components/image-viewer/src/image-viewer.mjs.map +1 -1
  346. package/es/components/image-viewer/src/image-viewer2.mjs +557 -50
  347. package/es/components/image-viewer/src/image-viewer2.mjs.map +1 -1
  348. package/es/components/index.mjs +18 -16
  349. package/es/components/index.mjs.map +1 -1
  350. package/es/components/mention/index.mjs +2 -2
  351. package/es/components/mention/src/mention.mjs +74 -326
  352. package/es/components/mention/src/mention.mjs.map +1 -1
  353. package/es/components/mention/src/mention2.mjs +326 -74
  354. package/es/components/mention/src/mention2.mjs.map +1 -1
  355. package/es/components/menu/index.mjs +2 -2
  356. package/es/components/menu/src/menu-item-group.mjs +4 -51
  357. package/es/components/menu/src/menu-item-group.mjs.map +1 -1
  358. package/es/components/menu/src/menu-item-group2.mjs +51 -4
  359. package/es/components/menu/src/menu-item-group2.mjs.map +1 -1
  360. package/es/components/segmented/index.mjs +2 -2
  361. package/es/components/segmented/src/segmented.mjs +44 -209
  362. package/es/components/segmented/src/segmented.mjs.map +1 -1
  363. package/es/components/segmented/src/segmented2.mjs +209 -44
  364. package/es/components/segmented/src/segmented2.mjs.map +1 -1
  365. package/es/components/splitter/index.mjs +2 -2
  366. package/es/components/splitter/src/splitter.mjs +114 -14
  367. package/es/components/splitter/src/splitter.mjs.map +1 -1
  368. package/es/components/splitter/src/splitter2.mjs +14 -114
  369. package/es/components/splitter/src/splitter2.mjs.map +1 -1
  370. package/es/components/text/index.mjs +2 -2
  371. package/es/components/text/src/text.mjs +20 -66
  372. package/es/components/text/src/text.mjs.map +1 -1
  373. package/es/components/text/src/text2.mjs +66 -20
  374. package/es/components/text/src/text2.mjs.map +1 -1
  375. package/es/components/upload/index.mjs +1 -1
  376. package/es/components/upload/src/upload-content.d.ts +1 -0
  377. package/es/components/upload/src/upload-content.vue.d.ts +3 -0
  378. package/es/components/upload/src/upload-content2.mjs +5 -3
  379. package/es/components/upload/src/upload-content2.mjs.map +1 -1
  380. package/es/components/upload/src/upload-dragger.d.ts +1 -0
  381. package/es/components/upload/src/upload-dragger.mjs +11 -69
  382. package/es/components/upload/src/upload-dragger.mjs.map +1 -1
  383. package/es/components/upload/src/upload-dragger.vue.d.ts +3 -0
  384. package/es/components/upload/src/upload-dragger2.mjs +116 -10
  385. package/es/components/upload/src/upload-dragger2.mjs.map +1 -1
  386. package/es/components/upload/src/upload.d.ts +2 -0
  387. package/es/components/upload/src/upload.mjs +2 -1
  388. package/es/components/upload/src/upload.mjs.map +1 -1
  389. package/es/components/upload/src/upload.vue.d.ts +3 -0
  390. package/es/components/virtual-list/src/hooks/use-grid-wheel.mjs +4 -4
  391. package/es/components/virtual-list/src/hooks/use-grid-wheel.mjs.map +1 -1
  392. package/es/index.mjs +18 -16
  393. package/es/index.mjs.map +1 -1
  394. package/es/version.d.ts +1 -1
  395. package/es/version.mjs +1 -1
  396. package/es/version.mjs.map +1 -1
  397. package/global.d.ts +1 -0
  398. package/lib/component.js +1 -0
  399. package/lib/component.js.map +1 -1
  400. package/lib/components/alert/index.js +2 -2
  401. package/lib/components/alert/src/alert.js +134 -40
  402. package/lib/components/alert/src/alert.js.map +1 -1
  403. package/lib/components/alert/src/alert2.js +40 -134
  404. package/lib/components/alert/src/alert2.js.map +1 -1
  405. package/lib/components/avatar/index.d.ts +8 -2
  406. package/lib/components/avatar/index.js +10 -1
  407. package/lib/components/avatar/index.js.map +1 -1
  408. package/lib/components/avatar/src/avatar-group-props.d.ts +138 -0
  409. package/lib/components/avatar/src/avatar-group-props.js +37 -0
  410. package/lib/components/avatar/src/avatar-group-props.js.map +1 -0
  411. package/lib/components/avatar/src/avatar-group.d.ts +274 -0
  412. package/lib/components/avatar/src/avatar-group.js +65 -0
  413. package/lib/components/avatar/src/avatar-group.js.map +1 -0
  414. package/lib/components/avatar/src/avatar.d.ts +12 -2
  415. package/lib/components/avatar/src/avatar.js +1 -3
  416. package/lib/components/avatar/src/avatar.js.map +1 -1
  417. package/lib/components/avatar/src/avatar.vue.d.ts +24 -6
  418. package/lib/components/avatar/src/avatar2.js +19 -8
  419. package/lib/components/avatar/src/avatar2.js.map +1 -1
  420. package/lib/components/avatar/src/constants.d.ts +7 -0
  421. package/lib/components/avatar/src/constants.js +10 -0
  422. package/lib/components/avatar/src/constants.js.map +1 -0
  423. package/lib/components/avatar/src/instance.d.ts +2 -0
  424. package/lib/components/avatar-group/style/css.d.ts +3 -0
  425. package/lib/components/avatar-group/style/css.js +7 -0
  426. package/lib/components/avatar-group/style/css.js.map +1 -0
  427. package/lib/components/avatar-group/style/index.d.ts +3 -0
  428. package/lib/components/avatar-group/style/index.js +7 -0
  429. package/lib/components/avatar-group/style/index.js.map +1 -0
  430. package/lib/components/breadcrumb/index.js +2 -2
  431. package/lib/components/breadcrumb/src/breadcrumb.js +9 -37
  432. package/lib/components/breadcrumb/src/breadcrumb.js.map +1 -1
  433. package/lib/components/breadcrumb/src/breadcrumb2.js +37 -9
  434. package/lib/components/breadcrumb/src/breadcrumb2.js.map +1 -1
  435. package/lib/components/calendar/index.js +2 -2
  436. package/lib/components/calendar/src/calendar.js +24 -196
  437. package/lib/components/calendar/src/calendar.js.map +1 -1
  438. package/lib/components/calendar/src/calendar2.js +196 -24
  439. package/lib/components/calendar/src/calendar2.js.map +1 -1
  440. package/lib/components/carousel/index.js +2 -2
  441. package/lib/components/carousel/src/carousel-item.js +7 -79
  442. package/lib/components/carousel/src/carousel-item.js.map +1 -1
  443. package/lib/components/carousel/src/carousel-item2.js +79 -7
  444. package/lib/components/carousel/src/carousel-item2.js.map +1 -1
  445. package/lib/components/cascader/index.js +2 -2
  446. package/lib/components/cascader/src/cascader.js +103 -842
  447. package/lib/components/cascader/src/cascader.js.map +1 -1
  448. package/lib/components/cascader/src/cascader2.js +842 -103
  449. package/lib/components/cascader/src/cascader2.js.map +1 -1
  450. package/lib/components/collapse/index.js +4 -4
  451. package/lib/components/collapse/src/collapse-item.js +17 -118
  452. package/lib/components/collapse/src/collapse-item.js.map +1 -1
  453. package/lib/components/collapse/src/collapse-item2.js +118 -17
  454. package/lib/components/collapse/src/collapse-item2.js.map +1 -1
  455. package/lib/components/collapse/src/collapse.js +26 -33
  456. package/lib/components/collapse/src/collapse.js.map +1 -1
  457. package/lib/components/collapse/src/collapse2.js +33 -26
  458. package/lib/components/collapse/src/collapse2.js.map +1 -1
  459. package/lib/components/drawer/index.js +2 -2
  460. package/lib/components/drawer/src/drawer.js +225 -32
  461. package/lib/components/drawer/src/drawer.js.map +1 -1
  462. package/lib/components/drawer/src/drawer2.js +32 -225
  463. package/lib/components/drawer/src/drawer2.js.map +1 -1
  464. package/lib/components/image-viewer/index.js +2 -2
  465. package/lib/components/image-viewer/src/image-viewer.js +51 -557
  466. package/lib/components/image-viewer/src/image-viewer.js.map +1 -1
  467. package/lib/components/image-viewer/src/image-viewer2.js +557 -51
  468. package/lib/components/image-viewer/src/image-viewer2.js.map +1 -1
  469. package/lib/components/index.js +73 -68
  470. package/lib/components/index.js.map +1 -1
  471. package/lib/components/mention/index.js +2 -2
  472. package/lib/components/mention/src/mention.js +74 -324
  473. package/lib/components/mention/src/mention.js.map +1 -1
  474. package/lib/components/mention/src/mention2.js +324 -74
  475. package/lib/components/mention/src/mention2.js.map +1 -1
  476. package/lib/components/menu/index.js +2 -2
  477. package/lib/components/menu/src/menu-item-group.js +4 -51
  478. package/lib/components/menu/src/menu-item-group.js.map +1 -1
  479. package/lib/components/menu/src/menu-item-group2.js +51 -4
  480. package/lib/components/menu/src/menu-item-group2.js.map +1 -1
  481. package/lib/components/segmented/index.js +2 -2
  482. package/lib/components/segmented/src/segmented.js +45 -208
  483. package/lib/components/segmented/src/segmented.js.map +1 -1
  484. package/lib/components/segmented/src/segmented2.js +208 -45
  485. package/lib/components/segmented/src/segmented2.js.map +1 -1
  486. package/lib/components/splitter/index.js +2 -2
  487. package/lib/components/splitter/src/splitter.js +114 -15
  488. package/lib/components/splitter/src/splitter.js.map +1 -1
  489. package/lib/components/splitter/src/splitter2.js +15 -114
  490. package/lib/components/splitter/src/splitter2.js.map +1 -1
  491. package/lib/components/text/index.js +2 -2
  492. package/lib/components/text/src/text.js +20 -66
  493. package/lib/components/text/src/text.js.map +1 -1
  494. package/lib/components/text/src/text2.js +66 -20
  495. package/lib/components/text/src/text2.js.map +1 -1
  496. package/lib/components/upload/index.js +1 -1
  497. package/lib/components/upload/src/upload-content.d.ts +1 -0
  498. package/lib/components/upload/src/upload-content.vue.d.ts +3 -0
  499. package/lib/components/upload/src/upload-content2.js +5 -3
  500. package/lib/components/upload/src/upload-content2.js.map +1 -1
  501. package/lib/components/upload/src/upload-dragger.d.ts +1 -0
  502. package/lib/components/upload/src/upload-dragger.js +12 -69
  503. package/lib/components/upload/src/upload-dragger.js.map +1 -1
  504. package/lib/components/upload/src/upload-dragger.vue.d.ts +3 -0
  505. package/lib/components/upload/src/upload-dragger2.js +116 -11
  506. package/lib/components/upload/src/upload-dragger2.js.map +1 -1
  507. package/lib/components/upload/src/upload.d.ts +2 -0
  508. package/lib/components/upload/src/upload.js +2 -1
  509. package/lib/components/upload/src/upload.js.map +1 -1
  510. package/lib/components/upload/src/upload.vue.d.ts +3 -0
  511. package/lib/components/virtual-list/src/hooks/use-grid-wheel.js +4 -4
  512. package/lib/components/virtual-list/src/hooks/use-grid-wheel.js.map +1 -1
  513. package/lib/index.js +73 -68
  514. package/lib/index.js.map +1 -1
  515. package/lib/version.d.ts +1 -1
  516. package/lib/version.js +1 -1
  517. package/lib/version.js.map +1 -1
  518. package/package.json +2 -2
  519. package/tags.json +1 -1
  520. package/theme-chalk/el-avatar-group.css +1 -0
  521. package/theme-chalk/index.css +1 -1
  522. package/theme-chalk/src/avatar-group.scss +25 -0
  523. package/theme-chalk/src/common/var.scss +9 -0
  524. package/theme-chalk/src/index.scss +1 -0
  525. package/web-types.json +1 -1
@@ -98,6 +98,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
98
98
  })[], unknown, unknown, import("./upload").UploadRequestHandler, boolean>;
99
99
  readonly disabled: import("@element-plus/nightly/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, undefined, boolean>;
100
100
  readonly limit: NumberConstructor;
101
+ readonly directory: BooleanConstructor;
101
102
  }, {
102
103
  abort: (file?: UploadFile) => void;
103
104
  upload: (rawFile: UploadRawFile) => Promise<void>;
@@ -194,6 +195,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
194
195
  })[], unknown, unknown, import("./upload").UploadRequestHandler, boolean>;
195
196
  readonly disabled: import("@element-plus/nightly/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, undefined, boolean>;
196
197
  readonly limit: NumberConstructor;
198
+ readonly directory: BooleanConstructor;
197
199
  }>>, {
198
200
  readonly data: import("@element-plus/nightly/es/utils").EpPropMergeType<(new (...args: any[]) => import("@element-plus/nightly/es/utils").Mutable<Record<string, any>> | Promise<import("@element-plus/nightly/es/utils").Mutable<Record<string, any>>> | ((rawFile: UploadRawFile) => import("@element-plus/nightly/es/utils").Awaitable<import("./upload").UploadData>)) | (() => import("@element-plus/nightly/es/utils").Awaitable<import("@element-plus/nightly/es/utils").Mutable<Record<string, any>>> | ((rawFile: UploadRawFile) => import("@element-plus/nightly/es/utils").Awaitable<import("./upload").UploadData>)) | ((new (...args: any[]) => import("@element-plus/nightly/es/utils").Mutable<Record<string, any>> | Promise<import("@element-plus/nightly/es/utils").Mutable<Record<string, any>>> | ((rawFile: UploadRawFile) => import("@element-plus/nightly/es/utils").Awaitable<import("./upload").UploadData>)) | (() => import("@element-plus/nightly/es/utils").Awaitable<import("@element-plus/nightly/es/utils").Mutable<Record<string, any>>> | ((rawFile: UploadRawFile) => import("@element-plus/nightly/es/utils").Awaitable<import("./upload").UploadData>)))[], unknown, unknown>;
199
201
  readonly disabled: import("@element-plus/nightly/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
@@ -211,6 +213,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
211
213
  readonly autoUpload: import("@element-plus/nightly/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
212
214
  readonly listType: import("@element-plus/nightly/es/utils").EpPropMergeType<StringConstructor, "picture" | "text" | "picture-card", unknown>;
213
215
  readonly httpRequest: import("./upload").UploadRequestHandler;
216
+ readonly directory: boolean;
214
217
  readonly beforeUpload: (rawFile: UploadRawFile) => import("@element-plus/nightly/es/utils").Awaitable<void | undefined | null | boolean | File | Blob>;
215
218
  readonly onRemove: (file: UploadFile | UploadRawFile) => void;
216
219
  readonly onSuccess: (response: any, rawFile: UploadRawFile) => unknown;
@@ -1,6 +1,6 @@
1
1
  import { defineComponent, shallowRef, openBlock, createElementBlock, normalizeClass, unref, withKeys, withModifiers, createBlock, withCtx, renderSlot, createElementVNode } from 'vue';
2
2
  import { cloneDeep, isEqual } from 'lodash-unified';
3
- import UploadDragger from './upload-dragger.mjs';
3
+ import UploadDragger from './upload-dragger2.mjs';
4
4
  import { uploadContentProps } from './upload-content.mjs';
5
5
  import { genFileId } from './upload.mjs';
6
6
  import _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';
@@ -10,7 +10,7 @@ import { useFormDisabled } from '../../form/src/hooks/use-form-common-props.mjs'
10
10
  import { isPlainObject, isFunction } from '@vue/shared';
11
11
 
12
12
  const _hoisted_1 = ["tabindex", "aria-disabled", "onKeydown"];
13
- const _hoisted_2 = ["name", "disabled", "multiple", "accept"];
13
+ const _hoisted_2 = ["name", "disabled", "multiple", "accept", "webkitdirectory"];
14
14
  const _sfc_main = defineComponent({
15
15
  ...{
16
16
  name: "ElUploadContent",
@@ -182,13 +182,14 @@ const _sfc_main = defineComponent({
182
182
  _ctx.drag ? (openBlock(), createBlock(UploadDragger, {
183
183
  key: 0,
184
184
  disabled: unref(disabled),
185
+ directory: _ctx.directory,
185
186
  onFile: uploadFiles
186
187
  }, {
187
188
  default: withCtx(() => [
188
189
  renderSlot(_ctx.$slots, "default")
189
190
  ]),
190
191
  _: 3
191
- }, 8, ["disabled"])) : renderSlot(_ctx.$slots, "default", { key: 1 }),
192
+ }, 8, ["disabled", "directory"])) : renderSlot(_ctx.$slots, "default", { key: 1 }),
192
193
  createElementVNode("input", {
193
194
  ref_key: "inputRef",
194
195
  ref: inputRef,
@@ -197,6 +198,7 @@ const _sfc_main = defineComponent({
197
198
  disabled: unref(disabled),
198
199
  multiple: _ctx.multiple,
199
200
  accept: _ctx.accept,
201
+ webkitdirectory: _ctx.directory,
200
202
  type: "file",
201
203
  onChange: handleChange,
202
204
  onClick: _cache[0] || (_cache[0] = withModifiers(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"upload-content2.mjs","sources":["../../../../../../packages/components/upload/src/upload-content.vue"],"sourcesContent":["<template>\n <div\n :class=\"[\n ns.b(),\n ns.m(listType),\n ns.is('drag', drag),\n ns.is('disabled', disabled),\n ]\"\n :tabindex=\"disabled ? undefined : 0\"\n :aria-disabled=\"disabled\"\n role=\"button\"\n @click=\"handleClick\"\n @keydown.self.enter.space=\"handleKeydown\"\n >\n <template v-if=\"drag\">\n <upload-dragger :disabled=\"disabled\" @file=\"uploadFiles\">\n <slot />\n </upload-dragger>\n </template>\n <template v-else>\n <slot />\n </template>\n <input\n ref=\"inputRef\"\n :class=\"ns.e('input')\"\n :name=\"name\"\n :disabled=\"disabled\"\n :multiple=\"multiple\"\n :accept=\"accept\"\n type=\"file\"\n @change=\"handleChange\"\n @click.stop\n />\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { shallowRef } from 'vue'\nimport { cloneDeep, isEqual } from 'lodash-unified'\nimport { entriesOf, isFunction, isPlainObject } from '@element-plus/utils'\nimport { useNamespace } from '@element-plus/hooks'\nimport { useFormDisabled } from '@element-plus/components/form'\nimport UploadDragger from './upload-dragger.vue'\nimport { uploadContentProps } from './upload-content'\nimport { genFileId } from './upload'\n\nimport type { UploadContentProps } from './upload-content'\nimport type {\n UploadFile,\n UploadHooks,\n UploadRawFile,\n UploadRequestOptions,\n} from './upload'\n\ndefineOptions({\n name: 'ElUploadContent',\n inheritAttrs: false,\n})\n\nconst props = defineProps(uploadContentProps)\nconst ns = useNamespace('upload')\nconst disabled = useFormDisabled()\n\nconst requests = shallowRef<Record<string, XMLHttpRequest | Promise<unknown>>>(\n {}\n)\nconst inputRef = shallowRef<HTMLInputElement>()\n\nconst uploadFiles = (files: File[]) => {\n if (files.length === 0) return\n\n const { autoUpload, limit, fileList, multiple, onStart, onExceed } = props\n\n if (limit && fileList.length + files.length > limit) {\n onExceed(files, fileList)\n return\n }\n\n if (!multiple) {\n files = files.slice(0, 1)\n }\n\n for (const file of files) {\n const rawFile = file as UploadRawFile\n rawFile.uid = genFileId()\n onStart(rawFile)\n if (autoUpload) upload(rawFile)\n }\n}\n\nconst upload = async (rawFile: UploadRawFile): Promise<void> => {\n inputRef.value!.value = ''\n\n if (!props.beforeUpload) {\n return doUpload(rawFile)\n }\n\n let hookResult: Exclude<ReturnType<UploadHooks['beforeUpload']>, Promise<any>>\n let beforeData: UploadContentProps['data'] = {}\n\n try {\n // origin data: Handle data changes after synchronization tasks are executed\n const originData = props.data\n const beforeUploadPromise = props.beforeUpload(rawFile)\n beforeData = isPlainObject(props.data) ? cloneDeep(props.data) : props.data\n hookResult = await beforeUploadPromise\n if (isPlainObject(props.data) && isEqual(originData, beforeData)) {\n beforeData = cloneDeep(props.data)\n }\n } catch {\n hookResult = false\n }\n\n if (hookResult === false) {\n props.onRemove(rawFile)\n return\n }\n\n let file: File = rawFile\n if (hookResult instanceof Blob) {\n if (hookResult instanceof File) {\n file = hookResult\n } else {\n file = new File([hookResult], rawFile.name, {\n type: rawFile.type,\n })\n }\n }\n\n doUpload(\n Object.assign(file, {\n uid: rawFile.uid,\n }),\n beforeData\n )\n}\n\nconst resolveData = async (\n data: UploadContentProps['data'],\n rawFile: UploadRawFile\n): Promise<Record<string, any>> => {\n if (isFunction(data)) {\n return data(rawFile)\n }\n\n return data\n}\n\nconst doUpload = async (\n rawFile: UploadRawFile,\n beforeData?: UploadContentProps['data']\n) => {\n const {\n headers,\n data,\n method,\n withCredentials,\n name: filename,\n action,\n onProgress,\n onSuccess,\n onError,\n httpRequest,\n } = props\n\n try {\n beforeData = await resolveData(beforeData ?? data, rawFile)\n } catch {\n props.onRemove(rawFile)\n return\n }\n\n const { uid } = rawFile\n const options: UploadRequestOptions = {\n headers: headers || {},\n withCredentials,\n file: rawFile,\n data: beforeData,\n method,\n filename,\n action,\n onProgress: (evt) => {\n onProgress(evt, rawFile)\n },\n onSuccess: (res) => {\n onSuccess(res, rawFile)\n delete requests.value[uid]\n },\n onError: (err) => {\n onError(err, rawFile)\n delete requests.value[uid]\n },\n }\n const request = httpRequest(options)\n requests.value[uid] = request\n if (request instanceof Promise) {\n request.then(options.onSuccess, options.onError)\n }\n}\n\nconst handleChange = (e: Event) => {\n const files = (e.target as HTMLInputElement).files\n if (!files) return\n uploadFiles(Array.from(files))\n}\n\nconst handleClick = () => {\n if (!disabled.value) {\n inputRef.value!.value = ''\n inputRef.value!.click()\n }\n}\n\nconst handleKeydown = () => {\n handleClick()\n}\n\nconst abort = (file?: UploadFile) => {\n const _reqs = entriesOf(requests.value).filter(\n file ? ([uid]) => String(file.uid) === uid : () => true\n )\n _reqs.forEach(([uid, req]) => {\n if (req instanceof XMLHttpRequest) req.abort()\n delete requests.value[uid]\n })\n}\n\ndefineExpose({\n abort,\n upload,\n})\n</script>\n"],"names":["_createElementBlock","_normalizeClass","_unref","listType","drag","_withKeys","_createBlock","_renderSlot","_createElementVNode","name","multiple","accept","_withModifiers"],"mappings":"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"}
1
+ {"version":3,"file":"upload-content2.mjs","sources":["../../../../../../packages/components/upload/src/upload-content.vue"],"sourcesContent":["<template>\n <div\n :class=\"[\n ns.b(),\n ns.m(listType),\n ns.is('drag', drag),\n ns.is('disabled', disabled),\n ]\"\n :tabindex=\"disabled ? undefined : 0\"\n :aria-disabled=\"disabled\"\n role=\"button\"\n @click=\"handleClick\"\n @keydown.self.enter.space=\"handleKeydown\"\n >\n <template v-if=\"drag\">\n <upload-dragger\n :disabled=\"disabled\"\n :directory=\"directory\"\n @file=\"uploadFiles\"\n >\n <slot />\n </upload-dragger>\n </template>\n <template v-else>\n <slot />\n </template>\n <input\n ref=\"inputRef\"\n :class=\"ns.e('input')\"\n :name=\"name\"\n :disabled=\"disabled\"\n :multiple=\"multiple\"\n :accept=\"accept\"\n :webkitdirectory=\"directory\"\n type=\"file\"\n @change=\"handleChange\"\n @click.stop\n />\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { shallowRef } from 'vue'\nimport { cloneDeep, isEqual } from 'lodash-unified'\nimport { entriesOf, isFunction, isPlainObject } from '@element-plus/utils'\nimport { useNamespace } from '@element-plus/hooks'\nimport { useFormDisabled } from '@element-plus/components/form'\nimport UploadDragger from './upload-dragger.vue'\nimport { uploadContentProps } from './upload-content'\nimport { genFileId } from './upload'\n\nimport type { UploadContentProps } from './upload-content'\nimport type {\n UploadFile,\n UploadHooks,\n UploadRawFile,\n UploadRequestOptions,\n} from './upload'\n\ndefineOptions({\n name: 'ElUploadContent',\n inheritAttrs: false,\n})\n\nconst props = defineProps(uploadContentProps)\nconst ns = useNamespace('upload')\nconst disabled = useFormDisabled()\n\nconst requests = shallowRef<Record<string, XMLHttpRequest | Promise<unknown>>>(\n {}\n)\nconst inputRef = shallowRef<HTMLInputElement>()\n\nconst uploadFiles = (files: File[]) => {\n if (files.length === 0) return\n\n const { autoUpload, limit, fileList, multiple, onStart, onExceed } = props\n\n if (limit && fileList.length + files.length > limit) {\n onExceed(files, fileList)\n return\n }\n\n if (!multiple) {\n files = files.slice(0, 1)\n }\n\n for (const file of files) {\n const rawFile = file as UploadRawFile\n rawFile.uid = genFileId()\n onStart(rawFile)\n if (autoUpload) upload(rawFile)\n }\n}\n\nconst upload = async (rawFile: UploadRawFile): Promise<void> => {\n inputRef.value!.value = ''\n\n if (!props.beforeUpload) {\n return doUpload(rawFile)\n }\n\n let hookResult: Exclude<ReturnType<UploadHooks['beforeUpload']>, Promise<any>>\n let beforeData: UploadContentProps['data'] = {}\n\n try {\n // origin data: Handle data changes after synchronization tasks are executed\n const originData = props.data\n const beforeUploadPromise = props.beforeUpload(rawFile)\n beforeData = isPlainObject(props.data) ? cloneDeep(props.data) : props.data\n hookResult = await beforeUploadPromise\n if (isPlainObject(props.data) && isEqual(originData, beforeData)) {\n beforeData = cloneDeep(props.data)\n }\n } catch {\n hookResult = false\n }\n\n if (hookResult === false) {\n props.onRemove(rawFile)\n return\n }\n\n let file: File = rawFile\n if (hookResult instanceof Blob) {\n if (hookResult instanceof File) {\n file = hookResult\n } else {\n file = new File([hookResult], rawFile.name, {\n type: rawFile.type,\n })\n }\n }\n\n doUpload(\n Object.assign(file, {\n uid: rawFile.uid,\n }),\n beforeData\n )\n}\n\nconst resolveData = async (\n data: UploadContentProps['data'],\n rawFile: UploadRawFile\n): Promise<Record<string, any>> => {\n if (isFunction(data)) {\n return data(rawFile)\n }\n\n return data\n}\n\nconst doUpload = async (\n rawFile: UploadRawFile,\n beforeData?: UploadContentProps['data']\n) => {\n const {\n headers,\n data,\n method,\n withCredentials,\n name: filename,\n action,\n onProgress,\n onSuccess,\n onError,\n httpRequest,\n } = props\n\n try {\n beforeData = await resolveData(beforeData ?? data, rawFile)\n } catch {\n props.onRemove(rawFile)\n return\n }\n\n const { uid } = rawFile\n const options: UploadRequestOptions = {\n headers: headers || {},\n withCredentials,\n file: rawFile,\n data: beforeData,\n method,\n filename,\n action,\n onProgress: (evt) => {\n onProgress(evt, rawFile)\n },\n onSuccess: (res) => {\n onSuccess(res, rawFile)\n delete requests.value[uid]\n },\n onError: (err) => {\n onError(err, rawFile)\n delete requests.value[uid]\n },\n }\n const request = httpRequest(options)\n requests.value[uid] = request\n if (request instanceof Promise) {\n request.then(options.onSuccess, options.onError)\n }\n}\n\nconst handleChange = (e: Event) => {\n const files = (e.target as HTMLInputElement).files\n if (!files) return\n uploadFiles(Array.from(files))\n}\n\nconst handleClick = () => {\n if (!disabled.value) {\n inputRef.value!.value = ''\n inputRef.value!.click()\n }\n}\n\nconst handleKeydown = () => {\n handleClick()\n}\n\nconst abort = (file?: UploadFile) => {\n const _reqs = entriesOf(requests.value).filter(\n file ? ([uid]) => String(file.uid) === uid : () => true\n )\n _reqs.forEach(([uid, req]) => {\n if (req instanceof XMLHttpRequest) req.abort()\n delete requests.value[uid]\n })\n}\n\ndefineExpose({\n abort,\n upload,\n})\n</script>\n"],"names":["_createElementBlock","_normalizeClass","_unref","listType","drag","_withKeys","_createBlock","directory","_renderSlot","_createElementVNode","name","multiple","accept","_withModifiers"],"mappings":"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"}
@@ -2,6 +2,7 @@ import type { ExtractPropTypes, ExtractPublicPropTypes } from 'vue';
2
2
  import type UploadDragger from './upload-dragger.vue';
3
3
  export declare const uploadDraggerProps: {
4
4
  readonly disabled: import("@element-plus/nightly/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, undefined, boolean>;
5
+ readonly directory: BooleanConstructor;
5
6
  };
6
7
  export type UploadDraggerProps = ExtractPropTypes<typeof uploadDraggerProps>;
7
8
  export type UploadDraggerPropsPublic = ExtractPublicPropTypes<typeof uploadDraggerProps>;
@@ -1,74 +1,16 @@
1
- import { defineComponent, inject, ref, openBlock, createElementBlock, normalizeClass, unref, withModifiers, renderSlot } from 'vue';
2
- import { throwError } from '../../../utils/error.mjs';
3
- import { uploadContextKey } from './constants.mjs';
4
- import { uploadDraggerProps, uploadDraggerEmits } from './upload-dragger2.mjs';
5
- import _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';
6
- import { useNamespace } from '../../../hooks/use-namespace/index.mjs';
7
- import { useFormDisabled } from '../../form/src/hooks/use-form-common-props.mjs';
1
+ import { buildProps } from '../../../utils/vue/props/runtime.mjs';
2
+ import { isArray } from '@vue/shared';
8
3
 
9
- const COMPONENT_NAME = "ElUploadDrag";
10
- const _sfc_main = defineComponent({
11
- ...{
12
- name: COMPONENT_NAME
4
+ const uploadDraggerProps = buildProps({
5
+ disabled: {
6
+ type: Boolean,
7
+ default: void 0
13
8
  },
14
- __name: "upload-dragger",
15
- props: uploadDraggerProps,
16
- emits: uploadDraggerEmits,
17
- setup(__props, { emit: __emit }) {
18
- const emit = __emit;
19
- const uploaderContext = inject(uploadContextKey);
20
- if (!uploaderContext) {
21
- throwError(
22
- COMPONENT_NAME,
23
- "usage: <el-upload><el-upload-dragger /></el-upload>"
24
- );
25
- }
26
- const ns = useNamespace("upload");
27
- const dragover = ref(false);
28
- const disabled = useFormDisabled();
29
- const onDrop = (e) => {
30
- if (disabled.value)
31
- return;
32
- dragover.value = false;
33
- e.stopPropagation();
34
- const files = Array.from(e.dataTransfer.files);
35
- const items = e.dataTransfer.items || [];
36
- files.forEach((file, index) => {
37
- var _a;
38
- const item = items[index];
39
- const entry = (_a = item == null ? void 0 : item.webkitGetAsEntry) == null ? void 0 : _a.call(item);
40
- if (entry) {
41
- file.isDirectory = entry.isDirectory;
42
- }
43
- });
44
- emit("file", files);
45
- };
46
- const onDragover = () => {
47
- if (!disabled.value)
48
- dragover.value = true;
49
- };
50
- const onDragleave = (e) => {
51
- if (!e.currentTarget.contains(e.relatedTarget))
52
- dragover.value = false;
53
- };
54
- return (_ctx, _cache) => {
55
- return openBlock(), createElementBlock(
56
- "div",
57
- {
58
- class: normalizeClass([unref(ns).b("dragger"), unref(ns).is("dragover", dragover.value)]),
59
- onDrop: withModifiers(onDrop, ["prevent"]),
60
- onDragover: withModifiers(onDragover, ["prevent"]),
61
- onDragleave: withModifiers(onDragleave, ["prevent"])
62
- },
63
- [
64
- renderSlot(_ctx.$slots, "default")
65
- ],
66
- 34
67
- );
68
- };
69
- }
9
+ directory: Boolean
70
10
  });
71
- var UploadDragger = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "/home/runner/work/element-plus/element-plus/packages/components/upload/src/upload-dragger.vue"]]);
11
+ const uploadDraggerEmits = {
12
+ file: (file) => isArray(file)
13
+ };
72
14
 
73
- export { UploadDragger as default };
15
+ export { uploadDraggerEmits, uploadDraggerProps };
74
16
  //# sourceMappingURL=upload-dragger.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"upload-dragger.mjs","sources":["../../../../../../packages/components/upload/src/upload-dragger.vue"],"sourcesContent":["<template>\n <div\n :class=\"[ns.b('dragger'), ns.is('dragover', dragover)]\"\n @drop.prevent=\"onDrop\"\n @dragover.prevent=\"onDragover\"\n @dragleave.prevent=\"onDragleave\"\n >\n <slot />\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { inject, ref } from 'vue'\nimport { useNamespace } from '@element-plus/hooks'\nimport { useFormDisabled } from '@element-plus/components/form'\nimport { throwError } from '@element-plus/utils/error'\nimport { uploadContextKey } from './constants'\nimport { uploadDraggerEmits, uploadDraggerProps } from './upload-dragger'\n\nimport type { UploadRawFile } from './upload'\n\nconst COMPONENT_NAME = 'ElUploadDrag'\n\ndefineOptions({\n name: COMPONENT_NAME,\n})\n\ndefineProps(uploadDraggerProps)\nconst emit = defineEmits(uploadDraggerEmits)\n\nconst uploaderContext = inject(uploadContextKey)\nif (!uploaderContext) {\n throwError(\n COMPONENT_NAME,\n 'usage: <el-upload><el-upload-dragger /></el-upload>'\n )\n}\n\nconst ns = useNamespace('upload')\nconst dragover = ref(false)\nconst disabled = useFormDisabled()\n\nconst onDrop = (e: DragEvent) => {\n if (disabled.value) return\n dragover.value = false\n\n e.stopPropagation()\n\n const files = Array.from(e.dataTransfer!.files) as UploadRawFile[]\n const items = e.dataTransfer!.items || []\n files.forEach((file, index) => {\n const item = items[index]\n const entry = item?.webkitGetAsEntry?.()\n if (entry) {\n file.isDirectory = entry.isDirectory\n }\n })\n emit('file', files)\n}\n\nconst onDragover = () => {\n if (!disabled.value) dragover.value = true\n}\n\nconst onDragleave = (e: DragEvent) => {\n if (!(e.currentTarget as Element).contains(e.relatedTarget as Element))\n dragover.value = false\n}\n</script>\n"],"names":["_openBlock","_createElementBlock","_normalizeClass","_unref","_withModifiers","_renderSlot"],"mappings":";;;;;;;;AAqBA,MAAM,cAAiB,GAAA,cAAA,CAAA;;;;;;;;;AAOvB,IAAA,MAAM,IAAO,GAAA,MAAA,CAAA;AAEP,IAAA,MAAA,eAAA,GAAkB,OAAO,gBAAgB,CAAA,CAAA;AAC/C,IAAA,IAAI,CAAC,eAAiB,EAAA;AACpB,MAAA,UAAA;AAAA,QACE,cAAA;AAAA,QACA,qDAAA;AAAA,OACF,CAAA;AAAA,KACF;AAEM,IAAA,MAAA,EAAA,GAAK,aAAa,QAAQ,CAAA,CAAA;AAC1B,IAAA,MAAA,QAAA,GAAW,IAAI,KAAK,CAAA,CAAA;AAC1B,IAAA,MAAM,WAAW,eAAgB,EAAA,CAAA;AAE3B,IAAA,MAAA,MAAA,GAAS,CAAC,CAAiB,KAAA;AAC/B,MAAA,IAAI,QAAS,CAAA,KAAA;AAAO,QAAA,OAAA;AACpB,MAAA,QAAA,CAAS,KAAQ,GAAA,KAAA,CAAA;AAEjB,MAAA,CAAA,CAAE,eAAgB,EAAA,CAAA;AAElB,MAAA,MAAM,KAAQ,GAAA,KAAA,CAAM,IAAK,CAAA,CAAA,CAAE,aAAc,KAAK,CAAA,CAAA;AAC9C,MAAA,MAAM,KAAQ,GAAA,CAAA,CAAE,YAAc,CAAA,KAAA,IAAS,EAAC,CAAA;AAClC,MAAA,KAAA,CAAA,OAAA,CAAQ,CAAC,IAAA,EAAM,KAAU,KAAA;;AACvB,QAAA,MAAA,OAAO,KAAM,CAAA,KAAA,CAAA,CAAA;AACb,QAAA,MAAA,KAAA,GAAA,CAAQ,kCAAM,gBAAN,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,IAAA,CAAA,CAAA;AACd,QAAA,IAAI,KAAO,EAAA;AACT,UAAA,IAAA,CAAK,cAAc,KAAM,CAAA,WAAA,CAAA;AAAA,SAC3B;AAAA,OACD,CAAA,CAAA;AACD,MAAA,IAAA,CAAK,QAAQ,KAAK,CAAA,CAAA;AAAA,KACpB,CAAA;AAEA,IAAA,MAAM,aAAa,MAAM;AACvB,MAAA,IAAI,CAAC,QAAS,CAAA,KAAA;AAAO,QAAA,QAAA,CAAS,KAAQ,GAAA,IAAA,CAAA;AAAA,KACxC,CAAA;AAEM,IAAA,MAAA,WAAA,GAAc,CAAC,CAAiB,KAAA;AACpC,MAAA,IAAI,CAAE,CAAA,CAAE,aAA0B,CAAA,QAAA,CAAS,EAAE,aAAwB,CAAA;AACnE,QAAA,QAAA,CAAS,KAAQ,GAAA,KAAA,CAAA;AAAA,KACrB,CAAA;;AAlEE,MAAA,OAAAA,WAAA,EAAAC,kBAAA;AAAA,QAOM,KAAA;AAAA,QAAA;AAAA,UANH,OAAKC,gBAAGC,KAAG,CAAA,EAAA,EAAA,CAAC,CAAA,UAAa,EAAAA,KAAA,CAAG,EAAA,CAAA,CAAA,EAAA,CAAE,YAAa,QAAQ,CAAA,KAAA,CAAA,CAAA,CAAA;AAAA,UACnD,MAAI,EAAAC,aAAA,CAAU,MAAM,EAAA,CAAA,SAAA,CAAA,CAAA;AAAA,UACpB,UAAQ,EAAAA,aAAA,CAAU,UAAU,EAAA,CAAA,SAAA,CAAA,CAAA;AAAA,UAC5B,WAAS,EAAAA,aAAA,CAAU,WAAW,EAAA,CAAA,SAAA,CAAA,CAAA;AAAA,SAAA;AAAA;UAE/BC,UAAA,CAAQ,IAAA,CAAA,MAAA,EAAA,SAAA,CAAA;AAAA,SAAA;AAAA;;;;;;;;;"}
1
+ {"version":3,"file":"upload-dragger.mjs","sources":["../../../../../../packages/components/upload/src/upload-dragger.ts"],"sourcesContent":["import { buildProps, isArray } from '@element-plus/utils'\n\nimport type { ExtractPropTypes, ExtractPublicPropTypes } from 'vue'\nimport type UploadDragger from './upload-dragger.vue'\n\nexport const uploadDraggerProps = buildProps({\n disabled: {\n type: Boolean,\n default: undefined,\n },\n directory: Boolean,\n} as const)\nexport type UploadDraggerProps = ExtractPropTypes<typeof uploadDraggerProps>\nexport type UploadDraggerPropsPublic = ExtractPublicPropTypes<\n typeof uploadDraggerProps\n>\n\nexport const uploadDraggerEmits = {\n file: (file: File[]) => isArray(file),\n}\nexport type UploadDraggerEmits = typeof uploadDraggerEmits\n\nexport type UploadDraggerInstance = InstanceType<typeof UploadDragger> & unknown\n"],"names":[],"mappings":";;;AAKO,MAAM,qBAAqB,UAAW,CAAA;AAAA,EAC3C,QAAU,EAAA;AAAA,IACR,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,KAAA,CAAA;AAAA,GACX;AAAA,EACA,SAAW,EAAA,OAAA;AACb,CAAU,EAAA;AAMH,MAAM,kBAAqB,GAAA;AAAA,EAChC,IAAM,EAAA,CAAC,IAAiB,KAAA,OAAA,CAAQ,IAAI,CAAA;AACtC;;;;"}
@@ -4,14 +4,17 @@ type __VLS_Slots = {} & {
4
4
  };
5
5
  declare const __VLS_base: import("vue").DefineComponent<{
6
6
  readonly disabled: import("@element-plus/nightly/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, undefined, boolean>;
7
+ readonly directory: BooleanConstructor;
7
8
  }, unknown, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
8
9
  file: (file: File[]) => void;
9
10
  }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
10
11
  readonly disabled: import("@element-plus/nightly/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, undefined, boolean>;
12
+ readonly directory: BooleanConstructor;
11
13
  }>> & {
12
14
  onFile?: ((file: File[]) => any) | undefined;
13
15
  }, {
14
16
  readonly disabled: import("@element-plus/nightly/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
17
+ readonly directory: boolean;
15
18
  }, {}>;
16
19
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
17
20
  declare const _default: typeof __VLS_export;
@@ -1,15 +1,121 @@
1
- import { buildProps } from '../../../utils/vue/props/runtime.mjs';
2
- import { isArray } from '@vue/shared';
1
+ import { defineComponent, inject, ref, openBlock, createElementBlock, normalizeClass, unref, withModifiers, renderSlot } from 'vue';
2
+ import { throwError } from '../../../utils/error.mjs';
3
+ import { flatten } from 'lodash-unified';
4
+ import { uploadContextKey } from './constants.mjs';
5
+ import { uploadDraggerProps, uploadDraggerEmits } from './upload-dragger.mjs';
6
+ import _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';
7
+ import { useNamespace } from '../../../hooks/use-namespace/index.mjs';
8
+ import { useFormDisabled } from '../../form/src/hooks/use-form-common-props.mjs';
3
9
 
4
- const uploadDraggerProps = buildProps({
5
- disabled: {
6
- type: Boolean,
7
- default: void 0
10
+ const COMPONENT_NAME = "ElUploadDrag";
11
+ const _sfc_main = defineComponent({
12
+ ...{
13
+ name: COMPONENT_NAME
14
+ },
15
+ __name: "upload-dragger",
16
+ props: uploadDraggerProps,
17
+ emits: uploadDraggerEmits,
18
+ setup(__props, { emit: __emit }) {
19
+ const props = __props;
20
+ const emit = __emit;
21
+ const uploaderContext = inject(uploadContextKey);
22
+ if (!uploaderContext) {
23
+ throwError(
24
+ COMPONENT_NAME,
25
+ "usage: <el-upload><el-upload-dragger /></el-upload>"
26
+ );
27
+ }
28
+ const ns = useNamespace("upload");
29
+ const dragover = ref(false);
30
+ const disabled = useFormDisabled();
31
+ const getFile = (entry) => {
32
+ return new Promise((resolve, reject) => entry.file(resolve, reject));
33
+ };
34
+ const getAllFiles = async (entry) => {
35
+ try {
36
+ if (entry.isFile) {
37
+ const file = await getFile(
38
+ entry
39
+ );
40
+ file.isDirectory = false;
41
+ return [file];
42
+ }
43
+ if (entry.isDirectory) {
44
+ const dirReader = entry.createReader();
45
+ const getEntries = () => {
46
+ return new Promise(
47
+ (resolve, reject) => dirReader.readEntries(resolve, reject)
48
+ );
49
+ };
50
+ const entries = [];
51
+ let readEntries = await getEntries();
52
+ while (readEntries.length > 0) {
53
+ entries.push(...readEntries);
54
+ readEntries = await getEntries();
55
+ }
56
+ const filePromises = entries.map(
57
+ (entry2) => getAllFiles(entry2).catch(() => [])
58
+ );
59
+ const files = await Promise.all(filePromises);
60
+ return flatten(files);
61
+ }
62
+ } catch (e) {
63
+ return [];
64
+ }
65
+ return [];
66
+ };
67
+ const onDrop = async (e) => {
68
+ if (disabled.value)
69
+ return;
70
+ dragover.value = false;
71
+ e.stopPropagation();
72
+ const files = Array.from(e.dataTransfer.files);
73
+ const items = e.dataTransfer.items || [];
74
+ if (props.directory) {
75
+ const entries = Array.from(items).map((item) => {
76
+ var _a;
77
+ return (_a = item == null ? void 0 : item.webkitGetAsEntry) == null ? void 0 : _a.call(item);
78
+ }).filter((entry) => entry);
79
+ const allFiles = await Promise.all(entries.map(getAllFiles));
80
+ emit("file", flatten(allFiles));
81
+ return;
82
+ }
83
+ files.forEach((file, index) => {
84
+ var _a;
85
+ const item = items[index];
86
+ const entry = (_a = item == null ? void 0 : item.webkitGetAsEntry) == null ? void 0 : _a.call(item);
87
+ if (entry) {
88
+ file.isDirectory = entry.isDirectory;
89
+ }
90
+ });
91
+ emit("file", files);
92
+ };
93
+ const onDragover = () => {
94
+ if (!disabled.value)
95
+ dragover.value = true;
96
+ };
97
+ const onDragleave = (e) => {
98
+ if (!e.currentTarget.contains(e.relatedTarget))
99
+ dragover.value = false;
100
+ };
101
+ return (_ctx, _cache) => {
102
+ return openBlock(), createElementBlock(
103
+ "div",
104
+ {
105
+ class: normalizeClass([unref(ns).b("dragger"), unref(ns).is("dragover", dragover.value)]),
106
+ onDrop: withModifiers(onDrop, ["prevent"]),
107
+ onDragover: withModifiers(onDragover, ["prevent"]),
108
+ onDragleave: withModifiers(onDragleave, ["prevent"])
109
+ },
110
+ [
111
+ renderSlot(_ctx.$slots, "default")
112
+ ],
113
+ 34
114
+ );
115
+ };
8
116
  }
9
117
  });
10
- const uploadDraggerEmits = {
11
- file: (file) => isArray(file)
12
- };
118
+ var UploadDragger = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "/home/runner/work/element-plus/element-plus/packages/components/upload/src/upload-dragger.vue"]]);
13
119
 
14
- export { uploadDraggerEmits, uploadDraggerProps };
120
+ export { UploadDragger as default };
15
121
  //# sourceMappingURL=upload-dragger2.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"upload-dragger2.mjs","sources":["../../../../../../packages/components/upload/src/upload-dragger.ts"],"sourcesContent":["import { buildProps, isArray } from '@element-plus/utils'\n\nimport type { ExtractPropTypes, ExtractPublicPropTypes } from 'vue'\nimport type UploadDragger from './upload-dragger.vue'\n\nexport const uploadDraggerProps = buildProps({\n disabled: {\n type: Boolean,\n default: undefined,\n },\n} as const)\nexport type UploadDraggerProps = ExtractPropTypes<typeof uploadDraggerProps>\nexport type UploadDraggerPropsPublic = ExtractPublicPropTypes<\n typeof uploadDraggerProps\n>\n\nexport const uploadDraggerEmits = {\n file: (file: File[]) => isArray(file),\n}\nexport type UploadDraggerEmits = typeof uploadDraggerEmits\n\nexport type UploadDraggerInstance = InstanceType<typeof UploadDragger> & unknown\n"],"names":[],"mappings":";;;AAKO,MAAM,qBAAqB,UAAW,CAAA;AAAA,EAC3C,QAAU,EAAA;AAAA,IACR,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,KAAA,CAAA;AAAA,GACX;AACF,CAAU,EAAA;AAMH,MAAM,kBAAqB,GAAA;AAAA,EAChC,IAAM,EAAA,CAAC,IAAiB,KAAA,OAAA,CAAQ,IAAI,CAAA;AACtC;;;;"}
1
+ {"version":3,"file":"upload-dragger2.mjs","sources":["../../../../../../packages/components/upload/src/upload-dragger.vue"],"sourcesContent":["<template>\n <div\n :class=\"[ns.b('dragger'), ns.is('dragover', dragover)]\"\n @drop.prevent=\"onDrop\"\n @dragover.prevent=\"onDragover\"\n @dragleave.prevent=\"onDragleave\"\n >\n <slot />\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { inject, ref } from 'vue'\nimport { useNamespace } from '@element-plus/hooks'\nimport { useFormDisabled } from '@element-plus/components/form'\nimport { throwError } from '@element-plus/utils/error'\nimport { flatten } from 'lodash-unified'\nimport { uploadContextKey } from './constants'\nimport { uploadDraggerEmits, uploadDraggerProps } from './upload-dragger'\n\nimport type { UploadRawFile } from './upload'\n\nconst COMPONENT_NAME = 'ElUploadDrag'\n\ndefineOptions({\n name: COMPONENT_NAME,\n})\n\nconst props = defineProps(uploadDraggerProps)\nconst emit = defineEmits(uploadDraggerEmits)\n\nconst uploaderContext = inject(uploadContextKey)\nif (!uploaderContext) {\n throwError(\n COMPONENT_NAME,\n 'usage: <el-upload><el-upload-dragger /></el-upload>'\n )\n}\n\nconst ns = useNamespace('upload')\nconst dragover = ref(false)\nconst disabled = useFormDisabled()\n\nconst getFile = (entry: FileSystemFileEntry): Promise<File> => {\n return new Promise((resolve, reject) => entry.file(resolve, reject))\n}\n\nconst getAllFiles = async (\n entry: FileSystemEntry\n): Promise<UploadRawFile[]> => {\n try {\n if (entry.isFile) {\n const file = (await getFile(\n entry as FileSystemFileEntry\n )) as UploadRawFile\n file.isDirectory = false\n return [file]\n }\n if (entry.isDirectory) {\n const dirReader = (entry as FileSystemDirectoryEntry).createReader()\n const getEntries = (): Promise<FileSystemEntry[]> => {\n return new Promise((resolve, reject) =>\n dirReader.readEntries(resolve, reject)\n )\n }\n\n const entries: FileSystemEntry[] = []\n let readEntries = await getEntries()\n while (readEntries.length > 0) {\n entries.push(...readEntries)\n readEntries = await getEntries()\n }\n\n const filePromises = entries.map((entry) =>\n getAllFiles(entry).catch(() => [])\n )\n\n const files = await Promise.all(filePromises)\n return flatten(files)\n }\n } catch {\n return []\n }\n return []\n}\n\nconst onDrop = async (e: DragEvent) => {\n if (disabled.value) return\n dragover.value = false\n\n e.stopPropagation()\n\n const files = Array.from(e.dataTransfer!.files) as UploadRawFile[]\n const items = e.dataTransfer!.items || []\n\n if (props.directory) {\n const entries = Array.from(items)\n .map((item) => item?.webkitGetAsEntry?.())\n .filter((entry) => entry) as FileSystemEntry[]\n\n const allFiles = await Promise.all(entries.map(getAllFiles))\n emit('file', flatten(allFiles))\n return\n }\n\n files.forEach((file, index) => {\n const item = items[index]\n const entry = item?.webkitGetAsEntry?.()\n if (entry) {\n file.isDirectory = entry.isDirectory\n }\n })\n emit('file', files)\n}\n\nconst onDragover = () => {\n if (!disabled.value) dragover.value = true\n}\n\nconst onDragleave = (e: DragEvent) => {\n if (!(e.currentTarget as Element).contains(e.relatedTarget as Element))\n dragover.value = false\n}\n</script>\n"],"names":["entry","_openBlock","_createElementBlock","_normalizeClass","_unref","_withModifiers","_renderSlot"],"mappings":"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"}
@@ -79,6 +79,7 @@ export declare const uploadBaseProps: {
79
79
  })[], unknown, unknown, UploadRequestHandler, boolean>;
80
80
  readonly disabled: import("@element-plus/nightly/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, undefined, boolean>;
81
81
  readonly limit: NumberConstructor;
82
+ readonly directory: BooleanConstructor;
82
83
  };
83
84
  export declare const uploadProps: {
84
85
  readonly beforeUpload: import("@element-plus/nightly/es/utils").EpPropFinalized<(new (...args: any[]) => (rawFile: UploadRawFile) => Awaitable<void | undefined | null | boolean | File | Blob>) | (() => (rawFile: UploadRawFile) => Awaitable<void | undefined | null | boolean | File | Blob>) | {
@@ -194,6 +195,7 @@ export declare const uploadProps: {
194
195
  })[], unknown, unknown, UploadRequestHandler, boolean>;
195
196
  readonly disabled: import("@element-plus/nightly/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, undefined, boolean>;
196
197
  readonly limit: NumberConstructor;
198
+ readonly directory: BooleanConstructor;
197
199
  };
198
200
  export type UploadProps = ExtractPropTypes<typeof uploadProps>;
199
201
  export type UploadPropsPublic = ExtractPublicPropTypes<typeof uploadProps>;
@@ -58,7 +58,8 @@ const uploadBaseProps = buildProps({
58
58
  type: Boolean,
59
59
  default: void 0
60
60
  },
61
- limit: Number
61
+ limit: Number,
62
+ directory: Boolean
62
63
  });
63
64
  const uploadProps = buildProps({
64
65
  ...uploadBaseProps,
@@ -1 +1 @@
1
- {"version":3,"file":"upload.mjs","sources":["../../../../../../packages/components/upload/src/upload.ts"],"sourcesContent":["import { NOOP, buildProps, definePropType, mutable } from '@element-plus/utils'\nimport { ajaxUpload } from './ajax'\n\nimport type { Awaitable, Mutable } from '@element-plus/utils'\nimport type { UploadAjaxError } from './ajax'\nimport type { ExtractPropTypes, ExtractPublicPropTypes } from 'vue'\nimport type Upload from './upload.vue'\n\nexport const uploadListTypes = ['text', 'picture', 'picture-card'] as const\n\nlet fileId = 1\nexport const genFileId = () => Date.now() + fileId++\n\nexport type UploadStatus = 'ready' | 'uploading' | 'success' | 'fail'\nexport interface UploadProgressEvent extends ProgressEvent {\n percent: number\n}\n\nexport interface UploadRequestOptions {\n action: string\n method: string\n data: Record<string, string | Blob | [Blob, string]>\n filename: string\n file: UploadRawFile\n headers: Headers | Record<string, string | number | null | undefined>\n onError: (evt: UploadAjaxError) => void\n onProgress: (evt: UploadProgressEvent) => void\n onSuccess: (response: any) => void\n withCredentials: boolean\n}\nexport interface UploadFile {\n name: string\n percentage?: number\n status: UploadStatus\n size?: number\n response?: unknown\n uid: number\n url?: string\n raw?: UploadRawFile\n}\nexport type UploadUserFile = Omit<UploadFile, 'status' | 'uid'> &\n Partial<Pick<UploadFile, 'status' | 'uid'>>\n\nexport type UploadFiles = UploadFile[]\nexport interface UploadRawFile extends File {\n uid: number\n isDirectory?: boolean\n}\nexport type UploadRequestHandler = (\n options: UploadRequestOptions\n) => XMLHttpRequest | Promise<unknown>\nexport interface UploadHooks {\n beforeUpload: (\n rawFile: UploadRawFile\n ) => Awaitable<void | undefined | null | boolean | File | Blob>\n beforeRemove: (\n uploadFile: UploadFile,\n uploadFiles: UploadFiles\n ) => Awaitable<boolean>\n onRemove: (uploadFile: UploadFile, uploadFiles: UploadFiles) => void\n onChange: (uploadFile: UploadFile, uploadFiles: UploadFiles) => void\n onPreview: (uploadFile: UploadFile) => void\n onSuccess: (\n response: any,\n uploadFile: UploadFile,\n uploadFiles: UploadFiles\n ) => void\n onProgress: (\n evt: UploadProgressEvent,\n uploadFile: UploadFile,\n uploadFiles: UploadFiles\n ) => void\n onError: (\n error: Error,\n uploadFile: UploadFile,\n uploadFiles: UploadFiles\n ) => void\n onExceed: (files: File[], uploadFiles: UploadUserFile[]) => void\n}\n\nexport type UploadData = Mutable<Record<string, any>>\n\nexport const uploadBaseProps = buildProps({\n /**\n * @description request URL\n */\n action: {\n type: String,\n default: '#',\n },\n /**\n * @description request headers\n */\n headers: {\n type: definePropType<Headers | Record<string, any>>(Object),\n },\n /**\n * @description set upload request method\n */\n method: {\n type: String,\n default: 'post',\n },\n /**\n * @description additions options of request\n */\n data: {\n type: definePropType<\n | Awaitable<UploadData>\n | ((rawFile: UploadRawFile) => Awaitable<UploadData>)\n >([Object, Function, Promise]),\n default: () => mutable({} as const),\n },\n /**\n * @description whether uploading multiple files is permitted\n */\n multiple: Boolean,\n /**\n * @description key name for uploaded file\n */\n name: {\n type: String,\n default: 'file',\n },\n /**\n * @description whether to activate drag and drop mode\n */\n drag: Boolean,\n /**\n * @description whether cookies are sent\n */\n withCredentials: Boolean,\n /**\n * @description whether to show the uploaded file list\n */\n showFileList: {\n type: Boolean,\n default: true,\n },\n /**\n * @description accepted [file types](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-accept), will not work when `thumbnail-mode === true`\n */\n accept: {\n type: String,\n default: '',\n },\n /**\n * @description default uploaded files\n */\n fileList: {\n type: definePropType<UploadUserFile[]>(Array),\n default: () => mutable([] as const),\n },\n /**\n * @description whether to auto upload file\n */\n autoUpload: {\n type: Boolean,\n default: true,\n },\n /**\n * @description type of file list\n */\n listType: {\n type: String,\n values: uploadListTypes,\n default: 'text',\n },\n /**\n * @description override default xhr behavior, allowing you to implement your own upload-file's request\n */\n httpRequest: {\n type: definePropType<UploadRequestHandler>(Function),\n default: ajaxUpload,\n },\n /**\n * @description whether to disable upload\n */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /**\n * @description maximum number of uploads allowed\n */\n limit: Number,\n} as const)\n\nexport const uploadProps = buildProps({\n ...uploadBaseProps,\n /**\n * @description hook function before uploading with the file to be uploaded as its parameter. If `false` is returned or a `Promise` is returned and then is rejected, uploading will be aborted\n */\n beforeUpload: {\n type: definePropType<UploadHooks['beforeUpload']>(Function),\n default: NOOP,\n },\n /**\n * @description hook function before removing a file with the file and file list as its parameters. If `false` is returned or a `Promise` is returned and then is rejected, removing will be aborted\n */\n beforeRemove: {\n type: definePropType<UploadHooks['beforeRemove']>(Function),\n },\n /**\n * @description hook function when files are removed\n */\n onRemove: {\n type: definePropType<UploadHooks['onRemove']>(Function),\n default: NOOP,\n },\n /**\n * @description hook function when select file or upload file success or upload file fail\n */\n onChange: {\n type: definePropType<UploadHooks['onChange']>(Function),\n default: NOOP,\n },\n /**\n * @description hook function when clicking the uploaded files\n */\n onPreview: {\n type: definePropType<UploadHooks['onPreview']>(Function),\n default: NOOP,\n },\n /**\n * @description hook function when uploaded successfully\n */\n onSuccess: {\n type: definePropType<UploadHooks['onSuccess']>(Function),\n default: NOOP,\n },\n /**\n * @description hook function when some progress occurs\n */\n onProgress: {\n type: definePropType<UploadHooks['onProgress']>(Function),\n default: NOOP,\n },\n /**\n * @description hook function when some errors occurs\n */\n onError: {\n type: definePropType<UploadHooks['onError']>(Function),\n default: NOOP,\n },\n /**\n * @description hook function when limit is exceeded\n */\n onExceed: {\n type: definePropType<UploadHooks['onExceed']>(Function),\n default: NOOP,\n },\n /**\n * @description set HTML attribute: crossorigin.\n */\n crossorigin: {\n type: definePropType<'anonymous' | 'use-credentials' | ''>(String),\n },\n} as const)\n\nexport type UploadProps = ExtractPropTypes<typeof uploadProps>\nexport type UploadPropsPublic = ExtractPublicPropTypes<typeof uploadProps>\n\nexport type UploadInstance = InstanceType<typeof Upload> & unknown\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"upload.mjs","sources":["../../../../../../packages/components/upload/src/upload.ts"],"sourcesContent":["import { NOOP, buildProps, definePropType, mutable } from '@element-plus/utils'\nimport { ajaxUpload } from './ajax'\n\nimport type { Awaitable, Mutable } from '@element-plus/utils'\nimport type { UploadAjaxError } from './ajax'\nimport type { ExtractPropTypes, ExtractPublicPropTypes } from 'vue'\nimport type Upload from './upload.vue'\n\nexport const uploadListTypes = ['text', 'picture', 'picture-card'] as const\n\nlet fileId = 1\nexport const genFileId = () => Date.now() + fileId++\n\nexport type UploadStatus = 'ready' | 'uploading' | 'success' | 'fail'\nexport interface UploadProgressEvent extends ProgressEvent {\n percent: number\n}\n\nexport interface UploadRequestOptions {\n action: string\n method: string\n data: Record<string, string | Blob | [Blob, string]>\n filename: string\n file: UploadRawFile\n headers: Headers | Record<string, string | number | null | undefined>\n onError: (evt: UploadAjaxError) => void\n onProgress: (evt: UploadProgressEvent) => void\n onSuccess: (response: any) => void\n withCredentials: boolean\n}\nexport interface UploadFile {\n name: string\n percentage?: number\n status: UploadStatus\n size?: number\n response?: unknown\n uid: number\n url?: string\n raw?: UploadRawFile\n}\nexport type UploadUserFile = Omit<UploadFile, 'status' | 'uid'> &\n Partial<Pick<UploadFile, 'status' | 'uid'>>\n\nexport type UploadFiles = UploadFile[]\nexport interface UploadRawFile extends File {\n uid: number\n isDirectory?: boolean\n}\nexport type UploadRequestHandler = (\n options: UploadRequestOptions\n) => XMLHttpRequest | Promise<unknown>\nexport interface UploadHooks {\n beforeUpload: (\n rawFile: UploadRawFile\n ) => Awaitable<void | undefined | null | boolean | File | Blob>\n beforeRemove: (\n uploadFile: UploadFile,\n uploadFiles: UploadFiles\n ) => Awaitable<boolean>\n onRemove: (uploadFile: UploadFile, uploadFiles: UploadFiles) => void\n onChange: (uploadFile: UploadFile, uploadFiles: UploadFiles) => void\n onPreview: (uploadFile: UploadFile) => void\n onSuccess: (\n response: any,\n uploadFile: UploadFile,\n uploadFiles: UploadFiles\n ) => void\n onProgress: (\n evt: UploadProgressEvent,\n uploadFile: UploadFile,\n uploadFiles: UploadFiles\n ) => void\n onError: (\n error: Error,\n uploadFile: UploadFile,\n uploadFiles: UploadFiles\n ) => void\n onExceed: (files: File[], uploadFiles: UploadUserFile[]) => void\n}\n\nexport type UploadData = Mutable<Record<string, any>>\n\nexport const uploadBaseProps = buildProps({\n /**\n * @description request URL\n */\n action: {\n type: String,\n default: '#',\n },\n /**\n * @description request headers\n */\n headers: {\n type: definePropType<Headers | Record<string, any>>(Object),\n },\n /**\n * @description set upload request method\n */\n method: {\n type: String,\n default: 'post',\n },\n /**\n * @description additions options of request\n */\n data: {\n type: definePropType<\n | Awaitable<UploadData>\n | ((rawFile: UploadRawFile) => Awaitable<UploadData>)\n >([Object, Function, Promise]),\n default: () => mutable({} as const),\n },\n /**\n * @description whether uploading multiple files is permitted\n */\n multiple: Boolean,\n /**\n * @description key name for uploaded file\n */\n name: {\n type: String,\n default: 'file',\n },\n /**\n * @description whether to activate drag and drop mode\n */\n drag: Boolean,\n /**\n * @description whether cookies are sent\n */\n withCredentials: Boolean,\n /**\n * @description whether to show the uploaded file list\n */\n showFileList: {\n type: Boolean,\n default: true,\n },\n /**\n * @description accepted [file types](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-accept), will not work when `thumbnail-mode === true`\n */\n accept: {\n type: String,\n default: '',\n },\n /**\n * @description default uploaded files\n */\n fileList: {\n type: definePropType<UploadUserFile[]>(Array),\n default: () => mutable([] as const),\n },\n /**\n * @description whether to auto upload file\n */\n autoUpload: {\n type: Boolean,\n default: true,\n },\n /**\n * @description type of file list\n */\n listType: {\n type: String,\n values: uploadListTypes,\n default: 'text',\n },\n /**\n * @description override default xhr behavior, allowing you to implement your own upload-file's request\n */\n httpRequest: {\n type: definePropType<UploadRequestHandler>(Function),\n default: ajaxUpload,\n },\n /**\n * @description whether to disable upload\n */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /**\n * @description maximum number of uploads allowed\n */\n limit: Number,\n /**\n * @description whether to support uploading directory\n */\n directory: Boolean,\n} as const)\n\nexport const uploadProps = buildProps({\n ...uploadBaseProps,\n /**\n * @description hook function before uploading with the file to be uploaded as its parameter. If `false` is returned or a `Promise` is returned and then is rejected, uploading will be aborted\n */\n beforeUpload: {\n type: definePropType<UploadHooks['beforeUpload']>(Function),\n default: NOOP,\n },\n /**\n * @description hook function before removing a file with the file and file list as its parameters. If `false` is returned or a `Promise` is returned and then is rejected, removing will be aborted\n */\n beforeRemove: {\n type: definePropType<UploadHooks['beforeRemove']>(Function),\n },\n /**\n * @description hook function when files are removed\n */\n onRemove: {\n type: definePropType<UploadHooks['onRemove']>(Function),\n default: NOOP,\n },\n /**\n * @description hook function when select file or upload file success or upload file fail\n */\n onChange: {\n type: definePropType<UploadHooks['onChange']>(Function),\n default: NOOP,\n },\n /**\n * @description hook function when clicking the uploaded files\n */\n onPreview: {\n type: definePropType<UploadHooks['onPreview']>(Function),\n default: NOOP,\n },\n /**\n * @description hook function when uploaded successfully\n */\n onSuccess: {\n type: definePropType<UploadHooks['onSuccess']>(Function),\n default: NOOP,\n },\n /**\n * @description hook function when some progress occurs\n */\n onProgress: {\n type: definePropType<UploadHooks['onProgress']>(Function),\n default: NOOP,\n },\n /**\n * @description hook function when some errors occurs\n */\n onError: {\n type: definePropType<UploadHooks['onError']>(Function),\n default: NOOP,\n },\n /**\n * @description hook function when limit is exceeded\n */\n onExceed: {\n type: definePropType<UploadHooks['onExceed']>(Function),\n default: NOOP,\n },\n /**\n * @description set HTML attribute: crossorigin.\n */\n crossorigin: {\n type: definePropType<'anonymous' | 'use-credentials' | ''>(String),\n },\n} as const)\n\nexport type UploadProps = ExtractPropTypes<typeof uploadProps>\nexport type UploadPropsPublic = ExtractPublicPropTypes<typeof uploadProps>\n\nexport type UploadInstance = InstanceType<typeof Upload> & unknown\n"],"names":[],"mappings":"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"}
@@ -136,6 +136,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
136
136
  })[], unknown, unknown, import("./upload").UploadRequestHandler, boolean>;
137
137
  readonly disabled: import("@element-plus/nightly/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, undefined, boolean>;
138
138
  readonly limit: NumberConstructor;
139
+ readonly directory: BooleanConstructor;
139
140
  }, {
140
141
  /** @description cancel upload request */
141
142
  abort: (file: import("./upload").UploadFile) => void;
@@ -261,6 +262,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
261
262
  })[], unknown, unknown, import("./upload").UploadRequestHandler, boolean>;
262
263
  readonly disabled: import("@element-plus/nightly/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, undefined, boolean>;
263
264
  readonly limit: NumberConstructor;
265
+ readonly directory: BooleanConstructor;
264
266
  }>>, {
265
267
  readonly data: import("@element-plus/nightly/es/utils").EpPropMergeType<(new (...args: any[]) => import("@element-plus/nightly/es/utils").Mutable<Record<string, any>> | Promise<import("@element-plus/nightly/es/utils").Mutable<Record<string, any>>> | ((rawFile: import("./upload").UploadRawFile) => import("@element-plus/nightly/es/utils").Awaitable<import("./upload").UploadData>)) | (() => import("@element-plus/nightly/es/utils").Awaitable<import("@element-plus/nightly/es/utils").Mutable<Record<string, any>>> | ((rawFile: import("./upload").UploadRawFile) => import("@element-plus/nightly/es/utils").Awaitable<import("./upload").UploadData>)) | ((new (...args: any[]) => import("@element-plus/nightly/es/utils").Mutable<Record<string, any>> | Promise<import("@element-plus/nightly/es/utils").Mutable<Record<string, any>>> | ((rawFile: import("./upload").UploadRawFile) => import("@element-plus/nightly/es/utils").Awaitable<import("./upload").UploadData>)) | (() => import("@element-plus/nightly/es/utils").Awaitable<import("@element-plus/nightly/es/utils").Mutable<Record<string, any>>> | ((rawFile: import("./upload").UploadRawFile) => import("@element-plus/nightly/es/utils").Awaitable<import("./upload").UploadData>)))[], unknown, unknown>;
266
268
  readonly disabled: import("@element-plus/nightly/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
@@ -279,6 +281,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
279
281
  readonly autoUpload: import("@element-plus/nightly/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
280
282
  readonly listType: import("@element-plus/nightly/es/utils").EpPropMergeType<StringConstructor, "picture" | "text" | "picture-card", unknown>;
281
283
  readonly httpRequest: import("./upload").UploadRequestHandler;
284
+ readonly directory: boolean;
282
285
  readonly beforeUpload: (rawFile: import("./upload").UploadRawFile) => import("@element-plus/nightly/es/utils").Awaitable<void | undefined | null | boolean | File | Blob>;
283
286
  readonly onRemove: (uploadFile: import("./upload").UploadFile, uploadFiles: import("./upload").UploadFiles) => void;
284
287
  readonly onPreview: (uploadFile: import("./upload").UploadFile) => void;
@@ -5,9 +5,9 @@ const useGridWheel = ({ atXEndEdge, atXStartEdge, atYEndEdge, atYStartEdge }, on
5
5
  let xOffset = 0;
6
6
  let yOffset = 0;
7
7
  const hasReachedEdge = (x, y) => {
8
- const xEdgeReached = x <= 0 && atXStartEdge.value || x >= 0 && atXEndEdge.value;
9
- const yEdgeReached = y <= 0 && atYStartEdge.value || y >= 0 && atYEndEdge.value;
10
- return xEdgeReached && yEdgeReached;
8
+ const xEdgeReached = x < 0 && atXStartEdge.value || x > 0 && atXEndEdge.value;
9
+ const yEdgeReached = y < 0 && atYStartEdge.value || y > 0 && atYEndEdge.value;
10
+ return xEdgeReached || yEdgeReached;
11
11
  };
12
12
  const onWheel = (e) => {
13
13
  cAF(frameHandle);
@@ -22,7 +22,7 @@ const useGridWheel = ({ atXEndEdge, atXStartEdge, atYEndEdge, atYStartEdge }, on
22
22
  x = y;
23
23
  y = 0;
24
24
  }
25
- if (hasReachedEdge(xOffset, yOffset) && hasReachedEdge(xOffset + x, yOffset + y))
25
+ if (hasReachedEdge(x, y))
26
26
  return;
27
27
  xOffset += x;
28
28
  yOffset += y;
@@ -1 +1 @@
1
- {"version":3,"file":"use-grid-wheel.mjs","sources":["../../../../../../../packages/components/virtual-list/src/hooks/use-grid-wheel.ts"],"sourcesContent":["import { cAF, rAF } from '@element-plus/utils'\n\nimport type { ComputedRef } from 'vue'\n\ninterface GridWheelState {\n atXStartEdge: ComputedRef<boolean>\n atXEndEdge: ComputedRef<boolean>\n atYStartEdge: ComputedRef<boolean>\n atYEndEdge: ComputedRef<boolean>\n}\n\ntype GridWheelHandler = (x: number, y: number) => void\n\nexport const useGridWheel = (\n { atXEndEdge, atXStartEdge, atYEndEdge, atYStartEdge }: GridWheelState,\n onWheelDelta: GridWheelHandler\n) => {\n let frameHandle: number | null = null\n let xOffset = 0\n let yOffset = 0\n\n const hasReachedEdge = (x: number, y: number) => {\n const xEdgeReached =\n (x <= 0 && atXStartEdge.value) || (x >= 0 && atXEndEdge.value)\n const yEdgeReached =\n (y <= 0 && atYStartEdge.value) || (y >= 0 && atYEndEdge.value)\n return xEdgeReached && yEdgeReached\n }\n\n const onWheel = (e: WheelEvent) => {\n cAF(frameHandle!)\n\n let x = e.deltaX\n let y = e.deltaY\n // Simulate native behavior when using touch pad/track pad for wheeling.\n if (Math.abs(x) > Math.abs(y)) {\n y = 0\n } else {\n x = 0\n }\n\n // Special case for windows machine with shift key + wheel scrolling\n if (e.shiftKey && y !== 0) {\n x = y\n y = 0\n }\n\n if (\n hasReachedEdge(xOffset, yOffset) &&\n hasReachedEdge(xOffset + x, yOffset + y)\n )\n return\n\n xOffset += x\n yOffset += y\n\n e.preventDefault()\n\n frameHandle = rAF(() => {\n onWheelDelta(xOffset, yOffset)\n xOffset = 0\n yOffset = 0\n })\n }\n\n return {\n hasReachedEdge,\n onWheel,\n }\n}\n"],"names":[],"mappings":";;AAaa,MAAA,YAAA,GAAe,CAC1B,EAAE,UAAA,EAAY,cAAc,UAAY,EAAA,YAAA,IACxC,YACG,KAAA;AACH,EAAA,IAAI,WAA6B,GAAA,IAAA,CAAA;AACjC,EAAA,IAAI,OAAU,GAAA,CAAA,CAAA;AACd,EAAA,IAAI,OAAU,GAAA,CAAA,CAAA;AAEd,EAAM,MAAA,cAAA,GAAiB,CAAC,CAAA,EAAW,CAAc,KAAA;AAC/C,IAAA,MAAM,eACH,CAAK,IAAA,CAAA,IAAK,aAAa,KAAW,IAAA,CAAA,IAAK,KAAK,UAAW,CAAA,KAAA,CAAA;AAC1D,IAAA,MAAM,eACH,CAAK,IAAA,CAAA,IAAK,aAAa,KAAW,IAAA,CAAA,IAAK,KAAK,UAAW,CAAA,KAAA,CAAA;AAC1D,IAAA,OAAO,YAAgB,IAAA,YAAA,CAAA;AAAA,GACzB,CAAA;AAEA,EAAM,MAAA,OAAA,GAAU,CAAC,CAAkB,KAAA;AACjC,IAAA,GAAA,CAAI,WAAY,CAAA,CAAA;AAEhB,IAAA,IAAI,IAAI,CAAE,CAAA,MAAA,CAAA;AACV,IAAA,IAAI,IAAI,CAAE,CAAA,MAAA,CAAA;AAEV,IAAA,IAAI,KAAK,GAAI,CAAA,CAAC,IAAI,IAAK,CAAA,GAAA,CAAI,CAAC,CAAG,EAAA;AAC7B,MAAI,CAAA,GAAA,CAAA,CAAA;AAAA,KACC,MAAA;AACL,MAAI,CAAA,GAAA,CAAA,CAAA;AAAA,KACN;AAGA,IAAI,IAAA,CAAA,CAAE,QAAY,IAAA,CAAA,KAAM,CAAG,EAAA;AACzB,MAAI,CAAA,GAAA,CAAA,CAAA;AACJ,MAAI,CAAA,GAAA,CAAA,CAAA;AAAA,KACN;AAEA,IACE,IAAA,cAAA,CAAe,SAAS,OAAO,CAAA,IAC/B,eAAe,OAAU,GAAA,CAAA,EAAG,UAAU,CAAC,CAAA;AAEvC,MAAA,OAAA;AAEF,IAAW,OAAA,IAAA,CAAA,CAAA;AACX,IAAW,OAAA,IAAA,CAAA,CAAA;AAEX,IAAA,CAAA,CAAE,cAAe,EAAA,CAAA;AAEjB,IAAA,WAAA,GAAc,IAAI,MAAM;AACtB,MAAA,YAAA,CAAa,SAAS,OAAO,CAAA,CAAA;AAC7B,MAAU,OAAA,GAAA,CAAA,CAAA;AACV,MAAU,OAAA,GAAA,CAAA,CAAA;AAAA,KACX,CAAA,CAAA;AAAA,GACH,CAAA;AAEA,EAAO,OAAA;AAAA,IACL,cAAA;AAAA,IACA,OAAA;AAAA,GACF,CAAA;AACF;;;;"}
1
+ {"version":3,"file":"use-grid-wheel.mjs","sources":["../../../../../../../packages/components/virtual-list/src/hooks/use-grid-wheel.ts"],"sourcesContent":["import { cAF, rAF } from '@element-plus/utils'\n\nimport type { ComputedRef } from 'vue'\n\ninterface GridWheelState {\n atXStartEdge: ComputedRef<boolean>\n atXEndEdge: ComputedRef<boolean>\n atYStartEdge: ComputedRef<boolean>\n atYEndEdge: ComputedRef<boolean>\n}\n\ntype GridWheelHandler = (x: number, y: number) => void\n\nexport const useGridWheel = (\n { atXEndEdge, atXStartEdge, atYEndEdge, atYStartEdge }: GridWheelState,\n onWheelDelta: GridWheelHandler\n) => {\n let frameHandle: number | null = null\n let xOffset = 0\n let yOffset = 0\n\n const hasReachedEdge = (x: number, y: number) => {\n const xEdgeReached =\n (x < 0 && atXStartEdge.value) || (x > 0 && atXEndEdge.value)\n const yEdgeReached =\n (y < 0 && atYStartEdge.value) || (y > 0 && atYEndEdge.value)\n return xEdgeReached || yEdgeReached\n }\n\n const onWheel = (e: WheelEvent) => {\n cAF(frameHandle!)\n\n let x = e.deltaX\n let y = e.deltaY\n // Simulate native behavior when using touch pad/track pad for wheeling.\n if (Math.abs(x) > Math.abs(y)) {\n y = 0\n } else {\n x = 0\n }\n\n // Special case for windows machine with shift key + wheel scrolling\n if (e.shiftKey && y !== 0) {\n x = y\n y = 0\n }\n\n if (hasReachedEdge(x, y)) return\n\n xOffset += x\n yOffset += y\n\n e.preventDefault()\n\n frameHandle = rAF(() => {\n onWheelDelta(xOffset, yOffset)\n xOffset = 0\n yOffset = 0\n })\n }\n\n return {\n hasReachedEdge,\n onWheel,\n }\n}\n"],"names":[],"mappings":";;AAaa,MAAA,YAAA,GAAe,CAC1B,EAAE,UAAA,EAAY,cAAc,UAAY,EAAA,YAAA,IACxC,YACG,KAAA;AACH,EAAA,IAAI,WAA6B,GAAA,IAAA,CAAA;AACjC,EAAA,IAAI,OAAU,GAAA,CAAA,CAAA;AACd,EAAA,IAAI,OAAU,GAAA,CAAA,CAAA;AAEd,EAAM,MAAA,cAAA,GAAiB,CAAC,CAAA,EAAW,CAAc,KAAA;AAC/C,IAAA,MAAM,eACH,CAAI,GAAA,CAAA,IAAK,aAAa,KAAW,IAAA,CAAA,GAAI,KAAK,UAAW,CAAA,KAAA,CAAA;AACxD,IAAA,MAAM,eACH,CAAI,GAAA,CAAA,IAAK,aAAa,KAAW,IAAA,CAAA,GAAI,KAAK,UAAW,CAAA,KAAA,CAAA;AACxD,IAAA,OAAO,YAAgB,IAAA,YAAA,CAAA;AAAA,GACzB,CAAA;AAEA,EAAM,MAAA,OAAA,GAAU,CAAC,CAAkB,KAAA;AACjC,IAAA,GAAA,CAAI,WAAY,CAAA,CAAA;AAEhB,IAAA,IAAI,IAAI,CAAE,CAAA,MAAA,CAAA;AACV,IAAA,IAAI,IAAI,CAAE,CAAA,MAAA,CAAA;AAEV,IAAA,IAAI,KAAK,GAAI,CAAA,CAAC,IAAI,IAAK,CAAA,GAAA,CAAI,CAAC,CAAG,EAAA;AAC7B,MAAI,CAAA,GAAA,CAAA,CAAA;AAAA,KACC,MAAA;AACL,MAAI,CAAA,GAAA,CAAA,CAAA;AAAA,KACN;AAGA,IAAI,IAAA,CAAA,CAAE,QAAY,IAAA,CAAA,KAAM,CAAG,EAAA;AACzB,MAAI,CAAA,GAAA,CAAA,CAAA;AACJ,MAAI,CAAA,GAAA,CAAA,CAAA;AAAA,KACN;AAEA,IAAI,IAAA,cAAA,CAAe,GAAG,CAAC,CAAA;AAAG,MAAA,OAAA;AAE1B,IAAW,OAAA,IAAA,CAAA,CAAA;AACX,IAAW,OAAA,IAAA,CAAA,CAAA;AAEX,IAAA,CAAA,CAAE,cAAe,EAAA,CAAA;AAEjB,IAAA,WAAA,GAAc,IAAI,MAAM;AACtB,MAAA,YAAA,CAAa,SAAS,OAAO,CAAA,CAAA;AAC7B,MAAU,OAAA,GAAA,CAAA,CAAA;AACV,MAAU,OAAA,GAAA,CAAA,CAAA;AAAA,KACX,CAAA,CAAA;AAAA,GACH,CAAA;AAEA,EAAO,OAAA;AAAA,IACL,cAAA;AAAA,IACA,OAAA;AAAA,GACF,CAAA;AACF;;;;"}