@element-plus/nightly 0.0.20260308 → 0.0.20260310

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 (649) hide show
  1. package/attributes.json +1 -1
  2. package/dist/index.full.js +366 -264
  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 +8 -8
  6. package/dist/index.full.min.mjs.map +1 -1
  7. package/dist/index.full.mjs +366 -264
  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/hi.js +1 -1
  93. package/dist/locale/hi.min.js +1 -1
  94. package/dist/locale/hi.min.mjs +1 -1
  95. package/dist/locale/hi.mjs +1 -1
  96. package/dist/locale/hr.js +1 -1
  97. package/dist/locale/hr.min.js +1 -1
  98. package/dist/locale/hr.min.mjs +1 -1
  99. package/dist/locale/hr.mjs +1 -1
  100. package/dist/locale/hu.js +1 -1
  101. package/dist/locale/hu.min.js +1 -1
  102. package/dist/locale/hu.min.mjs +1 -1
  103. package/dist/locale/hu.mjs +1 -1
  104. package/dist/locale/hy-am.js +1 -1
  105. package/dist/locale/hy-am.min.js +1 -1
  106. package/dist/locale/hy-am.min.mjs +1 -1
  107. package/dist/locale/hy-am.mjs +1 -1
  108. package/dist/locale/id.js +1 -1
  109. package/dist/locale/id.min.js +1 -1
  110. package/dist/locale/id.min.mjs +1 -1
  111. package/dist/locale/id.mjs +1 -1
  112. package/dist/locale/it.js +1 -1
  113. package/dist/locale/it.min.js +1 -1
  114. package/dist/locale/it.min.mjs +1 -1
  115. package/dist/locale/it.mjs +1 -1
  116. package/dist/locale/ja.js +1 -1
  117. package/dist/locale/ja.min.js +1 -1
  118. package/dist/locale/ja.min.mjs +1 -1
  119. package/dist/locale/ja.mjs +1 -1
  120. package/dist/locale/kk.js +1 -1
  121. package/dist/locale/kk.min.js +1 -1
  122. package/dist/locale/kk.min.mjs +1 -1
  123. package/dist/locale/kk.mjs +1 -1
  124. package/dist/locale/km.js +1 -1
  125. package/dist/locale/km.min.js +1 -1
  126. package/dist/locale/km.min.mjs +1 -1
  127. package/dist/locale/km.mjs +1 -1
  128. package/dist/locale/ko.js +1 -1
  129. package/dist/locale/ko.min.js +1 -1
  130. package/dist/locale/ko.min.mjs +1 -1
  131. package/dist/locale/ko.mjs +1 -1
  132. package/dist/locale/ku.js +1 -1
  133. package/dist/locale/ku.min.js +1 -1
  134. package/dist/locale/ku.min.mjs +1 -1
  135. package/dist/locale/ku.mjs +1 -1
  136. package/dist/locale/ky.js +1 -1
  137. package/dist/locale/ky.min.js +1 -1
  138. package/dist/locale/ky.min.mjs +1 -1
  139. package/dist/locale/ky.mjs +1 -1
  140. package/dist/locale/lo.js +1 -1
  141. package/dist/locale/lo.min.js +1 -1
  142. package/dist/locale/lo.min.mjs +1 -1
  143. package/dist/locale/lo.mjs +1 -1
  144. package/dist/locale/lt.js +1 -1
  145. package/dist/locale/lt.min.js +1 -1
  146. package/dist/locale/lt.min.mjs +1 -1
  147. package/dist/locale/lt.mjs +1 -1
  148. package/dist/locale/lv.js +1 -1
  149. package/dist/locale/lv.min.js +1 -1
  150. package/dist/locale/lv.min.mjs +1 -1
  151. package/dist/locale/lv.mjs +1 -1
  152. package/dist/locale/mg.js +1 -1
  153. package/dist/locale/mg.min.js +1 -1
  154. package/dist/locale/mg.min.mjs +1 -1
  155. package/dist/locale/mg.mjs +1 -1
  156. package/dist/locale/mn.js +1 -1
  157. package/dist/locale/mn.min.js +1 -1
  158. package/dist/locale/mn.min.mjs +1 -1
  159. package/dist/locale/mn.mjs +1 -1
  160. package/dist/locale/ms.js +1 -1
  161. package/dist/locale/ms.min.js +1 -1
  162. package/dist/locale/ms.min.mjs +1 -1
  163. package/dist/locale/ms.mjs +1 -1
  164. package/dist/locale/my.js +1 -1
  165. package/dist/locale/my.min.js +1 -1
  166. package/dist/locale/my.min.mjs +1 -1
  167. package/dist/locale/my.mjs +1 -1
  168. package/dist/locale/nb-no.js +1 -1
  169. package/dist/locale/nb-no.min.js +1 -1
  170. package/dist/locale/nb-no.min.mjs +1 -1
  171. package/dist/locale/nb-no.mjs +1 -1
  172. package/dist/locale/nl.js +1 -1
  173. package/dist/locale/nl.min.js +1 -1
  174. package/dist/locale/nl.min.mjs +1 -1
  175. package/dist/locale/nl.mjs +1 -1
  176. package/dist/locale/no.js +1 -1
  177. package/dist/locale/no.min.js +1 -1
  178. package/dist/locale/no.min.mjs +1 -1
  179. package/dist/locale/no.mjs +1 -1
  180. package/dist/locale/pa.js +1 -1
  181. package/dist/locale/pa.min.js +1 -1
  182. package/dist/locale/pa.min.mjs +1 -1
  183. package/dist/locale/pa.mjs +1 -1
  184. package/dist/locale/pl.js +1 -1
  185. package/dist/locale/pl.min.js +1 -1
  186. package/dist/locale/pl.min.mjs +1 -1
  187. package/dist/locale/pl.mjs +1 -1
  188. package/dist/locale/pt-br.js +1 -1
  189. package/dist/locale/pt-br.min.js +1 -1
  190. package/dist/locale/pt-br.min.mjs +1 -1
  191. package/dist/locale/pt-br.mjs +1 -1
  192. package/dist/locale/pt.js +1 -1
  193. package/dist/locale/pt.min.js +1 -1
  194. package/dist/locale/pt.min.mjs +1 -1
  195. package/dist/locale/pt.mjs +1 -1
  196. package/dist/locale/ro.js +1 -1
  197. package/dist/locale/ro.min.js +1 -1
  198. package/dist/locale/ro.min.mjs +1 -1
  199. package/dist/locale/ro.mjs +1 -1
  200. package/dist/locale/ru.js +1 -1
  201. package/dist/locale/ru.min.js +1 -1
  202. package/dist/locale/ru.min.mjs +1 -1
  203. package/dist/locale/ru.mjs +1 -1
  204. package/dist/locale/sk.js +1 -1
  205. package/dist/locale/sk.min.js +1 -1
  206. package/dist/locale/sk.min.mjs +1 -1
  207. package/dist/locale/sk.mjs +1 -1
  208. package/dist/locale/sl.js +1 -1
  209. package/dist/locale/sl.min.js +1 -1
  210. package/dist/locale/sl.min.mjs +1 -1
  211. package/dist/locale/sl.mjs +1 -1
  212. package/dist/locale/sr.js +1 -1
  213. package/dist/locale/sr.min.js +1 -1
  214. package/dist/locale/sr.min.mjs +1 -1
  215. package/dist/locale/sr.mjs +1 -1
  216. package/dist/locale/sv.js +1 -1
  217. package/dist/locale/sv.min.js +1 -1
  218. package/dist/locale/sv.min.mjs +1 -1
  219. package/dist/locale/sv.mjs +1 -1
  220. package/dist/locale/sw.js +1 -1
  221. package/dist/locale/sw.min.js +1 -1
  222. package/dist/locale/sw.min.mjs +1 -1
  223. package/dist/locale/sw.mjs +1 -1
  224. package/dist/locale/ta.js +1 -1
  225. package/dist/locale/ta.min.js +1 -1
  226. package/dist/locale/ta.min.mjs +1 -1
  227. package/dist/locale/ta.mjs +1 -1
  228. package/dist/locale/te.js +1 -1
  229. package/dist/locale/te.min.js +1 -1
  230. package/dist/locale/te.min.mjs +1 -1
  231. package/dist/locale/te.mjs +1 -1
  232. package/dist/locale/th.js +1 -1
  233. package/dist/locale/th.min.js +1 -1
  234. package/dist/locale/th.min.mjs +1 -1
  235. package/dist/locale/th.mjs +1 -1
  236. package/dist/locale/tk.js +1 -1
  237. package/dist/locale/tk.min.js +1 -1
  238. package/dist/locale/tk.min.mjs +1 -1
  239. package/dist/locale/tk.mjs +1 -1
  240. package/dist/locale/tr.js +1 -1
  241. package/dist/locale/tr.min.js +1 -1
  242. package/dist/locale/tr.min.mjs +1 -1
  243. package/dist/locale/tr.mjs +1 -1
  244. package/dist/locale/ug-cn.js +1 -1
  245. package/dist/locale/ug-cn.min.js +1 -1
  246. package/dist/locale/ug-cn.min.mjs +1 -1
  247. package/dist/locale/ug-cn.mjs +1 -1
  248. package/dist/locale/uk.js +1 -1
  249. package/dist/locale/uk.min.js +1 -1
  250. package/dist/locale/uk.min.mjs +1 -1
  251. package/dist/locale/uk.mjs +1 -1
  252. package/dist/locale/uz-uz.js +1 -1
  253. package/dist/locale/uz-uz.min.js +1 -1
  254. package/dist/locale/uz-uz.min.mjs +1 -1
  255. package/dist/locale/uz-uz.mjs +1 -1
  256. package/dist/locale/vi.js +1 -1
  257. package/dist/locale/vi.min.js +1 -1
  258. package/dist/locale/vi.min.mjs +1 -1
  259. package/dist/locale/vi.mjs +1 -1
  260. package/dist/locale/zh-cn.js +1 -1
  261. package/dist/locale/zh-cn.min.js +1 -1
  262. package/dist/locale/zh-cn.min.mjs +1 -1
  263. package/dist/locale/zh-cn.mjs +1 -1
  264. package/dist/locale/zh-hk.js +1 -1
  265. package/dist/locale/zh-hk.min.js +1 -1
  266. package/dist/locale/zh-hk.min.mjs +1 -1
  267. package/dist/locale/zh-hk.mjs +1 -1
  268. package/dist/locale/zh-mo.js +1 -1
  269. package/dist/locale/zh-mo.min.js +1 -1
  270. package/dist/locale/zh-mo.min.mjs +1 -1
  271. package/dist/locale/zh-mo.mjs +1 -1
  272. package/dist/locale/zh-tw.js +1 -1
  273. package/dist/locale/zh-tw.min.js +1 -1
  274. package/dist/locale/zh-tw.min.mjs +1 -1
  275. package/dist/locale/zh-tw.mjs +1 -1
  276. package/es/components/affix/src/affix.d.ts +1 -1
  277. package/es/components/affix/src/affix.vue.d.ts +4 -4
  278. package/es/components/alert/src/alert.d.ts +2 -2
  279. package/es/components/alert/src/alert.vue.d.ts +2 -2
  280. package/es/components/anchor/src/anchor.vue.d.ts +2 -2
  281. package/es/components/autocomplete/src/autocomplete.d.ts +5 -5
  282. package/es/components/autocomplete/src/autocomplete.vue.d.ts +10 -10
  283. package/es/components/avatar/src/avatar-group-props.d.ts +1 -1
  284. package/es/components/avatar/src/avatar-group.d.ts +3 -3
  285. package/es/components/avatar/src/avatar.d.ts +1 -1
  286. package/es/components/avatar/src/avatar.vue.d.ts +1 -1
  287. package/es/components/backtop/src/backtop.vue.d.ts +2 -2
  288. package/es/components/badge/src/badge.d.ts +1 -1
  289. package/es/components/badge/src/badge.vue.d.ts +1 -1
  290. package/es/components/button/src/button-group.vue.d.ts +1 -1
  291. package/es/components/button/src/button.d.ts +2 -2
  292. package/es/components/button/src/button.vue.d.ts +5 -5
  293. package/es/components/calendar/src/calendar.d.ts +1 -1
  294. package/es/components/calendar/src/calendar.vue.d.ts +1 -1
  295. package/es/components/calendar/style/css.mjs +1 -1
  296. package/es/components/calendar/style/index.mjs +1 -1
  297. package/es/components/card/src/card.vue.d.ts +1 -1
  298. package/es/components/carousel/src/carousel.vue.d.ts +3 -3
  299. package/es/components/cascader/src/cascader.d.ts +4 -4
  300. package/es/components/cascader/src/cascader.vue.d.ts +14 -14
  301. package/es/components/cascader-panel/src/index.vue.d.ts +3 -3
  302. package/es/components/check-tag/src/check-tag.d.ts +1 -1
  303. package/es/components/checkbox/src/checkbox-button.vue.d.ts +5 -5
  304. package/es/components/checkbox/src/checkbox-group.d.ts +1 -1
  305. package/es/components/checkbox/src/checkbox-group.vue.d.ts +4 -4
  306. package/es/components/checkbox/src/checkbox.d.ts +1 -1
  307. package/es/components/checkbox/src/checkbox.vue.d.ts +5 -5
  308. package/es/components/checkbox/src/composables/use-checkbox-status.d.ts +2 -2
  309. package/es/components/checkbox/src/composables/use-checkbox.d.ts +2 -2
  310. package/es/components/collapse/src/collapse-item.vue.d.ts +1 -1
  311. package/es/components/collapse/src/collapse.vue.d.ts +2 -2
  312. package/es/components/color-picker/src/color-picker.d.ts +2 -2
  313. package/es/components/color-picker/src/color-picker.vue.d.ts +8 -8
  314. package/es/components/color-picker-panel/src/color-picker-panel.d.ts +1 -1
  315. package/es/components/color-picker-panel/src/color-picker-panel.vue.d.ts +1 -1
  316. package/es/components/config-provider/src/config-provider-props.d.ts +1 -1
  317. package/es/components/config-provider/src/config-provider.d.ts +2 -2
  318. package/es/components/config-provider/src/hooks/use-global-config.d.ts +1 -1
  319. package/es/components/countdown/src/countdown.vue.d.ts +1 -1
  320. package/es/components/date-picker/src/date-picker.d.ts +12 -12
  321. package/es/components/date-picker/src/props.d.ts +2 -2
  322. package/es/components/date-picker-panel/src/date-picker-panel.d.ts +4 -4
  323. package/es/components/descriptions/src/description-item.d.ts +3 -3
  324. package/es/components/descriptions/src/description.d.ts +1 -1
  325. package/es/components/descriptions/src/description.vue.d.ts +2 -2
  326. package/es/components/dialog/src/dialog.vue.d.ts +6 -6
  327. package/es/components/divider/src/divider.vue.d.ts +1 -1
  328. package/es/components/drawer/src/drawer.vue.d.ts +8 -8
  329. package/es/components/dropdown/src/dropdown.d.ts +2 -2
  330. package/es/components/dropdown/src/dropdown.vue.d.ts +10 -10
  331. package/es/components/dropdown/style/css.mjs +1 -1
  332. package/es/components/dropdown/style/index.mjs +1 -1
  333. package/es/components/form/src/form-item.d.ts +3 -3
  334. package/es/components/form/src/form-item.vue.d.ts +2 -2
  335. package/es/components/form/src/form.d.ts +3 -3
  336. package/es/components/form/src/hooks/use-form-common-props.d.ts +2 -2
  337. package/es/components/image/src/image.vue.d.ts +9 -9
  338. package/es/components/image-viewer/src/image-viewer.vue.d.ts +4 -4
  339. package/es/components/input/src/input.d.ts +4 -4
  340. package/es/components/input/src/input.vue.d.ts +16 -16
  341. package/es/components/input-number/src/input-number.d.ts +3 -3
  342. package/es/components/input-number/src/input-number.vue.d.ts +9 -9
  343. package/es/components/input-tag/src/composables/use-input-tag.d.ts +1 -1
  344. package/es/components/input-tag/src/input-tag.d.ts +4 -4
  345. package/es/components/input-tag/src/input-tag.vue.d.ts +12 -12
  346. package/es/components/link/src/link.d.ts +1 -1
  347. package/es/components/link/src/link.vue.d.ts +1 -1
  348. package/es/components/mention/src/mention.d.ts +5 -5
  349. package/es/components/mention/src/mention.vue.d.ts +10 -10
  350. package/es/components/menu/src/menu.d.ts +1 -1
  351. package/es/components/menu/src/sub-menu.d.ts +1 -1
  352. package/es/components/message/src/message.d.ts +2 -2
  353. package/es/components/message/src/message.vue.d.ts +7 -7
  354. package/es/components/notification/src/notification.d.ts +2 -2
  355. package/es/components/notification/src/notification.vue.d.ts +2 -2
  356. package/es/components/page-header/src/page-header.vue.d.ts +1 -1
  357. package/es/components/pagination/src/pagination.d.ts +7 -7
  358. package/es/components/popconfirm/src/popconfirm.d.ts +2 -2
  359. package/es/components/popconfirm/src/popconfirm.vue.d.ts +2 -2
  360. package/es/components/popover/src/popover.d.ts +2 -2
  361. package/es/components/popover/src/popover.vue.d.ts +8 -8
  362. package/es/components/popper/src/composables/use-content.d.ts +3 -3
  363. package/es/components/popper/src/content.d.ts +4 -4
  364. package/es/components/popper/src/content.vue.d.ts +11 -11
  365. package/es/components/progress/src/progress.vue.d.ts +2 -2
  366. package/es/components/radio/src/radio-button.d.ts +1 -1
  367. package/es/components/radio/src/radio-button.vue.d.ts +3 -3
  368. package/es/components/radio/src/radio-group.d.ts +1 -1
  369. package/es/components/radio/src/radio-group.vue.d.ts +5 -5
  370. package/es/components/radio/src/radio.d.ts +2 -2
  371. package/es/components/radio/src/radio.vue.d.ts +5 -5
  372. package/es/components/rate/src/rate.d.ts +1 -1
  373. package/es/components/rate/src/rate.vue.d.ts +3 -3
  374. package/es/components/result/src/result.d.ts +1 -1
  375. package/es/components/result/src/result.vue.d.ts +1 -1
  376. package/es/components/roving-focus-group/src/roving-focus-item.vue.d.ts +1 -1
  377. package/es/components/row/src/row.d.ts +2 -2
  378. package/es/components/scrollbar/src/scrollbar.vue.d.ts +1 -1
  379. package/es/components/segmented/index.d.ts +97 -97
  380. package/es/components/segmented/src/segmented.d.ts +1 -1
  381. package/es/components/segmented/src/segmented.vue.d.ts +4 -4
  382. package/es/components/select/src/select.d.ts +4 -4
  383. package/es/components/select/src/select.vue.d.ts +29 -29
  384. package/es/components/select-v2/src/defaults.d.ts +4 -4
  385. package/es/components/select-v2/src/select.vue.d.ts +29 -29
  386. package/es/components/skeleton/src/skeleton-item.d.ts +1 -1
  387. package/es/components/skeleton/src/skeleton.vue.d.ts +1 -1
  388. package/es/components/slider/src/button.vue.d.ts +1 -1
  389. package/es/components/slider/src/composables/index.d.ts +1 -1
  390. package/es/components/slider/src/composables/use-marks.mjs +16 -2
  391. package/es/components/slider/src/composables/use-marks.mjs.map +1 -1
  392. package/es/components/slider/src/composables/use-slider-button.mjs +57 -15
  393. package/es/components/slider/src/composables/use-slider-button.mjs.map +1 -1
  394. package/es/components/slider/src/composables/use-stops.mjs +2 -2
  395. package/es/components/slider/src/composables/use-stops.mjs.map +1 -1
  396. package/es/components/slider/src/constants.d.ts +2 -0
  397. package/es/components/slider/src/constants.mjs.map +1 -1
  398. package/es/components/slider/src/slider.d.ts +3 -3
  399. package/es/components/slider/src/slider.mjs +1 -1
  400. package/es/components/slider/src/slider.mjs.map +1 -1
  401. package/es/components/slider/src/slider.vue.d.ts +17 -17
  402. package/es/components/slider/src/slider.vue_vue_type_script_setup_true_lang.mjs +14 -5
  403. package/es/components/slider/src/slider.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  404. package/es/components/slider/src/slider2.mjs.map +1 -1
  405. package/es/components/space/src/space.d.ts +5 -5
  406. package/es/components/splitter/src/splitter.vue.d.ts +2 -2
  407. package/es/components/steps/src/item.d.ts +1 -1
  408. package/es/components/steps/src/item.vue.d.ts +1 -1
  409. package/es/components/steps/src/steps.d.ts +2 -2
  410. package/es/components/steps/src/steps.vue.d.ts +1 -1
  411. package/es/components/switch/src/switch.d.ts +1 -1
  412. package/es/components/switch/src/switch.vue.d.ts +6 -6
  413. package/es/components/table/src/table-body/index.d.ts +1 -1
  414. package/es/components/table/src/table-column/index.d.ts +2 -2
  415. package/es/components/table/src/table.vue.d.ts +17 -17
  416. package/es/components/table-v2/src/components/row.d.ts +1 -1
  417. package/es/components/table-v2/src/table-grid.d.ts +2 -2
  418. package/es/components/table-v2/src/table-v2.d.ts +3 -3
  419. package/es/components/tabs/src/tab-nav.d.ts +1 -1
  420. package/es/components/tabs/src/tab-pane.vue.d.ts +1 -1
  421. package/es/components/tabs/src/tabs.d.ts +7 -7
  422. package/es/components/tag/src/tag.d.ts +3 -3
  423. package/es/components/tag/src/tag.vue.d.ts +1 -1
  424. package/es/components/text/src/text.d.ts +2 -2
  425. package/es/components/time-picker/src/common/picker.vue.d.ts +16 -16
  426. package/es/components/time-picker/src/common/props.d.ts +2 -2
  427. package/es/components/time-picker/src/time-picker.d.ts +12 -12
  428. package/es/components/time-select/src/time-select.d.ts +1 -1
  429. package/es/components/time-select/src/time-select.vue.d.ts +9 -9
  430. package/es/components/timeline/src/timeline-item.d.ts +3 -3
  431. package/es/components/timeline/src/timeline-item.vue.d.ts +1 -1
  432. package/es/components/tooltip/src/content.d.ts +1 -1
  433. package/es/components/tooltip/src/content.vue.d.ts +7 -7
  434. package/es/components/tooltip/src/tooltip.d.ts +2 -2
  435. package/es/components/tooltip/src/tooltip.vue.d.ts +9 -9
  436. package/es/components/tooltip/src/tooltip.vue_vue_type_script_setup_true_lang.mjs +1 -0
  437. package/es/components/tooltip/src/tooltip.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  438. package/es/components/tooltip/src/tooltip2.mjs.map +1 -1
  439. package/es/components/tooltip/src/trigger.d.ts +1 -1
  440. package/es/components/tour/src/content.d.ts +2 -2
  441. package/es/components/tour/src/step.d.ts +1 -1
  442. package/es/components/tour/src/tour.d.ts +1 -1
  443. package/es/components/tour/src/tour.vue.d.ts +5 -5
  444. package/es/components/transfer/src/transfer-panel.vue.d.ts +1 -1
  445. package/es/components/transfer/src/transfer.vue.d.ts +3 -3
  446. package/es/components/tree/src/tree.vue.d.ts +12 -12
  447. package/es/components/tree-select/src/tree-select.vue.d.ts +36 -36
  448. package/es/components/tree-v2/src/tree.vue.d.ts +13 -13
  449. package/es/components/upload/src/upload-content.vue.d.ts +3 -3
  450. package/es/components/upload/src/upload.vue.d.ts +4 -4
  451. package/es/components/virtual-list/src/builders/build-grid.d.ts +6 -6
  452. package/es/components/virtual-list/src/components/dynamic-size-grid.d.ts +6 -6
  453. package/es/components/virtual-list/src/components/dynamic-size-list.d.ts +6 -6
  454. package/es/components/virtual-list/src/components/fixed-size-grid.d.ts +6 -6
  455. package/es/components/virtual-list/src/components/fixed-size-list.d.ts +6 -6
  456. package/es/components/watermark/src/watermark.vue.d.ts +2 -2
  457. package/es/hooks/use-floating/index.d.ts +4 -4
  458. package/es/hooks/use-popper/index.d.ts +3 -3
  459. package/es/hooks/use-size/index.d.ts +3 -3
  460. package/es/version.mjs +1 -1
  461. package/es/version.mjs.map +1 -1
  462. package/lib/components/affix/src/affix.d.ts +1 -1
  463. package/lib/components/affix/src/affix.vue.d.ts +4 -4
  464. package/lib/components/alert/src/alert.d.ts +2 -2
  465. package/lib/components/alert/src/alert.vue.d.ts +2 -2
  466. package/lib/components/anchor/src/anchor.vue.d.ts +2 -2
  467. package/lib/components/autocomplete/src/autocomplete.d.ts +5 -5
  468. package/lib/components/autocomplete/src/autocomplete.vue.d.ts +10 -10
  469. package/lib/components/avatar/src/avatar-group-props.d.ts +1 -1
  470. package/lib/components/avatar/src/avatar-group.d.ts +3 -3
  471. package/lib/components/avatar/src/avatar.d.ts +1 -1
  472. package/lib/components/avatar/src/avatar.vue.d.ts +1 -1
  473. package/lib/components/backtop/src/backtop.vue.d.ts +2 -2
  474. package/lib/components/badge/src/badge.d.ts +1 -1
  475. package/lib/components/badge/src/badge.vue.d.ts +1 -1
  476. package/lib/components/button/src/button-group.vue.d.ts +1 -1
  477. package/lib/components/button/src/button.d.ts +2 -2
  478. package/lib/components/button/src/button.vue.d.ts +5 -5
  479. package/lib/components/calendar/src/calendar.d.ts +1 -1
  480. package/lib/components/calendar/src/calendar.vue.d.ts +1 -1
  481. package/lib/components/calendar/style/css.js +1 -1
  482. package/lib/components/calendar/style/index.js +1 -1
  483. package/lib/components/card/src/card.vue.d.ts +1 -1
  484. package/lib/components/carousel/src/carousel.vue.d.ts +3 -3
  485. package/lib/components/cascader/src/cascader.d.ts +4 -4
  486. package/lib/components/cascader/src/cascader.vue.d.ts +14 -14
  487. package/lib/components/cascader-panel/src/index.vue.d.ts +3 -3
  488. package/lib/components/check-tag/src/check-tag.d.ts +1 -1
  489. package/lib/components/checkbox/src/checkbox-button.vue.d.ts +5 -5
  490. package/lib/components/checkbox/src/checkbox-group.d.ts +1 -1
  491. package/lib/components/checkbox/src/checkbox-group.vue.d.ts +4 -4
  492. package/lib/components/checkbox/src/checkbox.d.ts +1 -1
  493. package/lib/components/checkbox/src/checkbox.vue.d.ts +5 -5
  494. package/lib/components/checkbox/src/composables/use-checkbox-status.d.ts +2 -2
  495. package/lib/components/checkbox/src/composables/use-checkbox.d.ts +2 -2
  496. package/lib/components/collapse/src/collapse-item.vue.d.ts +1 -1
  497. package/lib/components/collapse/src/collapse.vue.d.ts +2 -2
  498. package/lib/components/color-picker/src/color-picker.d.ts +2 -2
  499. package/lib/components/color-picker/src/color-picker.vue.d.ts +8 -8
  500. package/lib/components/color-picker-panel/src/color-picker-panel.d.ts +1 -1
  501. package/lib/components/color-picker-panel/src/color-picker-panel.vue.d.ts +1 -1
  502. package/lib/components/config-provider/src/config-provider-props.d.ts +1 -1
  503. package/lib/components/config-provider/src/config-provider.d.ts +2 -2
  504. package/lib/components/config-provider/src/hooks/use-global-config.d.ts +1 -1
  505. package/lib/components/countdown/src/countdown.vue.d.ts +1 -1
  506. package/lib/components/date-picker/src/date-picker.d.ts +12 -12
  507. package/lib/components/date-picker/src/props.d.ts +2 -2
  508. package/lib/components/date-picker-panel/src/date-picker-panel.d.ts +4 -4
  509. package/lib/components/descriptions/src/description-item.d.ts +3 -3
  510. package/lib/components/descriptions/src/description.d.ts +1 -1
  511. package/lib/components/descriptions/src/description.vue.d.ts +2 -2
  512. package/lib/components/dialog/src/dialog.vue.d.ts +6 -6
  513. package/lib/components/divider/src/divider.vue.d.ts +1 -1
  514. package/lib/components/drawer/src/drawer.vue.d.ts +8 -8
  515. package/lib/components/dropdown/src/dropdown.d.ts +2 -2
  516. package/lib/components/dropdown/src/dropdown.vue.d.ts +10 -10
  517. package/lib/components/dropdown/style/css.js +1 -1
  518. package/lib/components/dropdown/style/index.js +1 -1
  519. package/lib/components/form/src/form-item.d.ts +3 -3
  520. package/lib/components/form/src/form-item.vue.d.ts +2 -2
  521. package/lib/components/form/src/form.d.ts +3 -3
  522. package/lib/components/form/src/hooks/use-form-common-props.d.ts +2 -2
  523. package/lib/components/image/src/image.vue.d.ts +9 -9
  524. package/lib/components/image-viewer/src/image-viewer.vue.d.ts +4 -4
  525. package/lib/components/input/src/input.d.ts +4 -4
  526. package/lib/components/input/src/input.vue.d.ts +16 -16
  527. package/lib/components/input-number/src/input-number.d.ts +3 -3
  528. package/lib/components/input-number/src/input-number.vue.d.ts +9 -9
  529. package/lib/components/input-tag/src/composables/use-input-tag.d.ts +1 -1
  530. package/lib/components/input-tag/src/input-tag.d.ts +4 -4
  531. package/lib/components/input-tag/src/input-tag.vue.d.ts +12 -12
  532. package/lib/components/link/src/link.d.ts +1 -1
  533. package/lib/components/link/src/link.vue.d.ts +1 -1
  534. package/lib/components/mention/src/mention.d.ts +5 -5
  535. package/lib/components/mention/src/mention.vue.d.ts +10 -10
  536. package/lib/components/menu/src/menu.d.ts +1 -1
  537. package/lib/components/menu/src/sub-menu.d.ts +1 -1
  538. package/lib/components/message/src/message.d.ts +2 -2
  539. package/lib/components/message/src/message.vue.d.ts +7 -7
  540. package/lib/components/notification/src/notification.d.ts +2 -2
  541. package/lib/components/notification/src/notification.vue.d.ts +2 -2
  542. package/lib/components/page-header/src/page-header.vue.d.ts +1 -1
  543. package/lib/components/pagination/src/pagination.d.ts +7 -7
  544. package/lib/components/popconfirm/src/popconfirm.d.ts +2 -2
  545. package/lib/components/popconfirm/src/popconfirm.vue.d.ts +2 -2
  546. package/lib/components/popover/src/popover.d.ts +2 -2
  547. package/lib/components/popover/src/popover.vue.d.ts +8 -8
  548. package/lib/components/popper/src/composables/use-content.d.ts +3 -3
  549. package/lib/components/popper/src/content.d.ts +4 -4
  550. package/lib/components/popper/src/content.vue.d.ts +11 -11
  551. package/lib/components/progress/src/progress.vue.d.ts +2 -2
  552. package/lib/components/radio/src/radio-button.d.ts +1 -1
  553. package/lib/components/radio/src/radio-button.vue.d.ts +3 -3
  554. package/lib/components/radio/src/radio-group.d.ts +1 -1
  555. package/lib/components/radio/src/radio-group.vue.d.ts +5 -5
  556. package/lib/components/radio/src/radio.d.ts +2 -2
  557. package/lib/components/radio/src/radio.vue.d.ts +5 -5
  558. package/lib/components/rate/src/rate.d.ts +1 -1
  559. package/lib/components/rate/src/rate.vue.d.ts +3 -3
  560. package/lib/components/result/src/result.d.ts +1 -1
  561. package/lib/components/result/src/result.vue.d.ts +1 -1
  562. package/lib/components/roving-focus-group/src/roving-focus-item.vue.d.ts +1 -1
  563. package/lib/components/row/src/row.d.ts +2 -2
  564. package/lib/components/scrollbar/src/scrollbar.vue.d.ts +1 -1
  565. package/lib/components/segmented/index.d.ts +97 -97
  566. package/lib/components/segmented/src/segmented.d.ts +1 -1
  567. package/lib/components/segmented/src/segmented.vue.d.ts +4 -4
  568. package/lib/components/select/src/select.d.ts +4 -4
  569. package/lib/components/select/src/select.vue.d.ts +29 -29
  570. package/lib/components/select-v2/src/defaults.d.ts +4 -4
  571. package/lib/components/select-v2/src/select.vue.d.ts +29 -29
  572. package/lib/components/skeleton/src/skeleton-item.d.ts +1 -1
  573. package/lib/components/skeleton/src/skeleton.vue.d.ts +1 -1
  574. package/lib/components/slider/src/button.vue.d.ts +1 -1
  575. package/lib/components/slider/src/composables/index.d.ts +1 -1
  576. package/lib/components/slider/src/composables/use-marks.js +15 -1
  577. package/lib/components/slider/src/composables/use-marks.js.map +1 -1
  578. package/lib/components/slider/src/composables/use-slider-button.js +57 -15
  579. package/lib/components/slider/src/composables/use-slider-button.js.map +1 -1
  580. package/lib/components/slider/src/composables/use-stops.js +2 -2
  581. package/lib/components/slider/src/composables/use-stops.js.map +1 -1
  582. package/lib/components/slider/src/constants.d.ts +2 -0
  583. package/lib/components/slider/src/constants.js.map +1 -1
  584. package/lib/components/slider/src/slider.d.ts +3 -3
  585. package/lib/components/slider/src/slider.js +1 -1
  586. package/lib/components/slider/src/slider.js.map +1 -1
  587. package/lib/components/slider/src/slider.vue.d.ts +17 -17
  588. package/lib/components/slider/src/slider.vue_vue_type_script_setup_true_lang.js +14 -5
  589. package/lib/components/slider/src/slider.vue_vue_type_script_setup_true_lang.js.map +1 -1
  590. package/lib/components/slider/src/slider2.js.map +1 -1
  591. package/lib/components/space/src/space.d.ts +5 -5
  592. package/lib/components/splitter/src/splitter.vue.d.ts +2 -2
  593. package/lib/components/steps/src/item.d.ts +1 -1
  594. package/lib/components/steps/src/item.vue.d.ts +1 -1
  595. package/lib/components/steps/src/steps.d.ts +2 -2
  596. package/lib/components/steps/src/steps.vue.d.ts +1 -1
  597. package/lib/components/switch/src/switch.d.ts +1 -1
  598. package/lib/components/switch/src/switch.vue.d.ts +6 -6
  599. package/lib/components/table/src/table-body/index.d.ts +1 -1
  600. package/lib/components/table/src/table-column/index.d.ts +2 -2
  601. package/lib/components/table/src/table.vue.d.ts +17 -17
  602. package/lib/components/table-v2/src/components/row.d.ts +1 -1
  603. package/lib/components/table-v2/src/table-grid.d.ts +2 -2
  604. package/lib/components/table-v2/src/table-v2.d.ts +3 -3
  605. package/lib/components/tabs/src/tab-nav.d.ts +1 -1
  606. package/lib/components/tabs/src/tab-pane.vue.d.ts +1 -1
  607. package/lib/components/tabs/src/tabs.d.ts +7 -7
  608. package/lib/components/tag/src/tag.d.ts +3 -3
  609. package/lib/components/tag/src/tag.vue.d.ts +1 -1
  610. package/lib/components/text/src/text.d.ts +2 -2
  611. package/lib/components/time-picker/src/common/picker.vue.d.ts +16 -16
  612. package/lib/components/time-picker/src/common/props.d.ts +2 -2
  613. package/lib/components/time-picker/src/time-picker.d.ts +12 -12
  614. package/lib/components/time-select/src/time-select.d.ts +1 -1
  615. package/lib/components/time-select/src/time-select.vue.d.ts +9 -9
  616. package/lib/components/timeline/src/timeline-item.d.ts +3 -3
  617. package/lib/components/timeline/src/timeline-item.vue.d.ts +1 -1
  618. package/lib/components/tooltip/src/content.d.ts +1 -1
  619. package/lib/components/tooltip/src/content.vue.d.ts +7 -7
  620. package/lib/components/tooltip/src/tooltip.d.ts +2 -2
  621. package/lib/components/tooltip/src/tooltip.vue.d.ts +9 -9
  622. package/lib/components/tooltip/src/tooltip.vue_vue_type_script_setup_true_lang.js +1 -0
  623. package/lib/components/tooltip/src/tooltip.vue_vue_type_script_setup_true_lang.js.map +1 -1
  624. package/lib/components/tooltip/src/tooltip2.js.map +1 -1
  625. package/lib/components/tooltip/src/trigger.d.ts +1 -1
  626. package/lib/components/tour/src/content.d.ts +2 -2
  627. package/lib/components/tour/src/step.d.ts +1 -1
  628. package/lib/components/tour/src/tour.d.ts +1 -1
  629. package/lib/components/tour/src/tour.vue.d.ts +5 -5
  630. package/lib/components/transfer/src/transfer-panel.vue.d.ts +1 -1
  631. package/lib/components/transfer/src/transfer.vue.d.ts +3 -3
  632. package/lib/components/tree/src/tree.vue.d.ts +12 -12
  633. package/lib/components/tree-select/src/tree-select.vue.d.ts +36 -36
  634. package/lib/components/tree-v2/src/tree.vue.d.ts +13 -13
  635. package/lib/components/upload/src/upload-content.vue.d.ts +3 -3
  636. package/lib/components/upload/src/upload.vue.d.ts +4 -4
  637. package/lib/components/virtual-list/src/builders/build-grid.d.ts +6 -6
  638. package/lib/components/virtual-list/src/components/dynamic-size-grid.d.ts +6 -6
  639. package/lib/components/virtual-list/src/components/dynamic-size-list.d.ts +6 -6
  640. package/lib/components/virtual-list/src/components/fixed-size-grid.d.ts +6 -6
  641. package/lib/components/virtual-list/src/components/fixed-size-list.d.ts +6 -6
  642. package/lib/components/watermark/src/watermark.vue.d.ts +2 -2
  643. package/lib/hooks/use-floating/index.d.ts +4 -4
  644. package/lib/hooks/use-popper/index.d.ts +3 -3
  645. package/lib/hooks/use-size/index.d.ts +3 -3
  646. package/lib/version.js +1 -1
  647. package/lib/version.js.map +1 -1
  648. package/package.json +2 -2
  649. package/web-types.json +1 -1
@@ -195,7 +195,7 @@ declare const __VLS_export: vue.DefineComponent<{
195
195
  readonly remote: BooleanConstructor;
196
196
  readonly debounce: EpPropFinalized<NumberConstructor, unknown, unknown, 300, boolean>;
197
197
  readonly size: {
198
- readonly type: vue.PropType<EpPropMergeType<StringConstructor, "" | "default" | "large" | "small", never>>;
198
+ readonly type: vue.PropType<EpPropMergeType<StringConstructor, "" | "default" | "small" | "large", never>>;
199
199
  readonly required: false;
200
200
  readonly validator: ((val: unknown) => boolean) | undefined;
201
201
  __epPropKey: true;
@@ -207,18 +207,18 @@ declare const __VLS_export: vue.DefineComponent<{
207
207
  readonly offset: EpPropFinalized<NumberConstructor, unknown, unknown, 12, boolean>;
208
208
  readonly remoteShowSuffix: BooleanConstructor;
209
209
  readonly showArrow: EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
210
- readonly placement: EpPropFinalized<(new (...args: any[]) => "auto" | "left" | "right" | "bottom" | "top" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-start" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => Placement) | ((new (...args: any[]) => "auto" | "left" | "right" | "bottom" | "top" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-start" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => Placement))[], Placement, unknown, "bottom-start", boolean>;
210
+ readonly placement: EpPropFinalized<(new (...args: any[]) => "top" | "auto" | "bottom" | "bottom-start" | "left" | "right" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => Placement) | ((new (...args: any[]) => "top" | "auto" | "bottom" | "bottom-start" | "left" | "right" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => Placement))[], Placement, unknown, "bottom-start", boolean>;
211
211
  readonly fallbackPlacements: EpPropFinalized<(new (...args: any[]) => Placement[]) | (() => Placement[]) | ((new (...args: any[]) => Placement[]) | (() => Placement[]))[], unknown, unknown, readonly ["bottom-start", "top-start", "right", "left"], boolean>;
212
212
  readonly tagType: {
213
213
  readonly default: "info";
214
- readonly type: vue.PropType<EpPropMergeType<StringConstructor, "success" | "primary" | "info" | "warning" | "danger", unknown>>;
214
+ readonly type: vue.PropType<EpPropMergeType<StringConstructor, "info" | "primary" | "success" | "warning" | "danger", unknown>>;
215
215
  readonly required: false;
216
216
  readonly validator: ((val: unknown) => boolean) | undefined;
217
217
  readonly __epPropKey: true;
218
218
  };
219
219
  readonly tagEffect: {
220
220
  readonly default: "light";
221
- readonly type: vue.PropType<EpPropMergeType<StringConstructor, "dark" | "light" | "plain", unknown>>;
221
+ readonly type: vue.PropType<EpPropMergeType<StringConstructor, "light" | "dark" | "plain", unknown>>;
222
222
  readonly required: false;
223
223
  readonly validator: ((val: unknown) => boolean) | undefined;
224
224
  readonly __epPropKey: true;
@@ -274,7 +274,7 @@ declare const __VLS_export: vue.DefineComponent<{
274
274
  hasModelValue: vue.ComputedRef<boolean>;
275
275
  shouldShowPlaceholder: vue.ComputedRef<boolean>;
276
276
  selectDisabled: vue.ComputedRef<boolean>;
277
- selectSize: vue.ComputedRef<"" | "default" | "large" | "small">;
277
+ selectSize: vue.ComputedRef<"" | "default" | "small" | "large">;
278
278
  needStatusIcon: vue.ComputedRef<boolean>;
279
279
  showClearBtn: vue.ComputedRef<boolean>;
280
280
  states: SelectStates;
@@ -327,7 +327,7 @@ declare const __VLS_export: vue.DefineComponent<{
327
327
  suffixRef: vue.Ref<HTMLElement | undefined>;
328
328
  collapseItemRef: vue.Ref<HTMLElement | undefined>;
329
329
  popperRef: vue.ComputedRef<HTMLElement | undefined>;
330
- validateState: vue.ComputedRef<"" | "error" | "success" | "validating">;
330
+ validateState: vue.ComputedRef<"" | "success" | "error" | "validating">;
331
331
  validateIcon: vue.ComputedRef<any>;
332
332
  showTagList: vue.ComputedRef<Option[]>;
333
333
  collapseTagList: vue.ComputedRef<Option[]>;
@@ -549,7 +549,7 @@ declare const __VLS_export: vue.DefineComponent<{
549
549
  readonly remote: BooleanConstructor;
550
550
  readonly debounce: EpPropFinalized<NumberConstructor, unknown, unknown, 300, boolean>;
551
551
  readonly size: {
552
- readonly type: vue.PropType<EpPropMergeType<StringConstructor, "" | "default" | "large" | "small", never>>;
552
+ readonly type: vue.PropType<EpPropMergeType<StringConstructor, "" | "default" | "small" | "large", never>>;
553
553
  readonly required: false;
554
554
  readonly validator: ((val: unknown) => boolean) | undefined;
555
555
  __epPropKey: true;
@@ -561,18 +561,18 @@ declare const __VLS_export: vue.DefineComponent<{
561
561
  readonly offset: EpPropFinalized<NumberConstructor, unknown, unknown, 12, boolean>;
562
562
  readonly remoteShowSuffix: BooleanConstructor;
563
563
  readonly showArrow: EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
564
- readonly placement: EpPropFinalized<(new (...args: any[]) => "auto" | "left" | "right" | "bottom" | "top" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-start" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => Placement) | ((new (...args: any[]) => "auto" | "left" | "right" | "bottom" | "top" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-start" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => Placement))[], Placement, unknown, "bottom-start", boolean>;
564
+ readonly placement: EpPropFinalized<(new (...args: any[]) => "top" | "auto" | "bottom" | "bottom-start" | "left" | "right" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => Placement) | ((new (...args: any[]) => "top" | "auto" | "bottom" | "bottom-start" | "left" | "right" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => Placement))[], Placement, unknown, "bottom-start", boolean>;
565
565
  readonly fallbackPlacements: EpPropFinalized<(new (...args: any[]) => Placement[]) | (() => Placement[]) | ((new (...args: any[]) => Placement[]) | (() => Placement[]))[], unknown, unknown, readonly ["bottom-start", "top-start", "right", "left"], boolean>;
566
566
  readonly tagType: {
567
567
  readonly default: "info";
568
- readonly type: vue.PropType<EpPropMergeType<StringConstructor, "success" | "primary" | "info" | "warning" | "danger", unknown>>;
568
+ readonly type: vue.PropType<EpPropMergeType<StringConstructor, "info" | "primary" | "success" | "warning" | "danger", unknown>>;
569
569
  readonly required: false;
570
570
  readonly validator: ((val: unknown) => boolean) | undefined;
571
571
  readonly __epPropKey: true;
572
572
  };
573
573
  readonly tagEffect: {
574
574
  readonly default: "light";
575
- readonly type: vue.PropType<EpPropMergeType<StringConstructor, "dark" | "light" | "plain", unknown>>;
575
+ readonly type: vue.PropType<EpPropMergeType<StringConstructor, "light" | "dark" | "plain", unknown>>;
576
576
  readonly required: false;
577
577
  readonly validator: ((val: unknown) => boolean) | undefined;
578
578
  readonly __epPropKey: true;
@@ -592,44 +592,43 @@ declare const __VLS_export: vue.DefineComponent<{
592
592
  __epPropKey: true;
593
593
  };
594
594
  }>> & {
595
+ onChange?: ((val: any) => any) | undefined;
595
596
  onFocus?: ((evt: FocusEvent) => any) | undefined;
596
597
  onBlur?: ((evt: FocusEvent) => any) | undefined;
597
598
  "onUpdate:modelValue"?: ((val: any) => any) | undefined;
598
- onChange?: ((val: any) => any) | undefined;
599
599
  onClear?: (() => any) | undefined;
600
600
  "onVisible-change"?: ((visible: boolean) => any) | undefined;
601
601
  "onRemove-tag"?: ((val: unknown) => any) | undefined;
602
602
  }, {
603
- readonly height: number;
603
+ readonly effect: EpPropMergeType<(new (...args: any[]) => string) | (() => PopperEffect) | ((new (...args: any[]) => string) | (() => PopperEffect))[], unknown, unknown>;
604
604
  readonly props: Props;
605
- readonly scrollbarAlwaysOn: boolean;
606
- readonly multiple: boolean;
607
- readonly disabled: EpPropMergeType<BooleanConstructor, unknown, unknown>;
605
+ readonly teleported: EpPropMergeType<BooleanConstructor, unknown, unknown>;
606
+ readonly offset: number;
607
+ readonly valueKey: string;
608
608
  readonly modelValue: any;
609
- readonly placement: EpPropMergeType<(new (...args: any[]) => "auto" | "left" | "right" | "bottom" | "top" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-start" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => Placement) | ((new (...args: any[]) => "auto" | "left" | "right" | "bottom" | "top" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-start" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => Placement))[], Placement, unknown>;
609
+ readonly debounce: number;
610
+ readonly placement: EpPropMergeType<(new (...args: any[]) => "top" | "auto" | "bottom" | "bottom-start" | "left" | "right" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => Placement) | ((new (...args: any[]) => "top" | "auto" | "bottom" | "bottom-start" | "left" | "right" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => Placement))[], Placement, unknown>;
611
+ readonly fitInputWidth: EpPropMergeType<readonly [BooleanConstructor, NumberConstructor], unknown, number | boolean>;
612
+ readonly disabled: EpPropMergeType<BooleanConstructor, unknown, unknown>;
613
+ readonly autocomplete: EpPropMergeType<(new (...args: any[]) => "none" | "both" | "inline" | "list") | (() => "none" | "both" | "inline" | "list") | ((new (...args: any[]) => "none" | "both" | "inline" | "list") | (() => "none" | "both" | "inline" | "list"))[], unknown, unknown>;
614
+ readonly clearable: boolean;
615
+ readonly tabindex: EpPropMergeType<readonly [StringConstructor, NumberConstructor], unknown, unknown>;
610
616
  readonly validateEvent: EpPropMergeType<BooleanConstructor, unknown, unknown>;
611
- readonly persistent: EpPropMergeType<BooleanConstructor, unknown, unknown>;
612
- readonly effect: EpPropMergeType<(new (...args: any[]) => string) | (() => PopperEffect) | ((new (...args: any[]) => string) | (() => PopperEffect))[], unknown, unknown>;
617
+ readonly multiple: boolean;
613
618
  readonly fallbackPlacements: Placement[];
614
- readonly offset: number;
615
619
  readonly popperOptions: Partial<Options>;
616
620
  readonly showArrow: EpPropMergeType<BooleanConstructor, unknown, unknown>;
617
- readonly teleported: EpPropMergeType<BooleanConstructor, unknown, unknown>;
621
+ readonly persistent: EpPropMergeType<BooleanConstructor, unknown, unknown>;
622
+ readonly height: number;
618
623
  readonly loading: boolean;
619
- readonly tabindex: EpPropMergeType<readonly [StringConstructor, NumberConstructor], unknown, unknown>;
620
624
  readonly valueOnClear: EpPropMergeType<(new (...args: any[]) => string | number | boolean | Function) | (() => string | number | boolean | Function | null) | ((new (...args: any[]) => string | number | boolean | Function) | (() => string | number | boolean | Function | null))[], unknown, unknown>;
621
- readonly automaticDropdown: boolean;
622
- readonly clearable: boolean;
623
- readonly valueKey: string;
624
- readonly debounce: number;
625
- readonly fitInputWidth: EpPropMergeType<readonly [BooleanConstructor, NumberConstructor], unknown, number | boolean>;
626
- readonly autocomplete: EpPropMergeType<(new (...args: any[]) => "none" | "both" | "inline" | "list") | (() => "none" | "both" | "inline" | "list") | ((new (...args: any[]) => "none" | "both" | "inline" | "list") | (() => "none" | "both" | "inline" | "list"))[], unknown, unknown>;
627
625
  readonly filterable: boolean;
628
626
  readonly collapseTags: boolean;
629
627
  readonly maxCollapseTags: number;
630
628
  readonly collapseTagsTooltip: boolean;
631
- readonly tagType: EpPropMergeType<StringConstructor, "success" | "primary" | "info" | "warning" | "danger", unknown>;
632
- readonly tagEffect: EpPropMergeType<StringConstructor, "dark" | "light" | "plain", unknown>;
629
+ readonly tagType: EpPropMergeType<StringConstructor, "info" | "primary" | "success" | "warning" | "danger", unknown>;
630
+ readonly tagEffect: EpPropMergeType<StringConstructor, "light" | "dark" | "plain", unknown>;
631
+ readonly automaticDropdown: boolean;
633
632
  readonly allowCreate: boolean;
634
633
  readonly remote: boolean;
635
634
  readonly multipleLimit: number;
@@ -639,6 +638,7 @@ declare const __VLS_export: vue.DefineComponent<{
639
638
  readonly remoteShowSuffix: boolean;
640
639
  readonly estimatedOptionHeight: number;
641
640
  readonly itemHeight: number;
641
+ readonly scrollbarAlwaysOn: boolean;
642
642
  }, {}>;
643
643
  //#endregion
644
644
  export { _default };
@@ -14,7 +14,7 @@ interface SkeletonItemProps {
14
14
  * @deprecated Removed after 3.0.0, Use `SkeletonItemProps` instead.
15
15
  */
16
16
  declare const skeletonItemProps: {
17
- readonly variant: EpPropFinalized<StringConstructor, "button" | "text" | "circle" | "caption" | "image" | "h1" | "h3" | "p" | "rect", unknown, "text", boolean>;
17
+ readonly variant: EpPropFinalized<StringConstructor, "text" | "button" | "circle" | "caption" | "image" | "h1" | "h3" | "p" | "rect", unknown, "text", boolean>;
18
18
  };
19
19
  /**
20
20
  * @deprecated Removed after 3.0.0, Use `SkeletonItemProps` instead.
@@ -21,8 +21,8 @@ declare const __VLS_base: vue.DefineComponent<__VLS_WithDefaults<__VLS_TypeProps
21
21
  count: number;
22
22
  rows: number;
23
23
  }>>>, {
24
- loading: boolean;
25
24
  rows: number;
25
+ loading: boolean;
26
26
  count: number;
27
27
  }, {}>;
28
28
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
@@ -26,9 +26,9 @@ declare const __VLS_export: vue.DefineComponent<{
26
26
  }>> & {
27
27
  "onUpdate:modelValue"?: ((value: number) => any) | undefined;
28
28
  }, {
29
- readonly vertical: boolean;
30
29
  readonly modelValue: number;
31
30
  readonly placement: EpPropMergeType<StringConstructor, Placement, unknown>;
31
+ readonly vertical: boolean;
32
32
  }, {}>;
33
33
  declare const _default: typeof __VLS_export;
34
34
  //#endregion
@@ -1,5 +1,5 @@
1
- import { useLifecycle } from "./use-lifecycle.js";
2
1
  import { Mark, useMarks } from "./use-marks.js";
2
+ import { useLifecycle } from "./use-lifecycle.js";
3
3
  import { useSlide } from "./use-slide.js";
4
4
  import { useSliderButton } from "./use-slider-button.js";
5
5
  import { useStops } from "./use-stops.js";
@@ -1,8 +1,9 @@
1
- import { computed } from "vue";
1
+ import { debugWarn } from "../../../../utils/error.mjs";
2
+ import { computed, watchEffect } from "vue";
2
3
 
3
4
  //#region ../../packages/components/slider/src/composables/use-marks.ts
4
5
  const useMarks = (props) => {
5
- return computed(() => {
6
+ const markList = computed(() => {
6
7
  if (!props.marks) return [];
7
8
  return Object.keys(props.marks).map(Number.parseFloat).sort((a, b) => a - b).filter((point) => point <= props.max && point >= props.min).map((point) => ({
8
9
  point,
@@ -10,6 +11,19 @@ const useMarks = (props) => {
10
11
  mark: props.marks[point]
11
12
  }));
12
13
  });
14
+ watchEffect(() => {
15
+ if (props.step === "mark" && !props.marks) debugWarn("ElSlider", "marks prop must be provided when step is mark");
16
+ if (props.marks) {
17
+ const keys = Object.keys(props.marks);
18
+ const validPoints = markList.value.map((m) => m.point);
19
+ const invalidKeys = keys.filter((key) => {
20
+ const parsed = Number.parseFloat(key);
21
+ return Number.isNaN(parsed) || !validPoints.includes(parsed);
22
+ });
23
+ if (invalidKeys.length > 0) debugWarn("ElSlider", `Some marks keys are invalid (not a number or out of [min, max]): [${invalidKeys.map((k) => `'${k}'`).join(", ")}] and will be ignored.`);
24
+ }
25
+ });
26
+ return markList;
13
27
  };
14
28
 
15
29
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"use-marks.mjs","names":[],"sources":["../../../../../../../packages/components/slider/src/composables/use-marks.ts"],"sourcesContent":["import { computed } from 'vue'\n\nimport type { SliderProps } from '../slider'\nimport type { SliderMarkerProps } from '../marker'\n\nexport interface Mark extends SliderMarkerProps {\n point: number\n position: number\n}\n\nexport const useMarks = (props: SliderProps) => {\n return computed(() => {\n if (!props.marks) {\n return []\n }\n\n const marksKeys = Object.keys(props.marks)\n return marksKeys\n .map(Number.parseFloat)\n .sort((a, b) => a - b)\n .filter((point) => point <= props.max && point >= props.min)\n .map(\n (point): Mark => ({\n point,\n position: ((point - props.min) * 100) / (props.max - props.min),\n mark: props.marks![point],\n })\n )\n })\n}\n"],"mappings":";;;AAUA,MAAa,YAAY,UAAuB;AAC9C,QAAO,eAAe;AACpB,MAAI,CAAC,MAAM,MACT,QAAO,EAAE;AAIX,SADkB,OAAO,KAAK,MAAM,MAAM,CAEvC,IAAI,OAAO,WAAW,CACtB,MAAM,GAAG,MAAM,IAAI,EAAE,CACrB,QAAQ,UAAU,SAAS,MAAM,OAAO,SAAS,MAAM,IAAI,CAC3D,KACE,WAAiB;GAChB;GACA,WAAY,QAAQ,MAAM,OAAO,OAAQ,MAAM,MAAM,MAAM;GAC3D,MAAM,MAAM,MAAO;GACpB,EACF;GACH"}
1
+ {"version":3,"file":"use-marks.mjs","names":[],"sources":["../../../../../../../packages/components/slider/src/composables/use-marks.ts"],"sourcesContent":["import { computed, watchEffect } from 'vue'\nimport { debugWarn } from '@element-plus/utils'\n\nimport type { SliderProps } from '../slider'\nimport type { SliderMarkerProps } from '../marker'\n\nexport interface Mark extends SliderMarkerProps {\n point: number\n position: number\n}\n\nexport const useMarks = (props: SliderProps) => {\n const markList = computed(() => {\n if (!props.marks) {\n return []\n }\n const marksKeys = Object.keys(props.marks)\n return marksKeys\n .map(Number.parseFloat)\n .sort((a, b) => a - b)\n .filter((point) => point <= props.max && point >= props.min)\n .map(\n (point): Mark => ({\n point,\n position: ((point - props.min) * 100) / (props.max - props.min),\n mark: props.marks![point],\n })\n )\n })\n\n watchEffect(() => {\n if (props.step === 'mark' && !props.marks) {\n debugWarn('ElSlider', 'marks prop must be provided when step is mark')\n }\n if (props.marks) {\n const keys = Object.keys(props.marks)\n const validPoints = markList.value.map((m) => m.point)\n const invalidKeys = keys.filter((key) => {\n const parsed = Number.parseFloat(key)\n return Number.isNaN(parsed) || !validPoints.includes(parsed)\n })\n if (invalidKeys.length > 0) {\n debugWarn(\n 'ElSlider',\n `Some marks keys are invalid (not a number or out of [min, max]): [${invalidKeys.map((k) => `'${k}'`).join(', ')}] and will be ignored.`\n )\n }\n }\n })\n\n return markList\n}\n"],"mappings":";;;;AAWA,MAAa,YAAY,UAAuB;CAC9C,MAAM,WAAW,eAAe;AAC9B,MAAI,CAAC,MAAM,MACT,QAAO,EAAE;AAGX,SADkB,OAAO,KAAK,MAAM,MAAM,CAEvC,IAAI,OAAO,WAAW,CACtB,MAAM,GAAG,MAAM,IAAI,EAAE,CACrB,QAAQ,UAAU,SAAS,MAAM,OAAO,SAAS,MAAM,IAAI,CAC3D,KACE,WAAiB;GAChB;GACA,WAAY,QAAQ,MAAM,OAAO,OAAQ,MAAM,MAAM,MAAM;GAC3D,MAAM,MAAM,MAAO;GACpB,EACF;GACH;AAEF,mBAAkB;AAChB,MAAI,MAAM,SAAS,UAAU,CAAC,MAAM,MAClC,WAAU,YAAY,gDAAgD;AAExE,MAAI,MAAM,OAAO;GACf,MAAM,OAAO,OAAO,KAAK,MAAM,MAAM;GACrC,MAAM,cAAc,SAAS,MAAM,KAAK,MAAM,EAAE,MAAM;GACtD,MAAM,cAAc,KAAK,QAAQ,QAAQ;IACvC,MAAM,SAAS,OAAO,WAAW,IAAI;AACrC,WAAO,OAAO,MAAM,OAAO,IAAI,CAAC,YAAY,SAAS,OAAO;KAC5D;AACF,OAAI,YAAY,SAAS,EACvB,WACE,YACA,qEAAqE,YAAY,KAAK,MAAM,IAAI,EAAE,GAAG,CAAC,KAAK,KAAK,CAAC,wBAClH;;GAGL;AAEF,QAAO"}
@@ -1,6 +1,7 @@
1
1
  import { EVENT_CODE } from "../../../../constants/aria.mjs";
2
2
  import { UPDATE_MODEL_EVENT } from "../../../../constants/event.mjs";
3
3
  import { getEventCode } from "../../../../utils/dom/event.mjs";
4
+ import { isNumber } from "../../../../utils/types.mjs";
4
5
  import { sliderContextKey } from "../constants.mjs";
5
6
  import { useEventListener } from "@vueuse/core";
6
7
  import { clamp as clamp$1, debounce } from "lodash-unified";
@@ -28,7 +29,7 @@ const useTooltip = (props, formatTooltip, showTooltip) => {
28
29
  };
29
30
  };
30
31
  const useSliderButton = (props, initData, emit) => {
31
- const { disabled, min, max, step, showTooltip, persistent, precision, sliderSize, formatTooltip, emitChange, resetSize, updateDragging } = inject(sliderContextKey);
32
+ const { disabled, min, max, step, showTooltip, persistent, precision, sliderSize, formatTooltip, emitChange, resetSize, updateDragging, markList } = inject(sliderContextKey);
32
33
  const { tooltip, tooltipVisible, formatValue, displayTooltip, hideTooltip } = useTooltip(props, formatTooltip, showTooltip);
33
34
  const button = ref();
34
35
  const currentPosition = computed(() => {
@@ -37,6 +38,9 @@ const useSliderButton = (props, initData, emit) => {
37
38
  const wrapperStyle = computed(() => {
38
39
  return props.vertical ? { bottom: currentPosition.value } : { left: currentPosition.value };
39
40
  });
41
+ const shouldMoveToMark = computed(() => {
42
+ return step.value === "mark" && markList.value.length > 0;
43
+ });
40
44
  const handleMouseEnter = () => {
41
45
  initData.hovering = true;
42
46
  displayTooltip();
@@ -62,17 +66,49 @@ const useSliderButton = (props, initData, emit) => {
62
66
  setPosition(initData.newPosition);
63
67
  emitChange();
64
68
  };
69
+ const moveToMark = (amount) => {
70
+ if (disabled.value || !markList.value.length) return;
71
+ const current = props.modelValue;
72
+ const epsilon = Number.EPSILON;
73
+ const stride = Math.abs(amount);
74
+ let target;
75
+ if (amount > 0) {
76
+ const startIndex = markList.value.findIndex((m) => m.point > current + epsilon);
77
+ if (startIndex !== -1) {
78
+ const targetIndex = Math.min(startIndex + stride - 1, markList.value.length - 1);
79
+ target = markList.value[targetIndex].point;
80
+ }
81
+ } else {
82
+ let startIndex = -1;
83
+ for (let i = markList.value.length - 1; i >= 0; i--) if (markList.value[i].point < current - epsilon) {
84
+ startIndex = i;
85
+ break;
86
+ }
87
+ if (startIndex !== -1) {
88
+ const targetIndex = Math.max(startIndex - (stride - 1), 0);
89
+ target = markList.value[targetIndex].point;
90
+ }
91
+ }
92
+ if (target !== void 0 && target !== current) {
93
+ setPosition((target - min.value) / (max.value - min.value) * 100);
94
+ emitChange();
95
+ }
96
+ };
65
97
  const onLeftKeyDown = () => {
66
- incrementPosition(-step.value);
98
+ if (shouldMoveToMark.value) moveToMark(-1);
99
+ else if (isNumber(step.value)) incrementPosition(-step.value);
67
100
  };
68
101
  const onRightKeyDown = () => {
69
- incrementPosition(step.value);
102
+ if (shouldMoveToMark.value) moveToMark(1);
103
+ else if (isNumber(step.value)) incrementPosition(step.value);
70
104
  };
71
105
  const onPageDownKeyDown = () => {
72
- incrementPosition(-step.value * 4);
106
+ if (shouldMoveToMark.value) moveToMark(-4);
107
+ else if (isNumber(step.value)) incrementPosition(-step.value * 4);
73
108
  };
74
109
  const onPageUpKeyDown = () => {
75
- incrementPosition(step.value * 4);
110
+ if (shouldMoveToMark.value) moveToMark(4);
111
+ else if (isNumber(step.value)) incrementPosition(step.value * 4);
76
112
  };
77
113
  const onHomeKeyDown = () => {
78
114
  if (disabled.value) return;
@@ -174,17 +210,23 @@ const useSliderButton = (props, initData, emit) => {
174
210
  const setPosition = async (newPosition) => {
175
211
  if (newPosition === null || Number.isNaN(+newPosition)) return;
176
212
  newPosition = clamp$1(newPosition, 0, 100);
177
- const fullSteps = Math.floor((max.value - min.value) / step.value);
178
- const fullRangePercentage = fullSteps * step.value / (max.value - min.value) * 100;
179
- const threshold = fullRangePercentage + (100 - fullRangePercentage) / 2;
180
213
  let value;
181
- if (newPosition < fullRangePercentage) {
182
- const valueBetween = fullRangePercentage / fullSteps;
183
- const steps = Math.round(newPosition / valueBetween);
184
- value = min.value + steps * step.value;
185
- } else if (newPosition < threshold) value = min.value + fullSteps * step.value;
186
- else value = max.value;
187
- value = Number.parseFloat(value.toFixed(precision.value));
214
+ if (step.value === "mark") if (markList.value.length === 0) value = newPosition <= 50 ? min.value : max.value;
215
+ else value = markList.value.reduce((prev, curr) => {
216
+ return Math.abs(curr.position - newPosition) < Math.abs(prev.position - newPosition) ? curr : prev;
217
+ }).point;
218
+ else {
219
+ const fullSteps = Math.floor((max.value - min.value) / step.value);
220
+ const fullRangePercentage = fullSteps * step.value / (max.value - min.value) * 100;
221
+ const threshold = fullRangePercentage + (100 - fullRangePercentage) / 2;
222
+ if (newPosition < fullRangePercentage) {
223
+ const valueBetween = fullRangePercentage / fullSteps;
224
+ const steps = Math.round(newPosition / valueBetween);
225
+ value = min.value + steps * step.value;
226
+ } else if (newPosition < threshold) value = min.value + fullSteps * step.value;
227
+ else value = max.value;
228
+ value = Number.parseFloat(value.toFixed(precision.value));
229
+ }
188
230
  if (value !== props.modelValue) emit(UPDATE_MODEL_EVENT, value);
189
231
  if (!initData.dragging && props.modelValue !== initData.oldValue) initData.oldValue = props.modelValue;
190
232
  await nextTick();
@@ -1 +1 @@
1
- {"version":3,"file":"use-slider-button.mjs","names":["clamp"],"sources":["../../../../../../../packages/components/slider/src/composables/use-slider-button.ts"],"sourcesContent":["import { computed, inject, nextTick, ref, watch } from 'vue'\nimport { clamp, debounce } from 'lodash-unified'\nimport { useEventListener } from '@vueuse/core'\nimport { EVENT_CODE, UPDATE_MODEL_EVENT } from '@element-plus/constants'\nimport { getEventCode } from '@element-plus/utils'\nimport { sliderContextKey } from '../constants'\n\nimport type { CSSProperties, ComputedRef, Ref, SetupContext } from 'vue'\nimport type { SliderProps } from '../slider'\nimport type {\n SliderButtonEmits,\n SliderButtonInitData,\n SliderButtonProps,\n} from '../button'\nimport type { TooltipInstance } from '@element-plus/components/tooltip'\n\nconst useTooltip = (\n props: SliderButtonProps,\n formatTooltip: Ref<SliderProps['formatTooltip']>,\n showTooltip: Ref<SliderProps['showTooltip']>\n) => {\n const tooltip = ref<TooltipInstance>()\n\n const tooltipVisible = ref(false)\n\n const enableFormat = computed(() => {\n return formatTooltip.value instanceof Function\n })\n\n const formatValue = computed(() => {\n return (\n (enableFormat.value && formatTooltip.value!(props.modelValue)) ||\n props.modelValue\n )\n })\n\n const displayTooltip = debounce(() => {\n showTooltip.value && (tooltipVisible.value = true)\n }, 50)\n\n const hideTooltip = debounce(() => {\n showTooltip.value && (tooltipVisible.value = false)\n }, 50)\n\n return {\n tooltip,\n tooltipVisible,\n formatValue,\n displayTooltip,\n hideTooltip,\n }\n}\n\nexport const useSliderButton = (\n props: SliderButtonProps,\n initData: SliderButtonInitData,\n emit: SetupContext<SliderButtonEmits>['emit']\n) => {\n const {\n disabled,\n min,\n max,\n step,\n showTooltip,\n persistent,\n precision,\n sliderSize,\n formatTooltip,\n emitChange,\n resetSize,\n updateDragging,\n } = inject(sliderContextKey)!\n\n const { tooltip, tooltipVisible, formatValue, displayTooltip, hideTooltip } =\n useTooltip(props, formatTooltip!, showTooltip)\n\n const button = ref<HTMLDivElement>()\n\n const currentPosition = computed(() => {\n return `${\n ((props.modelValue - min.value) / (max.value - min.value)) * 100\n }%`\n })\n\n const wrapperStyle: ComputedRef<CSSProperties> = computed(() => {\n return props.vertical\n ? { bottom: currentPosition.value }\n : { left: currentPosition.value }\n })\n\n const handleMouseEnter = () => {\n initData.hovering = true\n displayTooltip()\n }\n\n const handleMouseLeave = () => {\n initData.hovering = false\n if (!initData.dragging) {\n hideTooltip()\n }\n }\n\n const onButtonDown = (event: MouseEvent | TouchEvent) => {\n if (disabled.value) return\n event.preventDefault()\n onDragStart(event)\n window.addEventListener('mousemove', onDragging)\n window.addEventListener('touchmove', onDragging)\n window.addEventListener('mouseup', onDragEnd)\n window.addEventListener('touchend', onDragEnd)\n window.addEventListener('contextmenu', onDragEnd)\n button.value!.focus()\n }\n\n const incrementPosition = (amount: number) => {\n if (disabled.value) return\n initData.newPosition =\n Number.parseFloat(currentPosition.value) +\n (amount / (max.value - min.value)) * 100\n setPosition(initData.newPosition)\n emitChange()\n }\n\n const onLeftKeyDown = () => {\n incrementPosition(-step.value)\n }\n\n const onRightKeyDown = () => {\n incrementPosition(step.value)\n }\n\n const onPageDownKeyDown = () => {\n incrementPosition(-step.value * 4)\n }\n\n const onPageUpKeyDown = () => {\n incrementPosition(step.value * 4)\n }\n\n const onHomeKeyDown = () => {\n if (disabled.value) return\n setPosition(0)\n emitChange()\n }\n\n const onEndKeyDown = () => {\n if (disabled.value) return\n setPosition(100)\n emitChange()\n }\n\n const onKeyDown = (event: KeyboardEvent) => {\n const code = getEventCode(event)\n let isPreventDefault = true\n\n switch (code) {\n case EVENT_CODE.left:\n case EVENT_CODE.down:\n onLeftKeyDown()\n break\n case EVENT_CODE.right:\n case EVENT_CODE.up:\n onRightKeyDown()\n break\n case EVENT_CODE.home:\n onHomeKeyDown()\n break\n case EVENT_CODE.end:\n onEndKeyDown()\n break\n case EVENT_CODE.pageDown:\n onPageDownKeyDown()\n break\n case EVENT_CODE.pageUp:\n onPageUpKeyDown()\n break\n default:\n isPreventDefault = false\n break\n }\n\n isPreventDefault && event.preventDefault()\n }\n\n const getClientXY = (event: MouseEvent | TouchEvent) => {\n let clientX: number\n let clientY: number\n if (event.type.startsWith('touch')) {\n clientY = (event as TouchEvent).touches[0].clientY\n clientX = (event as TouchEvent).touches[0].clientX\n } else {\n clientY = (event as MouseEvent).clientY\n clientX = (event as MouseEvent).clientX\n }\n return {\n clientX,\n clientY,\n }\n }\n\n const onDragStart = (event: MouseEvent | TouchEvent) => {\n initData.dragging = true\n initData.isClick = true\n const { clientX, clientY } = getClientXY(event)\n if (props.vertical) {\n initData.startY = clientY\n } else {\n initData.startX = clientX\n }\n initData.startPosition = Number.parseFloat(currentPosition.value)\n initData.newPosition = initData.startPosition\n }\n\n const onDragging = (event: MouseEvent | TouchEvent) => {\n if (initData.dragging) {\n initData.isClick = false\n displayTooltip()\n resetSize()\n let diff: number\n const { clientX, clientY } = getClientXY(event)\n if (props.vertical) {\n initData.currentY = clientY\n diff = ((initData.startY - initData.currentY) / sliderSize.value) * 100\n } else {\n initData.currentX = clientX\n diff = ((initData.currentX - initData.startX) / sliderSize.value) * 100\n }\n initData.newPosition = initData.startPosition + diff\n setPosition(initData.newPosition)\n }\n }\n\n const onDragEnd = () => {\n if (initData.dragging) {\n /*\n * 防止在 mouseup 后立即触发 click,导致滑块有几率产生一小段位移\n * 不使用 preventDefault 是因为 mouseup 和 click 没有注册在同一个 DOM 上\n */\n setTimeout(() => {\n initData.dragging = false\n if (!initData.hovering) {\n hideTooltip()\n }\n if (!initData.isClick) {\n setPosition(initData.newPosition)\n }\n emitChange()\n }, 0)\n window.removeEventListener('mousemove', onDragging)\n window.removeEventListener('touchmove', onDragging)\n window.removeEventListener('mouseup', onDragEnd)\n window.removeEventListener('touchend', onDragEnd)\n window.removeEventListener('contextmenu', onDragEnd)\n }\n }\n\n const setPosition = async (newPosition: number) => {\n if (newPosition === null || Number.isNaN(+newPosition)) return\n\n newPosition = clamp(newPosition, 0, 100)\n const fullSteps = Math.floor((max.value - min.value) / step.value)\n const fullRangePercentage =\n ((fullSteps * step.value) / (max.value - min.value)) * 100\n const threshold = fullRangePercentage + (100 - fullRangePercentage) / 2\n let value\n if (newPosition < fullRangePercentage) {\n const valueBetween = fullRangePercentage / fullSteps\n const steps = Math.round(newPosition / valueBetween)\n value = min.value + steps * step.value\n } else if (newPosition < threshold) {\n value = min.value + fullSteps * step.value\n } else {\n value = max.value\n }\n value = Number.parseFloat(value.toFixed(precision.value))\n\n if (value !== props.modelValue) {\n emit(UPDATE_MODEL_EVENT, value)\n }\n\n if (!initData.dragging && props.modelValue !== initData.oldValue) {\n initData.oldValue = props.modelValue\n }\n\n await nextTick()\n initData.dragging && displayTooltip()\n tooltip.value!.updatePopper()\n }\n\n watch(\n () => initData.dragging,\n (val) => {\n updateDragging(val)\n }\n )\n\n useEventListener(button, 'touchstart', onButtonDown, { passive: false })\n\n return {\n disabled,\n button,\n tooltip,\n tooltipVisible,\n showTooltip,\n persistent,\n wrapperStyle,\n formatValue,\n handleMouseEnter,\n handleMouseLeave,\n onButtonDown,\n onKeyDown,\n setPosition,\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"use-slider-button.mjs","names":["clamp"],"sources":["../../../../../../../packages/components/slider/src/composables/use-slider-button.ts"],"sourcesContent":["import { computed, inject, nextTick, ref, watch } from 'vue'\nimport { clamp, debounce } from 'lodash-unified'\nimport { useEventListener } from '@vueuse/core'\nimport { EVENT_CODE, UPDATE_MODEL_EVENT } from '@element-plus/constants'\nimport { getEventCode, isNumber } from '@element-plus/utils'\nimport { sliderContextKey } from '../constants'\n\nimport type { CSSProperties, ComputedRef, Ref, SetupContext } from 'vue'\nimport type { SliderProps } from '../slider'\nimport type {\n SliderButtonEmits,\n SliderButtonInitData,\n SliderButtonProps,\n} from '../button'\nimport type { TooltipInstance } from '@element-plus/components/tooltip'\n\nconst useTooltip = (\n props: SliderButtonProps,\n formatTooltip: Ref<SliderProps['formatTooltip']>,\n showTooltip: Ref<SliderProps['showTooltip']>\n) => {\n const tooltip = ref<TooltipInstance>()\n\n const tooltipVisible = ref(false)\n\n const enableFormat = computed(() => {\n return formatTooltip.value instanceof Function\n })\n\n const formatValue = computed(() => {\n return (\n (enableFormat.value && formatTooltip.value!(props.modelValue)) ||\n props.modelValue\n )\n })\n\n const displayTooltip = debounce(() => {\n showTooltip.value && (tooltipVisible.value = true)\n }, 50)\n\n const hideTooltip = debounce(() => {\n showTooltip.value && (tooltipVisible.value = false)\n }, 50)\n\n return {\n tooltip,\n tooltipVisible,\n formatValue,\n displayTooltip,\n hideTooltip,\n }\n}\n\nexport const useSliderButton = (\n props: SliderButtonProps,\n initData: SliderButtonInitData,\n emit: SetupContext<SliderButtonEmits>['emit']\n) => {\n const {\n disabled,\n min,\n max,\n step,\n showTooltip,\n persistent,\n precision,\n sliderSize,\n formatTooltip,\n emitChange,\n resetSize,\n updateDragging,\n markList,\n } = inject(sliderContextKey)!\n\n const { tooltip, tooltipVisible, formatValue, displayTooltip, hideTooltip } =\n useTooltip(props, formatTooltip!, showTooltip)\n\n const button = ref<HTMLDivElement>()\n\n const currentPosition = computed(() => {\n return `${\n ((props.modelValue - min.value) / (max.value - min.value)) * 100\n }%`\n })\n\n const wrapperStyle: ComputedRef<CSSProperties> = computed(() => {\n return props.vertical\n ? { bottom: currentPosition.value }\n : { left: currentPosition.value }\n })\n\n const shouldMoveToMark = computed(() => {\n return step.value === 'mark' && markList.value.length > 0\n })\n\n const handleMouseEnter = () => {\n initData.hovering = true\n displayTooltip()\n }\n\n const handleMouseLeave = () => {\n initData.hovering = false\n if (!initData.dragging) {\n hideTooltip()\n }\n }\n\n const onButtonDown = (event: MouseEvent | TouchEvent) => {\n if (disabled.value) return\n event.preventDefault()\n onDragStart(event)\n window.addEventListener('mousemove', onDragging)\n window.addEventListener('touchmove', onDragging)\n window.addEventListener('mouseup', onDragEnd)\n window.addEventListener('touchend', onDragEnd)\n window.addEventListener('contextmenu', onDragEnd)\n button.value!.focus()\n }\n\n const incrementPosition = (amount: number) => {\n if (disabled.value) return\n initData.newPosition =\n Number.parseFloat(currentPosition.value) +\n (amount / (max.value - min.value)) * 100\n setPosition(initData.newPosition)\n emitChange()\n }\n\n const moveToMark = (amount: number) => {\n if (disabled.value || !markList.value.length) return\n\n const current = props.modelValue\n const epsilon = Number.EPSILON\n const stride = Math.abs(amount)\n let target: number | undefined\n\n if (amount > 0) {\n const startIndex = markList.value.findIndex(\n (m) => m.point > current + epsilon\n )\n if (startIndex !== -1) {\n const targetIndex = Math.min(\n startIndex + stride - 1,\n markList.value.length - 1\n )\n target = markList.value[targetIndex].point\n }\n } else {\n let startIndex = -1\n for (let i = markList.value.length - 1; i >= 0; i--) {\n if (markList.value[i].point < current - epsilon) {\n startIndex = i\n break\n }\n }\n\n if (startIndex !== -1) {\n const targetIndex = Math.max(startIndex - (stride - 1), 0)\n target = markList.value[targetIndex].point\n }\n }\n\n if (target !== undefined && target !== current) {\n const newPos = ((target - min.value) / (max.value - min.value)) * 100\n setPosition(newPos)\n emitChange()\n }\n }\n\n const onLeftKeyDown = () => {\n if (shouldMoveToMark.value) {\n moveToMark(-1)\n } else if (isNumber(step.value)) {\n incrementPosition(-step.value)\n }\n }\n\n const onRightKeyDown = () => {\n if (shouldMoveToMark.value) {\n moveToMark(1)\n } else if (isNumber(step.value)) {\n incrementPosition(step.value)\n }\n }\n\n const onPageDownKeyDown = () => {\n if (shouldMoveToMark.value) {\n moveToMark(-4)\n } else if (isNumber(step.value)) {\n incrementPosition(-step.value * 4)\n }\n }\n\n const onPageUpKeyDown = () => {\n if (shouldMoveToMark.value) {\n moveToMark(4)\n } else if (isNumber(step.value)) {\n incrementPosition(step.value * 4)\n }\n }\n\n const onHomeKeyDown = () => {\n if (disabled.value) return\n setPosition(0)\n emitChange()\n }\n\n const onEndKeyDown = () => {\n if (disabled.value) return\n setPosition(100)\n emitChange()\n }\n\n const onKeyDown = (event: KeyboardEvent) => {\n const code = getEventCode(event)\n let isPreventDefault = true\n\n switch (code) {\n case EVENT_CODE.left:\n case EVENT_CODE.down:\n onLeftKeyDown()\n break\n case EVENT_CODE.right:\n case EVENT_CODE.up:\n onRightKeyDown()\n break\n case EVENT_CODE.home:\n onHomeKeyDown()\n break\n case EVENT_CODE.end:\n onEndKeyDown()\n break\n case EVENT_CODE.pageDown:\n onPageDownKeyDown()\n break\n case EVENT_CODE.pageUp:\n onPageUpKeyDown()\n break\n default:\n isPreventDefault = false\n break\n }\n\n isPreventDefault && event.preventDefault()\n }\n\n const getClientXY = (event: MouseEvent | TouchEvent) => {\n let clientX: number\n let clientY: number\n if (event.type.startsWith('touch')) {\n clientY = (event as TouchEvent).touches[0].clientY\n clientX = (event as TouchEvent).touches[0].clientX\n } else {\n clientY = (event as MouseEvent).clientY\n clientX = (event as MouseEvent).clientX\n }\n return {\n clientX,\n clientY,\n }\n }\n\n const onDragStart = (event: MouseEvent | TouchEvent) => {\n initData.dragging = true\n initData.isClick = true\n const { clientX, clientY } = getClientXY(event)\n if (props.vertical) {\n initData.startY = clientY\n } else {\n initData.startX = clientX\n }\n initData.startPosition = Number.parseFloat(currentPosition.value)\n initData.newPosition = initData.startPosition\n }\n\n const onDragging = (event: MouseEvent | TouchEvent) => {\n if (initData.dragging) {\n initData.isClick = false\n displayTooltip()\n resetSize()\n let diff: number\n const { clientX, clientY } = getClientXY(event)\n if (props.vertical) {\n initData.currentY = clientY\n diff = ((initData.startY - initData.currentY) / sliderSize.value) * 100\n } else {\n initData.currentX = clientX\n diff = ((initData.currentX - initData.startX) / sliderSize.value) * 100\n }\n initData.newPosition = initData.startPosition + diff\n setPosition(initData.newPosition)\n }\n }\n\n const onDragEnd = () => {\n if (initData.dragging) {\n /*\n * 防止在 mouseup 后立即触发 click,导致滑块有几率产生一小段位移\n * 不使用 preventDefault 是因为 mouseup 和 click 没有注册在同一个 DOM 上\n */\n setTimeout(() => {\n initData.dragging = false\n if (!initData.hovering) {\n hideTooltip()\n }\n if (!initData.isClick) {\n setPosition(initData.newPosition)\n }\n emitChange()\n }, 0)\n window.removeEventListener('mousemove', onDragging)\n window.removeEventListener('touchmove', onDragging)\n window.removeEventListener('mouseup', onDragEnd)\n window.removeEventListener('touchend', onDragEnd)\n window.removeEventListener('contextmenu', onDragEnd)\n }\n }\n\n const setPosition = async (newPosition: number) => {\n if (newPosition === null || Number.isNaN(+newPosition)) return\n\n newPosition = clamp(newPosition, 0, 100)\n let value: number\n\n if (step.value === 'mark') {\n if (markList.value.length === 0) {\n value = newPosition <= 50 ? min.value : max.value\n } else {\n const closestMark = markList.value.reduce((prev, curr) => {\n return Math.abs(curr.position - newPosition) <\n Math.abs(prev.position - newPosition)\n ? curr\n : prev\n })\n value = closestMark.point\n }\n } else {\n const fullSteps = Math.floor((max.value - min.value) / step.value)\n const fullRangePercentage =\n ((fullSteps * step.value) / (max.value - min.value)) * 100\n const threshold = fullRangePercentage + (100 - fullRangePercentage) / 2\n if (newPosition < fullRangePercentage) {\n const valueBetween = fullRangePercentage / fullSteps\n const steps = Math.round(newPosition / valueBetween)\n value = min.value + steps * step.value\n } else if (newPosition < threshold) {\n value = min.value + fullSteps * step.value\n } else {\n value = max.value\n }\n value = Number.parseFloat(value.toFixed(precision.value))\n }\n\n if (value !== props.modelValue) {\n emit(UPDATE_MODEL_EVENT, value)\n }\n\n if (!initData.dragging && props.modelValue !== initData.oldValue) {\n initData.oldValue = props.modelValue\n }\n\n await nextTick()\n initData.dragging && displayTooltip()\n tooltip.value!.updatePopper()\n }\n\n watch(\n () => initData.dragging,\n (val) => {\n updateDragging(val)\n }\n )\n\n useEventListener(button, 'touchstart', onButtonDown, { passive: false })\n\n return {\n disabled,\n button,\n tooltip,\n tooltipVisible,\n showTooltip,\n persistent,\n wrapperStyle,\n formatValue,\n handleMouseEnter,\n handleMouseLeave,\n onButtonDown,\n onKeyDown,\n setPosition,\n }\n}\n"],"mappings":"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"}
@@ -5,8 +5,8 @@ import { computed } from "vue";
5
5
  const useStops = (props, initData, minValue, maxValue) => {
6
6
  const stops = computed(() => {
7
7
  if (!props.showStops || props.min > props.max) return [];
8
- if (props.step === 0) {
9
- debugWarn("ElSlider", "step should not be 0.");
8
+ if (props.step === "mark" || props.step === 0) {
9
+ if (props.step === 0) debugWarn("ElSlider", "step should not be 0.");
10
10
  return [];
11
11
  }
12
12
  const stopCount = Math.ceil((props.max - props.min) / props.step);
@@ -1 +1 @@
1
- {"version":3,"file":"use-stops.mjs","names":[],"sources":["../../../../../../../packages/components/slider/src/composables/use-stops.ts"],"sourcesContent":["import { computed } from 'vue'\nimport { debugWarn } from '@element-plus/utils'\n\nimport type { CSSProperties, ComputedRef } from 'vue'\nimport type { SliderInitData, SliderProps } from '../slider'\n\ntype Stops = {\n stops: ComputedRef<number[]>\n getStopStyle: (position: number) => CSSProperties\n}\n\nexport const useStops = (\n props: SliderProps,\n initData: SliderInitData,\n minValue: ComputedRef<number>,\n maxValue: ComputedRef<number>\n): Stops => {\n const stops = computed(() => {\n if (!props.showStops || props.min > props.max) return []\n if (props.step === 0) {\n debugWarn('ElSlider', 'step should not be 0.')\n return []\n }\n\n const stopCount = Math.ceil((props.max - props.min) / props.step)\n const stepWidth = (100 * props.step) / (props.max - props.min)\n const result = Array.from<number>({ length: stopCount - 1 }).map(\n (_, index) => (index + 1) * stepWidth\n )\n\n if (props.range) {\n return result.filter((step) => {\n return (\n step <\n (100 * (minValue.value - props.min)) / (props.max - props.min) ||\n step > (100 * (maxValue.value - props.min)) / (props.max - props.min)\n )\n })\n } else {\n return result.filter(\n (step) =>\n step >\n (100 * (initData.firstValue - props.min)) / (props.max - props.min)\n )\n }\n })\n\n const getStopStyle = (position: number): CSSProperties => {\n return props.vertical\n ? { bottom: `${position}%` }\n : { left: `${position}%` }\n }\n\n return {\n stops,\n getStopStyle,\n }\n}\n"],"mappings":";;;;AAWA,MAAa,YACX,OACA,UACA,UACA,aACU;CACV,MAAM,QAAQ,eAAe;AAC3B,MAAI,CAAC,MAAM,aAAa,MAAM,MAAM,MAAM,IAAK,QAAO,EAAE;AACxD,MAAI,MAAM,SAAS,GAAG;AACpB,aAAU,YAAY,wBAAwB;AAC9C,UAAO,EAAE;;EAGX,MAAM,YAAY,KAAK,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,KAAK;EACjE,MAAM,YAAa,MAAM,MAAM,QAAS,MAAM,MAAM,MAAM;EAC1D,MAAM,SAAS,MAAM,KAAa,EAAE,QAAQ,YAAY,GAAG,CAAC,CAAC,KAC1D,GAAG,WAAW,QAAQ,KAAK,UAC7B;AAED,MAAI,MAAM,MACR,QAAO,OAAO,QAAQ,SAAS;AAC7B,UACE,OACG,OAAO,SAAS,QAAQ,MAAM,QAAS,MAAM,MAAM,MAAM,QAC5D,OAAQ,OAAO,SAAS,QAAQ,MAAM,QAAS,MAAM,MAAM,MAAM;IAEnE;MAEF,QAAO,OAAO,QACX,SACC,OACC,OAAO,SAAS,aAAa,MAAM,QAAS,MAAM,MAAM,MAAM,KAClE;GAEH;CAEF,MAAM,gBAAgB,aAAoC;AACxD,SAAO,MAAM,WACT,EAAE,QAAQ,GAAG,SAAS,IAAI,GAC1B,EAAE,MAAM,GAAG,SAAS,IAAI;;AAG9B,QAAO;EACL;EACA;EACD"}
1
+ {"version":3,"file":"use-stops.mjs","names":[],"sources":["../../../../../../../packages/components/slider/src/composables/use-stops.ts"],"sourcesContent":["import { computed } from 'vue'\nimport { debugWarn } from '@element-plus/utils'\n\nimport type { CSSProperties, ComputedRef } from 'vue'\nimport type { SliderInitData, SliderProps } from '../slider'\n\ntype Stops = {\n stops: ComputedRef<number[]>\n getStopStyle: (position: number) => CSSProperties\n}\n\nexport const useStops = (\n props: SliderProps,\n initData: SliderInitData,\n minValue: ComputedRef<number>,\n maxValue: ComputedRef<number>\n): Stops => {\n const stops = computed(() => {\n if (!props.showStops || props.min > props.max) return []\n if (props.step === 'mark' || props.step === 0) {\n if (props.step === 0) debugWarn('ElSlider', 'step should not be 0.')\n return []\n }\n\n const stopCount = Math.ceil((props.max - props.min) / props.step)\n const stepWidth = (100 * props.step) / (props.max - props.min)\n const result = Array.from<number>({ length: stopCount - 1 }).map(\n (_, index) => (index + 1) * stepWidth\n )\n\n if (props.range) {\n return result.filter((step) => {\n return (\n step <\n (100 * (minValue.value - props.min)) / (props.max - props.min) ||\n step > (100 * (maxValue.value - props.min)) / (props.max - props.min)\n )\n })\n } else {\n return result.filter(\n (step) =>\n step >\n (100 * (initData.firstValue - props.min)) / (props.max - props.min)\n )\n }\n })\n\n const getStopStyle = (position: number): CSSProperties => {\n return props.vertical\n ? { bottom: `${position}%` }\n : { left: `${position}%` }\n }\n\n return {\n stops,\n getStopStyle,\n }\n}\n"],"mappings":";;;;AAWA,MAAa,YACX,OACA,UACA,UACA,aACU;CACV,MAAM,QAAQ,eAAe;AAC3B,MAAI,CAAC,MAAM,aAAa,MAAM,MAAM,MAAM,IAAK,QAAO,EAAE;AACxD,MAAI,MAAM,SAAS,UAAU,MAAM,SAAS,GAAG;AAC7C,OAAI,MAAM,SAAS,EAAG,WAAU,YAAY,wBAAwB;AACpE,UAAO,EAAE;;EAGX,MAAM,YAAY,KAAK,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,KAAK;EACjE,MAAM,YAAa,MAAM,MAAM,QAAS,MAAM,MAAM,MAAM;EAC1D,MAAM,SAAS,MAAM,KAAa,EAAE,QAAQ,YAAY,GAAG,CAAC,CAAC,KAC1D,GAAG,WAAW,QAAQ,KAAK,UAC7B;AAED,MAAI,MAAM,MACR,QAAO,OAAO,QAAQ,SAAS;AAC7B,UACE,OACG,OAAO,SAAS,QAAQ,MAAM,QAAS,MAAM,MAAM,MAAM,QAC5D,OAAQ,OAAO,SAAS,QAAQ,MAAM,QAAS,MAAM,MAAM,MAAM;IAEnE;MAEF,QAAO,OAAO,QACX,SACC,OACC,OAAO,SAAS,aAAa,MAAM,QAAS,MAAM,MAAM,MAAM,KAClE;GAEH;CAEF,MAAM,gBAAgB,aAAoC;AACxD,SAAO,MAAM,WACT,EAAE,QAAQ,GAAG,SAAS,IAAI,GAC1B,EAAE,MAAM,GAAG,SAAS,IAAI;;AAG9B,QAAO;EACL;EACA;EACD"}
@@ -1,4 +1,5 @@
1
1
  import { SliderProps } from "./slider.js";
2
+ import { Mark } from "./composables/use-marks.js";
2
3
  import { ComputedRef, InjectionKey, Ref, ToRefs } from "vue";
3
4
 
4
5
  //#region ../../packages/components/slider/src/constants.d.ts
@@ -9,6 +10,7 @@ interface SliderContext extends ToRefs<SliderProps> {
9
10
  resetSize: () => void;
10
11
  updateDragging: (val: boolean) => void;
11
12
  disabled: ComputedRef<boolean>;
13
+ markList: ComputedRef<Mark[]>;
12
14
  }
13
15
  declare const sliderContextKey: InjectionKey<SliderContext>;
14
16
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"constants.mjs","names":[],"sources":["../../../../../../packages/components/slider/src/constants.ts"],"sourcesContent":["import type { ComputedRef, InjectionKey, Ref, ToRefs } from 'vue'\nimport type { SliderProps } from './slider'\n\nexport interface SliderContext extends ToRefs<SliderProps> {\n precision: ComputedRef<number>\n sliderSize: Ref<number>\n emitChange: () => void\n resetSize: () => void\n updateDragging: (val: boolean) => void\n disabled: ComputedRef<boolean>\n}\n\nexport const sliderContextKey: InjectionKey<SliderContext> =\n Symbol('sliderContextKey')\n"],"mappings":";AAYA,MAAa,mBACX,OAAO,mBAAmB"}
1
+ {"version":3,"file":"constants.mjs","names":[],"sources":["../../../../../../packages/components/slider/src/constants.ts"],"sourcesContent":["import type { ComputedRef, InjectionKey, Ref, ToRefs } from 'vue'\nimport type { SliderProps } from './slider'\nimport type { Mark } from './composables/use-marks'\n\nexport interface SliderContext extends ToRefs<SliderProps> {\n precision: ComputedRef<number>\n sliderSize: Ref<number>\n emitChange: () => void\n resetSize: () => void\n updateDragging: (val: boolean) => void\n disabled: ComputedRef<boolean>\n markList: ComputedRef<Mark[]>\n}\n\nexport const sliderContextKey: InjectionKey<SliderContext> =\n Symbol('sliderContextKey')\n"],"mappings":";AAcA,MAAa,mBACX,OAAO,mBAAmB"}
@@ -22,17 +22,17 @@ declare const sliderProps: {
22
22
  readonly id: EpPropFinalized<StringConstructor, unknown, unknown, undefined, boolean>;
23
23
  readonly min: EpPropFinalized<NumberConstructor, unknown, unknown, 0, boolean>;
24
24
  readonly max: EpPropFinalized<NumberConstructor, unknown, unknown, 100, boolean>;
25
- readonly step: EpPropFinalized<NumberConstructor, unknown, unknown, 1, boolean>;
25
+ readonly step: EpPropFinalized<(new (...args: any[]) => number | "mark") | (() => number | "mark") | ((new (...args: any[]) => number | "mark") | (() => number | "mark"))[], unknown, unknown, 1, boolean>;
26
26
  readonly showInput: BooleanConstructor;
27
27
  readonly showInputControls: EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
28
28
  readonly size: {
29
- readonly type: vue.PropType<EpPropMergeType<StringConstructor, "" | "default" | "large" | "small", never>>;
29
+ readonly type: vue.PropType<EpPropMergeType<StringConstructor, "" | "default" | "small" | "large", never>>;
30
30
  readonly required: false;
31
31
  readonly validator: ((val: unknown) => boolean) | undefined;
32
32
  __epPropKey: true;
33
33
  };
34
34
  readonly inputSize: {
35
- readonly type: vue.PropType<EpPropMergeType<StringConstructor, "" | "default" | "large" | "small", never>>;
35
+ readonly type: vue.PropType<EpPropMergeType<StringConstructor, "" | "default" | "small" | "large", never>>;
36
36
  readonly required: false;
37
37
  readonly validator: ((val: unknown) => boolean) | undefined;
38
38
  __epPropKey: true;
@@ -24,7 +24,7 @@ const sliderProps = buildProps({
24
24
  default: 100
25
25
  },
26
26
  step: {
27
- type: Number,
27
+ type: definePropType([Number, String]),
28
28
  default: 1
29
29
  },
30
30
  showInput: Boolean,
@@ -1 +1 @@
1
- {"version":3,"file":"slider.mjs","names":[],"sources":["../../../../../../packages/components/slider/src/slider.ts"],"sourcesContent":["import { placements } from '@popperjs/core'\nimport {\n buildProps,\n definePropType,\n isArray,\n isNumber,\n} from '@element-plus/utils'\nimport {\n CHANGE_EVENT,\n INPUT_EVENT,\n UPDATE_MODEL_EVENT,\n} from '@element-plus/constants'\nimport { useAriaProps, useSizeProp } from '@element-plus/hooks'\n\nimport type { Arrayable } from '@element-plus/utils'\nimport type { ExtractPropTypes, ExtractPublicPropTypes } from 'vue'\nimport type { SliderMarkerProps } from './marker'\nimport type Slider from './slider.vue'\n\ntype SliderMarks = Record<number, string | SliderMarkerProps['mark']>\n\nexport interface SliderInitData {\n firstValue: number\n secondValue: number\n oldValue?: Arrayable<number>\n dragging: boolean\n sliderSize: number\n}\n\nexport const sliderProps = buildProps({\n /**\n * @description binding value\n */\n modelValue: {\n type: definePropType<Arrayable<number>>([Number, Array]),\n default: 0,\n },\n id: {\n type: String,\n default: undefined,\n },\n /**\n * @description minimum value\n */\n min: {\n type: Number,\n default: 0,\n },\n /**\n * @description maximum value\n */\n max: {\n type: Number,\n default: 100,\n },\n /**\n * @description step size\n */\n step: {\n type: Number,\n default: 1,\n },\n /**\n * @description whether to display an input box, works when `range` is false\n */\n showInput: Boolean,\n /**\n * @description whether to display control buttons when `show-input` is true\n */\n showInputControls: {\n type: Boolean,\n default: true,\n },\n /**\n * @description size of the slider wrapper, will not work in vertical mode\n */\n size: useSizeProp,\n /**\n * @description size of the input box, when set `size`, the default is the value of `size`\n */\n inputSize: useSizeProp,\n /**\n * @description whether to display breakpoints\n */\n showStops: Boolean,\n /**\n * @description whether to display tooltip value\n */\n showTooltip: {\n type: Boolean,\n default: true,\n },\n /**\n * @description format to display tooltip value\n */\n formatTooltip: {\n type: definePropType<(val: number) => number | string>(Function),\n default: undefined,\n },\n /**\n * @description whether Slider is disabled\n */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /**\n * @description whether to select a range\n */\n range: Boolean,\n /**\n * @description vertical mode\n */\n vertical: Boolean,\n /**\n * @description slider height, required in vertical mode\n */\n height: String,\n /**\n * @description when `range` is true, screen reader label for the start of the range\n */\n rangeStartLabel: {\n type: String,\n default: undefined,\n },\n /**\n * @description when `range` is true, screen reader label for the end of the range\n */\n rangeEndLabel: {\n type: String,\n default: undefined,\n },\n /**\n * @description format to display the `aria-valuenow` attribute for screen readers\n */\n formatValueText: {\n type: definePropType<(val: number) => string>(Function),\n default: undefined,\n },\n /**\n * @description custom class name for the tooltip\n */\n tooltipClass: {\n type: String,\n default: undefined,\n },\n /**\n * @description position of Tooltip\n */\n placement: {\n type: String,\n values: placements,\n default: 'top',\n },\n /**\n * @description marks, type of key must be `number` and must in closed interval `[min, max]`, each mark can custom style\n */\n marks: {\n type: definePropType<SliderMarks>(Object),\n },\n /**\n * @description whether to trigger form validation\n */\n validateEvent: {\n type: Boolean,\n default: true,\n },\n /**\n * @description when slider tooltip inactive and `persistent` is `false` , popconfirm will be destroyed. `persistent` always be `false` when `show-tooltip ` is `false`\n */\n persistent: {\n type: Boolean,\n default: true,\n },\n ...useAriaProps(['ariaLabel']),\n} as const)\nexport type SliderProps = ExtractPropTypes<typeof sliderProps>\nexport type SliderPropsPublic = ExtractPublicPropTypes<typeof sliderProps>\n\nconst isValidValue = (value: Arrayable<number>) =>\n isNumber(value) || (isArray(value) && value.every(isNumber))\nexport const sliderEmits = {\n [UPDATE_MODEL_EVENT]: isValidValue,\n [INPUT_EVENT]: isValidValue,\n [CHANGE_EVENT]: isValidValue,\n}\nexport type SliderEmits = typeof sliderEmits\n\nexport type SliderInstance = InstanceType<typeof Slider> & unknown\n"],"mappings":";;;;;;;;AA6BA,MAAa,cAAc,WAAW;CAIpC,YAAY;EACV,MAAM,eAAkC,CAAC,QAAQ,MAAM,CAAC;EACxD,SAAS;EACV;CACD,IAAI;EACF,MAAM;EACN,SAAS;EACV;CAID,KAAK;EACH,MAAM;EACN,SAAS;EACV;CAID,KAAK;EACH,MAAM;EACN,SAAS;EACV;CAID,MAAM;EACJ,MAAM;EACN,SAAS;EACV;CAID,WAAW;CAIX,mBAAmB;EACjB,MAAM;EACN,SAAS;EACV;CAID,MAAM;CAIN,WAAW;CAIX,WAAW;CAIX,aAAa;EACX,MAAM;EACN,SAAS;EACV;CAID,eAAe;EACb,MAAM,eAAiD,SAAS;EAChE,SAAS;EACV;CAID,UAAU;EACR,MAAM;EACN,SAAS;EACV;CAID,OAAO;CAIP,UAAU;CAIV,QAAQ;CAIR,iBAAiB;EACf,MAAM;EACN,SAAS;EACV;CAID,eAAe;EACb,MAAM;EACN,SAAS;EACV;CAID,iBAAiB;EACf,MAAM,eAAwC,SAAS;EACvD,SAAS;EACV;CAID,cAAc;EACZ,MAAM;EACN,SAAS;EACV;CAID,WAAW;EACT,MAAM;EACN,QAAQ;EACR,SAAS;EACV;CAID,OAAO,EACL,MAAM,eAA4B,OAAO,EAC1C;CAID,eAAe;EACb,MAAM;EACN,SAAS;EACV;CAID,YAAY;EACV,MAAM;EACN,SAAS;EACV;CACD,GAAG,aAAa,CAAC,YAAY,CAAC;CAC/B,CAAU;AAIX,MAAM,gBAAgB,UACpB,SAAS,MAAM,IAAK,QAAQ,MAAM,IAAI,MAAM,MAAM,SAAS;AAC7D,MAAa,cAAc;EACxB,qBAAqB;EACrB,cAAc;EACd,eAAe;CACjB"}
1
+ {"version":3,"file":"slider.mjs","names":[],"sources":["../../../../../../packages/components/slider/src/slider.ts"],"sourcesContent":["import { placements } from '@popperjs/core'\nimport {\n buildProps,\n definePropType,\n isArray,\n isNumber,\n} from '@element-plus/utils'\nimport {\n CHANGE_EVENT,\n INPUT_EVENT,\n UPDATE_MODEL_EVENT,\n} from '@element-plus/constants'\nimport { useAriaProps, useSizeProp } from '@element-plus/hooks'\n\nimport type { Arrayable } from '@element-plus/utils'\nimport type { ExtractPropTypes, ExtractPublicPropTypes } from 'vue'\nimport type { SliderMarkerProps } from './marker'\nimport type Slider from './slider.vue'\n\ntype SliderMarks = Record<number, string | SliderMarkerProps['mark']>\n\nexport interface SliderInitData {\n firstValue: number\n secondValue: number\n oldValue?: Arrayable<number>\n dragging: boolean\n sliderSize: number\n}\n\nexport const sliderProps = buildProps({\n /**\n * @description binding value\n */\n modelValue: {\n type: definePropType<Arrayable<number>>([Number, Array]),\n default: 0,\n },\n id: {\n type: String,\n default: undefined,\n },\n /**\n * @description minimum value\n */\n min: {\n type: Number,\n default: 0,\n },\n /**\n * @description maximum value\n */\n max: {\n type: Number,\n default: 100,\n },\n /**\n * @description step size, can be a number or `'mark'` to restrict values to marks. When set to `'mark'`, the `marks` attribute must be set\n */\n step: {\n type: definePropType<number | 'mark'>([Number, String]),\n default: 1,\n },\n /**\n * @description whether to display an input box, works when `range` is false and `step` is not `'mark'`\n */\n showInput: Boolean,\n /**\n * @description whether to display control buttons when `show-input` is true\n */\n showInputControls: {\n type: Boolean,\n default: true,\n },\n /**\n * @description size of the slider wrapper, will not work in vertical mode\n */\n size: useSizeProp,\n /**\n * @description size of the input box, when set `size`, the default is the value of `size`\n */\n inputSize: useSizeProp,\n /**\n * @description whether to display breakpoints\n */\n showStops: Boolean,\n /**\n * @description whether to display tooltip value\n */\n showTooltip: {\n type: Boolean,\n default: true,\n },\n /**\n * @description format to display tooltip value\n */\n formatTooltip: {\n type: definePropType<(val: number) => number | string>(Function),\n default: undefined,\n },\n /**\n * @description whether Slider is disabled\n */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /**\n * @description whether to select a range\n */\n range: Boolean,\n /**\n * @description vertical mode\n */\n vertical: Boolean,\n /**\n * @description slider height, required in vertical mode\n */\n height: String,\n /**\n * @description when `range` is true, screen reader label for the start of the range\n */\n rangeStartLabel: {\n type: String,\n default: undefined,\n },\n /**\n * @description when `range` is true, screen reader label for the end of the range\n */\n rangeEndLabel: {\n type: String,\n default: undefined,\n },\n /**\n * @description format to display the `aria-valuenow` attribute for screen readers\n */\n formatValueText: {\n type: definePropType<(val: number) => string>(Function),\n default: undefined,\n },\n /**\n * @description custom class name for the tooltip\n */\n tooltipClass: {\n type: String,\n default: undefined,\n },\n /**\n * @description position of Tooltip\n */\n placement: {\n type: String,\n values: placements,\n default: 'top',\n },\n /**\n * @description marks, type of key must be `number` and must in closed interval `[min, max]`, each mark can custom style\n */\n marks: {\n type: definePropType<SliderMarks>(Object),\n },\n /**\n * @description whether to trigger form validation\n */\n validateEvent: {\n type: Boolean,\n default: true,\n },\n /**\n * @description when slider tooltip inactive and `persistent` is `false` , popconfirm will be destroyed. `persistent` always be `false` when `show-tooltip ` is `false`\n */\n persistent: {\n type: Boolean,\n default: true,\n },\n ...useAriaProps(['ariaLabel']),\n} as const)\nexport type SliderProps = ExtractPropTypes<typeof sliderProps>\nexport type SliderPropsPublic = ExtractPublicPropTypes<typeof sliderProps>\n\nconst isValidValue = (value: Arrayable<number>) =>\n isNumber(value) || (isArray(value) && value.every(isNumber))\nexport const sliderEmits = {\n [UPDATE_MODEL_EVENT]: isValidValue,\n [INPUT_EVENT]: isValidValue,\n [CHANGE_EVENT]: isValidValue,\n}\nexport type SliderEmits = typeof sliderEmits\n\nexport type SliderInstance = InstanceType<typeof Slider> & unknown\n"],"mappings":";;;;;;;;AA6BA,MAAa,cAAc,WAAW;CAIpC,YAAY;EACV,MAAM,eAAkC,CAAC,QAAQ,MAAM,CAAC;EACxD,SAAS;EACV;CACD,IAAI;EACF,MAAM;EACN,SAAS;EACV;CAID,KAAK;EACH,MAAM;EACN,SAAS;EACV;CAID,KAAK;EACH,MAAM;EACN,SAAS;EACV;CAID,MAAM;EACJ,MAAM,eAAgC,CAAC,QAAQ,OAAO,CAAC;EACvD,SAAS;EACV;CAID,WAAW;CAIX,mBAAmB;EACjB,MAAM;EACN,SAAS;EACV;CAID,MAAM;CAIN,WAAW;CAIX,WAAW;CAIX,aAAa;EACX,MAAM;EACN,SAAS;EACV;CAID,eAAe;EACb,MAAM,eAAiD,SAAS;EAChE,SAAS;EACV;CAID,UAAU;EACR,MAAM;EACN,SAAS;EACV;CAID,OAAO;CAIP,UAAU;CAIV,QAAQ;CAIR,iBAAiB;EACf,MAAM;EACN,SAAS;EACV;CAID,eAAe;EACb,MAAM;EACN,SAAS;EACV;CAID,iBAAiB;EACf,MAAM,eAAwC,SAAS;EACvD,SAAS;EACV;CAID,cAAc;EACZ,MAAM;EACN,SAAS;EACV;CAID,WAAW;EACT,MAAM;EACN,QAAQ;EACR,SAAS;EACV;CAID,OAAO,EACL,MAAM,eAA4B,OAAO,EAC1C;CAID,eAAe;EACb,MAAM;EACN,SAAS;EACV;CAID,YAAY;EACV,MAAM;EACN,SAAS;EACV;CACD,GAAG,aAAa,CAAC,YAAY,CAAC;CAC/B,CAAU;AAIX,MAAM,gBAAgB,UACpB,SAAS,MAAM,IAAK,QAAQ,MAAM,IAAI,MAAM,MAAM,SAAS;AAC7D,MAAa,cAAc;EACxB,qBAAqB;EACrB,cAAc;EACd,eAAe;CACjB"}