@element-plus/nightly 0.0.20220723 → 0.0.20220727

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 (438) hide show
  1. package/dist/index.css +1 -1
  2. package/dist/index.full.js +456 -266
  3. package/dist/index.full.min.js +14 -14
  4. package/dist/index.full.min.js.map +1 -1
  5. package/dist/index.full.min.mjs +15 -15
  6. package/dist/index.full.min.mjs.map +1 -1
  7. package/dist/index.full.mjs +1066 -876
  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.js +1 -1
  13. package/dist/locale/ar.min.js +1 -1
  14. package/dist/locale/ar.min.mjs +1 -1
  15. package/dist/locale/ar.mjs +1 -1
  16. package/dist/locale/az.js +1 -1
  17. package/dist/locale/az.min.js +1 -1
  18. package/dist/locale/az.min.mjs +1 -1
  19. package/dist/locale/az.mjs +1 -1
  20. package/dist/locale/bg.js +1 -1
  21. package/dist/locale/bg.min.js +1 -1
  22. package/dist/locale/bg.min.mjs +1 -1
  23. package/dist/locale/bg.mjs +1 -1
  24. package/dist/locale/bn.js +1 -1
  25. package/dist/locale/bn.min.js +1 -1
  26. package/dist/locale/bn.min.mjs +1 -1
  27. package/dist/locale/bn.mjs +1 -1
  28. package/dist/locale/ca.js +1 -1
  29. package/dist/locale/ca.min.js +1 -1
  30. package/dist/locale/ca.min.mjs +1 -1
  31. package/dist/locale/ca.mjs +1 -1
  32. package/dist/locale/cs.js +1 -1
  33. package/dist/locale/cs.min.js +1 -1
  34. package/dist/locale/cs.min.mjs +1 -1
  35. package/dist/locale/cs.mjs +1 -1
  36. package/dist/locale/da.js +1 -1
  37. package/dist/locale/da.min.js +1 -1
  38. package/dist/locale/da.min.mjs +1 -1
  39. package/dist/locale/da.mjs +1 -1
  40. package/dist/locale/de.js +1 -1
  41. package/dist/locale/de.min.js +1 -1
  42. package/dist/locale/de.min.mjs +1 -1
  43. package/dist/locale/de.mjs +1 -1
  44. package/dist/locale/el.js +1 -1
  45. package/dist/locale/el.min.js +1 -1
  46. package/dist/locale/el.min.mjs +1 -1
  47. package/dist/locale/el.mjs +1 -1
  48. package/dist/locale/en.js +1 -1
  49. package/dist/locale/en.min.js +1 -1
  50. package/dist/locale/en.min.mjs +1 -1
  51. package/dist/locale/en.mjs +1 -1
  52. package/dist/locale/eo.js +1 -1
  53. package/dist/locale/eo.min.js +1 -1
  54. package/dist/locale/eo.min.mjs +1 -1
  55. package/dist/locale/eo.mjs +1 -1
  56. package/dist/locale/es.js +1 -1
  57. package/dist/locale/es.min.js +1 -1
  58. package/dist/locale/es.min.mjs +1 -1
  59. package/dist/locale/es.mjs +1 -1
  60. package/dist/locale/et.js +1 -1
  61. package/dist/locale/et.min.js +1 -1
  62. package/dist/locale/et.min.mjs +1 -1
  63. package/dist/locale/et.mjs +1 -1
  64. package/dist/locale/eu.js +1 -1
  65. package/dist/locale/eu.min.js +1 -1
  66. package/dist/locale/eu.min.mjs +1 -1
  67. package/dist/locale/eu.mjs +1 -1
  68. package/dist/locale/fa.js +1 -1
  69. package/dist/locale/fa.min.js +1 -1
  70. package/dist/locale/fa.min.mjs +1 -1
  71. package/dist/locale/fa.mjs +1 -1
  72. package/dist/locale/fi.js +1 -1
  73. package/dist/locale/fi.min.js +1 -1
  74. package/dist/locale/fi.min.mjs +1 -1
  75. package/dist/locale/fi.mjs +1 -1
  76. package/dist/locale/fr.js +1 -1
  77. package/dist/locale/fr.min.js +1 -1
  78. package/dist/locale/fr.min.mjs +1 -1
  79. package/dist/locale/fr.mjs +1 -1
  80. package/dist/locale/he.js +1 -1
  81. package/dist/locale/he.min.js +1 -1
  82. package/dist/locale/he.min.mjs +1 -1
  83. package/dist/locale/he.mjs +1 -1
  84. package/dist/locale/hr.js +1 -1
  85. package/dist/locale/hr.min.js +1 -1
  86. package/dist/locale/hr.min.mjs +1 -1
  87. package/dist/locale/hr.mjs +1 -1
  88. package/dist/locale/hu.js +1 -1
  89. package/dist/locale/hu.min.js +1 -1
  90. package/dist/locale/hu.min.mjs +1 -1
  91. package/dist/locale/hu.mjs +1 -1
  92. package/dist/locale/hy-am.js +1 -1
  93. package/dist/locale/hy-am.min.js +1 -1
  94. package/dist/locale/hy-am.min.mjs +1 -1
  95. package/dist/locale/hy-am.mjs +1 -1
  96. package/dist/locale/id.js +1 -1
  97. package/dist/locale/id.min.js +1 -1
  98. package/dist/locale/id.min.mjs +1 -1
  99. package/dist/locale/id.mjs +1 -1
  100. package/dist/locale/it.js +1 -1
  101. package/dist/locale/it.min.js +1 -1
  102. package/dist/locale/it.min.mjs +1 -1
  103. package/dist/locale/it.mjs +1 -1
  104. package/dist/locale/ja.js +1 -1
  105. package/dist/locale/ja.min.js +1 -1
  106. package/dist/locale/ja.min.mjs +1 -1
  107. package/dist/locale/ja.mjs +1 -1
  108. package/dist/locale/kk.js +1 -1
  109. package/dist/locale/kk.min.js +1 -1
  110. package/dist/locale/kk.min.mjs +1 -1
  111. package/dist/locale/kk.mjs +1 -1
  112. package/dist/locale/km.js +1 -1
  113. package/dist/locale/km.min.js +1 -1
  114. package/dist/locale/km.min.mjs +1 -1
  115. package/dist/locale/km.mjs +1 -1
  116. package/dist/locale/ko.js +1 -1
  117. package/dist/locale/ko.min.js +1 -1
  118. package/dist/locale/ko.min.mjs +1 -1
  119. package/dist/locale/ko.mjs +1 -1
  120. package/dist/locale/ku.js +1 -1
  121. package/dist/locale/ku.min.js +1 -1
  122. package/dist/locale/ku.min.mjs +1 -1
  123. package/dist/locale/ku.mjs +1 -1
  124. package/dist/locale/ky.js +1 -1
  125. package/dist/locale/ky.min.js +1 -1
  126. package/dist/locale/ky.min.mjs +1 -1
  127. package/dist/locale/ky.mjs +1 -1
  128. package/dist/locale/lt.js +1 -1
  129. package/dist/locale/lt.min.js +1 -1
  130. package/dist/locale/lt.min.mjs +1 -1
  131. package/dist/locale/lt.mjs +1 -1
  132. package/dist/locale/lv.js +1 -1
  133. package/dist/locale/lv.min.js +1 -1
  134. package/dist/locale/lv.min.mjs +1 -1
  135. package/dist/locale/lv.mjs +1 -1
  136. package/dist/locale/mg.js +1 -1
  137. package/dist/locale/mg.min.js +1 -1
  138. package/dist/locale/mg.min.mjs +1 -1
  139. package/dist/locale/mg.mjs +1 -1
  140. package/dist/locale/mn.js +1 -1
  141. package/dist/locale/mn.min.js +1 -1
  142. package/dist/locale/mn.min.mjs +1 -1
  143. package/dist/locale/mn.mjs +1 -1
  144. package/dist/locale/nb-no.js +1 -1
  145. package/dist/locale/nb-no.min.js +1 -1
  146. package/dist/locale/nb-no.min.mjs +1 -1
  147. package/dist/locale/nb-no.mjs +1 -1
  148. package/dist/locale/nl.js +1 -1
  149. package/dist/locale/nl.min.js +1 -1
  150. package/dist/locale/nl.min.mjs +1 -1
  151. package/dist/locale/nl.mjs +1 -1
  152. package/dist/locale/pa.js +1 -1
  153. package/dist/locale/pa.min.js +1 -1
  154. package/dist/locale/pa.min.mjs +1 -1
  155. package/dist/locale/pa.mjs +1 -1
  156. package/dist/locale/pl.js +1 -1
  157. package/dist/locale/pl.min.js +1 -1
  158. package/dist/locale/pl.min.mjs +1 -1
  159. package/dist/locale/pl.mjs +1 -1
  160. package/dist/locale/pt-br.js +1 -1
  161. package/dist/locale/pt-br.min.js +1 -1
  162. package/dist/locale/pt-br.min.mjs +1 -1
  163. package/dist/locale/pt-br.mjs +1 -1
  164. package/dist/locale/pt.js +1 -1
  165. package/dist/locale/pt.min.js +1 -1
  166. package/dist/locale/pt.min.mjs +1 -1
  167. package/dist/locale/pt.mjs +1 -1
  168. package/dist/locale/ro.js +1 -1
  169. package/dist/locale/ro.min.js +1 -1
  170. package/dist/locale/ro.min.mjs +1 -1
  171. package/dist/locale/ro.mjs +1 -1
  172. package/dist/locale/ru.js +1 -1
  173. package/dist/locale/ru.min.js +1 -1
  174. package/dist/locale/ru.min.mjs +1 -1
  175. package/dist/locale/ru.mjs +1 -1
  176. package/dist/locale/sk.js +1 -1
  177. package/dist/locale/sk.min.js +1 -1
  178. package/dist/locale/sk.min.mjs +1 -1
  179. package/dist/locale/sk.mjs +1 -1
  180. package/dist/locale/sl.js +1 -1
  181. package/dist/locale/sl.min.js +1 -1
  182. package/dist/locale/sl.min.mjs +1 -1
  183. package/dist/locale/sl.mjs +1 -1
  184. package/dist/locale/sr.js +1 -1
  185. package/dist/locale/sr.min.js +1 -1
  186. package/dist/locale/sr.min.mjs +1 -1
  187. package/dist/locale/sr.mjs +1 -1
  188. package/dist/locale/sv.js +1 -1
  189. package/dist/locale/sv.min.js +1 -1
  190. package/dist/locale/sv.min.mjs +1 -1
  191. package/dist/locale/sv.mjs +1 -1
  192. package/dist/locale/ta.js +1 -1
  193. package/dist/locale/ta.min.js +1 -1
  194. package/dist/locale/ta.min.mjs +1 -1
  195. package/dist/locale/ta.mjs +1 -1
  196. package/dist/locale/th.js +1 -1
  197. package/dist/locale/th.min.js +1 -1
  198. package/dist/locale/th.min.mjs +1 -1
  199. package/dist/locale/th.mjs +1 -1
  200. package/dist/locale/tk.js +1 -1
  201. package/dist/locale/tk.min.js +1 -1
  202. package/dist/locale/tk.min.mjs +1 -1
  203. package/dist/locale/tk.mjs +1 -1
  204. package/dist/locale/tr.js +1 -1
  205. package/dist/locale/tr.min.js +1 -1
  206. package/dist/locale/tr.min.mjs +1 -1
  207. package/dist/locale/tr.mjs +1 -1
  208. package/dist/locale/ug-cn.js +1 -1
  209. package/dist/locale/ug-cn.min.js +1 -1
  210. package/dist/locale/ug-cn.min.mjs +1 -1
  211. package/dist/locale/ug-cn.mjs +1 -1
  212. package/dist/locale/uk.js +1 -1
  213. package/dist/locale/uk.min.js +1 -1
  214. package/dist/locale/uk.min.mjs +1 -1
  215. package/dist/locale/uk.mjs +1 -1
  216. package/dist/locale/uz-uz.js +1 -1
  217. package/dist/locale/uz-uz.min.js +1 -1
  218. package/dist/locale/uz-uz.min.mjs +1 -1
  219. package/dist/locale/uz-uz.mjs +1 -1
  220. package/dist/locale/vi.js +1 -1
  221. package/dist/locale/vi.min.js +1 -1
  222. package/dist/locale/vi.min.mjs +1 -1
  223. package/dist/locale/vi.mjs +1 -1
  224. package/dist/locale/zh-cn.js +1 -1
  225. package/dist/locale/zh-cn.min.js +1 -1
  226. package/dist/locale/zh-cn.min.mjs +1 -1
  227. package/dist/locale/zh-cn.mjs +1 -1
  228. package/dist/locale/zh-tw.js +1 -1
  229. package/dist/locale/zh-tw.min.js +1 -1
  230. package/dist/locale/zh-tw.min.mjs +1 -1
  231. package/dist/locale/zh-tw.mjs +1 -1
  232. package/es/components/calendar/index.mjs +2 -2
  233. package/es/components/calendar/src/calendar.mjs +230 -16
  234. package/es/components/calendar/src/calendar.mjs.map +1 -1
  235. package/es/components/calendar/src/calendar2.mjs +16 -230
  236. package/es/components/calendar/src/calendar2.mjs.map +1 -1
  237. package/es/components/carousel/index.d.ts +1 -0
  238. package/es/components/carousel/src/carousel.vue.d.ts +1 -0
  239. package/es/components/carousel/src/carousel2.mjs +3 -2
  240. package/es/components/carousel/src/carousel2.mjs.map +1 -1
  241. package/es/components/cascader/src/index.mjs +0 -1
  242. package/es/components/cascader/src/index.mjs.map +1 -1
  243. package/es/components/cascader-panel/src/index.mjs +1 -1
  244. package/es/components/cascader-panel/src/index.mjs.map +1 -1
  245. package/es/components/checkbox/index.d.ts +4 -4
  246. package/es/components/checkbox/src/checkbox-group.mjs +1 -1
  247. package/es/components/checkbox/src/checkbox-group.mjs.map +1 -1
  248. package/es/components/checkbox/src/checkbox-group.vue.d.ts +10 -9
  249. package/es/components/color-picker/src/draggable.mjs +10 -12
  250. package/es/components/color-picker/src/draggable.mjs.map +1 -1
  251. package/es/components/color-picker/src/index.mjs +0 -1
  252. package/es/components/color-picker/src/index.mjs.map +1 -1
  253. package/es/components/dropdown/src/useDropdown.mjs +3 -3
  254. package/es/components/dropdown/src/useDropdown.mjs.map +1 -1
  255. package/es/components/dropdown/style/css.d.ts +2 -1
  256. package/es/components/dropdown/style/css.mjs +2 -1
  257. package/es/components/dropdown/style/css.mjs.map +1 -1
  258. package/es/components/dropdown/style/index.d.ts +2 -1
  259. package/es/components/dropdown/style/index.mjs +2 -1
  260. package/es/components/dropdown/style/index.mjs.map +1 -1
  261. package/es/components/image/index.d.ts +4 -1
  262. package/es/components/image/src/image.d.ts +1 -0
  263. package/es/components/image/src/image.mjs +2 -1
  264. package/es/components/image/src/image.mjs.map +1 -1
  265. package/es/components/image/src/image.vue.d.ts +4 -1
  266. package/es/components/image/src/image2.mjs +1 -0
  267. package/es/components/image/src/image2.mjs.map +1 -1
  268. package/es/components/index.mjs +2 -2
  269. package/es/components/menu/src/menu.mjs +0 -5
  270. package/es/components/menu/src/menu.mjs.map +1 -1
  271. package/es/components/message/index.mjs +1 -1
  272. package/es/components/message/src/message.mjs +87 -147
  273. package/es/components/message/src/message.mjs.map +1 -1
  274. package/es/components/message/src/message2.mjs +147 -87
  275. package/es/components/message/src/message2.mjs.map +1 -1
  276. package/es/components/message/src/method.mjs +2 -2
  277. package/es/components/message-box/src/index.mjs +2 -3
  278. package/es/components/message-box/src/index.mjs.map +1 -1
  279. package/es/components/roving-focus-group/src/roving-focus-group-impl.mjs +4 -10
  280. package/es/components/roving-focus-group/src/roving-focus-group-impl.mjs.map +1 -1
  281. package/es/components/select/src/select.mjs +1 -2
  282. package/es/components/select/src/select.mjs.map +1 -1
  283. package/es/components/select-v2/src/select.mjs +4 -5
  284. package/es/components/select-v2/src/select.mjs.map +1 -1
  285. package/es/components/slider/index.d.ts +5 -0
  286. package/es/components/slider/src/button.vue.d.ts +1 -0
  287. package/es/components/slider/src/button2.mjs +12 -11
  288. package/es/components/slider/src/button2.mjs.map +1 -1
  289. package/es/components/slider/src/composables/use-slide.d.ts +4 -0
  290. package/es/components/slider/src/composables/use-slider-button.d.ts +1 -0
  291. package/es/components/slider/src/composables/use-slider-button.mjs +1 -0
  292. package/es/components/slider/src/composables/use-slider-button.mjs.map +1 -1
  293. package/es/components/slider/src/slider.vue.d.ts +5 -0
  294. package/es/components/table/src/filter-panel.mjs +0 -1
  295. package/es/components/table/src/filter-panel.mjs.map +1 -1
  296. package/es/components/table/src/table/defaults.mjs +1 -3
  297. package/es/components/table/src/table/defaults.mjs.map +1 -1
  298. package/es/components/table/src/table/style-helper.mjs +12 -9
  299. package/es/components/table/src/table/style-helper.mjs.map +1 -1
  300. package/es/components/table/src/table.mjs +1 -0
  301. package/es/components/table/src/table.mjs.map +1 -1
  302. package/es/components/time-picker/src/common/picker.mjs +6 -5
  303. package/es/components/time-picker/src/common/picker.mjs.map +1 -1
  304. package/es/components/transfer/index.d.ts +20 -20
  305. package/es/components/transfer/src/transfer-panel.vue.d.ts +4 -4
  306. package/es/components/transfer/src/transfer.vue.d.ts +20 -20
  307. package/es/components/tree/src/model/useKeydown.mjs +3 -7
  308. package/es/components/tree/src/model/useKeydown.mjs.map +1 -1
  309. package/es/components/virtual-list/src/builders/build-grid.mjs +1 -1
  310. package/es/components/virtual-list/src/builders/build-grid.mjs.map +1 -1
  311. package/es/directives/mousewheel/index.mjs.map +1 -1
  312. package/es/hooks/use-escape-keydown/index.mjs +6 -6
  313. package/es/hooks/use-escape-keydown/index.mjs.map +1 -1
  314. package/es/hooks/use-lockscreen/index.mjs +9 -5
  315. package/es/hooks/use-lockscreen/index.mjs.map +1 -1
  316. package/es/index.mjs +2 -2
  317. package/es/make-installer.mjs.map +1 -1
  318. package/es/utils/dom/event.d.ts +0 -6
  319. package/es/utils/dom/event.mjs +1 -20
  320. package/es/utils/dom/event.mjs.map +1 -1
  321. package/es/utils/dom/index.mjs +1 -1
  322. package/es/utils/dom/scroll.d.ts +1 -1
  323. package/es/utils/dom/scroll.mjs +2 -2
  324. package/es/utils/dom/scroll.mjs.map +1 -1
  325. package/es/utils/index.mjs +1 -1
  326. package/es/version.d.ts +1 -1
  327. package/es/version.mjs +1 -1
  328. package/es/version.mjs.map +1 -1
  329. package/lib/components/calendar/index.js +2 -2
  330. package/lib/components/calendar/src/calendar.js +233 -16
  331. package/lib/components/calendar/src/calendar.js.map +1 -1
  332. package/lib/components/calendar/src/calendar2.js +16 -233
  333. package/lib/components/calendar/src/calendar2.js.map +1 -1
  334. package/lib/components/carousel/index.d.ts +1 -0
  335. package/lib/components/carousel/src/carousel.vue.d.ts +1 -0
  336. package/lib/components/carousel/src/carousel2.js +3 -2
  337. package/lib/components/carousel/src/carousel2.js.map +1 -1
  338. package/lib/components/cascader/src/index.js +0 -1
  339. package/lib/components/cascader/src/index.js.map +1 -1
  340. package/lib/components/cascader-panel/src/index.js +1 -1
  341. package/lib/components/cascader-panel/src/index.js.map +1 -1
  342. package/lib/components/checkbox/index.d.ts +4 -4
  343. package/lib/components/checkbox/src/checkbox-group.js +1 -1
  344. package/lib/components/checkbox/src/checkbox-group.js.map +1 -1
  345. package/lib/components/checkbox/src/checkbox-group.vue.d.ts +10 -9
  346. package/lib/components/color-picker/src/draggable.js +15 -17
  347. package/lib/components/color-picker/src/draggable.js.map +1 -1
  348. package/lib/components/color-picker/src/index.js +0 -1
  349. package/lib/components/color-picker/src/index.js.map +1 -1
  350. package/lib/components/dropdown/src/useDropdown.js +3 -3
  351. package/lib/components/dropdown/src/useDropdown.js.map +1 -1
  352. package/lib/components/dropdown/style/css.d.ts +2 -1
  353. package/lib/components/dropdown/style/css.js +2 -1
  354. package/lib/components/dropdown/style/css.js.map +1 -1
  355. package/lib/components/dropdown/style/index.d.ts +2 -1
  356. package/lib/components/dropdown/style/index.js +2 -1
  357. package/lib/components/dropdown/style/index.js.map +1 -1
  358. package/lib/components/image/index.d.ts +4 -1
  359. package/lib/components/image/src/image.d.ts +1 -0
  360. package/lib/components/image/src/image.js +2 -1
  361. package/lib/components/image/src/image.js.map +1 -1
  362. package/lib/components/image/src/image.vue.d.ts +4 -1
  363. package/lib/components/image/src/image2.js +1 -0
  364. package/lib/components/image/src/image2.js.map +1 -1
  365. package/lib/components/index.js +2 -2
  366. package/lib/components/menu/src/menu.js +0 -5
  367. package/lib/components/menu/src/menu.js.map +1 -1
  368. package/lib/components/message/index.js +1 -1
  369. package/lib/components/message/src/message.js +88 -145
  370. package/lib/components/message/src/message.js.map +1 -1
  371. package/lib/components/message/src/message2.js +145 -88
  372. package/lib/components/message/src/message2.js.map +1 -1
  373. package/lib/components/message/src/method.js +2 -2
  374. package/lib/components/message-box/src/index.js +2 -3
  375. package/lib/components/message-box/src/index.js.map +1 -1
  376. package/lib/components/roving-focus-group/src/roving-focus-group-impl.js +2 -8
  377. package/lib/components/roving-focus-group/src/roving-focus-group-impl.js.map +1 -1
  378. package/lib/components/select/src/select.js +1 -2
  379. package/lib/components/select/src/select.js.map +1 -1
  380. package/lib/components/select-v2/src/select.js +4 -5
  381. package/lib/components/select-v2/src/select.js.map +1 -1
  382. package/lib/components/slider/index.d.ts +5 -0
  383. package/lib/components/slider/src/button.vue.d.ts +1 -0
  384. package/lib/components/slider/src/button2.js +11 -10
  385. package/lib/components/slider/src/button2.js.map +1 -1
  386. package/lib/components/slider/src/composables/use-slide.d.ts +4 -0
  387. package/lib/components/slider/src/composables/use-slider-button.d.ts +1 -0
  388. package/lib/components/slider/src/composables/use-slider-button.js +1 -0
  389. package/lib/components/slider/src/composables/use-slider-button.js.map +1 -1
  390. package/lib/components/slider/src/slider.vue.d.ts +5 -0
  391. package/lib/components/table/src/filter-panel.js +0 -1
  392. package/lib/components/table/src/filter-panel.js.map +1 -1
  393. package/lib/components/table/src/table/defaults.js +1 -3
  394. package/lib/components/table/src/table/defaults.js.map +1 -1
  395. package/lib/components/table/src/table/style-helper.js +12 -9
  396. package/lib/components/table/src/table/style-helper.js.map +1 -1
  397. package/lib/components/table/src/table.js +1 -0
  398. package/lib/components/table/src/table.js.map +1 -1
  399. package/lib/components/time-picker/src/common/picker.js +6 -5
  400. package/lib/components/time-picker/src/common/picker.js.map +1 -1
  401. package/lib/components/transfer/index.d.ts +20 -20
  402. package/lib/components/transfer/src/transfer-panel.vue.d.ts +4 -4
  403. package/lib/components/transfer/src/transfer.vue.d.ts +20 -20
  404. package/lib/components/tree/src/model/useKeydown.js +2 -6
  405. package/lib/components/tree/src/model/useKeydown.js.map +1 -1
  406. package/lib/components/virtual-list/src/builders/build-grid.js +1 -1
  407. package/lib/components/virtual-list/src/builders/build-grid.js.map +1 -1
  408. package/lib/directives/mousewheel/index.js.map +1 -1
  409. package/lib/hooks/use-escape-keydown/index.js +6 -6
  410. package/lib/hooks/use-escape-keydown/index.js.map +1 -1
  411. package/lib/hooks/use-lockscreen/index.js +9 -5
  412. package/lib/hooks/use-lockscreen/index.js.map +1 -1
  413. package/lib/index.js +2 -2
  414. package/lib/make-installer.js.map +1 -1
  415. package/lib/utils/dom/event.d.ts +0 -6
  416. package/lib/utils/dom/event.js +0 -22
  417. package/lib/utils/dom/event.js.map +1 -1
  418. package/lib/utils/dom/index.js +0 -3
  419. package/lib/utils/dom/index.js.map +1 -1
  420. package/lib/utils/dom/scroll.d.ts +1 -1
  421. package/lib/utils/dom/scroll.js +2 -2
  422. package/lib/utils/dom/scroll.js.map +1 -1
  423. package/lib/utils/index.js +0 -3
  424. package/lib/utils/index.js.map +1 -1
  425. package/lib/version.d.ts +1 -1
  426. package/lib/version.js +1 -1
  427. package/lib/version.js.map +1 -1
  428. package/package.json +3 -3
  429. package/theme-chalk/el-date-picker.css +1 -1
  430. package/theme-chalk/el-rate.css +1 -1
  431. package/theme-chalk/el-table-v2.css +1 -1
  432. package/theme-chalk/el-time-picker.css +1 -1
  433. package/theme-chalk/el-time-select.css +1 -1
  434. package/theme-chalk/index.css +1 -1
  435. package/theme-chalk/src/date-picker/picker.scss +4 -5
  436. package/theme-chalk/src/rate.scss +1 -0
  437. package/theme-chalk/src/table-v2.scss +3 -0
  438. package/web-types.json +1 -1
@@ -1,23 +1,237 @@
1
+ import { defineComponent, ref, computed, openBlock, createElementBlock, normalizeClass, unref, createElementVNode, renderSlot, toDisplayString, createVNode, withCtx, createTextVNode, createCommentVNode, createSlots, normalizeProps, guardReactiveProps, Fragment, renderList, createBlock } from 'vue';
2
+ import dayjs from 'dayjs';
3
+ import { ElButtonGroup, ElButton } from '../../button/index.mjs';
4
+ import '../../../hooks/index.mjs';
1
5
  import '../../../utils/index.mjs';
2
6
  import '../../../constants/index.mjs';
3
- import { isArray, isDate } from '@vue/shared';
4
- import { buildProps, definePropType } from '../../../utils/vue/props/runtime.mjs';
5
- import { UPDATE_MODEL_EVENT, INPUT_EVENT } from '../../../constants/event.mjs';
7
+ import DateTable from './date-table2.mjs';
8
+ import { calendarProps, calendarEmits } from './calendar2.mjs';
9
+ import _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';
10
+ import { useNamespace } from '../../../hooks/use-namespace/index.mjs';
11
+ import { useLocale } from '../../../hooks/use-locale/index.mjs';
12
+ import { INPUT_EVENT, UPDATE_MODEL_EVENT } from '../../../constants/event.mjs';
13
+ import { debugWarn } from '../../../utils/error.mjs';
6
14
 
7
- const isValidRange = (range) => isArray(range) && range.length === 2 && range.every((item) => isDate(item));
8
- const calendarProps = buildProps({
9
- modelValue: {
10
- type: Date
11
- },
12
- range: {
13
- type: definePropType(Array),
14
- validator: isValidRange
15
+ const __default__ = {
16
+ name: "ElCalendar"
17
+ };
18
+ const _sfc_main = /* @__PURE__ */ defineComponent({
19
+ ...__default__,
20
+ props: calendarProps,
21
+ emits: calendarEmits,
22
+ setup(__props, { expose, emit }) {
23
+ const props = __props;
24
+ const COMPONENT_NAME = "ElCalendar";
25
+ const ns = useNamespace("calendar");
26
+ const { t, lang } = useLocale();
27
+ const selectedDay = ref();
28
+ const now = dayjs().locale(lang.value);
29
+ const realSelectedDay = computed({
30
+ get() {
31
+ if (!props.modelValue)
32
+ return selectedDay.value;
33
+ return date.value;
34
+ },
35
+ set(val) {
36
+ if (!val)
37
+ return;
38
+ selectedDay.value = val;
39
+ const result = val.toDate();
40
+ emit(INPUT_EVENT, result);
41
+ emit(UPDATE_MODEL_EVENT, result);
42
+ }
43
+ });
44
+ const validatedRange = computed(() => {
45
+ if (!props.range)
46
+ return [];
47
+ const rangeArrDayjs = props.range.map((_) => dayjs(_).locale(lang.value));
48
+ const [startDayjs, endDayjs] = rangeArrDayjs;
49
+ if (startDayjs.isAfter(endDayjs)) {
50
+ debugWarn(COMPONENT_NAME, "end time should be greater than start time");
51
+ return [];
52
+ }
53
+ if (startDayjs.isSame(endDayjs, "month")) {
54
+ return calculateValidatedDateRange(startDayjs, endDayjs);
55
+ } else {
56
+ if (startDayjs.add(1, "month").month() !== endDayjs.month()) {
57
+ debugWarn(COMPONENT_NAME, "start time and end time interval must not exceed two months");
58
+ return [];
59
+ }
60
+ return calculateValidatedDateRange(startDayjs, endDayjs);
61
+ }
62
+ });
63
+ const date = computed(() => {
64
+ if (!props.modelValue) {
65
+ if (realSelectedDay.value) {
66
+ return realSelectedDay.value;
67
+ } else if (validatedRange.value.length) {
68
+ return validatedRange.value[0][0];
69
+ }
70
+ return now;
71
+ } else {
72
+ return dayjs(props.modelValue).locale(lang.value);
73
+ }
74
+ });
75
+ const prevMonthDayjs = computed(() => date.value.subtract(1, "month").date(1));
76
+ const nextMonthDayjs = computed(() => date.value.add(1, "month").date(1));
77
+ const prevYearDayjs = computed(() => date.value.subtract(1, "year").date(1));
78
+ const nextYearDayjs = computed(() => date.value.add(1, "year").date(1));
79
+ const i18nDate = computed(() => {
80
+ const pickedMonth = `el.datepicker.month${date.value.format("M")}`;
81
+ return `${date.value.year()} ${t("el.datepicker.year")} ${t(pickedMonth)}`;
82
+ });
83
+ const calculateValidatedDateRange = (startDayjs, endDayjs) => {
84
+ const firstDay = startDayjs.startOf("week");
85
+ const lastDay = endDayjs.endOf("week");
86
+ const firstMonth = firstDay.get("month");
87
+ const lastMonth = lastDay.get("month");
88
+ if (firstMonth === lastMonth) {
89
+ return [[firstDay, lastDay]];
90
+ } else if (firstMonth + 1 === lastMonth) {
91
+ const firstMonthLastDay = firstDay.endOf("month");
92
+ const lastMonthFirstDay = lastDay.startOf("month");
93
+ const isSameWeek = firstMonthLastDay.isSame(lastMonthFirstDay, "week");
94
+ const lastMonthStartDay = isSameWeek ? lastMonthFirstDay.add(1, "week") : lastMonthFirstDay;
95
+ return [
96
+ [firstDay, firstMonthLastDay],
97
+ [lastMonthStartDay.startOf("week"), lastDay]
98
+ ];
99
+ } else if (firstMonth + 2 === lastMonth || (firstMonth + 1) % 11 === lastMonth) {
100
+ const firstMonthLastDay = firstDay.endOf("month");
101
+ const secondMonthFirstDay = firstDay.add(1, "month").startOf("month");
102
+ const secondMonthStartDay = firstMonthLastDay.isSame(secondMonthFirstDay, "week") ? secondMonthFirstDay.add(1, "week") : secondMonthFirstDay;
103
+ const secondMonthLastDay = secondMonthStartDay.endOf("month");
104
+ const lastMonthFirstDay = lastDay.startOf("month");
105
+ const lastMonthStartDay = secondMonthLastDay.isSame(lastMonthFirstDay, "week") ? lastMonthFirstDay.add(1, "week") : lastMonthFirstDay;
106
+ return [
107
+ [firstDay, firstMonthLastDay],
108
+ [secondMonthStartDay.startOf("week"), secondMonthLastDay],
109
+ [lastMonthStartDay.startOf("week"), lastDay]
110
+ ];
111
+ } else {
112
+ debugWarn(COMPONENT_NAME, "start time and end time interval must not exceed two months");
113
+ return [];
114
+ }
115
+ };
116
+ const pickDay = (day) => {
117
+ realSelectedDay.value = day;
118
+ };
119
+ const selectDate = (type) => {
120
+ let day;
121
+ if (type === "prev-month") {
122
+ day = prevMonthDayjs.value;
123
+ } else if (type === "next-month") {
124
+ day = nextMonthDayjs.value;
125
+ } else if (type === "prev-year") {
126
+ day = prevYearDayjs.value;
127
+ } else if (type === "next-year") {
128
+ day = nextYearDayjs.value;
129
+ } else {
130
+ day = now;
131
+ }
132
+ if (day.isSame(date.value, "day"))
133
+ return;
134
+ pickDay(day);
135
+ };
136
+ expose({
137
+ selectedDay: realSelectedDay,
138
+ pickDay,
139
+ selectDate,
140
+ calculateValidatedDateRange
141
+ });
142
+ return (_ctx, _cache) => {
143
+ return openBlock(), createElementBlock("div", {
144
+ class: normalizeClass(unref(ns).b())
145
+ }, [
146
+ createElementVNode("div", {
147
+ class: normalizeClass(unref(ns).e("header"))
148
+ }, [
149
+ renderSlot(_ctx.$slots, "header", { date: unref(i18nDate) }, () => [
150
+ createElementVNode("div", {
151
+ class: normalizeClass(unref(ns).e("title"))
152
+ }, toDisplayString(unref(i18nDate)), 3),
153
+ unref(validatedRange).length === 0 ? (openBlock(), createElementBlock("div", {
154
+ key: 0,
155
+ class: normalizeClass(unref(ns).e("button-group"))
156
+ }, [
157
+ createVNode(unref(ElButtonGroup), null, {
158
+ default: withCtx(() => [
159
+ createVNode(unref(ElButton), {
160
+ size: "small",
161
+ onClick: _cache[0] || (_cache[0] = ($event) => selectDate("prev-month"))
162
+ }, {
163
+ default: withCtx(() => [
164
+ createTextVNode(toDisplayString(unref(t)("el.datepicker.prevMonth")), 1)
165
+ ]),
166
+ _: 1
167
+ }),
168
+ createVNode(unref(ElButton), {
169
+ size: "small",
170
+ onClick: _cache[1] || (_cache[1] = ($event) => selectDate("today"))
171
+ }, {
172
+ default: withCtx(() => [
173
+ createTextVNode(toDisplayString(unref(t)("el.datepicker.today")), 1)
174
+ ]),
175
+ _: 1
176
+ }),
177
+ createVNode(unref(ElButton), {
178
+ size: "small",
179
+ onClick: _cache[2] || (_cache[2] = ($event) => selectDate("next-month"))
180
+ }, {
181
+ default: withCtx(() => [
182
+ createTextVNode(toDisplayString(unref(t)("el.datepicker.nextMonth")), 1)
183
+ ]),
184
+ _: 1
185
+ })
186
+ ]),
187
+ _: 1
188
+ })
189
+ ], 2)) : createCommentVNode("v-if", true)
190
+ ])
191
+ ], 2),
192
+ unref(validatedRange).length === 0 ? (openBlock(), createElementBlock("div", {
193
+ key: 0,
194
+ class: normalizeClass(unref(ns).e("body"))
195
+ }, [
196
+ createVNode(DateTable, {
197
+ date: unref(date),
198
+ "selected-day": unref(realSelectedDay),
199
+ onPick: pickDay
200
+ }, createSlots({ _: 2 }, [
201
+ _ctx.$slots.dateCell ? {
202
+ name: "dateCell",
203
+ fn: withCtx((data) => [
204
+ renderSlot(_ctx.$slots, "dateCell", normalizeProps(guardReactiveProps(data)))
205
+ ])
206
+ } : void 0
207
+ ]), 1032, ["date", "selected-day"])
208
+ ], 2)) : (openBlock(), createElementBlock("div", {
209
+ key: 1,
210
+ class: normalizeClass(unref(ns).e("body"))
211
+ }, [
212
+ (openBlock(true), createElementBlock(Fragment, null, renderList(unref(validatedRange), (range_, index) => {
213
+ return openBlock(), createBlock(DateTable, {
214
+ key: index,
215
+ date: range_[0],
216
+ "selected-day": unref(realSelectedDay),
217
+ range: range_,
218
+ "hide-header": index !== 0,
219
+ onPick: pickDay
220
+ }, createSlots({ _: 2 }, [
221
+ _ctx.$slots.dateCell ? {
222
+ name: "dateCell",
223
+ fn: withCtx((data) => [
224
+ renderSlot(_ctx.$slots, "dateCell", normalizeProps(guardReactiveProps(data)))
225
+ ])
226
+ } : void 0
227
+ ]), 1032, ["date", "selected-day", "range", "hide-header"]);
228
+ }), 128))
229
+ ], 2))
230
+ ], 2);
231
+ };
15
232
  }
16
233
  });
17
- const calendarEmits = {
18
- [UPDATE_MODEL_EVENT]: (value) => isDate(value),
19
- [INPUT_EVENT]: (value) => isDate(value)
20
- };
234
+ var Calendar = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "/home/runner/work/element-plus/element-plus/packages/components/calendar/src/calendar.vue"]]);
21
235
 
22
- export { calendarEmits, calendarProps };
236
+ export { Calendar as default };
23
237
  //# sourceMappingURL=calendar.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"calendar.mjs","sources":["../../../../../../packages/components/calendar/src/calendar.ts"],"sourcesContent":["import {\n buildProps,\n definePropType,\n isArray,\n isDate,\n} from '@element-plus/utils'\nimport { INPUT_EVENT, UPDATE_MODEL_EVENT } from '@element-plus/constants'\nimport type { ExtractPropTypes } from 'vue'\nimport type Calendar from './calendar.vue'\n\nexport type CalendarDateType =\n | 'prev-month'\n | 'next-month'\n | 'prev-year'\n | 'next-year'\n | 'today'\n\nconst isValidRange = (range: unknown): range is [Date, Date] =>\n isArray(range) && range.length === 2 && range.every((item) => isDate(item))\n\nexport const calendarProps = buildProps({\n modelValue: {\n type: Date,\n },\n range: {\n type: definePropType<[Date, Date]>(Array),\n validator: isValidRange,\n },\n} as const)\nexport type CalendarProps = ExtractPropTypes<typeof calendarProps>\n\nexport const calendarEmits = {\n [UPDATE_MODEL_EVENT]: (value: Date) => isDate(value),\n [INPUT_EVENT]: (value: Date) => isDate(value),\n}\nexport type CalendarEmits = typeof calendarEmits\n\nexport type CalendarInstance = InstanceType<typeof Calendar>\n"],"names":[],"mappings":";;;;;;AAOA,MAAM,YAAY,GAAG,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AAChG,MAAC,aAAa,GAAG,UAAU,CAAC;AACxC,EAAE,UAAU,EAAE;AACd,IAAI,IAAI,EAAE,IAAI;AACd,GAAG;AACH,EAAE,KAAK,EAAE;AACT,IAAI,IAAI,EAAE,cAAc,CAAC,KAAK,CAAC;AAC/B,IAAI,SAAS,EAAE,YAAY;AAC3B,GAAG;AACH,CAAC,EAAE;AACS,MAAC,aAAa,GAAG;AAC7B,EAAE,CAAC,kBAAkB,GAAG,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,CAAC;AAChD,EAAE,CAAC,WAAW,GAAG,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,CAAC;AACzC;;;;"}
1
+ {"version":3,"file":"calendar.mjs","sources":["../../../../../../packages/components/calendar/src/calendar.vue"],"sourcesContent":["<template>\n <div :class=\"ns.b()\">\n <div :class=\"ns.e('header')\">\n <slot name=\"header\" :date=\"i18nDate\">\n <div :class=\"ns.e('title')\">{{ i18nDate }}</div>\n <div v-if=\"validatedRange.length === 0\" :class=\"ns.e('button-group')\">\n <el-button-group>\n <el-button size=\"small\" @click=\"selectDate('prev-month')\">\n {{ t('el.datepicker.prevMonth') }}\n </el-button>\n <el-button size=\"small\" @click=\"selectDate('today')\">\n {{ t('el.datepicker.today') }}\n </el-button>\n <el-button size=\"small\" @click=\"selectDate('next-month')\">\n {{ t('el.datepicker.nextMonth') }}\n </el-button>\n </el-button-group>\n </div>\n </slot>\n </div>\n <div v-if=\"validatedRange.length === 0\" :class=\"ns.e('body')\">\n <date-table :date=\"date\" :selected-day=\"realSelectedDay\" @pick=\"pickDay\">\n <template v-if=\"$slots.dateCell\" #dateCell=\"data\">\n <slot name=\"dateCell\" v-bind=\"data\" />\n </template>\n </date-table>\n </div>\n <div v-else :class=\"ns.e('body')\">\n <date-table\n v-for=\"(range_, index) in validatedRange\"\n :key=\"index\"\n :date=\"range_[0]\"\n :selected-day=\"realSelectedDay\"\n :range=\"range_\"\n :hide-header=\"index !== 0\"\n @pick=\"pickDay\"\n >\n <template v-if=\"$slots.dateCell\" #dateCell=\"data\">\n <slot name=\"dateCell\" v-bind=\"data\" />\n </template>\n </date-table>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, ref } from 'vue'\nimport dayjs from 'dayjs'\nimport { ElButton, ElButtonGroup } from '@element-plus/components/button'\nimport { useLocale, useNamespace } from '@element-plus/hooks'\nimport { debugWarn } from '@element-plus/utils'\nimport { INPUT_EVENT, UPDATE_MODEL_EVENT } from '@element-plus/constants'\nimport DateTable from './date-table.vue'\nimport { calendarEmits, calendarProps } from './calendar'\n\nimport type { CalendarDateType } from './calendar'\nimport type { ComputedRef } from 'vue'\nimport type { Dayjs } from 'dayjs'\n\nconst COMPONENT_NAME = 'ElCalendar'\n\ndefineOptions({\n name: 'ElCalendar',\n})\n\nconst props = defineProps(calendarProps)\nconst emit = defineEmits(calendarEmits)\n\nconst ns = useNamespace('calendar')\nconst { t, lang } = useLocale()\n\nconst selectedDay = ref<Dayjs>()\nconst now = dayjs().locale(lang.value)\n\nconst realSelectedDay = computed<Dayjs | undefined>({\n get() {\n if (!props.modelValue) return selectedDay.value\n return date.value\n },\n set(val) {\n if (!val) return\n selectedDay.value = val\n const result = val.toDate()\n\n emit(INPUT_EVENT, result)\n emit(UPDATE_MODEL_EVENT, result)\n },\n})\n\n// if range is valid, we get a two-digit array\nconst validatedRange = computed(() => {\n if (!props.range) return []\n const rangeArrDayjs = props.range.map((_) => dayjs(_).locale(lang.value))\n const [startDayjs, endDayjs] = rangeArrDayjs\n if (startDayjs.isAfter(endDayjs)) {\n debugWarn(COMPONENT_NAME, 'end time should be greater than start time')\n return []\n }\n if (startDayjs.isSame(endDayjs, 'month')) {\n // same month\n return calculateValidatedDateRange(startDayjs, endDayjs)\n } else {\n // two months\n if (startDayjs.add(1, 'month').month() !== endDayjs.month()) {\n debugWarn(\n COMPONENT_NAME,\n 'start time and end time interval must not exceed two months'\n )\n return []\n }\n return calculateValidatedDateRange(startDayjs, endDayjs)\n }\n})\n\nconst date: ComputedRef<Dayjs> = computed(() => {\n if (!props.modelValue) {\n if (realSelectedDay.value) {\n return realSelectedDay.value\n } else if (validatedRange.value.length) {\n return validatedRange.value[0][0]\n }\n return now\n } else {\n return dayjs(props.modelValue).locale(lang.value)\n }\n})\nconst prevMonthDayjs = computed(() => date.value.subtract(1, 'month').date(1))\nconst nextMonthDayjs = computed(() => date.value.add(1, 'month').date(1))\nconst prevYearDayjs = computed(() => date.value.subtract(1, 'year').date(1))\nconst nextYearDayjs = computed(() => date.value.add(1, 'year').date(1))\n\nconst i18nDate = computed(() => {\n const pickedMonth = `el.datepicker.month${date.value.format('M')}`\n return `${date.value.year()} ${t('el.datepicker.year')} ${t(pickedMonth)}`\n})\n\n// https://github.com/element-plus/element-plus/issues/3155\n// Calculate the validate date range according to the start and end dates\nconst calculateValidatedDateRange = (\n startDayjs: Dayjs,\n endDayjs: Dayjs\n): [Dayjs, Dayjs][] => {\n const firstDay = startDayjs.startOf('week')\n const lastDay = endDayjs.endOf('week')\n const firstMonth = firstDay.get('month')\n const lastMonth = lastDay.get('month')\n\n // Current mouth\n if (firstMonth === lastMonth) {\n return [[firstDay, lastDay]]\n }\n // Two adjacent months\n else if (firstMonth + 1 === lastMonth) {\n const firstMonthLastDay = firstDay.endOf('month')\n const lastMonthFirstDay = lastDay.startOf('month')\n\n // Whether the last day of the first month and the first day of the last month is in the same week\n const isSameWeek = firstMonthLastDay.isSame(lastMonthFirstDay, 'week')\n const lastMonthStartDay = isSameWeek\n ? lastMonthFirstDay.add(1, 'week')\n : lastMonthFirstDay\n\n return [\n [firstDay, firstMonthLastDay],\n [lastMonthStartDay.startOf('week'), lastDay],\n ]\n }\n // Three consecutive months (compatible: 2021-01-30 to 2021-02-28)\n else if (\n firstMonth + 2 === lastMonth ||\n (firstMonth + 1) % 11 === lastMonth\n ) {\n const firstMonthLastDay = firstDay.endOf('month')\n const secondMonthFirstDay = firstDay.add(1, 'month').startOf('month')\n\n // Whether the last day of the first month and the second month is in the same week\n const secondMonthStartDay = firstMonthLastDay.isSame(\n secondMonthFirstDay,\n 'week'\n )\n ? secondMonthFirstDay.add(1, 'week')\n : secondMonthFirstDay\n\n const secondMonthLastDay = secondMonthStartDay.endOf('month')\n const lastMonthFirstDay = lastDay.startOf('month')\n\n // Whether the last day of the second month and the last day of the last month is in the same week\n const lastMonthStartDay = secondMonthLastDay.isSame(\n lastMonthFirstDay,\n 'week'\n )\n ? lastMonthFirstDay.add(1, 'week')\n : lastMonthFirstDay\n\n return [\n [firstDay, firstMonthLastDay],\n [secondMonthStartDay.startOf('week'), secondMonthLastDay],\n [lastMonthStartDay.startOf('week'), lastDay],\n ]\n }\n // Other cases\n else {\n debugWarn(\n COMPONENT_NAME,\n 'start time and end time interval must not exceed two months'\n )\n return []\n }\n}\n\nconst pickDay = (day: Dayjs) => {\n realSelectedDay.value = day\n}\n\nconst selectDate = (type: CalendarDateType) => {\n let day: Dayjs\n if (type === 'prev-month') {\n day = prevMonthDayjs.value\n } else if (type === 'next-month') {\n day = nextMonthDayjs.value\n } else if (type === 'prev-year') {\n day = prevYearDayjs.value\n } else if (type === 'next-year') {\n day = nextYearDayjs.value\n } else {\n day = now\n }\n\n if (day.isSame(date.value, 'day')) return\n pickDay(day)\n}\n\ndefineExpose({\n /** @description currently selected date */\n selectedDay: realSelectedDay,\n /** @description select a specific date */\n pickDay,\n /** @description select date */\n selectDate,\n /** @description Calculate the validate date range according to the start and end dates */\n calculateValidatedDateRange,\n})\n</script>\n"],"names":[],"mappings":"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"}
@@ -1,237 +1,23 @@
1
- import { defineComponent, ref, computed, openBlock, createElementBlock, normalizeClass, unref, createElementVNode, renderSlot, toDisplayString, createVNode, withCtx, createTextVNode, createCommentVNode, createSlots, normalizeProps, guardReactiveProps, Fragment, renderList, createBlock } from 'vue';
2
- import dayjs from 'dayjs';
3
- import { ElButtonGroup, ElButton } from '../../button/index.mjs';
4
- import '../../../hooks/index.mjs';
5
1
  import '../../../utils/index.mjs';
6
2
  import '../../../constants/index.mjs';
7
- import DateTable from './date-table2.mjs';
8
- import { calendarProps, calendarEmits } from './calendar.mjs';
9
- import _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';
10
- import { useNamespace } from '../../../hooks/use-namespace/index.mjs';
11
- import { useLocale } from '../../../hooks/use-locale/index.mjs';
12
- import { INPUT_EVENT, UPDATE_MODEL_EVENT } from '../../../constants/event.mjs';
13
- import { debugWarn } from '../../../utils/error.mjs';
3
+ import { isArray, isDate } from '@vue/shared';
4
+ import { buildProps, definePropType } from '../../../utils/vue/props/runtime.mjs';
5
+ import { UPDATE_MODEL_EVENT, INPUT_EVENT } from '../../../constants/event.mjs';
14
6
 
15
- const __default__ = {
16
- name: "ElCalendar"
17
- };
18
- const _sfc_main = /* @__PURE__ */ defineComponent({
19
- ...__default__,
20
- props: calendarProps,
21
- emits: calendarEmits,
22
- setup(__props, { expose, emit }) {
23
- const props = __props;
24
- const COMPONENT_NAME = "ElCalendar";
25
- const ns = useNamespace("calendar");
26
- const { t, lang } = useLocale();
27
- const selectedDay = ref();
28
- const now = dayjs().locale(lang.value);
29
- const realSelectedDay = computed({
30
- get() {
31
- if (!props.modelValue)
32
- return selectedDay.value;
33
- return date.value;
34
- },
35
- set(val) {
36
- if (!val)
37
- return;
38
- selectedDay.value = val;
39
- const result = val.toDate();
40
- emit(INPUT_EVENT, result);
41
- emit(UPDATE_MODEL_EVENT, result);
42
- }
43
- });
44
- const validatedRange = computed(() => {
45
- if (!props.range)
46
- return [];
47
- const rangeArrDayjs = props.range.map((_) => dayjs(_).locale(lang.value));
48
- const [startDayjs, endDayjs] = rangeArrDayjs;
49
- if (startDayjs.isAfter(endDayjs)) {
50
- debugWarn(COMPONENT_NAME, "end time should be greater than start time");
51
- return [];
52
- }
53
- if (startDayjs.isSame(endDayjs, "month")) {
54
- return calculateValidatedDateRange(startDayjs, endDayjs);
55
- } else {
56
- if (startDayjs.add(1, "month").month() !== endDayjs.month()) {
57
- debugWarn(COMPONENT_NAME, "start time and end time interval must not exceed two months");
58
- return [];
59
- }
60
- return calculateValidatedDateRange(startDayjs, endDayjs);
61
- }
62
- });
63
- const date = computed(() => {
64
- if (!props.modelValue) {
65
- if (realSelectedDay.value) {
66
- return realSelectedDay.value;
67
- } else if (validatedRange.value.length) {
68
- return validatedRange.value[0][0];
69
- }
70
- return now;
71
- } else {
72
- return dayjs(props.modelValue).locale(lang.value);
73
- }
74
- });
75
- const prevMonthDayjs = computed(() => date.value.subtract(1, "month").date(1));
76
- const nextMonthDayjs = computed(() => date.value.add(1, "month").date(1));
77
- const prevYearDayjs = computed(() => date.value.subtract(1, "year").date(1));
78
- const nextYearDayjs = computed(() => date.value.add(1, "year").date(1));
79
- const i18nDate = computed(() => {
80
- const pickedMonth = `el.datepicker.month${date.value.format("M")}`;
81
- return `${date.value.year()} ${t("el.datepicker.year")} ${t(pickedMonth)}`;
82
- });
83
- const calculateValidatedDateRange = (startDayjs, endDayjs) => {
84
- const firstDay = startDayjs.startOf("week");
85
- const lastDay = endDayjs.endOf("week");
86
- const firstMonth = firstDay.get("month");
87
- const lastMonth = lastDay.get("month");
88
- if (firstMonth === lastMonth) {
89
- return [[firstDay, lastDay]];
90
- } else if (firstMonth + 1 === lastMonth) {
91
- const firstMonthLastDay = firstDay.endOf("month");
92
- const lastMonthFirstDay = lastDay.startOf("month");
93
- const isSameWeek = firstMonthLastDay.isSame(lastMonthFirstDay, "week");
94
- const lastMonthStartDay = isSameWeek ? lastMonthFirstDay.add(1, "week") : lastMonthFirstDay;
95
- return [
96
- [firstDay, firstMonthLastDay],
97
- [lastMonthStartDay.startOf("week"), lastDay]
98
- ];
99
- } else if (firstMonth + 2 === lastMonth || (firstMonth + 1) % 11 === lastMonth) {
100
- const firstMonthLastDay = firstDay.endOf("month");
101
- const secondMonthFirstDay = firstDay.add(1, "month").startOf("month");
102
- const secondMonthStartDay = firstMonthLastDay.isSame(secondMonthFirstDay, "week") ? secondMonthFirstDay.add(1, "week") : secondMonthFirstDay;
103
- const secondMonthLastDay = secondMonthStartDay.endOf("month");
104
- const lastMonthFirstDay = lastDay.startOf("month");
105
- const lastMonthStartDay = secondMonthLastDay.isSame(lastMonthFirstDay, "week") ? lastMonthFirstDay.add(1, "week") : lastMonthFirstDay;
106
- return [
107
- [firstDay, firstMonthLastDay],
108
- [secondMonthStartDay.startOf("week"), secondMonthLastDay],
109
- [lastMonthStartDay.startOf("week"), lastDay]
110
- ];
111
- } else {
112
- debugWarn(COMPONENT_NAME, "start time and end time interval must not exceed two months");
113
- return [];
114
- }
115
- };
116
- const pickDay = (day) => {
117
- realSelectedDay.value = day;
118
- };
119
- const selectDate = (type) => {
120
- let day;
121
- if (type === "prev-month") {
122
- day = prevMonthDayjs.value;
123
- } else if (type === "next-month") {
124
- day = nextMonthDayjs.value;
125
- } else if (type === "prev-year") {
126
- day = prevYearDayjs.value;
127
- } else if (type === "next-year") {
128
- day = nextYearDayjs.value;
129
- } else {
130
- day = now;
131
- }
132
- if (day.isSame(date.value, "day"))
133
- return;
134
- pickDay(day);
135
- };
136
- expose({
137
- selectedDay: realSelectedDay,
138
- pickDay,
139
- selectDate,
140
- calculateValidatedDateRange
141
- });
142
- return (_ctx, _cache) => {
143
- return openBlock(), createElementBlock("div", {
144
- class: normalizeClass(unref(ns).b())
145
- }, [
146
- createElementVNode("div", {
147
- class: normalizeClass(unref(ns).e("header"))
148
- }, [
149
- renderSlot(_ctx.$slots, "header", { date: unref(i18nDate) }, () => [
150
- createElementVNode("div", {
151
- class: normalizeClass(unref(ns).e("title"))
152
- }, toDisplayString(unref(i18nDate)), 3),
153
- unref(validatedRange).length === 0 ? (openBlock(), createElementBlock("div", {
154
- key: 0,
155
- class: normalizeClass(unref(ns).e("button-group"))
156
- }, [
157
- createVNode(unref(ElButtonGroup), null, {
158
- default: withCtx(() => [
159
- createVNode(unref(ElButton), {
160
- size: "small",
161
- onClick: _cache[0] || (_cache[0] = ($event) => selectDate("prev-month"))
162
- }, {
163
- default: withCtx(() => [
164
- createTextVNode(toDisplayString(unref(t)("el.datepicker.prevMonth")), 1)
165
- ]),
166
- _: 1
167
- }),
168
- createVNode(unref(ElButton), {
169
- size: "small",
170
- onClick: _cache[1] || (_cache[1] = ($event) => selectDate("today"))
171
- }, {
172
- default: withCtx(() => [
173
- createTextVNode(toDisplayString(unref(t)("el.datepicker.today")), 1)
174
- ]),
175
- _: 1
176
- }),
177
- createVNode(unref(ElButton), {
178
- size: "small",
179
- onClick: _cache[2] || (_cache[2] = ($event) => selectDate("next-month"))
180
- }, {
181
- default: withCtx(() => [
182
- createTextVNode(toDisplayString(unref(t)("el.datepicker.nextMonth")), 1)
183
- ]),
184
- _: 1
185
- })
186
- ]),
187
- _: 1
188
- })
189
- ], 2)) : createCommentVNode("v-if", true)
190
- ])
191
- ], 2),
192
- unref(validatedRange).length === 0 ? (openBlock(), createElementBlock("div", {
193
- key: 0,
194
- class: normalizeClass(unref(ns).e("body"))
195
- }, [
196
- createVNode(DateTable, {
197
- date: unref(date),
198
- "selected-day": unref(realSelectedDay),
199
- onPick: pickDay
200
- }, createSlots({ _: 2 }, [
201
- _ctx.$slots.dateCell ? {
202
- name: "dateCell",
203
- fn: withCtx((data) => [
204
- renderSlot(_ctx.$slots, "dateCell", normalizeProps(guardReactiveProps(data)))
205
- ])
206
- } : void 0
207
- ]), 1032, ["date", "selected-day"])
208
- ], 2)) : (openBlock(), createElementBlock("div", {
209
- key: 1,
210
- class: normalizeClass(unref(ns).e("body"))
211
- }, [
212
- (openBlock(true), createElementBlock(Fragment, null, renderList(unref(validatedRange), (range_, index) => {
213
- return openBlock(), createBlock(DateTable, {
214
- key: index,
215
- date: range_[0],
216
- "selected-day": unref(realSelectedDay),
217
- range: range_,
218
- "hide-header": index !== 0,
219
- onPick: pickDay
220
- }, createSlots({ _: 2 }, [
221
- _ctx.$slots.dateCell ? {
222
- name: "dateCell",
223
- fn: withCtx((data) => [
224
- renderSlot(_ctx.$slots, "dateCell", normalizeProps(guardReactiveProps(data)))
225
- ])
226
- } : void 0
227
- ]), 1032, ["date", "selected-day", "range", "hide-header"]);
228
- }), 128))
229
- ], 2))
230
- ], 2);
231
- };
7
+ const isValidRange = (range) => isArray(range) && range.length === 2 && range.every((item) => isDate(item));
8
+ const calendarProps = buildProps({
9
+ modelValue: {
10
+ type: Date
11
+ },
12
+ range: {
13
+ type: definePropType(Array),
14
+ validator: isValidRange
232
15
  }
233
16
  });
234
- var Calendar = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "/home/runner/work/element-plus/element-plus/packages/components/calendar/src/calendar.vue"]]);
17
+ const calendarEmits = {
18
+ [UPDATE_MODEL_EVENT]: (value) => isDate(value),
19
+ [INPUT_EVENT]: (value) => isDate(value)
20
+ };
235
21
 
236
- export { Calendar as default };
22
+ export { calendarEmits, calendarProps };
237
23
  //# sourceMappingURL=calendar2.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"calendar2.mjs","sources":["../../../../../../packages/components/calendar/src/calendar.vue"],"sourcesContent":["<template>\n <div :class=\"ns.b()\">\n <div :class=\"ns.e('header')\">\n <slot name=\"header\" :date=\"i18nDate\">\n <div :class=\"ns.e('title')\">{{ i18nDate }}</div>\n <div v-if=\"validatedRange.length === 0\" :class=\"ns.e('button-group')\">\n <el-button-group>\n <el-button size=\"small\" @click=\"selectDate('prev-month')\">\n {{ t('el.datepicker.prevMonth') }}\n </el-button>\n <el-button size=\"small\" @click=\"selectDate('today')\">\n {{ t('el.datepicker.today') }}\n </el-button>\n <el-button size=\"small\" @click=\"selectDate('next-month')\">\n {{ t('el.datepicker.nextMonth') }}\n </el-button>\n </el-button-group>\n </div>\n </slot>\n </div>\n <div v-if=\"validatedRange.length === 0\" :class=\"ns.e('body')\">\n <date-table :date=\"date\" :selected-day=\"realSelectedDay\" @pick=\"pickDay\">\n <template v-if=\"$slots.dateCell\" #dateCell=\"data\">\n <slot name=\"dateCell\" v-bind=\"data\" />\n </template>\n </date-table>\n </div>\n <div v-else :class=\"ns.e('body')\">\n <date-table\n v-for=\"(range_, index) in validatedRange\"\n :key=\"index\"\n :date=\"range_[0]\"\n :selected-day=\"realSelectedDay\"\n :range=\"range_\"\n :hide-header=\"index !== 0\"\n @pick=\"pickDay\"\n >\n <template v-if=\"$slots.dateCell\" #dateCell=\"data\">\n <slot name=\"dateCell\" v-bind=\"data\" />\n </template>\n </date-table>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, ref } from 'vue'\nimport dayjs from 'dayjs'\nimport { ElButton, ElButtonGroup } from '@element-plus/components/button'\nimport { useLocale, useNamespace } from '@element-plus/hooks'\nimport { debugWarn } from '@element-plus/utils'\nimport { INPUT_EVENT, UPDATE_MODEL_EVENT } from '@element-plus/constants'\nimport DateTable from './date-table.vue'\nimport { calendarEmits, calendarProps } from './calendar'\n\nimport type { CalendarDateType } from './calendar'\nimport type { ComputedRef } from 'vue'\nimport type { Dayjs } from 'dayjs'\n\nconst COMPONENT_NAME = 'ElCalendar'\n\ndefineOptions({\n name: 'ElCalendar',\n})\n\nconst props = defineProps(calendarProps)\nconst emit = defineEmits(calendarEmits)\n\nconst ns = useNamespace('calendar')\nconst { t, lang } = useLocale()\n\nconst selectedDay = ref<Dayjs>()\nconst now = dayjs().locale(lang.value)\n\nconst realSelectedDay = computed<Dayjs | undefined>({\n get() {\n if (!props.modelValue) return selectedDay.value\n return date.value\n },\n set(val) {\n if (!val) return\n selectedDay.value = val\n const result = val.toDate()\n\n emit(INPUT_EVENT, result)\n emit(UPDATE_MODEL_EVENT, result)\n },\n})\n\n// if range is valid, we get a two-digit array\nconst validatedRange = computed(() => {\n if (!props.range) return []\n const rangeArrDayjs = props.range.map((_) => dayjs(_).locale(lang.value))\n const [startDayjs, endDayjs] = rangeArrDayjs\n if (startDayjs.isAfter(endDayjs)) {\n debugWarn(COMPONENT_NAME, 'end time should be greater than start time')\n return []\n }\n if (startDayjs.isSame(endDayjs, 'month')) {\n // same month\n return calculateValidatedDateRange(startDayjs, endDayjs)\n } else {\n // two months\n if (startDayjs.add(1, 'month').month() !== endDayjs.month()) {\n debugWarn(\n COMPONENT_NAME,\n 'start time and end time interval must not exceed two months'\n )\n return []\n }\n return calculateValidatedDateRange(startDayjs, endDayjs)\n }\n})\n\nconst date: ComputedRef<Dayjs> = computed(() => {\n if (!props.modelValue) {\n if (realSelectedDay.value) {\n return realSelectedDay.value\n } else if (validatedRange.value.length) {\n return validatedRange.value[0][0]\n }\n return now\n } else {\n return dayjs(props.modelValue).locale(lang.value)\n }\n})\nconst prevMonthDayjs = computed(() => date.value.subtract(1, 'month').date(1))\nconst nextMonthDayjs = computed(() => date.value.add(1, 'month').date(1))\nconst prevYearDayjs = computed(() => date.value.subtract(1, 'year').date(1))\nconst nextYearDayjs = computed(() => date.value.add(1, 'year').date(1))\n\nconst i18nDate = computed(() => {\n const pickedMonth = `el.datepicker.month${date.value.format('M')}`\n return `${date.value.year()} ${t('el.datepicker.year')} ${t(pickedMonth)}`\n})\n\n// https://github.com/element-plus/element-plus/issues/3155\n// Calculate the validate date range according to the start and end dates\nconst calculateValidatedDateRange = (\n startDayjs: Dayjs,\n endDayjs: Dayjs\n): [Dayjs, Dayjs][] => {\n const firstDay = startDayjs.startOf('week')\n const lastDay = endDayjs.endOf('week')\n const firstMonth = firstDay.get('month')\n const lastMonth = lastDay.get('month')\n\n // Current mouth\n if (firstMonth === lastMonth) {\n return [[firstDay, lastDay]]\n }\n // Two adjacent months\n else if (firstMonth + 1 === lastMonth) {\n const firstMonthLastDay = firstDay.endOf('month')\n const lastMonthFirstDay = lastDay.startOf('month')\n\n // Whether the last day of the first month and the first day of the last month is in the same week\n const isSameWeek = firstMonthLastDay.isSame(lastMonthFirstDay, 'week')\n const lastMonthStartDay = isSameWeek\n ? lastMonthFirstDay.add(1, 'week')\n : lastMonthFirstDay\n\n return [\n [firstDay, firstMonthLastDay],\n [lastMonthStartDay.startOf('week'), lastDay],\n ]\n }\n // Three consecutive months (compatible: 2021-01-30 to 2021-02-28)\n else if (\n firstMonth + 2 === lastMonth ||\n (firstMonth + 1) % 11 === lastMonth\n ) {\n const firstMonthLastDay = firstDay.endOf('month')\n const secondMonthFirstDay = firstDay.add(1, 'month').startOf('month')\n\n // Whether the last day of the first month and the second month is in the same week\n const secondMonthStartDay = firstMonthLastDay.isSame(\n secondMonthFirstDay,\n 'week'\n )\n ? secondMonthFirstDay.add(1, 'week')\n : secondMonthFirstDay\n\n const secondMonthLastDay = secondMonthStartDay.endOf('month')\n const lastMonthFirstDay = lastDay.startOf('month')\n\n // Whether the last day of the second month and the last day of the last month is in the same week\n const lastMonthStartDay = secondMonthLastDay.isSame(\n lastMonthFirstDay,\n 'week'\n )\n ? lastMonthFirstDay.add(1, 'week')\n : lastMonthFirstDay\n\n return [\n [firstDay, firstMonthLastDay],\n [secondMonthStartDay.startOf('week'), secondMonthLastDay],\n [lastMonthStartDay.startOf('week'), lastDay],\n ]\n }\n // Other cases\n else {\n debugWarn(\n COMPONENT_NAME,\n 'start time and end time interval must not exceed two months'\n )\n return []\n }\n}\n\nconst pickDay = (day: Dayjs) => {\n realSelectedDay.value = day\n}\n\nconst selectDate = (type: CalendarDateType) => {\n let day: Dayjs\n if (type === 'prev-month') {\n day = prevMonthDayjs.value\n } else if (type === 'next-month') {\n day = nextMonthDayjs.value\n } else if (type === 'prev-year') {\n day = prevYearDayjs.value\n } else if (type === 'next-year') {\n day = nextYearDayjs.value\n } else {\n day = now\n }\n\n if (day.isSame(date.value, 'day')) return\n pickDay(day)\n}\n\ndefineExpose({\n /** @description currently selected date */\n selectedDay: realSelectedDay,\n /** @description select a specific date */\n pickDay,\n /** @description select date */\n selectDate,\n /** @description Calculate the validate date range according to the start and end dates */\n calculateValidatedDateRange,\n})\n</script>\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"calendar2.mjs","sources":["../../../../../../packages/components/calendar/src/calendar.ts"],"sourcesContent":["import {\n buildProps,\n definePropType,\n isArray,\n isDate,\n} from '@element-plus/utils'\nimport { INPUT_EVENT, UPDATE_MODEL_EVENT } from '@element-plus/constants'\nimport type { ExtractPropTypes } from 'vue'\nimport type Calendar from './calendar.vue'\n\nexport type CalendarDateType =\n | 'prev-month'\n | 'next-month'\n | 'prev-year'\n | 'next-year'\n | 'today'\n\nconst isValidRange = (range: unknown): range is [Date, Date] =>\n isArray(range) && range.length === 2 && range.every((item) => isDate(item))\n\nexport const calendarProps = buildProps({\n modelValue: {\n type: Date,\n },\n range: {\n type: definePropType<[Date, Date]>(Array),\n validator: isValidRange,\n },\n} as const)\nexport type CalendarProps = ExtractPropTypes<typeof calendarProps>\n\nexport const calendarEmits = {\n [UPDATE_MODEL_EVENT]: (value: Date) => isDate(value),\n [INPUT_EVENT]: (value: Date) => isDate(value),\n}\nexport type CalendarEmits = typeof calendarEmits\n\nexport type CalendarInstance = InstanceType<typeof Calendar>\n"],"names":[],"mappings":";;;;;;AAOA,MAAM,YAAY,GAAG,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AAChG,MAAC,aAAa,GAAG,UAAU,CAAC;AACxC,EAAE,UAAU,EAAE;AACd,IAAI,IAAI,EAAE,IAAI;AACd,GAAG;AACH,EAAE,KAAK,EAAE;AACT,IAAI,IAAI,EAAE,cAAc,CAAC,KAAK,CAAC;AAC/B,IAAI,SAAS,EAAE,YAAY;AAC3B,GAAG;AACH,CAAC,EAAE;AACS,MAAC,aAAa,GAAG;AAC7B,EAAE,CAAC,kBAAkB,GAAG,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,CAAC;AAChD,EAAE,CAAC,WAAW,GAAG,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,CAAC;AACzC;;;;"}
@@ -78,6 +78,7 @@ export declare const ElCarousel: import("element-plus/es/utils").SFCWithInstall<
78
78
  translateItem: (index: number, activeIndex: number, oldIndex?: number | undefined) => void;
79
79
  }[]>;
80
80
  arrowDisplay: import("vue").ComputedRef<boolean>;
81
+ interval: import("vue").ComputedRef<number>;
81
82
  hasLabel: import("vue").ComputedRef<boolean>;
82
83
  carouselClasses: import("vue").ComputedRef<string[]>;
83
84
  indicatorsClasses: import("vue").ComputedRef<string[]>;
@@ -79,6 +79,7 @@ declare const _default: import("vue").DefineComponent<{
79
79
  translateItem: (index: number, activeIndex: number, oldIndex?: number | undefined) => void;
80
80
  }[]>;
81
81
  arrowDisplay: import("vue").ComputedRef<boolean>;
82
+ interval: import("vue").ComputedRef<number>;
82
83
  hasLabel: import("vue").ComputedRef<boolean>;
83
84
  carouselClasses: import("vue").ComputedRef<string[]>;
84
85
  indicatorsClasses: import("vue").ComputedRef<string[]>;
@@ -34,6 +34,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
34
34
  const root = ref();
35
35
  const items = ref([]);
36
36
  const arrowDisplay = computed(() => props.arrow !== "never" && !unref(isVertical));
37
+ const interval = computed(() => props.interval);
37
38
  const hasLabel = computed(() => {
38
39
  return items.value.some((item) => item.props.label.toString().length > 0);
39
40
  });
@@ -69,9 +70,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
69
70
  }
70
71
  }
71
72
  function startTimer() {
72
- if (props.interval <= 0 || !props.autoplay || timer.value)
73
+ if (interval.value <= 0 || !props.autoplay || timer.value)
73
74
  return;
74
- timer.value = setInterval(() => playSlides(), props.interval);
75
+ timer.value = setInterval(() => playSlides(), interval.value);
75
76
  }
76
77
  const playSlides = () => {
77
78
  if (activeIndex.value < items.value.length - 1) {