@element-plus/nightly 0.0.20241021 → 0.0.20241023

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 (427) hide show
  1. package/attributes.json +1 -1
  2. package/dist/index.full.js +40 -8
  3. package/dist/index.full.min.js +9 -9
  4. package/dist/index.full.min.js.map +1 -1
  5. package/dist/index.full.min.mjs +10 -10
  6. package/dist/index.full.min.mjs.map +1 -1
  7. package/dist/index.full.mjs +40 -8
  8. package/dist/locale/af.js +1 -1
  9. package/dist/locale/af.min.js +1 -1
  10. package/dist/locale/af.min.mjs +1 -1
  11. package/dist/locale/af.mjs +1 -1
  12. package/dist/locale/ar-eg.js +1 -1
  13. package/dist/locale/ar-eg.min.js +1 -1
  14. package/dist/locale/ar-eg.min.mjs +1 -1
  15. package/dist/locale/ar-eg.mjs +1 -1
  16. package/dist/locale/ar.js +1 -1
  17. package/dist/locale/ar.min.js +1 -1
  18. package/dist/locale/ar.min.mjs +1 -1
  19. package/dist/locale/ar.mjs +1 -1
  20. package/dist/locale/az.js +1 -1
  21. package/dist/locale/az.min.js +1 -1
  22. package/dist/locale/az.min.mjs +1 -1
  23. package/dist/locale/az.mjs +1 -1
  24. package/dist/locale/bg.js +1 -1
  25. package/dist/locale/bg.min.js +1 -1
  26. package/dist/locale/bg.min.mjs +1 -1
  27. package/dist/locale/bg.mjs +1 -1
  28. package/dist/locale/bn.js +1 -1
  29. package/dist/locale/bn.min.js +1 -1
  30. package/dist/locale/bn.min.mjs +1 -1
  31. package/dist/locale/bn.mjs +1 -1
  32. package/dist/locale/ca.js +1 -1
  33. package/dist/locale/ca.min.js +1 -1
  34. package/dist/locale/ca.min.mjs +1 -1
  35. package/dist/locale/ca.mjs +1 -1
  36. package/dist/locale/ckb.js +1 -1
  37. package/dist/locale/ckb.min.js +1 -1
  38. package/dist/locale/ckb.min.mjs +1 -1
  39. package/dist/locale/ckb.mjs +1 -1
  40. package/dist/locale/cs.js +1 -1
  41. package/dist/locale/cs.min.js +1 -1
  42. package/dist/locale/cs.min.mjs +1 -1
  43. package/dist/locale/cs.mjs +1 -1
  44. package/dist/locale/da.js +1 -1
  45. package/dist/locale/da.min.js +1 -1
  46. package/dist/locale/da.min.mjs +1 -1
  47. package/dist/locale/da.mjs +1 -1
  48. package/dist/locale/de.js +1 -1
  49. package/dist/locale/de.min.js +1 -1
  50. package/dist/locale/de.min.mjs +1 -1
  51. package/dist/locale/de.mjs +1 -1
  52. package/dist/locale/el.js +1 -1
  53. package/dist/locale/el.min.js +1 -1
  54. package/dist/locale/el.min.mjs +1 -1
  55. package/dist/locale/el.mjs +1 -1
  56. package/dist/locale/en.js +1 -1
  57. package/dist/locale/en.min.js +1 -1
  58. package/dist/locale/en.min.mjs +1 -1
  59. package/dist/locale/en.mjs +1 -1
  60. package/dist/locale/eo.js +1 -1
  61. package/dist/locale/eo.min.js +1 -1
  62. package/dist/locale/eo.min.mjs +1 -1
  63. package/dist/locale/eo.mjs +1 -1
  64. package/dist/locale/es.js +1 -1
  65. package/dist/locale/es.min.js +1 -1
  66. package/dist/locale/es.min.mjs +1 -1
  67. package/dist/locale/es.mjs +1 -1
  68. package/dist/locale/et.js +1 -1
  69. package/dist/locale/et.min.js +1 -1
  70. package/dist/locale/et.min.mjs +1 -1
  71. package/dist/locale/et.mjs +1 -1
  72. package/dist/locale/eu.js +1 -1
  73. package/dist/locale/eu.min.js +1 -1
  74. package/dist/locale/eu.min.mjs +1 -1
  75. package/dist/locale/eu.mjs +1 -1
  76. package/dist/locale/fa.js +1 -1
  77. package/dist/locale/fa.min.js +1 -1
  78. package/dist/locale/fa.min.mjs +1 -1
  79. package/dist/locale/fa.mjs +1 -1
  80. package/dist/locale/fi.js +1 -1
  81. package/dist/locale/fi.min.js +1 -1
  82. package/dist/locale/fi.min.mjs +1 -1
  83. package/dist/locale/fi.mjs +1 -1
  84. package/dist/locale/fr.js +1 -1
  85. package/dist/locale/fr.min.js +1 -1
  86. package/dist/locale/fr.min.mjs +1 -1
  87. package/dist/locale/fr.mjs +1 -1
  88. package/dist/locale/he.js +1 -1
  89. package/dist/locale/he.min.js +1 -1
  90. package/dist/locale/he.min.mjs +1 -1
  91. package/dist/locale/he.mjs +1 -1
  92. package/dist/locale/hr.js +1 -1
  93. package/dist/locale/hr.min.js +1 -1
  94. package/dist/locale/hr.min.mjs +1 -1
  95. package/dist/locale/hr.mjs +1 -1
  96. package/dist/locale/hu.js +1 -1
  97. package/dist/locale/hu.min.js +1 -1
  98. package/dist/locale/hu.min.mjs +1 -1
  99. package/dist/locale/hu.mjs +1 -1
  100. package/dist/locale/hy-am.js +1 -1
  101. package/dist/locale/hy-am.min.js +1 -1
  102. package/dist/locale/hy-am.min.mjs +1 -1
  103. package/dist/locale/hy-am.mjs +1 -1
  104. package/dist/locale/id.js +1 -1
  105. package/dist/locale/id.min.js +1 -1
  106. package/dist/locale/id.min.mjs +1 -1
  107. package/dist/locale/id.mjs +1 -1
  108. package/dist/locale/it.js +1 -1
  109. package/dist/locale/it.min.js +1 -1
  110. package/dist/locale/it.min.mjs +1 -1
  111. package/dist/locale/it.mjs +1 -1
  112. package/dist/locale/ja.js +1 -1
  113. package/dist/locale/ja.min.js +1 -1
  114. package/dist/locale/ja.min.mjs +1 -1
  115. package/dist/locale/ja.mjs +1 -1
  116. package/dist/locale/kk.js +1 -1
  117. package/dist/locale/kk.min.js +1 -1
  118. package/dist/locale/kk.min.mjs +1 -1
  119. package/dist/locale/kk.mjs +1 -1
  120. package/dist/locale/km.js +1 -1
  121. package/dist/locale/km.min.js +1 -1
  122. package/dist/locale/km.min.mjs +1 -1
  123. package/dist/locale/km.mjs +1 -1
  124. package/dist/locale/ko.js +1 -1
  125. package/dist/locale/ko.min.js +1 -1
  126. package/dist/locale/ko.min.mjs +1 -1
  127. package/dist/locale/ko.mjs +1 -1
  128. package/dist/locale/ku.js +1 -1
  129. package/dist/locale/ku.min.js +1 -1
  130. package/dist/locale/ku.min.mjs +1 -1
  131. package/dist/locale/ku.mjs +1 -1
  132. package/dist/locale/ky.js +1 -1
  133. package/dist/locale/ky.min.js +1 -1
  134. package/dist/locale/ky.min.mjs +1 -1
  135. package/dist/locale/ky.mjs +1 -1
  136. package/dist/locale/lt.js +1 -1
  137. package/dist/locale/lt.min.js +1 -1
  138. package/dist/locale/lt.min.mjs +1 -1
  139. package/dist/locale/lt.mjs +1 -1
  140. package/dist/locale/lv.js +1 -1
  141. package/dist/locale/lv.min.js +1 -1
  142. package/dist/locale/lv.min.mjs +1 -1
  143. package/dist/locale/lv.mjs +1 -1
  144. package/dist/locale/mg.js +1 -1
  145. package/dist/locale/mg.min.js +1 -1
  146. package/dist/locale/mg.min.mjs +1 -1
  147. package/dist/locale/mg.mjs +1 -1
  148. package/dist/locale/mn.js +1 -1
  149. package/dist/locale/mn.min.js +1 -1
  150. package/dist/locale/mn.min.mjs +1 -1
  151. package/dist/locale/mn.mjs +1 -1
  152. package/dist/locale/my.js +1 -1
  153. package/dist/locale/my.min.js +1 -1
  154. package/dist/locale/my.min.mjs +1 -1
  155. package/dist/locale/my.mjs +1 -1
  156. package/dist/locale/nb-no.js +1 -1
  157. package/dist/locale/nb-no.min.js +1 -1
  158. package/dist/locale/nb-no.min.mjs +1 -1
  159. package/dist/locale/nb-no.mjs +1 -1
  160. package/dist/locale/nl.js +1 -1
  161. package/dist/locale/nl.min.js +1 -1
  162. package/dist/locale/nl.min.mjs +1 -1
  163. package/dist/locale/nl.mjs +1 -1
  164. package/dist/locale/pa.js +1 -1
  165. package/dist/locale/pa.min.js +1 -1
  166. package/dist/locale/pa.min.mjs +1 -1
  167. package/dist/locale/pa.mjs +1 -1
  168. package/dist/locale/pl.js +1 -1
  169. package/dist/locale/pl.min.js +1 -1
  170. package/dist/locale/pl.min.mjs +1 -1
  171. package/dist/locale/pl.mjs +1 -1
  172. package/dist/locale/pt-br.js +1 -1
  173. package/dist/locale/pt-br.min.js +1 -1
  174. package/dist/locale/pt-br.min.mjs +1 -1
  175. package/dist/locale/pt-br.mjs +1 -1
  176. package/dist/locale/pt.js +1 -1
  177. package/dist/locale/pt.min.js +1 -1
  178. package/dist/locale/pt.min.mjs +1 -1
  179. package/dist/locale/pt.mjs +1 -1
  180. package/dist/locale/ro.js +1 -1
  181. package/dist/locale/ro.min.js +1 -1
  182. package/dist/locale/ro.min.mjs +1 -1
  183. package/dist/locale/ro.mjs +1 -1
  184. package/dist/locale/ru.js +1 -1
  185. package/dist/locale/ru.min.js +1 -1
  186. package/dist/locale/ru.min.mjs +1 -1
  187. package/dist/locale/ru.mjs +1 -1
  188. package/dist/locale/sk.js +1 -1
  189. package/dist/locale/sk.min.js +1 -1
  190. package/dist/locale/sk.min.mjs +1 -1
  191. package/dist/locale/sk.mjs +1 -1
  192. package/dist/locale/sl.js +1 -1
  193. package/dist/locale/sl.min.js +1 -1
  194. package/dist/locale/sl.min.mjs +1 -1
  195. package/dist/locale/sl.mjs +1 -1
  196. package/dist/locale/sr.js +1 -1
  197. package/dist/locale/sr.min.js +1 -1
  198. package/dist/locale/sr.min.mjs +1 -1
  199. package/dist/locale/sr.mjs +1 -1
  200. package/dist/locale/sv.js +1 -1
  201. package/dist/locale/sv.min.js +1 -1
  202. package/dist/locale/sv.min.mjs +1 -1
  203. package/dist/locale/sv.mjs +1 -1
  204. package/dist/locale/sw.js +1 -1
  205. package/dist/locale/sw.min.js +1 -1
  206. package/dist/locale/sw.min.mjs +1 -1
  207. package/dist/locale/sw.mjs +1 -1
  208. package/dist/locale/ta.js +1 -1
  209. package/dist/locale/ta.min.js +1 -1
  210. package/dist/locale/ta.min.mjs +1 -1
  211. package/dist/locale/ta.mjs +1 -1
  212. package/dist/locale/th.js +1 -1
  213. package/dist/locale/th.min.js +1 -1
  214. package/dist/locale/th.min.mjs +1 -1
  215. package/dist/locale/th.mjs +1 -1
  216. package/dist/locale/tk.js +1 -1
  217. package/dist/locale/tk.min.js +1 -1
  218. package/dist/locale/tk.min.mjs +1 -1
  219. package/dist/locale/tk.mjs +1 -1
  220. package/dist/locale/tr.js +1 -1
  221. package/dist/locale/tr.min.js +1 -1
  222. package/dist/locale/tr.min.mjs +1 -1
  223. package/dist/locale/tr.mjs +1 -1
  224. package/dist/locale/ug-cn.js +1 -1
  225. package/dist/locale/ug-cn.min.js +1 -1
  226. package/dist/locale/ug-cn.min.mjs +1 -1
  227. package/dist/locale/ug-cn.mjs +1 -1
  228. package/dist/locale/uk.js +1 -1
  229. package/dist/locale/uk.min.js +1 -1
  230. package/dist/locale/uk.min.mjs +1 -1
  231. package/dist/locale/uk.mjs +1 -1
  232. package/dist/locale/uz-uz.js +1 -1
  233. package/dist/locale/uz-uz.min.js +1 -1
  234. package/dist/locale/uz-uz.min.mjs +1 -1
  235. package/dist/locale/uz-uz.mjs +1 -1
  236. package/dist/locale/vi.js +1 -1
  237. package/dist/locale/vi.min.js +1 -1
  238. package/dist/locale/vi.min.mjs +1 -1
  239. package/dist/locale/vi.mjs +1 -1
  240. package/dist/locale/zh-cn.js +1 -1
  241. package/dist/locale/zh-cn.min.js +1 -1
  242. package/dist/locale/zh-cn.min.mjs +1 -1
  243. package/dist/locale/zh-cn.mjs +1 -1
  244. package/dist/locale/zh-tw.js +1 -1
  245. package/dist/locale/zh-tw.min.js +1 -1
  246. package/dist/locale/zh-tw.min.mjs +1 -1
  247. package/dist/locale/zh-tw.mjs +1 -1
  248. package/es/components/avatar/index.mjs +2 -2
  249. package/es/components/avatar/src/avatar.mjs +32 -66
  250. package/es/components/avatar/src/avatar.mjs.map +1 -1
  251. package/es/components/avatar/src/avatar2.mjs +66 -32
  252. package/es/components/avatar/src/avatar2.mjs.map +1 -1
  253. package/es/components/cascader/index.mjs +2 -2
  254. package/es/components/cascader/src/cascader.mjs +83 -627
  255. package/es/components/cascader/src/cascader.mjs.map +1 -1
  256. package/es/components/cascader/src/cascader2.mjs +627 -83
  257. package/es/components/cascader/src/cascader2.mjs.map +1 -1
  258. package/es/components/date-picker/src/date-picker-com/panel-date-pick.mjs +1 -1
  259. package/es/components/date-picker/src/date-picker-com/panel-date-pick.mjs.map +1 -1
  260. package/es/components/date-picker/src/date-picker-com/panel-date-pick.vue.d.ts +3 -0
  261. package/es/components/date-picker/src/date-picker-com/panel-date-range.vue.d.ts +3 -0
  262. package/es/components/date-picker/src/date-picker.d.ts +3 -0
  263. package/es/components/date-picker/src/panel-utils.d.ts +16 -2
  264. package/es/components/date-picker/src/props/date-picker.d.ts +1 -0
  265. package/es/components/date-picker/src/props/panel-date-pick.d.ts +1 -0
  266. package/es/components/date-picker/src/props/panel-date-range.d.ts +1 -0
  267. package/es/components/date-picker/src/props/shared.d.ts +1 -0
  268. package/es/components/date-picker/src/props/shared.mjs +5 -1
  269. package/es/components/date-picker/src/props/shared.mjs.map +1 -1
  270. package/es/components/descriptions/src/descriptions-cell.mjs.map +1 -1
  271. package/es/components/index.mjs +7 -7
  272. package/es/components/input/index.mjs +2 -2
  273. package/es/components/input/src/input.mjs +103 -445
  274. package/es/components/input/src/input.mjs.map +1 -1
  275. package/es/components/input/src/input2.mjs +445 -103
  276. package/es/components/input/src/input2.mjs.map +1 -1
  277. package/es/components/mention/src/mention.mjs +1 -1
  278. package/es/components/mention/src/mention2.mjs +1 -1
  279. package/es/components/pagination/src/components/prev.mjs +18 -36
  280. package/es/components/pagination/src/components/prev.mjs.map +1 -1
  281. package/es/components/pagination/src/components/prev2.mjs +36 -18
  282. package/es/components/pagination/src/components/prev2.mjs.map +1 -1
  283. package/es/components/pagination/src/pagination.mjs +1 -1
  284. package/es/components/popper/index.mjs +2 -2
  285. package/es/components/popper/src/content.mjs +93 -137
  286. package/es/components/popper/src/content.mjs.map +1 -1
  287. package/es/components/popper/src/content2.mjs +137 -93
  288. package/es/components/popper/src/content2.mjs.map +1 -1
  289. package/es/components/scrollbar/index.mjs +1 -1
  290. package/es/components/scrollbar/src/bar2.mjs +1 -1
  291. package/es/components/scrollbar/src/thumb.mjs +11 -130
  292. package/es/components/scrollbar/src/thumb.mjs.map +1 -1
  293. package/es/components/scrollbar/src/thumb2.mjs +130 -11
  294. package/es/components/scrollbar/src/thumb2.mjs.map +1 -1
  295. package/es/components/table-v2/src/components/header.mjs +7 -1
  296. package/es/components/table-v2/src/components/header.mjs.map +1 -1
  297. package/es/components/table-v2/src/table-grid.mjs +9 -3
  298. package/es/components/table-v2/src/table-grid.mjs.map +1 -1
  299. package/es/components/time-picker/src/common/picker.mjs +1 -0
  300. package/es/components/time-picker/src/common/picker.mjs.map +1 -1
  301. package/es/components/time-picker/src/common/picker.vue.d.ts +4 -0
  302. package/es/components/time-picker/src/common/props.d.ts +1 -0
  303. package/es/components/time-picker/src/common/props.mjs +5 -1
  304. package/es/components/time-picker/src/common/props.mjs.map +1 -1
  305. package/es/components/time-picker/src/time-picker.d.ts +3 -0
  306. package/es/components/tooltip/src/content.mjs +1 -1
  307. package/es/components/tooltip/src/content2.mjs +1 -1
  308. package/es/components/tooltip-v2/index.mjs +1 -1
  309. package/es/components/tooltip-v2/src/arrow.mjs +22 -37
  310. package/es/components/tooltip-v2/src/arrow.mjs.map +1 -1
  311. package/es/components/tooltip-v2/src/arrow2.mjs +37 -22
  312. package/es/components/tooltip-v2/src/arrow2.mjs.map +1 -1
  313. package/es/components/tooltip-v2/src/content2.mjs +1 -1
  314. package/es/components/tooltip-v2/src/tooltip.mjs +1 -1
  315. package/es/components/tooltip-v2/src/tooltip2.mjs +2 -2
  316. package/es/components/tour/index.mjs +1 -1
  317. package/es/components/tour/src/content.mjs +44 -68
  318. package/es/components/tour/src/content.mjs.map +1 -1
  319. package/es/components/tour/src/content2.mjs +68 -44
  320. package/es/components/tour/src/content2.mjs.map +1 -1
  321. package/es/components/tour/src/step.mjs +1 -1
  322. package/es/components/tour/src/tour.mjs +1 -1
  323. package/es/components/tour/src/tour2.mjs +1 -1
  324. package/es/components/tree/src/model/tree-store.mjs +2 -0
  325. package/es/components/tree/src/model/tree-store.mjs.map +1 -1
  326. package/es/components/tree/src/tree-node.mjs +10 -1
  327. package/es/components/tree/src/tree-node.mjs.map +1 -1
  328. package/es/components/visual-hidden/index.mjs +3 -3
  329. package/es/components/visual-hidden/src/visual-hidden.mjs +7 -35
  330. package/es/components/visual-hidden/src/visual-hidden.mjs.map +1 -1
  331. package/es/components/visual-hidden/src/visual-hidden2.mjs +35 -7
  332. package/es/components/visual-hidden/src/visual-hidden2.mjs.map +1 -1
  333. package/es/index.mjs +7 -7
  334. package/es/version.d.ts +1 -1
  335. package/es/version.mjs +1 -1
  336. package/es/version.mjs.map +1 -1
  337. package/lib/components/avatar/index.js +2 -2
  338. package/lib/components/avatar/src/avatar.js +33 -66
  339. package/lib/components/avatar/src/avatar.js.map +1 -1
  340. package/lib/components/avatar/src/avatar2.js +66 -33
  341. package/lib/components/avatar/src/avatar2.js.map +1 -1
  342. package/lib/components/cascader/index.js +2 -2
  343. package/lib/components/cascader/src/cascader.js +84 -627
  344. package/lib/components/cascader/src/cascader.js.map +1 -1
  345. package/lib/components/cascader/src/cascader2.js +627 -84
  346. package/lib/components/cascader/src/cascader2.js.map +1 -1
  347. package/lib/components/date-picker/src/date-picker-com/panel-date-pick.js +1 -1
  348. package/lib/components/date-picker/src/date-picker-com/panel-date-pick.js.map +1 -1
  349. package/lib/components/date-picker/src/date-picker-com/panel-date-pick.vue.d.ts +3 -0
  350. package/lib/components/date-picker/src/date-picker-com/panel-date-range.vue.d.ts +3 -0
  351. package/lib/components/date-picker/src/date-picker.d.ts +3 -0
  352. package/lib/components/date-picker/src/panel-utils.d.ts +16 -2
  353. package/lib/components/date-picker/src/props/date-picker.d.ts +1 -0
  354. package/lib/components/date-picker/src/props/panel-date-pick.d.ts +1 -0
  355. package/lib/components/date-picker/src/props/panel-date-range.d.ts +1 -0
  356. package/lib/components/date-picker/src/props/shared.d.ts +1 -0
  357. package/lib/components/date-picker/src/props/shared.js +5 -1
  358. package/lib/components/date-picker/src/props/shared.js.map +1 -1
  359. package/lib/components/descriptions/src/descriptions-cell.js.map +1 -1
  360. package/lib/components/index.js +7 -7
  361. package/lib/components/input/index.js +2 -2
  362. package/lib/components/input/src/input.js +103 -444
  363. package/lib/components/input/src/input.js.map +1 -1
  364. package/lib/components/input/src/input2.js +444 -103
  365. package/lib/components/input/src/input2.js.map +1 -1
  366. package/lib/components/mention/src/mention.js +1 -1
  367. package/lib/components/mention/src/mention2.js +1 -1
  368. package/lib/components/pagination/src/components/prev.js +19 -36
  369. package/lib/components/pagination/src/components/prev.js.map +1 -1
  370. package/lib/components/pagination/src/components/prev2.js +36 -19
  371. package/lib/components/pagination/src/components/prev2.js.map +1 -1
  372. package/lib/components/pagination/src/pagination.js +1 -1
  373. package/lib/components/popper/index.js +2 -2
  374. package/lib/components/popper/src/content.js +98 -137
  375. package/lib/components/popper/src/content.js.map +1 -1
  376. package/lib/components/popper/src/content2.js +137 -98
  377. package/lib/components/popper/src/content2.js.map +1 -1
  378. package/lib/components/scrollbar/index.js +1 -1
  379. package/lib/components/scrollbar/src/bar2.js +1 -1
  380. package/lib/components/scrollbar/src/thumb.js +11 -130
  381. package/lib/components/scrollbar/src/thumb.js.map +1 -1
  382. package/lib/components/scrollbar/src/thumb2.js +130 -11
  383. package/lib/components/scrollbar/src/thumb2.js.map +1 -1
  384. package/lib/components/table-v2/src/components/header.js +6 -0
  385. package/lib/components/table-v2/src/components/header.js.map +1 -1
  386. package/lib/components/table-v2/src/table-grid.js +8 -2
  387. package/lib/components/table-v2/src/table-grid.js.map +1 -1
  388. package/lib/components/time-picker/src/common/picker.js +1 -0
  389. package/lib/components/time-picker/src/common/picker.js.map +1 -1
  390. package/lib/components/time-picker/src/common/picker.vue.d.ts +4 -0
  391. package/lib/components/time-picker/src/common/props.d.ts +1 -0
  392. package/lib/components/time-picker/src/common/props.js +5 -1
  393. package/lib/components/time-picker/src/common/props.js.map +1 -1
  394. package/lib/components/time-picker/src/time-picker.d.ts +3 -0
  395. package/lib/components/tooltip/src/content.js +1 -1
  396. package/lib/components/tooltip/src/content2.js +1 -1
  397. package/lib/components/tooltip-v2/index.js +1 -1
  398. package/lib/components/tooltip-v2/src/arrow.js +23 -37
  399. package/lib/components/tooltip-v2/src/arrow.js.map +1 -1
  400. package/lib/components/tooltip-v2/src/arrow2.js +37 -23
  401. package/lib/components/tooltip-v2/src/arrow2.js.map +1 -1
  402. package/lib/components/tooltip-v2/src/content2.js +1 -1
  403. package/lib/components/tooltip-v2/src/tooltip.js +1 -1
  404. package/lib/components/tooltip-v2/src/tooltip2.js +2 -2
  405. package/lib/components/tour/index.js +1 -1
  406. package/lib/components/tour/src/content.js +47 -68
  407. package/lib/components/tour/src/content.js.map +1 -1
  408. package/lib/components/tour/src/content2.js +68 -47
  409. package/lib/components/tour/src/content2.js.map +1 -1
  410. package/lib/components/tour/src/step.js +1 -1
  411. package/lib/components/tour/src/tour.js +1 -1
  412. package/lib/components/tour/src/tour2.js +1 -1
  413. package/lib/components/tree/src/model/tree-store.js +2 -0
  414. package/lib/components/tree/src/model/tree-store.js.map +1 -1
  415. package/lib/components/tree/src/tree-node.js +10 -1
  416. package/lib/components/tree/src/tree-node.js.map +1 -1
  417. package/lib/components/visual-hidden/index.js +2 -2
  418. package/lib/components/visual-hidden/src/visual-hidden.js +7 -35
  419. package/lib/components/visual-hidden/src/visual-hidden.js.map +1 -1
  420. package/lib/components/visual-hidden/src/visual-hidden2.js +35 -7
  421. package/lib/components/visual-hidden/src/visual-hidden2.js.map +1 -1
  422. package/lib/index.js +7 -7
  423. package/lib/version.d.ts +1 -1
  424. package/lib/version.js +1 -1
  425. package/lib/version.js.map +1 -1
  426. package/package.json +2 -2
  427. package/web-types.json +1 -1
@@ -1,99 +1,143 @@
1
- import { placements } from '@popperjs/core';
1
+ import { defineComponent, inject, ref, provide, onMounted, watch, unref, onBeforeUnmount, openBlock, createElementBlock, mergeProps, createVNode, withCtx, renderSlot } from 'vue';
2
+ import { isNil } from 'lodash-unified';
2
3
  import '../../../utils/index.mjs';
3
- import '../../../hooks/index.mjs';
4
- import { buildProps, definePropType } from '../../../utils/vue/props/runtime.mjs';
5
- import { useAriaProps } from '../../../hooks/use-aria/index.mjs';
4
+ import '../../focus-trap/index.mjs';
5
+ import '../../form/index.mjs';
6
+ import { POPPER_CONTENT_INJECTION_KEY } from './constants.mjs';
7
+ import { popperContentProps, popperContentEmits } from './content.mjs';
8
+ import './composables/index.mjs';
9
+ import _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';
10
+ import { usePopperContentFocusTrap } from './composables/use-focus-trap.mjs';
11
+ import { usePopperContent } from './composables/use-content.mjs';
12
+ import { usePopperContentDOM } from './composables/use-content-dom.mjs';
13
+ import { formItemContextKey } from '../../form/src/constants.mjs';
14
+ import { NOOP } from '@vue/shared';
15
+ import { isElement } from '../../../utils/types.mjs';
16
+ import ElFocusTrap from '../../focus-trap/src/focus-trap.mjs';
6
17
 
7
- const POSITIONING_STRATEGIES = ["fixed", "absolute"];
8
- const popperCoreConfigProps = buildProps({
9
- boundariesPadding: {
10
- type: Number,
11
- default: 0
12
- },
13
- fallbackPlacements: {
14
- type: definePropType(Array),
15
- default: void 0
16
- },
17
- gpuAcceleration: {
18
- type: Boolean,
19
- default: true
20
- },
21
- offset: {
22
- type: Number,
23
- default: 12
24
- },
25
- placement: {
26
- type: String,
27
- values: placements,
28
- default: "bottom"
29
- },
30
- popperOptions: {
31
- type: definePropType(Object),
32
- default: () => ({})
33
- },
34
- strategy: {
35
- type: String,
36
- values: POSITIONING_STRATEGIES,
37
- default: "absolute"
38
- }
18
+ const __default__ = defineComponent({
19
+ name: "ElPopperContent"
39
20
  });
40
- const popperContentProps = buildProps({
41
- ...popperCoreConfigProps,
42
- id: String,
43
- style: {
44
- type: definePropType([String, Array, Object])
45
- },
46
- className: {
47
- type: definePropType([String, Array, Object])
48
- },
49
- effect: {
50
- type: definePropType(String),
51
- default: "dark"
52
- },
53
- visible: Boolean,
54
- enterable: {
55
- type: Boolean,
56
- default: true
57
- },
58
- pure: Boolean,
59
- focusOnShow: {
60
- type: Boolean,
61
- default: false
62
- },
63
- trapping: {
64
- type: Boolean,
65
- default: false
66
- },
67
- popperClass: {
68
- type: definePropType([String, Array, Object])
69
- },
70
- popperStyle: {
71
- type: definePropType([String, Array, Object])
72
- },
73
- referenceEl: {
74
- type: definePropType(Object)
75
- },
76
- triggerTargetEl: {
77
- type: definePropType(Object)
78
- },
79
- stopPopperMouseEvent: {
80
- type: Boolean,
81
- default: true
82
- },
83
- virtualTriggering: Boolean,
84
- zIndex: Number,
85
- ...useAriaProps(["ariaLabel"])
21
+ const _sfc_main = /* @__PURE__ */ defineComponent({
22
+ ...__default__,
23
+ props: popperContentProps,
24
+ emits: popperContentEmits,
25
+ setup(__props, { expose, emit }) {
26
+ const props = __props;
27
+ const {
28
+ focusStartRef,
29
+ trapped,
30
+ onFocusAfterReleased,
31
+ onFocusAfterTrapped,
32
+ onFocusInTrap,
33
+ onFocusoutPrevented,
34
+ onReleaseRequested
35
+ } = usePopperContentFocusTrap(props, emit);
36
+ const { attributes, arrowRef, contentRef, styles, instanceRef, role, update } = usePopperContent(props);
37
+ const {
38
+ ariaModal,
39
+ arrowStyle,
40
+ contentAttrs,
41
+ contentClass,
42
+ contentStyle,
43
+ updateZIndex
44
+ } = usePopperContentDOM(props, {
45
+ styles,
46
+ attributes,
47
+ role
48
+ });
49
+ const formItemContext = inject(formItemContextKey, void 0);
50
+ const arrowOffset = ref();
51
+ provide(POPPER_CONTENT_INJECTION_KEY, {
52
+ arrowStyle,
53
+ arrowRef,
54
+ arrowOffset
55
+ });
56
+ if (formItemContext) {
57
+ provide(formItemContextKey, {
58
+ ...formItemContext,
59
+ addInputId: NOOP,
60
+ removeInputId: NOOP
61
+ });
62
+ }
63
+ let triggerTargetAriaStopWatch = void 0;
64
+ const updatePopper = (shouldUpdateZIndex = true) => {
65
+ update();
66
+ shouldUpdateZIndex && updateZIndex();
67
+ };
68
+ const togglePopperAlive = () => {
69
+ updatePopper(false);
70
+ if (props.visible && props.focusOnShow) {
71
+ trapped.value = true;
72
+ } else if (props.visible === false) {
73
+ trapped.value = false;
74
+ }
75
+ };
76
+ onMounted(() => {
77
+ watch(() => props.triggerTargetEl, (triggerTargetEl, prevTriggerTargetEl) => {
78
+ triggerTargetAriaStopWatch == null ? void 0 : triggerTargetAriaStopWatch();
79
+ triggerTargetAriaStopWatch = void 0;
80
+ const el = unref(triggerTargetEl || contentRef.value);
81
+ const prevEl = unref(prevTriggerTargetEl || contentRef.value);
82
+ if (isElement(el)) {
83
+ triggerTargetAriaStopWatch = watch([role, () => props.ariaLabel, ariaModal, () => props.id], (watches) => {
84
+ ;
85
+ ["role", "aria-label", "aria-modal", "id"].forEach((key, idx) => {
86
+ isNil(watches[idx]) ? el.removeAttribute(key) : el.setAttribute(key, watches[idx]);
87
+ });
88
+ }, { immediate: true });
89
+ }
90
+ if (prevEl !== el && isElement(prevEl)) {
91
+ ;
92
+ ["role", "aria-label", "aria-modal", "id"].forEach((key) => {
93
+ prevEl.removeAttribute(key);
94
+ });
95
+ }
96
+ }, { immediate: true });
97
+ watch(() => props.visible, togglePopperAlive, { immediate: true });
98
+ });
99
+ onBeforeUnmount(() => {
100
+ triggerTargetAriaStopWatch == null ? void 0 : triggerTargetAriaStopWatch();
101
+ triggerTargetAriaStopWatch = void 0;
102
+ });
103
+ expose({
104
+ popperContentRef: contentRef,
105
+ popperInstanceRef: instanceRef,
106
+ updatePopper,
107
+ contentStyle
108
+ });
109
+ return (_ctx, _cache) => {
110
+ return openBlock(), createElementBlock("div", mergeProps({
111
+ ref_key: "contentRef",
112
+ ref: contentRef
113
+ }, unref(contentAttrs), {
114
+ style: unref(contentStyle),
115
+ class: unref(contentClass),
116
+ tabindex: "-1",
117
+ onMouseenter: (e) => _ctx.$emit("mouseenter", e),
118
+ onMouseleave: (e) => _ctx.$emit("mouseleave", e)
119
+ }), [
120
+ createVNode(unref(ElFocusTrap), {
121
+ trapped: unref(trapped),
122
+ "trap-on-focus-in": true,
123
+ "focus-trap-el": unref(contentRef),
124
+ "focus-start-el": unref(focusStartRef),
125
+ onFocusAfterTrapped: unref(onFocusAfterTrapped),
126
+ onFocusAfterReleased: unref(onFocusAfterReleased),
127
+ onFocusin: unref(onFocusInTrap),
128
+ onFocusoutPrevented: unref(onFocusoutPrevented),
129
+ onReleaseRequested: unref(onReleaseRequested)
130
+ }, {
131
+ default: withCtx(() => [
132
+ renderSlot(_ctx.$slots, "default")
133
+ ]),
134
+ _: 3
135
+ }, 8, ["trapped", "focus-trap-el", "focus-start-el", "onFocusAfterTrapped", "onFocusAfterReleased", "onFocusin", "onFocusoutPrevented", "onReleaseRequested"])
136
+ ], 16, ["onMouseenter", "onMouseleave"]);
137
+ };
138
+ }
86
139
  });
87
- const popperContentEmits = {
88
- mouseenter: (evt) => evt instanceof MouseEvent,
89
- mouseleave: (evt) => evt instanceof MouseEvent,
90
- focus: () => true,
91
- blur: () => true,
92
- close: () => true
93
- };
94
- const usePopperCoreConfigProps = popperCoreConfigProps;
95
- const usePopperContentProps = popperContentProps;
96
- const usePopperContentEmits = popperContentEmits;
140
+ var ElPopperContent = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "content.vue"]]);
97
141
 
98
- export { popperContentEmits, popperContentProps, popperCoreConfigProps, usePopperContentEmits, usePopperContentProps, usePopperCoreConfigProps };
142
+ export { ElPopperContent as default };
99
143
  //# sourceMappingURL=content2.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"content2.mjs","sources":["../../../../../../packages/components/popper/src/content.ts"],"sourcesContent":["import { placements } from '@popperjs/core'\nimport { buildProps, definePropType } from '@element-plus/utils'\nimport { useAriaProps } from '@element-plus/hooks'\n\nimport type { PopperEffect } from './popper'\nimport type { ExtractPropTypes, StyleValue } from 'vue'\nimport type { Options, Placement } from '@popperjs/core'\nimport type { Measurable } from './constants'\nimport type Content from './content.vue'\n\ntype ClassObjectType = Record<string, boolean>\ntype ClassType = string | ClassObjectType | ClassType[]\n\nconst POSITIONING_STRATEGIES = ['fixed', 'absolute'] as const\n\nexport interface CreatePopperInstanceParams {\n referenceEl: Measurable\n popperContentEl: HTMLElement\n arrowEl: HTMLElement | undefined\n}\n\nexport const popperCoreConfigProps = buildProps({\n boundariesPadding: {\n type: Number,\n default: 0,\n },\n fallbackPlacements: {\n type: definePropType<Placement[]>(Array),\n default: undefined,\n },\n gpuAcceleration: {\n type: Boolean,\n default: true,\n },\n /**\n * @description offset of the Tooltip\n */\n offset: {\n type: Number,\n default: 12,\n },\n /**\n * @description position of Tooltip\n */\n placement: {\n type: String,\n values: placements,\n default: 'bottom',\n },\n /**\n * @description [popper.js](https://popper.js.org/docs/v2/) parameters\n */\n popperOptions: {\n type: definePropType<Partial<Options>>(Object),\n default: () => ({}),\n },\n strategy: {\n type: String,\n values: POSITIONING_STRATEGIES,\n default: 'absolute',\n },\n} as const)\nexport type PopperCoreConfigProps = ExtractPropTypes<\n typeof popperCoreConfigProps\n>\n\nexport const popperContentProps = buildProps({\n ...popperCoreConfigProps,\n id: String,\n style: {\n type: definePropType<StyleValue>([String, Array, Object]),\n },\n className: {\n type: definePropType<ClassType>([String, Array, Object]),\n },\n effect: {\n type: definePropType<PopperEffect | string>(String),\n default: 'dark',\n },\n visible: Boolean,\n enterable: {\n type: Boolean,\n default: true,\n },\n pure: Boolean,\n focusOnShow: {\n type: Boolean,\n default: false,\n },\n trapping: {\n type: Boolean,\n default: false,\n },\n popperClass: {\n type: definePropType<ClassType>([String, Array, Object]),\n },\n popperStyle: {\n type: definePropType<StyleValue>([String, Array, Object]),\n },\n referenceEl: {\n type: definePropType<HTMLElement>(Object),\n },\n triggerTargetEl: {\n type: definePropType<HTMLElement>(Object),\n },\n stopPopperMouseEvent: {\n type: Boolean,\n default: true,\n },\n virtualTriggering: Boolean,\n zIndex: Number,\n ...useAriaProps(['ariaLabel']),\n} as const)\nexport type PopperContentProps = ExtractPropTypes<typeof popperContentProps>\n\nexport const popperContentEmits = {\n mouseenter: (evt: MouseEvent) => evt instanceof MouseEvent,\n mouseleave: (evt: MouseEvent) => evt instanceof MouseEvent,\n focus: () => true,\n blur: () => true,\n close: () => true,\n}\nexport type PopperContentEmits = typeof popperContentEmits\n\nexport type PopperContentInstance = InstanceType<typeof Content>\n\n/** @deprecated use `popperCoreConfigProps` instead, and it will be deprecated in the next major version */\nexport const usePopperCoreConfigProps = popperCoreConfigProps\n\n/** @deprecated use `popperContentProps` instead, and it will be deprecated in the next major version */\nexport const usePopperContentProps = popperContentProps\n\n/** @deprecated use `popperContentEmits` instead, and it will be deprecated in the next major version */\nexport const usePopperContentEmits = popperContentEmits\n\n/** @deprecated use `PopperCoreConfigProps` instead, and it will be deprecated in the next major version */\nexport type UsePopperCoreConfigProps = PopperCoreConfigProps\n\n/** @deprecated use `PopperContentProps` instead, and it will be deprecated in the next major version */\nexport type UsePopperContentProps = PopperContentProps\n\n/** @deprecated use `PopperContentInstance` instead, and it will be deprecated in the next major version */\nexport type ElPopperArrowContent = PopperContentInstance\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"content2.mjs","sources":["../../../../../../packages/components/popper/src/content.vue"],"sourcesContent":["<template>\n <div\n ref=\"contentRef\"\n v-bind=\"contentAttrs\"\n :style=\"contentStyle\"\n :class=\"contentClass\"\n tabindex=\"-1\"\n @mouseenter=\"(e) => $emit('mouseenter', e)\"\n @mouseleave=\"(e) => $emit('mouseleave', e)\"\n >\n <el-focus-trap\n :trapped=\"trapped\"\n :trap-on-focus-in=\"true\"\n :focus-trap-el=\"contentRef\"\n :focus-start-el=\"focusStartRef\"\n @focus-after-trapped=\"onFocusAfterTrapped\"\n @focus-after-released=\"onFocusAfterReleased\"\n @focusin=\"onFocusInTrap\"\n @focusout-prevented=\"onFocusoutPrevented\"\n @release-requested=\"onReleaseRequested\"\n >\n <slot />\n </el-focus-trap>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n inject,\n onBeforeUnmount,\n onMounted,\n provide,\n ref,\n unref,\n watch,\n} from 'vue'\nimport { isNil } from 'lodash-unified'\nimport { NOOP, isElement } from '@element-plus/utils'\nimport ElFocusTrap from '@element-plus/components/focus-trap'\nimport { formItemContextKey } from '@element-plus/components/form'\nimport { POPPER_CONTENT_INJECTION_KEY } from './constants'\nimport { popperContentEmits, popperContentProps } from './content'\nimport {\n usePopperContent,\n usePopperContentDOM,\n usePopperContentFocusTrap,\n} from './composables'\n\nimport type { WatchStopHandle } from 'vue'\n\ndefineOptions({\n name: 'ElPopperContent',\n})\n\nconst emit = defineEmits(popperContentEmits)\n\nconst props = defineProps(popperContentProps)\n\nconst {\n focusStartRef,\n trapped,\n\n onFocusAfterReleased,\n onFocusAfterTrapped,\n onFocusInTrap,\n onFocusoutPrevented,\n onReleaseRequested,\n} = usePopperContentFocusTrap(props, emit)\n\nconst { attributes, arrowRef, contentRef, styles, instanceRef, role, update } =\n usePopperContent(props)\n\nconst {\n ariaModal,\n arrowStyle,\n contentAttrs,\n contentClass,\n contentStyle,\n updateZIndex,\n} = usePopperContentDOM(props, {\n styles,\n attributes,\n role,\n})\n\nconst formItemContext = inject(formItemContextKey, undefined)\nconst arrowOffset = ref<number>()\n\nprovide(POPPER_CONTENT_INJECTION_KEY, {\n arrowStyle,\n arrowRef,\n arrowOffset,\n})\n\nif (formItemContext) {\n // disallow auto-id from inside popper content\n provide(formItemContextKey, {\n ...formItemContext,\n addInputId: NOOP,\n removeInputId: NOOP,\n })\n}\n\nlet triggerTargetAriaStopWatch: WatchStopHandle | undefined = undefined\n\nconst updatePopper = (shouldUpdateZIndex = true) => {\n update()\n shouldUpdateZIndex && updateZIndex()\n}\n\nconst togglePopperAlive = () => {\n updatePopper(false)\n if (props.visible && props.focusOnShow) {\n trapped.value = true\n } else if (props.visible === false) {\n trapped.value = false\n }\n}\n\nonMounted(() => {\n watch(\n () => props.triggerTargetEl,\n (triggerTargetEl, prevTriggerTargetEl) => {\n triggerTargetAriaStopWatch?.()\n triggerTargetAriaStopWatch = undefined\n\n const el = unref(triggerTargetEl || contentRef.value)\n const prevEl = unref(prevTriggerTargetEl || contentRef.value)\n\n if (isElement(el)) {\n triggerTargetAriaStopWatch = watch(\n [role, () => props.ariaLabel, ariaModal, () => props.id],\n (watches) => {\n ;['role', 'aria-label', 'aria-modal', 'id'].forEach((key, idx) => {\n isNil(watches[idx])\n ? el.removeAttribute(key)\n : el.setAttribute(key, watches[idx]!)\n })\n },\n { immediate: true }\n )\n }\n if (prevEl !== el && isElement(prevEl)) {\n ;['role', 'aria-label', 'aria-modal', 'id'].forEach((key) => {\n prevEl.removeAttribute(key)\n })\n }\n },\n { immediate: true }\n )\n\n watch(() => props.visible, togglePopperAlive, { immediate: true })\n})\n\nonBeforeUnmount(() => {\n triggerTargetAriaStopWatch?.()\n triggerTargetAriaStopWatch = undefined\n})\n\ndefineExpose({\n /**\n * @description popper content element\n */\n popperContentRef: contentRef,\n /**\n * @description popperjs instance\n */\n popperInstanceRef: instanceRef,\n /**\n * @description method for updating popper\n */\n updatePopper,\n\n /**\n * @description content style\n */\n contentStyle,\n})\n</script>\n"],"names":["_openBlock","_createElementBlock","_mergeProps","_unref","_createVNode"],"mappings":"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"}
@@ -2,7 +2,7 @@ import '../../utils/index.mjs';
2
2
  import Scrollbar from './src/scrollbar2.mjs';
3
3
  export { BAR_MAP, GAP, renderThumbStyle } from './src/util.mjs';
4
4
  export { scrollbarEmits, scrollbarProps } from './src/scrollbar.mjs';
5
- export { thumbProps } from './src/thumb2.mjs';
5
+ export { thumbProps } from './src/thumb.mjs';
6
6
  export { scrollbarContextKey } from './src/constants.mjs';
7
7
  import { withInstall } from '../../utils/vue/install.mjs';
8
8
 
@@ -1,6 +1,6 @@
1
1
  import { defineComponent, inject, ref, openBlock, createElementBlock, Fragment, createVNode } from 'vue';
2
2
  import { GAP } from './util.mjs';
3
- import Thumb from './thumb.mjs';
3
+ import Thumb from './thumb2.mjs';
4
4
  import { barProps } from './bar.mjs';
5
5
  import { scrollbarContextKey } from './constants.mjs';
6
6
  import _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';
@@ -1,135 +1,16 @@
1
- import { defineComponent, inject, ref, computed, onBeforeUnmount, toRef, openBlock, createBlock, Transition, unref, withCtx, withDirectives, createElementVNode, normalizeClass, normalizeStyle, vShow } from 'vue';
2
- import { isClient, useEventListener } from '@vueuse/core';
3
1
  import '../../../utils/index.mjs';
4
- import '../../../hooks/index.mjs';
5
- import { scrollbarContextKey } from './constants.mjs';
6
- import { BAR_MAP, renderThumbStyle } from './util.mjs';
7
- import { thumbProps } from './thumb2.mjs';
8
- import _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';
9
- import { useNamespace } from '../../../hooks/use-namespace/index.mjs';
10
- import { throwError } from '../../../utils/error.mjs';
2
+ import { buildProps } from '../../../utils/vue/props/runtime.mjs';
11
3
 
12
- const COMPONENT_NAME = "Thumb";
13
- const _sfc_main = /* @__PURE__ */ defineComponent({
14
- __name: "thumb",
15
- props: thumbProps,
16
- setup(__props) {
17
- const props = __props;
18
- const scrollbar = inject(scrollbarContextKey);
19
- const ns = useNamespace("scrollbar");
20
- if (!scrollbar)
21
- throwError(COMPONENT_NAME, "can not inject scrollbar context");
22
- const instance = ref();
23
- const thumb = ref();
24
- const thumbState = ref({});
25
- const visible = ref(false);
26
- let cursorDown = false;
27
- let cursorLeave = false;
28
- let originalOnSelectStart = isClient ? document.onselectstart : null;
29
- const bar = computed(() => BAR_MAP[props.vertical ? "vertical" : "horizontal"]);
30
- const thumbStyle = computed(() => renderThumbStyle({
31
- size: props.size,
32
- move: props.move,
33
- bar: bar.value
34
- }));
35
- const offsetRatio = computed(() => instance.value[bar.value.offset] ** 2 / scrollbar.wrapElement[bar.value.scrollSize] / props.ratio / thumb.value[bar.value.offset]);
36
- const clickThumbHandler = (e) => {
37
- var _a;
38
- e.stopPropagation();
39
- if (e.ctrlKey || [1, 2].includes(e.button))
40
- return;
41
- (_a = window.getSelection()) == null ? void 0 : _a.removeAllRanges();
42
- startDrag(e);
43
- const el = e.currentTarget;
44
- if (!el)
45
- return;
46
- thumbState.value[bar.value.axis] = el[bar.value.offset] - (e[bar.value.client] - el.getBoundingClientRect()[bar.value.direction]);
47
- };
48
- const clickTrackHandler = (e) => {
49
- if (!thumb.value || !instance.value || !scrollbar.wrapElement)
50
- return;
51
- const offset = Math.abs(e.target.getBoundingClientRect()[bar.value.direction] - e[bar.value.client]);
52
- const thumbHalf = thumb.value[bar.value.offset] / 2;
53
- const thumbPositionPercentage = (offset - thumbHalf) * 100 * offsetRatio.value / instance.value[bar.value.offset];
54
- scrollbar.wrapElement[bar.value.scroll] = thumbPositionPercentage * scrollbar.wrapElement[bar.value.scrollSize] / 100;
55
- };
56
- const startDrag = (e) => {
57
- e.stopImmediatePropagation();
58
- cursorDown = true;
59
- document.addEventListener("mousemove", mouseMoveDocumentHandler);
60
- document.addEventListener("mouseup", mouseUpDocumentHandler);
61
- originalOnSelectStart = document.onselectstart;
62
- document.onselectstart = () => false;
63
- };
64
- const mouseMoveDocumentHandler = (e) => {
65
- if (!instance.value || !thumb.value)
66
- return;
67
- if (cursorDown === false)
68
- return;
69
- const prevPage = thumbState.value[bar.value.axis];
70
- if (!prevPage)
71
- return;
72
- const offset = (instance.value.getBoundingClientRect()[bar.value.direction] - e[bar.value.client]) * -1;
73
- const thumbClickPosition = thumb.value[bar.value.offset] - prevPage;
74
- const thumbPositionPercentage = (offset - thumbClickPosition) * 100 * offsetRatio.value / instance.value[bar.value.offset];
75
- scrollbar.wrapElement[bar.value.scroll] = thumbPositionPercentage * scrollbar.wrapElement[bar.value.scrollSize] / 100;
76
- };
77
- const mouseUpDocumentHandler = () => {
78
- cursorDown = false;
79
- thumbState.value[bar.value.axis] = 0;
80
- document.removeEventListener("mousemove", mouseMoveDocumentHandler);
81
- document.removeEventListener("mouseup", mouseUpDocumentHandler);
82
- restoreOnselectstart();
83
- if (cursorLeave)
84
- visible.value = false;
85
- };
86
- const mouseMoveScrollbarHandler = () => {
87
- cursorLeave = false;
88
- visible.value = !!props.size;
89
- };
90
- const mouseLeaveScrollbarHandler = () => {
91
- cursorLeave = true;
92
- visible.value = cursorDown;
93
- };
94
- onBeforeUnmount(() => {
95
- restoreOnselectstart();
96
- document.removeEventListener("mouseup", mouseUpDocumentHandler);
97
- });
98
- const restoreOnselectstart = () => {
99
- if (document.onselectstart !== originalOnSelectStart)
100
- document.onselectstart = originalOnSelectStart;
101
- };
102
- useEventListener(toRef(scrollbar, "scrollbarElement"), "mousemove", mouseMoveScrollbarHandler);
103
- useEventListener(toRef(scrollbar, "scrollbarElement"), "mouseleave", mouseLeaveScrollbarHandler);
104
- return (_ctx, _cache) => {
105
- return openBlock(), createBlock(Transition, {
106
- name: unref(ns).b("fade"),
107
- persisted: ""
108
- }, {
109
- default: withCtx(() => [
110
- withDirectives(createElementVNode("div", {
111
- ref_key: "instance",
112
- ref: instance,
113
- class: normalizeClass([unref(ns).e("bar"), unref(ns).is(unref(bar).key)]),
114
- onMousedown: clickTrackHandler
115
- }, [
116
- createElementVNode("div", {
117
- ref_key: "thumb",
118
- ref: thumb,
119
- class: normalizeClass(unref(ns).e("thumb")),
120
- style: normalizeStyle(unref(thumbStyle)),
121
- onMousedown: clickThumbHandler
122
- }, null, 38)
123
- ], 34), [
124
- [vShow, _ctx.always || visible.value]
125
- ])
126
- ]),
127
- _: 1
128
- }, 8, ["name"]);
129
- };
130
- }
4
+ const thumbProps = buildProps({
5
+ vertical: Boolean,
6
+ size: String,
7
+ move: Number,
8
+ ratio: {
9
+ type: Number,
10
+ required: true
11
+ },
12
+ always: Boolean
131
13
  });
132
- var Thumb = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "thumb.vue"]]);
133
14
 
134
- export { Thumb as default };
15
+ export { thumbProps };
135
16
  //# sourceMappingURL=thumb.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"thumb.mjs","sources":["../../../../../../packages/components/scrollbar/src/thumb.vue"],"sourcesContent":["<template>\n <transition :name=\"ns.b('fade')\">\n <div\n v-show=\"always || visible\"\n ref=\"instance\"\n :class=\"[ns.e('bar'), ns.is(bar.key)]\"\n @mousedown=\"clickTrackHandler\"\n >\n <div\n ref=\"thumb\"\n :class=\"ns.e('thumb')\"\n :style=\"thumbStyle\"\n @mousedown=\"clickThumbHandler\"\n />\n </div>\n </transition>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, inject, onBeforeUnmount, ref, toRef } from 'vue'\nimport { useEventListener } from '@vueuse/core'\nimport { isClient, throwError } from '@element-plus/utils'\nimport { useNamespace } from '@element-plus/hooks'\nimport { scrollbarContextKey } from './constants'\nimport { BAR_MAP, renderThumbStyle } from './util'\nimport { thumbProps } from './thumb'\n\nconst COMPONENT_NAME = 'Thumb'\nconst props = defineProps(thumbProps)\n\nconst scrollbar = inject(scrollbarContextKey)\nconst ns = useNamespace('scrollbar')\n\nif (!scrollbar) throwError(COMPONENT_NAME, 'can not inject scrollbar context')\n\nconst instance = ref<HTMLDivElement>()\nconst thumb = ref<HTMLDivElement>()\n\nconst thumbState = ref<Partial<Record<'X' | 'Y', number>>>({})\nconst visible = ref(false)\n\nlet cursorDown = false\nlet cursorLeave = false\nlet originalOnSelectStart:\n | ((this: GlobalEventHandlers, ev: Event) => any)\n | null = isClient ? document.onselectstart : null\n\nconst bar = computed(() => BAR_MAP[props.vertical ? 'vertical' : 'horizontal'])\n\nconst thumbStyle = computed(() =>\n renderThumbStyle({\n size: props.size,\n move: props.move,\n bar: bar.value,\n })\n)\n\nconst offsetRatio = computed(\n () =>\n // offsetRatioX = original width of thumb / current width of thumb / ratioX\n // offsetRatioY = original height of thumb / current height of thumb / ratioY\n // instance height = wrap height - GAP\n instance.value![bar.value.offset] ** 2 /\n scrollbar.wrapElement![bar.value.scrollSize] /\n props.ratio /\n thumb.value![bar.value.offset]\n)\n\nconst clickThumbHandler = (e: MouseEvent) => {\n // prevent click event of middle and right button\n e.stopPropagation()\n if (e.ctrlKey || [1, 2].includes(e.button)) return\n\n window.getSelection()?.removeAllRanges()\n startDrag(e)\n\n const el = e.currentTarget as HTMLDivElement\n if (!el) return\n thumbState.value[bar.value.axis] =\n el[bar.value.offset] -\n (e[bar.value.client] - el.getBoundingClientRect()[bar.value.direction])\n}\n\nconst clickTrackHandler = (e: MouseEvent) => {\n if (!thumb.value || !instance.value || !scrollbar.wrapElement) return\n\n const offset = Math.abs(\n (e.target as HTMLElement).getBoundingClientRect()[bar.value.direction] -\n e[bar.value.client]\n )\n const thumbHalf = thumb.value[bar.value.offset] / 2\n const thumbPositionPercentage =\n ((offset - thumbHalf) * 100 * offsetRatio.value) /\n instance.value[bar.value.offset]\n\n scrollbar.wrapElement[bar.value.scroll] =\n (thumbPositionPercentage * scrollbar.wrapElement[bar.value.scrollSize]) /\n 100\n}\n\nconst startDrag = (e: MouseEvent) => {\n e.stopImmediatePropagation()\n cursorDown = true\n document.addEventListener('mousemove', mouseMoveDocumentHandler)\n document.addEventListener('mouseup', mouseUpDocumentHandler)\n originalOnSelectStart = document.onselectstart\n document.onselectstart = () => false\n}\n\nconst mouseMoveDocumentHandler = (e: MouseEvent) => {\n if (!instance.value || !thumb.value) return\n if (cursorDown === false) return\n\n const prevPage = thumbState.value[bar.value.axis]\n if (!prevPage) return\n\n const offset =\n (instance.value.getBoundingClientRect()[bar.value.direction] -\n e[bar.value.client]) *\n -1\n const thumbClickPosition = thumb.value[bar.value.offset] - prevPage\n const thumbPositionPercentage =\n ((offset - thumbClickPosition) * 100 * offsetRatio.value) /\n instance.value[bar.value.offset]\n scrollbar.wrapElement[bar.value.scroll] =\n (thumbPositionPercentage * scrollbar.wrapElement[bar.value.scrollSize]) /\n 100\n}\n\nconst mouseUpDocumentHandler = () => {\n cursorDown = false\n thumbState.value[bar.value.axis] = 0\n document.removeEventListener('mousemove', mouseMoveDocumentHandler)\n document.removeEventListener('mouseup', mouseUpDocumentHandler)\n restoreOnselectstart()\n if (cursorLeave) visible.value = false\n}\n\nconst mouseMoveScrollbarHandler = () => {\n cursorLeave = false\n visible.value = !!props.size\n}\n\nconst mouseLeaveScrollbarHandler = () => {\n cursorLeave = true\n visible.value = cursorDown\n}\n\nonBeforeUnmount(() => {\n restoreOnselectstart()\n document.removeEventListener('mouseup', mouseUpDocumentHandler)\n})\n\nconst restoreOnselectstart = () => {\n if (document.onselectstart !== originalOnSelectStart)\n document.onselectstart = originalOnSelectStart\n}\n\nuseEventListener(\n toRef(scrollbar, 'scrollbarElement'),\n 'mousemove',\n mouseMoveScrollbarHandler\n)\nuseEventListener(\n toRef(scrollbar, 'scrollbarElement'),\n 'mouseleave',\n mouseLeaveScrollbarHandler\n)\n</script>\n"],"names":["_createBlock","_Transition","_unref","_withCtx","_withDirectives","_createElementVNode","_normalizeClass"],"mappings":"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"}
1
+ {"version":3,"file":"thumb.mjs","sources":["../../../../../../packages/components/scrollbar/src/thumb.ts"],"sourcesContent":["import { buildProps } from '@element-plus/utils'\nimport type { ExtractPropTypes } from 'vue'\nimport type Thumb from './thumb.vue'\n\nexport const thumbProps = buildProps({\n vertical: Boolean,\n size: String,\n move: Number,\n ratio: {\n type: Number,\n required: true,\n },\n always: Boolean,\n} as const)\nexport type ThumbProps = ExtractPropTypes<typeof thumbProps>\n\nexport type ThumbInstance = InstanceType<typeof Thumb>\n"],"names":[],"mappings":";;;AACY,MAAC,UAAU,GAAG,UAAU,CAAC;AACrC,EAAE,QAAQ,EAAE,OAAO;AACnB,EAAE,IAAI,EAAE,MAAM;AACd,EAAE,IAAI,EAAE,MAAM;AACd,EAAE,KAAK,EAAE;AACT,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,QAAQ,EAAE,IAAI;AAClB,GAAG;AACH,EAAE,MAAM,EAAE,OAAO;AACjB,CAAC;;;;"}
@@ -1,16 +1,135 @@
1
+ import { defineComponent, inject, ref, computed, onBeforeUnmount, toRef, openBlock, createBlock, Transition, unref, withCtx, withDirectives, createElementVNode, normalizeClass, normalizeStyle, vShow } from 'vue';
2
+ import { isClient, useEventListener } from '@vueuse/core';
1
3
  import '../../../utils/index.mjs';
2
- import { buildProps } from '../../../utils/vue/props/runtime.mjs';
4
+ import '../../../hooks/index.mjs';
5
+ import { scrollbarContextKey } from './constants.mjs';
6
+ import { BAR_MAP, renderThumbStyle } from './util.mjs';
7
+ import { thumbProps } from './thumb.mjs';
8
+ import _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';
9
+ import { useNamespace } from '../../../hooks/use-namespace/index.mjs';
10
+ import { throwError } from '../../../utils/error.mjs';
3
11
 
4
- const thumbProps = buildProps({
5
- vertical: Boolean,
6
- size: String,
7
- move: Number,
8
- ratio: {
9
- type: Number,
10
- required: true
11
- },
12
- always: Boolean
12
+ const COMPONENT_NAME = "Thumb";
13
+ const _sfc_main = /* @__PURE__ */ defineComponent({
14
+ __name: "thumb",
15
+ props: thumbProps,
16
+ setup(__props) {
17
+ const props = __props;
18
+ const scrollbar = inject(scrollbarContextKey);
19
+ const ns = useNamespace("scrollbar");
20
+ if (!scrollbar)
21
+ throwError(COMPONENT_NAME, "can not inject scrollbar context");
22
+ const instance = ref();
23
+ const thumb = ref();
24
+ const thumbState = ref({});
25
+ const visible = ref(false);
26
+ let cursorDown = false;
27
+ let cursorLeave = false;
28
+ let originalOnSelectStart = isClient ? document.onselectstart : null;
29
+ const bar = computed(() => BAR_MAP[props.vertical ? "vertical" : "horizontal"]);
30
+ const thumbStyle = computed(() => renderThumbStyle({
31
+ size: props.size,
32
+ move: props.move,
33
+ bar: bar.value
34
+ }));
35
+ const offsetRatio = computed(() => instance.value[bar.value.offset] ** 2 / scrollbar.wrapElement[bar.value.scrollSize] / props.ratio / thumb.value[bar.value.offset]);
36
+ const clickThumbHandler = (e) => {
37
+ var _a;
38
+ e.stopPropagation();
39
+ if (e.ctrlKey || [1, 2].includes(e.button))
40
+ return;
41
+ (_a = window.getSelection()) == null ? void 0 : _a.removeAllRanges();
42
+ startDrag(e);
43
+ const el = e.currentTarget;
44
+ if (!el)
45
+ return;
46
+ thumbState.value[bar.value.axis] = el[bar.value.offset] - (e[bar.value.client] - el.getBoundingClientRect()[bar.value.direction]);
47
+ };
48
+ const clickTrackHandler = (e) => {
49
+ if (!thumb.value || !instance.value || !scrollbar.wrapElement)
50
+ return;
51
+ const offset = Math.abs(e.target.getBoundingClientRect()[bar.value.direction] - e[bar.value.client]);
52
+ const thumbHalf = thumb.value[bar.value.offset] / 2;
53
+ const thumbPositionPercentage = (offset - thumbHalf) * 100 * offsetRatio.value / instance.value[bar.value.offset];
54
+ scrollbar.wrapElement[bar.value.scroll] = thumbPositionPercentage * scrollbar.wrapElement[bar.value.scrollSize] / 100;
55
+ };
56
+ const startDrag = (e) => {
57
+ e.stopImmediatePropagation();
58
+ cursorDown = true;
59
+ document.addEventListener("mousemove", mouseMoveDocumentHandler);
60
+ document.addEventListener("mouseup", mouseUpDocumentHandler);
61
+ originalOnSelectStart = document.onselectstart;
62
+ document.onselectstart = () => false;
63
+ };
64
+ const mouseMoveDocumentHandler = (e) => {
65
+ if (!instance.value || !thumb.value)
66
+ return;
67
+ if (cursorDown === false)
68
+ return;
69
+ const prevPage = thumbState.value[bar.value.axis];
70
+ if (!prevPage)
71
+ return;
72
+ const offset = (instance.value.getBoundingClientRect()[bar.value.direction] - e[bar.value.client]) * -1;
73
+ const thumbClickPosition = thumb.value[bar.value.offset] - prevPage;
74
+ const thumbPositionPercentage = (offset - thumbClickPosition) * 100 * offsetRatio.value / instance.value[bar.value.offset];
75
+ scrollbar.wrapElement[bar.value.scroll] = thumbPositionPercentage * scrollbar.wrapElement[bar.value.scrollSize] / 100;
76
+ };
77
+ const mouseUpDocumentHandler = () => {
78
+ cursorDown = false;
79
+ thumbState.value[bar.value.axis] = 0;
80
+ document.removeEventListener("mousemove", mouseMoveDocumentHandler);
81
+ document.removeEventListener("mouseup", mouseUpDocumentHandler);
82
+ restoreOnselectstart();
83
+ if (cursorLeave)
84
+ visible.value = false;
85
+ };
86
+ const mouseMoveScrollbarHandler = () => {
87
+ cursorLeave = false;
88
+ visible.value = !!props.size;
89
+ };
90
+ const mouseLeaveScrollbarHandler = () => {
91
+ cursorLeave = true;
92
+ visible.value = cursorDown;
93
+ };
94
+ onBeforeUnmount(() => {
95
+ restoreOnselectstart();
96
+ document.removeEventListener("mouseup", mouseUpDocumentHandler);
97
+ });
98
+ const restoreOnselectstart = () => {
99
+ if (document.onselectstart !== originalOnSelectStart)
100
+ document.onselectstart = originalOnSelectStart;
101
+ };
102
+ useEventListener(toRef(scrollbar, "scrollbarElement"), "mousemove", mouseMoveScrollbarHandler);
103
+ useEventListener(toRef(scrollbar, "scrollbarElement"), "mouseleave", mouseLeaveScrollbarHandler);
104
+ return (_ctx, _cache) => {
105
+ return openBlock(), createBlock(Transition, {
106
+ name: unref(ns).b("fade"),
107
+ persisted: ""
108
+ }, {
109
+ default: withCtx(() => [
110
+ withDirectives(createElementVNode("div", {
111
+ ref_key: "instance",
112
+ ref: instance,
113
+ class: normalizeClass([unref(ns).e("bar"), unref(ns).is(unref(bar).key)]),
114
+ onMousedown: clickTrackHandler
115
+ }, [
116
+ createElementVNode("div", {
117
+ ref_key: "thumb",
118
+ ref: thumb,
119
+ class: normalizeClass(unref(ns).e("thumb")),
120
+ style: normalizeStyle(unref(thumbStyle)),
121
+ onMousedown: clickThumbHandler
122
+ }, null, 38)
123
+ ], 34), [
124
+ [vShow, _ctx.always || visible.value]
125
+ ])
126
+ ]),
127
+ _: 1
128
+ }, 8, ["name"]);
129
+ };
130
+ }
13
131
  });
132
+ var Thumb = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "thumb.vue"]]);
14
133
 
15
- export { thumbProps };
134
+ export { Thumb as default };
16
135
  //# sourceMappingURL=thumb2.mjs.map