element-ps 2.0.30 → 2.0.31

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 (386) hide show
  1. package/dist/index.full.js +124 -9
  2. package/dist/index.full.min.js +8 -8
  3. package/dist/index.full.min.js.map +1 -1
  4. package/dist/index.full.min.mjs +8 -8
  5. package/dist/index.full.min.mjs.map +1 -1
  6. package/dist/index.full.mjs +124 -9
  7. package/es/components/affix/index.mjs +2 -2
  8. package/es/components/affix/src/affix.mjs +82 -19
  9. package/es/components/affix/src/affix.mjs.map +1 -1
  10. package/es/components/affix/src/affix2.mjs +19 -82
  11. package/es/components/affix/src/affix2.mjs.map +1 -1
  12. package/es/components/autocomplete/index.d.ts +5 -5
  13. package/es/components/autocomplete/src/autocomplete.mjs +1 -1
  14. package/es/components/autocomplete/src/autocomplete.vue.d.ts +5 -5
  15. package/es/components/badge/index.mjs +2 -2
  16. package/es/components/badge/src/badge.mjs +54 -17
  17. package/es/components/badge/src/badge.mjs.map +1 -1
  18. package/es/components/badge/src/badge2.mjs +17 -54
  19. package/es/components/badge/src/badge2.mjs.map +1 -1
  20. package/es/components/breadcrumb/index.mjs +2 -2
  21. package/es/components/breadcrumb/src/breadcrumb-item.mjs +46 -11
  22. package/es/components/breadcrumb/src/breadcrumb-item.mjs.map +1 -1
  23. package/es/components/breadcrumb/src/breadcrumb-item2.mjs +11 -46
  24. package/es/components/breadcrumb/src/breadcrumb-item2.mjs.map +1 -1
  25. package/es/components/button/index.mjs +1 -1
  26. package/es/components/button/src/button-group.mjs +5 -30
  27. package/es/components/button/src/button-group.mjs.map +1 -1
  28. package/es/components/button/src/button-group2.mjs +30 -5
  29. package/es/components/button/src/button-group2.mjs.map +1 -1
  30. package/es/components/calendar/index.mjs +2 -2
  31. package/es/components/calendar/src/calendar.mjs +9 -188
  32. package/es/components/calendar/src/calendar.mjs.map +1 -1
  33. package/es/components/calendar/src/calendar2.mjs +188 -9
  34. package/es/components/calendar/src/calendar2.mjs.map +1 -1
  35. package/es/components/calendar/src/date-table.mjs +27 -146
  36. package/es/components/calendar/src/date-table.mjs.map +1 -1
  37. package/es/components/calendar/src/date-table2.mjs +146 -27
  38. package/es/components/calendar/src/date-table2.mjs.map +1 -1
  39. package/es/components/cascader/src/index.mjs +1 -1
  40. package/es/components/dropdown/index.d.ts +3 -3
  41. package/es/components/dropdown/index.mjs +2 -2
  42. package/es/components/dropdown/src/dropdown-item-impl.mjs +1 -1
  43. package/es/components/dropdown/src/dropdown-item.mjs +1 -1
  44. package/es/components/dropdown/src/dropdown-menu.mjs +1 -1
  45. package/es/components/dropdown/src/dropdown.d.ts +1 -1
  46. package/es/components/dropdown/src/dropdown.mjs +100 -109
  47. package/es/components/dropdown/src/dropdown.mjs.map +1 -1
  48. package/es/components/dropdown/src/dropdown.vue.d.ts +3 -3
  49. package/es/components/dropdown/src/dropdown2.mjs +109 -100
  50. package/es/components/dropdown/src/dropdown2.mjs.map +1 -1
  51. package/es/components/empty/index.mjs +2 -2
  52. package/es/components/empty/src/empty.mjs +11 -56
  53. package/es/components/empty/src/empty.mjs.map +1 -1
  54. package/es/components/empty/src/empty2.mjs +56 -11
  55. package/es/components/empty/src/empty2.mjs.map +1 -1
  56. package/es/components/icon/index.mjs +2 -2
  57. package/es/components/icon/src/icon.mjs +35 -8
  58. package/es/components/icon/src/icon.mjs.map +1 -1
  59. package/es/components/icon/src/icon2.mjs +8 -35
  60. package/es/components/icon/src/icon2.mjs.map +1 -1
  61. package/es/components/image/index.mjs +2 -2
  62. package/es/components/image/src/image.mjs +127 -50
  63. package/es/components/image/src/image.mjs.map +1 -1
  64. package/es/components/image/src/image2.mjs +50 -127
  65. package/es/components/image/src/image2.mjs.map +1 -1
  66. package/es/components/index.mjs +22 -22
  67. package/es/components/input/index.mjs +2 -2
  68. package/es/components/input/src/input.mjs +295 -85
  69. package/es/components/input/src/input.mjs.map +1 -1
  70. package/es/components/input/src/input2.mjs +85 -295
  71. package/es/components/input/src/input2.mjs.map +1 -1
  72. package/es/components/menu/index.d.ts +5 -3
  73. package/es/components/menu/src/menu-item2.mjs +9 -1
  74. package/es/components/menu/src/menu-item2.mjs.map +1 -1
  75. package/es/components/menu/src/menu.d.ts +7 -4
  76. package/es/components/menu/src/menu.mjs +86 -6
  77. package/es/components/menu/src/menu.mjs.map +1 -1
  78. package/es/components/menu/src/sub-menu.mjs +35 -4
  79. package/es/components/menu/src/sub-menu.mjs.map +1 -1
  80. package/es/components/menu/src/types.d.ts +8 -0
  81. package/es/components/popconfirm/index.mjs +2 -2
  82. package/es/components/popconfirm/src/popconfirm.mjs +20 -53
  83. package/es/components/popconfirm/src/popconfirm.mjs.map +1 -1
  84. package/es/components/popconfirm/src/popconfirm2.mjs +53 -20
  85. package/es/components/popconfirm/src/popconfirm2.mjs.map +1 -1
  86. package/es/components/popover/index.d.ts +6 -6
  87. package/es/components/popover/src/index.vue.d.ts +3 -3
  88. package/es/components/popover/src/popover.d.ts +1 -1
  89. package/es/components/popover/src/popover.mjs +2 -2
  90. package/es/components/popper/index.mjs +2 -2
  91. package/es/components/popper/src/arrow.mjs +31 -7
  92. package/es/components/popper/src/arrow.mjs.map +1 -1
  93. package/es/components/popper/src/arrow2.mjs +7 -31
  94. package/es/components/popper/src/arrow2.mjs.map +1 -1
  95. package/es/components/radio/index.mjs +4 -4
  96. package/es/components/radio/src/radio-button.mjs +1 -1
  97. package/es/components/radio/src/radio-button2.mjs +1 -1
  98. package/es/components/radio/src/radio-group.mjs +37 -18
  99. package/es/components/radio/src/radio-group.mjs.map +1 -1
  100. package/es/components/radio/src/radio-group2.mjs +18 -37
  101. package/es/components/radio/src/radio-group2.mjs.map +1 -1
  102. package/es/components/radio/src/radio.mjs +74 -62
  103. package/es/components/radio/src/radio.mjs.map +1 -1
  104. package/es/components/radio/src/radio2.mjs +62 -74
  105. package/es/components/radio/src/radio2.mjs.map +1 -1
  106. package/es/components/rate/index.mjs +2 -2
  107. package/es/components/rate/src/rate.mjs +84 -169
  108. package/es/components/rate/src/rate.mjs.map +1 -1
  109. package/es/components/rate/src/rate2.mjs +169 -84
  110. package/es/components/rate/src/rate2.mjs.map +1 -1
  111. package/es/components/result/index.mjs +2 -2
  112. package/es/components/result/src/result.mjs +28 -73
  113. package/es/components/result/src/result.mjs.map +1 -1
  114. package/es/components/result/src/result2.mjs +73 -28
  115. package/es/components/result/src/result2.mjs.map +1 -1
  116. package/es/components/roving-focus-group/index.mjs +3 -3
  117. package/es/components/roving-focus-group/src/roving-focus-group-impl.mjs +1 -1
  118. package/es/components/roving-focus-group/src/roving-focus-group.mjs +27 -29
  119. package/es/components/roving-focus-group/src/roving-focus-group.mjs.map +1 -1
  120. package/es/components/roving-focus-group/src/roving-focus-group2.mjs +29 -27
  121. package/es/components/roving-focus-group/src/roving-focus-group2.mjs.map +1 -1
  122. package/es/components/roving-focus-group/src/roving-focus-item.mjs +1 -1
  123. package/es/components/scrollbar/index.mjs +3 -3
  124. package/es/components/scrollbar/src/bar.mjs +35 -22
  125. package/es/components/scrollbar/src/bar.mjs.map +1 -1
  126. package/es/components/scrollbar/src/bar2.mjs +22 -35
  127. package/es/components/scrollbar/src/bar2.mjs.map +1 -1
  128. package/es/components/scrollbar/src/scrollbar.mjs +112 -42
  129. package/es/components/scrollbar/src/scrollbar.mjs.map +1 -1
  130. package/es/components/scrollbar/src/scrollbar2.mjs +42 -112
  131. package/es/components/scrollbar/src/scrollbar2.mjs.map +1 -1
  132. package/es/components/scrollbar/src/thumb.mjs +11 -59
  133. package/es/components/scrollbar/src/thumb.mjs.map +1 -1
  134. package/es/components/scrollbar/src/thumb2.mjs +59 -11
  135. package/es/components/scrollbar/src/thumb2.mjs.map +1 -1
  136. package/es/components/select/index.d.ts +5 -5
  137. package/es/components/select/src/select.mjs +1 -1
  138. package/es/components/select/src/select.vue.d.ts +5 -5
  139. package/es/components/select/src/useSelect.d.ts +5 -5
  140. package/es/components/select-v2/index.d.ts +10 -10
  141. package/es/components/select-v2/src/defaults.mjs +1 -1
  142. package/es/components/select-v2/src/option-item.vue.d.ts +1 -1
  143. package/es/components/select-v2/src/select.vue.d.ts +5 -5
  144. package/es/components/select-v2/src/useSelect.d.ts +5 -5
  145. package/es/components/switch/index.mjs +2 -2
  146. package/es/components/switch/src/switch.mjs +176 -81
  147. package/es/components/switch/src/switch.mjs.map +1 -1
  148. package/es/components/switch/src/switch2.mjs +81 -176
  149. package/es/components/switch/src/switch2.mjs.map +1 -1
  150. package/es/components/table/index.d.ts +1 -1
  151. package/es/components/table/src/filter-panel.vue.d.ts +5 -5
  152. package/es/components/table/src/table.vue.d.ts +1 -1
  153. package/es/components/tabs/index.mjs +1 -1
  154. package/es/components/tabs/src/tab-bar.mjs +76 -7
  155. package/es/components/tabs/src/tab-bar.mjs.map +1 -1
  156. package/es/components/tabs/src/tab-bar2.mjs +7 -76
  157. package/es/components/tabs/src/tab-bar2.mjs.map +1 -1
  158. package/es/components/tabs/src/tab-nav.mjs +1 -1
  159. package/es/components/teleport/index.mjs +2 -2
  160. package/es/components/teleport/src/teleport.mjs +18 -43
  161. package/es/components/teleport/src/teleport.mjs.map +1 -1
  162. package/es/components/teleport/src/teleport2.mjs +43 -18
  163. package/es/components/teleport/src/teleport2.mjs.map +1 -1
  164. package/es/components/time-picker/src/common/picker.vue.d.ts +5 -5
  165. package/es/components/timeline/index.mjs +2 -2
  166. package/es/components/timeline/src/timeline-item.mjs +39 -73
  167. package/es/components/timeline/src/timeline-item.mjs.map +1 -1
  168. package/es/components/timeline/src/timeline-item2.mjs +73 -39
  169. package/es/components/timeline/src/timeline-item2.mjs.map +1 -1
  170. package/es/components/tooltip/index.d.ts +3 -3
  171. package/es/components/tooltip/index.mjs +2 -2
  172. package/es/components/tooltip/src/tooltip.d.ts +1 -1
  173. package/es/components/tooltip/src/tooltip.mjs +64 -51
  174. package/es/components/tooltip/src/tooltip.mjs.map +1 -1
  175. package/es/components/tooltip/src/tooltip.vue.d.ts +3 -3
  176. package/es/components/tooltip/src/tooltip2.mjs +51 -64
  177. package/es/components/tooltip/src/tooltip2.mjs.map +1 -1
  178. package/es/components/tooltip/src/trigger.mjs +1 -1
  179. package/es/components/tooltip/src/trigger.vue.d.ts +3 -3
  180. package/es/components/tooltip-v2/index.mjs +3 -3
  181. package/es/components/tooltip-v2/src/arrow.mjs +38 -22
  182. package/es/components/tooltip-v2/src/arrow.mjs.map +1 -1
  183. package/es/components/tooltip-v2/src/arrow2.mjs +22 -38
  184. package/es/components/tooltip-v2/src/arrow2.mjs.map +1 -1
  185. package/es/components/tooltip-v2/src/root.mjs +81 -17
  186. package/es/components/tooltip-v2/src/root.mjs.map +1 -1
  187. package/es/components/tooltip-v2/src/root2.mjs +17 -81
  188. package/es/components/tooltip-v2/src/root2.mjs.map +1 -1
  189. package/es/components/tooltip-v2/src/tooltip.mjs +3 -3
  190. package/es/components/tooltip-v2/src/tooltip2.mjs +6 -6
  191. package/es/components/tooltip-v2/src/trigger.mjs +89 -11
  192. package/es/components/tooltip-v2/src/trigger.mjs.map +1 -1
  193. package/es/components/tooltip-v2/src/trigger2.mjs +11 -89
  194. package/es/components/tooltip-v2/src/trigger2.mjs.map +1 -1
  195. package/es/index.mjs +22 -22
  196. package/lib/components/affix/index.js +2 -2
  197. package/lib/components/affix/src/affix.js +82 -19
  198. package/lib/components/affix/src/affix.js.map +1 -1
  199. package/lib/components/affix/src/affix2.js +19 -82
  200. package/lib/components/affix/src/affix2.js.map +1 -1
  201. package/lib/components/autocomplete/index.d.ts +5 -5
  202. package/lib/components/autocomplete/src/autocomplete.js +1 -1
  203. package/lib/components/autocomplete/src/autocomplete.vue.d.ts +5 -5
  204. package/lib/components/badge/index.js +2 -2
  205. package/lib/components/badge/src/badge.js +54 -17
  206. package/lib/components/badge/src/badge.js.map +1 -1
  207. package/lib/components/badge/src/badge2.js +17 -54
  208. package/lib/components/badge/src/badge2.js.map +1 -1
  209. package/lib/components/breadcrumb/index.js +2 -2
  210. package/lib/components/breadcrumb/src/breadcrumb-item.js +46 -11
  211. package/lib/components/breadcrumb/src/breadcrumb-item.js.map +1 -1
  212. package/lib/components/breadcrumb/src/breadcrumb-item2.js +11 -46
  213. package/lib/components/breadcrumb/src/breadcrumb-item2.js.map +1 -1
  214. package/lib/components/button/index.js +1 -1
  215. package/lib/components/button/src/button-group.js +5 -30
  216. package/lib/components/button/src/button-group.js.map +1 -1
  217. package/lib/components/button/src/button-group2.js +30 -5
  218. package/lib/components/button/src/button-group2.js.map +1 -1
  219. package/lib/components/calendar/index.js +2 -2
  220. package/lib/components/calendar/src/calendar.js +9 -192
  221. package/lib/components/calendar/src/calendar.js.map +1 -1
  222. package/lib/components/calendar/src/calendar2.js +192 -9
  223. package/lib/components/calendar/src/calendar2.js.map +1 -1
  224. package/lib/components/calendar/src/date-table.js +30 -151
  225. package/lib/components/calendar/src/date-table.js.map +1 -1
  226. package/lib/components/calendar/src/date-table2.js +151 -30
  227. package/lib/components/calendar/src/date-table2.js.map +1 -1
  228. package/lib/components/cascader/src/index.js +1 -1
  229. package/lib/components/dropdown/index.d.ts +3 -3
  230. package/lib/components/dropdown/index.js +2 -2
  231. package/lib/components/dropdown/src/dropdown-item-impl.js +1 -1
  232. package/lib/components/dropdown/src/dropdown-item.js +1 -1
  233. package/lib/components/dropdown/src/dropdown-menu.js +1 -1
  234. package/lib/components/dropdown/src/dropdown.d.ts +1 -1
  235. package/lib/components/dropdown/src/dropdown.js +109 -109
  236. package/lib/components/dropdown/src/dropdown.js.map +1 -1
  237. package/lib/components/dropdown/src/dropdown.vue.d.ts +3 -3
  238. package/lib/components/dropdown/src/dropdown2.js +109 -109
  239. package/lib/components/dropdown/src/dropdown2.js.map +1 -1
  240. package/lib/components/empty/index.js +2 -2
  241. package/lib/components/empty/src/empty.js +11 -56
  242. package/lib/components/empty/src/empty.js.map +1 -1
  243. package/lib/components/empty/src/empty2.js +56 -11
  244. package/lib/components/empty/src/empty2.js.map +1 -1
  245. package/lib/components/icon/index.js +2 -2
  246. package/lib/components/icon/src/icon.js +35 -8
  247. package/lib/components/icon/src/icon.js.map +1 -1
  248. package/lib/components/icon/src/icon2.js +8 -35
  249. package/lib/components/icon/src/icon2.js.map +1 -1
  250. package/lib/components/image/index.js +2 -2
  251. package/lib/components/image/src/image.js +127 -50
  252. package/lib/components/image/src/image.js.map +1 -1
  253. package/lib/components/image/src/image2.js +50 -127
  254. package/lib/components/image/src/image2.js.map +1 -1
  255. package/lib/components/index.js +22 -22
  256. package/lib/components/input/index.js +2 -2
  257. package/lib/components/input/src/input.js +294 -84
  258. package/lib/components/input/src/input.js.map +1 -1
  259. package/lib/components/input/src/input2.js +84 -294
  260. package/lib/components/input/src/input2.js.map +1 -1
  261. package/lib/components/menu/index.d.ts +5 -3
  262. package/lib/components/menu/src/menu-item2.js +8 -0
  263. package/lib/components/menu/src/menu-item2.js.map +1 -1
  264. package/lib/components/menu/src/menu.d.ts +7 -4
  265. package/lib/components/menu/src/menu.js +87 -7
  266. package/lib/components/menu/src/menu.js.map +1 -1
  267. package/lib/components/menu/src/sub-menu.js +34 -3
  268. package/lib/components/menu/src/sub-menu.js.map +1 -1
  269. package/lib/components/menu/src/types.d.ts +8 -0
  270. package/lib/components/popconfirm/index.js +2 -2
  271. package/lib/components/popconfirm/src/popconfirm.js +20 -53
  272. package/lib/components/popconfirm/src/popconfirm.js.map +1 -1
  273. package/lib/components/popconfirm/src/popconfirm2.js +53 -20
  274. package/lib/components/popconfirm/src/popconfirm2.js.map +1 -1
  275. package/lib/components/popover/index.d.ts +6 -6
  276. package/lib/components/popover/src/index.vue.d.ts +3 -3
  277. package/lib/components/popover/src/popover.d.ts +1 -1
  278. package/lib/components/popover/src/popover.js +2 -2
  279. package/lib/components/popper/index.js +2 -2
  280. package/lib/components/popper/src/arrow.js +31 -7
  281. package/lib/components/popper/src/arrow.js.map +1 -1
  282. package/lib/components/popper/src/arrow2.js +7 -31
  283. package/lib/components/popper/src/arrow2.js.map +1 -1
  284. package/lib/components/radio/index.js +4 -4
  285. package/lib/components/radio/src/radio-button.js +1 -1
  286. package/lib/components/radio/src/radio-button2.js +1 -1
  287. package/lib/components/radio/src/radio-group.js +37 -18
  288. package/lib/components/radio/src/radio-group.js.map +1 -1
  289. package/lib/components/radio/src/radio-group2.js +18 -37
  290. package/lib/components/radio/src/radio-group2.js.map +1 -1
  291. package/lib/components/radio/src/radio.js +73 -64
  292. package/lib/components/radio/src/radio.js.map +1 -1
  293. package/lib/components/radio/src/radio2.js +64 -73
  294. package/lib/components/radio/src/radio2.js.map +1 -1
  295. package/lib/components/rate/index.js +2 -2
  296. package/lib/components/rate/src/rate.js +84 -169
  297. package/lib/components/rate/src/rate.js.map +1 -1
  298. package/lib/components/rate/src/rate2.js +169 -84
  299. package/lib/components/rate/src/rate2.js.map +1 -1
  300. package/lib/components/result/index.js +2 -2
  301. package/lib/components/result/src/result.js +30 -73
  302. package/lib/components/result/src/result.js.map +1 -1
  303. package/lib/components/result/src/result2.js +73 -30
  304. package/lib/components/result/src/result2.js.map +1 -1
  305. package/lib/components/roving-focus-group/index.js +2 -2
  306. package/lib/components/roving-focus-group/src/roving-focus-group-impl.js +1 -1
  307. package/lib/components/roving-focus-group/src/roving-focus-group.js +27 -33
  308. package/lib/components/roving-focus-group/src/roving-focus-group.js.map +1 -1
  309. package/lib/components/roving-focus-group/src/roving-focus-group2.js +33 -27
  310. package/lib/components/roving-focus-group/src/roving-focus-group2.js.map +1 -1
  311. package/lib/components/roving-focus-group/src/roving-focus-item.js +1 -1
  312. package/lib/components/scrollbar/index.js +3 -3
  313. package/lib/components/scrollbar/src/bar.js +35 -22
  314. package/lib/components/scrollbar/src/bar.js.map +1 -1
  315. package/lib/components/scrollbar/src/bar2.js +22 -35
  316. package/lib/components/scrollbar/src/bar2.js.map +1 -1
  317. package/lib/components/scrollbar/src/scrollbar.js +112 -42
  318. package/lib/components/scrollbar/src/scrollbar.js.map +1 -1
  319. package/lib/components/scrollbar/src/scrollbar2.js +42 -112
  320. package/lib/components/scrollbar/src/scrollbar2.js.map +1 -1
  321. package/lib/components/scrollbar/src/thumb.js +11 -59
  322. package/lib/components/scrollbar/src/thumb.js.map +1 -1
  323. package/lib/components/scrollbar/src/thumb2.js +59 -11
  324. package/lib/components/scrollbar/src/thumb2.js.map +1 -1
  325. package/lib/components/select/index.d.ts +5 -5
  326. package/lib/components/select/src/select.js +1 -1
  327. package/lib/components/select/src/select.vue.d.ts +5 -5
  328. package/lib/components/select/src/useSelect.d.ts +5 -5
  329. package/lib/components/select-v2/index.d.ts +10 -10
  330. package/lib/components/select-v2/src/defaults.js +1 -1
  331. package/lib/components/select-v2/src/option-item.vue.d.ts +1 -1
  332. package/lib/components/select-v2/src/select.vue.d.ts +5 -5
  333. package/lib/components/select-v2/src/useSelect.d.ts +5 -5
  334. package/lib/components/switch/index.js +2 -2
  335. package/lib/components/switch/src/switch.js +176 -81
  336. package/lib/components/switch/src/switch.js.map +1 -1
  337. package/lib/components/switch/src/switch2.js +81 -176
  338. package/lib/components/switch/src/switch2.js.map +1 -1
  339. package/lib/components/table/index.d.ts +1 -1
  340. package/lib/components/table/src/filter-panel.vue.d.ts +5 -5
  341. package/lib/components/table/src/table.vue.d.ts +1 -1
  342. package/lib/components/tabs/index.js +1 -1
  343. package/lib/components/tabs/src/tab-bar.js +76 -7
  344. package/lib/components/tabs/src/tab-bar.js.map +1 -1
  345. package/lib/components/tabs/src/tab-bar2.js +7 -76
  346. package/lib/components/tabs/src/tab-bar2.js.map +1 -1
  347. package/lib/components/tabs/src/tab-nav.js +1 -1
  348. package/lib/components/teleport/index.js +2 -2
  349. package/lib/components/teleport/src/teleport.js +18 -43
  350. package/lib/components/teleport/src/teleport.js.map +1 -1
  351. package/lib/components/teleport/src/teleport2.js +43 -18
  352. package/lib/components/teleport/src/teleport2.js.map +1 -1
  353. package/lib/components/time-picker/src/common/picker.vue.d.ts +5 -5
  354. package/lib/components/timeline/index.js +2 -2
  355. package/lib/components/timeline/src/timeline-item.js +39 -73
  356. package/lib/components/timeline/src/timeline-item.js.map +1 -1
  357. package/lib/components/timeline/src/timeline-item2.js +73 -39
  358. package/lib/components/timeline/src/timeline-item2.js.map +1 -1
  359. package/lib/components/tooltip/index.d.ts +3 -3
  360. package/lib/components/tooltip/index.js +2 -2
  361. package/lib/components/tooltip/src/tooltip.d.ts +1 -1
  362. package/lib/components/tooltip/src/tooltip.js +65 -50
  363. package/lib/components/tooltip/src/tooltip.js.map +1 -1
  364. package/lib/components/tooltip/src/tooltip.vue.d.ts +3 -3
  365. package/lib/components/tooltip/src/tooltip2.js +50 -65
  366. package/lib/components/tooltip/src/tooltip2.js.map +1 -1
  367. package/lib/components/tooltip/src/trigger.js +1 -1
  368. package/lib/components/tooltip/src/trigger.vue.d.ts +3 -3
  369. package/lib/components/tooltip-v2/index.js +3 -3
  370. package/lib/components/tooltip-v2/src/arrow.js +38 -23
  371. package/lib/components/tooltip-v2/src/arrow.js.map +1 -1
  372. package/lib/components/tooltip-v2/src/arrow2.js +23 -38
  373. package/lib/components/tooltip-v2/src/arrow2.js.map +1 -1
  374. package/lib/components/tooltip-v2/src/root.js +81 -17
  375. package/lib/components/tooltip-v2/src/root.js.map +1 -1
  376. package/lib/components/tooltip-v2/src/root2.js +17 -81
  377. package/lib/components/tooltip-v2/src/root2.js.map +1 -1
  378. package/lib/components/tooltip-v2/src/tooltip.js +3 -3
  379. package/lib/components/tooltip-v2/src/tooltip2.js +6 -6
  380. package/lib/components/tooltip-v2/src/trigger.js +89 -11
  381. package/lib/components/tooltip-v2/src/trigger.js.map +1 -1
  382. package/lib/components/tooltip-v2/src/trigger2.js +11 -89
  383. package/lib/components/tooltip-v2/src/trigger2.js.map +1 -1
  384. package/lib/index.js +22 -22
  385. package/package.json +1 -1
  386. package/web-types.json +1 -1
@@ -1,194 +1,15 @@
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 { PsButtonGroup, PsButton } from '../../button/index.mjs';
4
- import '../../../hooks/index.mjs';
5
1
  import '../../../utils/index.mjs';
6
- import DateTable from './date-table.mjs';
7
- import { calendarProps } from './calendar2.mjs';
8
- import _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';
9
- import { useNamespace } from '../../../hooks/use-namespace/index.mjs';
10
- import { useLocale } from '../../../hooks/use-locale/index.mjs';
11
- import { debugWarn } from '../../../utils/error.mjs';
2
+ import { buildProps, definePropType } from '../../../utils/vue/props.mjs';
12
3
 
13
- const __default__ = {
14
- name: "PsCalendar"
15
- };
16
- const _sfc_main = /* @__PURE__ */ defineComponent({
17
- ...__default__,
18
- props: calendarProps,
19
- setup(__props, { expose }) {
20
- const props = __props;
21
- const COMPONENT_NAME = "PsCalendar";
22
- const ns = useNamespace("calendar");
23
- const { t, lang } = useLocale();
24
- const selectedDay = ref();
25
- const now = dayjs().locale(lang.value);
26
- const i18nDate = computed(() => {
27
- const pickedMonth = `el.datepicker.month${date.value.format("M")}`;
28
- return `${date.value.year()} ${t("el.datepicker.year")} ${t(pickedMonth)}`;
29
- });
30
- const realSelectedDay = computed({
31
- get() {
32
- if (!props.modelValue)
33
- return selectedDay.value;
34
- return date.value;
35
- },
36
- set(val) {
37
- if (!val)
38
- return;
39
- selectedDay.value = val;
40
- }
41
- });
42
- const date = computed(() => {
43
- if (!props.modelValue) {
44
- if (realSelectedDay.value) {
45
- return realSelectedDay.value;
46
- } else if (validatedRange.value.length) {
47
- return validatedRange.value[0][0];
48
- }
49
- return now;
50
- } else {
51
- return dayjs(props.modelValue).locale(lang.value);
52
- }
53
- });
54
- const calculateValidatedDateRange = (startDayjs, endDayjs) => {
55
- const firstDay = startDayjs.startOf("week");
56
- const lastDay = endDayjs.endOf("week");
57
- const firstMonth = firstDay.get("month");
58
- const lastMonth = lastDay.get("month");
59
- if (firstMonth === lastMonth) {
60
- return [[firstDay, lastDay]];
61
- } else if (firstMonth + 1 === lastMonth) {
62
- const firstMonthLastDay = firstDay.endOf("month");
63
- const lastMonthFirstDay = lastDay.startOf("month");
64
- const isSameWeek = firstMonthLastDay.isSame(lastMonthFirstDay, "week");
65
- const lastMonthStartDay = isSameWeek ? lastMonthFirstDay.add(1, "week") : lastMonthFirstDay;
66
- return [
67
- [firstDay, firstMonthLastDay],
68
- [lastMonthStartDay.startOf("week"), lastDay]
69
- ];
70
- } else if (firstMonth + 2 === lastMonth || (firstMonth + 1) % 11 === lastMonth) {
71
- const firstMonthLastDay = firstDay.endOf("month");
72
- const secondMonthFirstDay = firstDay.add(1, "month").startOf("month");
73
- const secondMonthStartDay = firstMonthLastDay.isSame(secondMonthFirstDay, "week") ? secondMonthFirstDay.add(1, "week") : secondMonthFirstDay;
74
- const secondMonthLastDay = secondMonthStartDay.endOf("month");
75
- const lastMonthFirstDay = lastDay.startOf("month");
76
- const lastMonthStartDay = secondMonthLastDay.isSame(lastMonthFirstDay, "week") ? lastMonthFirstDay.add(1, "week") : lastMonthFirstDay;
77
- return [
78
- [firstDay, firstMonthLastDay],
79
- [secondMonthStartDay.startOf("week"), secondMonthLastDay],
80
- [lastMonthStartDay.startOf("week"), lastDay]
81
- ];
82
- } else {
83
- debugWarn(COMPONENT_NAME, "start time and end time interval must not exceed two months");
84
- return [];
85
- }
86
- };
87
- const validatedRange = computed(() => {
88
- if (!props.range)
89
- return [];
90
- const rangeArrDayjs = props.range.map((_) => dayjs(_).locale(lang.value));
91
- const [startDayjs, endDayjs] = rangeArrDayjs;
92
- if (startDayjs.isAfter(endDayjs)) {
93
- debugWarn(COMPONENT_NAME, "end time should be greater than start time");
94
- return [];
95
- }
96
- if (startDayjs.isSame(endDayjs, "month")) {
97
- return calculateValidatedDateRange(startDayjs, endDayjs);
98
- } else {
99
- if (startDayjs.add(1, "month").month() !== endDayjs.month()) {
100
- debugWarn(COMPONENT_NAME, "start time and end time interval must not exceed two months");
101
- return [];
102
- }
103
- return calculateValidatedDateRange(startDayjs, endDayjs);
104
- }
105
- });
106
- expose({
107
- selectedDay: realSelectedDay,
108
- calculateValidatedDateRange
109
- });
110
- return (_ctx, _cache) => {
111
- return openBlock(), createElementBlock("div", {
112
- class: normalizeClass(unref(ns).b())
113
- }, [
114
- createElementVNode("div", {
115
- class: normalizeClass(unref(ns).e("header"))
116
- }, [
117
- renderSlot(_ctx.$slots, "header", { date: unref(i18nDate) }, () => [
118
- createElementVNode("div", {
119
- class: normalizeClass(unref(ns).e("title"))
120
- }, toDisplayString(unref(i18nDate)), 3),
121
- unref(validatedRange).length === 0 ? (openBlock(), createElementBlock("div", {
122
- key: 0,
123
- class: normalizeClass(unref(ns).e("button-group"))
124
- }, [
125
- createVNode(unref(PsButtonGroup), null, {
126
- default: withCtx(() => [
127
- createVNode(unref(PsButton), { size: "small" }, {
128
- default: withCtx(() => [
129
- createTextVNode(toDisplayString(unref(t)("el.datepicker.prevMonth")), 1)
130
- ]),
131
- _: 1
132
- }),
133
- createVNode(unref(PsButton), { size: "small" }, {
134
- default: withCtx(() => [
135
- createTextVNode(toDisplayString(unref(t)("el.datepicker.today")), 1)
136
- ]),
137
- _: 1
138
- }),
139
- createVNode(unref(PsButton), { size: "small" }, {
140
- default: withCtx(() => [
141
- createTextVNode(toDisplayString(unref(t)("el.datepicker.nextMonth")), 1)
142
- ]),
143
- _: 1
144
- })
145
- ]),
146
- _: 1
147
- })
148
- ], 2)) : createCommentVNode("v-if", true)
149
- ])
150
- ], 2),
151
- unref(validatedRange).length === 0 ? (openBlock(), createElementBlock("div", {
152
- key: 0,
153
- class: normalizeClass(unref(ns).e("body"))
154
- }, [
155
- createVNode(DateTable, {
156
- date: unref(date),
157
- "selected-day": unref(realSelectedDay)
158
- }, createSlots({ _: 2 }, [
159
- _ctx.$slots.dateCell ? {
160
- name: "dateCell",
161
- fn: withCtx((data) => [
162
- renderSlot(_ctx.$slots, "dateCell", normalizeProps(guardReactiveProps(data)))
163
- ])
164
- } : void 0
165
- ]), 1032, ["date", "selected-day"])
166
- ], 2)) : (openBlock(), createElementBlock("div", {
167
- key: 1,
168
- class: normalizeClass(unref(ns).e("body"))
169
- }, [
170
- (openBlock(true), createElementBlock(Fragment, null, renderList(unref(validatedRange), (range_, index) => {
171
- return openBlock(), createBlock(DateTable, {
172
- key: index,
173
- date: range_[0],
174
- "selected-day": unref(realSelectedDay),
175
- range: range_,
176
- "hide-header": index !== 0
177
- }, createSlots({ _: 2 }, [
178
- _ctx.$slots.dateCell ? {
179
- name: "dateCell",
180
- fn: withCtx((data) => [
181
- renderSlot(_ctx.$slots, "dateCell", normalizeProps(guardReactiveProps(data)))
182
- ])
183
- } : void 0
184
- ]), 1032, ["date", "selected-day", "range", "hide-header"]);
185
- }), 128))
186
- ], 2))
187
- ], 2);
188
- };
4
+ const calendarProps = buildProps({
5
+ modelValue: {
6
+ type: Date
7
+ },
8
+ range: {
9
+ type: definePropType(Array),
10
+ validator: (range) => Array.isArray(range) && range.length === 2 && range.every((item) => item instanceof Date)
189
11
  }
190
12
  });
191
- var Calendar = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "/Users/meng/workspace/element-ps/packages/components/calendar/src/calendar.vue"]]);
192
13
 
193
- export { Calendar as default };
14
+ export { calendarProps };
194
15
  //# sourceMappingURL=calendar.mjs.map
@@ -1 +1 @@
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 <ps-button-group>\n <ps-button size=\"small\">\n {{ t('el.datepicker.prevMonth') }}\n </ps-button>\n <ps-button size=\"small\">\n {{ t('el.datepicker.today') }}\n </ps-button>\n <ps-button size=\"small\">\n {{ t('el.datepicker.nextMonth') }}\n </ps-button>\n </ps-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\">\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 >\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 { PsButton, PsButtonGroup } from '@element-ps/components/button'\nimport { useLocale, useNamespace } from '@element-ps/hooks'\nimport { debugWarn } from '@element-ps/utils'\nimport DateTable from './date-table.vue'\nimport { calendarProps } from './calendar'\n\nimport type { ComputedRef } from 'vue'\nimport type { Dayjs } from 'dayjs'\n\nconst COMPONENT_NAME = 'PsCalendar'\n\ndefineOptions({\n name: 'PsCalendar',\n})\n\nconst props = defineProps(calendarProps)\n\nconst ns = useNamespace('calendar')\n\nconst { t, lang } = useLocale()\nconst selectedDay = ref<Dayjs>()\nconst now = dayjs().locale(lang.value)\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\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 },\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})\n\n// https://github.com/element-ps/element-ps/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\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\ndefineExpose({\n /** @description currently selected date */\n selectedDay: realSelectedDay,\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":"calendar.mjs","sources":["../../../../../../packages/components/calendar/src/calendar.ts"],"sourcesContent":["import { buildProps, definePropType } from '@element-ps/utils'\nimport { UPDATE_MODEL_EVENT } from '@element-ps/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\nexport const calendarProps = buildProps({\n modelValue: {\n type: Date,\n },\n range: {\n type: definePropType<[Date, Date]>(Array),\n validator: (range: unknown): range is [Date, Date] =>\n Array.isArray(range) &&\n range.length === 2 &&\n range.every((item) => item instanceof Date),\n },\n} as const)\nexport type CalendarProps = ExtractPropTypes<typeof calendarProps>\n\nexport type CalendarInstance = InstanceType<typeof Calendar>\n"],"names":[],"mappings":";;;AACY,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,CAAC,KAAK,KAAK,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,YAAY,IAAI,CAAC;AACnH,GAAG;AACH,CAAC;;;;"}
@@ -1,15 +1,194 @@
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 { PsButtonGroup, PsButton } from '../../button/index.mjs';
4
+ import '../../../hooks/index.mjs';
1
5
  import '../../../utils/index.mjs';
2
- import { buildProps, definePropType } from '../../../utils/vue/props.mjs';
6
+ import DateTable from './date-table2.mjs';
7
+ import { calendarProps } from './calendar.mjs';
8
+ import _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';
9
+ import { useNamespace } from '../../../hooks/use-namespace/index.mjs';
10
+ import { useLocale } from '../../../hooks/use-locale/index.mjs';
11
+ import { debugWarn } from '../../../utils/error.mjs';
3
12
 
4
- const calendarProps = buildProps({
5
- modelValue: {
6
- type: Date
7
- },
8
- range: {
9
- type: definePropType(Array),
10
- validator: (range) => Array.isArray(range) && range.length === 2 && range.every((item) => item instanceof Date)
13
+ const __default__ = {
14
+ name: "PsCalendar"
15
+ };
16
+ const _sfc_main = /* @__PURE__ */ defineComponent({
17
+ ...__default__,
18
+ props: calendarProps,
19
+ setup(__props, { expose }) {
20
+ const props = __props;
21
+ const COMPONENT_NAME = "PsCalendar";
22
+ const ns = useNamespace("calendar");
23
+ const { t, lang } = useLocale();
24
+ const selectedDay = ref();
25
+ const now = dayjs().locale(lang.value);
26
+ const i18nDate = computed(() => {
27
+ const pickedMonth = `el.datepicker.month${date.value.format("M")}`;
28
+ return `${date.value.year()} ${t("el.datepicker.year")} ${t(pickedMonth)}`;
29
+ });
30
+ const realSelectedDay = computed({
31
+ get() {
32
+ if (!props.modelValue)
33
+ return selectedDay.value;
34
+ return date.value;
35
+ },
36
+ set(val) {
37
+ if (!val)
38
+ return;
39
+ selectedDay.value = val;
40
+ }
41
+ });
42
+ const date = computed(() => {
43
+ if (!props.modelValue) {
44
+ if (realSelectedDay.value) {
45
+ return realSelectedDay.value;
46
+ } else if (validatedRange.value.length) {
47
+ return validatedRange.value[0][0];
48
+ }
49
+ return now;
50
+ } else {
51
+ return dayjs(props.modelValue).locale(lang.value);
52
+ }
53
+ });
54
+ const calculateValidatedDateRange = (startDayjs, endDayjs) => {
55
+ const firstDay = startDayjs.startOf("week");
56
+ const lastDay = endDayjs.endOf("week");
57
+ const firstMonth = firstDay.get("month");
58
+ const lastMonth = lastDay.get("month");
59
+ if (firstMonth === lastMonth) {
60
+ return [[firstDay, lastDay]];
61
+ } else if (firstMonth + 1 === lastMonth) {
62
+ const firstMonthLastDay = firstDay.endOf("month");
63
+ const lastMonthFirstDay = lastDay.startOf("month");
64
+ const isSameWeek = firstMonthLastDay.isSame(lastMonthFirstDay, "week");
65
+ const lastMonthStartDay = isSameWeek ? lastMonthFirstDay.add(1, "week") : lastMonthFirstDay;
66
+ return [
67
+ [firstDay, firstMonthLastDay],
68
+ [lastMonthStartDay.startOf("week"), lastDay]
69
+ ];
70
+ } else if (firstMonth + 2 === lastMonth || (firstMonth + 1) % 11 === lastMonth) {
71
+ const firstMonthLastDay = firstDay.endOf("month");
72
+ const secondMonthFirstDay = firstDay.add(1, "month").startOf("month");
73
+ const secondMonthStartDay = firstMonthLastDay.isSame(secondMonthFirstDay, "week") ? secondMonthFirstDay.add(1, "week") : secondMonthFirstDay;
74
+ const secondMonthLastDay = secondMonthStartDay.endOf("month");
75
+ const lastMonthFirstDay = lastDay.startOf("month");
76
+ const lastMonthStartDay = secondMonthLastDay.isSame(lastMonthFirstDay, "week") ? lastMonthFirstDay.add(1, "week") : lastMonthFirstDay;
77
+ return [
78
+ [firstDay, firstMonthLastDay],
79
+ [secondMonthStartDay.startOf("week"), secondMonthLastDay],
80
+ [lastMonthStartDay.startOf("week"), lastDay]
81
+ ];
82
+ } else {
83
+ debugWarn(COMPONENT_NAME, "start time and end time interval must not exceed two months");
84
+ return [];
85
+ }
86
+ };
87
+ const validatedRange = computed(() => {
88
+ if (!props.range)
89
+ return [];
90
+ const rangeArrDayjs = props.range.map((_) => dayjs(_).locale(lang.value));
91
+ const [startDayjs, endDayjs] = rangeArrDayjs;
92
+ if (startDayjs.isAfter(endDayjs)) {
93
+ debugWarn(COMPONENT_NAME, "end time should be greater than start time");
94
+ return [];
95
+ }
96
+ if (startDayjs.isSame(endDayjs, "month")) {
97
+ return calculateValidatedDateRange(startDayjs, endDayjs);
98
+ } else {
99
+ if (startDayjs.add(1, "month").month() !== endDayjs.month()) {
100
+ debugWarn(COMPONENT_NAME, "start time and end time interval must not exceed two months");
101
+ return [];
102
+ }
103
+ return calculateValidatedDateRange(startDayjs, endDayjs);
104
+ }
105
+ });
106
+ expose({
107
+ selectedDay: realSelectedDay,
108
+ calculateValidatedDateRange
109
+ });
110
+ return (_ctx, _cache) => {
111
+ return openBlock(), createElementBlock("div", {
112
+ class: normalizeClass(unref(ns).b())
113
+ }, [
114
+ createElementVNode("div", {
115
+ class: normalizeClass(unref(ns).e("header"))
116
+ }, [
117
+ renderSlot(_ctx.$slots, "header", { date: unref(i18nDate) }, () => [
118
+ createElementVNode("div", {
119
+ class: normalizeClass(unref(ns).e("title"))
120
+ }, toDisplayString(unref(i18nDate)), 3),
121
+ unref(validatedRange).length === 0 ? (openBlock(), createElementBlock("div", {
122
+ key: 0,
123
+ class: normalizeClass(unref(ns).e("button-group"))
124
+ }, [
125
+ createVNode(unref(PsButtonGroup), null, {
126
+ default: withCtx(() => [
127
+ createVNode(unref(PsButton), { size: "small" }, {
128
+ default: withCtx(() => [
129
+ createTextVNode(toDisplayString(unref(t)("el.datepicker.prevMonth")), 1)
130
+ ]),
131
+ _: 1
132
+ }),
133
+ createVNode(unref(PsButton), { size: "small" }, {
134
+ default: withCtx(() => [
135
+ createTextVNode(toDisplayString(unref(t)("el.datepicker.today")), 1)
136
+ ]),
137
+ _: 1
138
+ }),
139
+ createVNode(unref(PsButton), { size: "small" }, {
140
+ default: withCtx(() => [
141
+ createTextVNode(toDisplayString(unref(t)("el.datepicker.nextMonth")), 1)
142
+ ]),
143
+ _: 1
144
+ })
145
+ ]),
146
+ _: 1
147
+ })
148
+ ], 2)) : createCommentVNode("v-if", true)
149
+ ])
150
+ ], 2),
151
+ unref(validatedRange).length === 0 ? (openBlock(), createElementBlock("div", {
152
+ key: 0,
153
+ class: normalizeClass(unref(ns).e("body"))
154
+ }, [
155
+ createVNode(DateTable, {
156
+ date: unref(date),
157
+ "selected-day": unref(realSelectedDay)
158
+ }, createSlots({ _: 2 }, [
159
+ _ctx.$slots.dateCell ? {
160
+ name: "dateCell",
161
+ fn: withCtx((data) => [
162
+ renderSlot(_ctx.$slots, "dateCell", normalizeProps(guardReactiveProps(data)))
163
+ ])
164
+ } : void 0
165
+ ]), 1032, ["date", "selected-day"])
166
+ ], 2)) : (openBlock(), createElementBlock("div", {
167
+ key: 1,
168
+ class: normalizeClass(unref(ns).e("body"))
169
+ }, [
170
+ (openBlock(true), createElementBlock(Fragment, null, renderList(unref(validatedRange), (range_, index) => {
171
+ return openBlock(), createBlock(DateTable, {
172
+ key: index,
173
+ date: range_[0],
174
+ "selected-day": unref(realSelectedDay),
175
+ range: range_,
176
+ "hide-header": index !== 0
177
+ }, createSlots({ _: 2 }, [
178
+ _ctx.$slots.dateCell ? {
179
+ name: "dateCell",
180
+ fn: withCtx((data) => [
181
+ renderSlot(_ctx.$slots, "dateCell", normalizeProps(guardReactiveProps(data)))
182
+ ])
183
+ } : void 0
184
+ ]), 1032, ["date", "selected-day", "range", "hide-header"]);
185
+ }), 128))
186
+ ], 2))
187
+ ], 2);
188
+ };
11
189
  }
12
190
  });
191
+ var Calendar = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "/Users/meng/workspace/element-ps/packages/components/calendar/src/calendar.vue"]]);
13
192
 
14
- export { calendarProps };
193
+ export { Calendar as default };
15
194
  //# sourceMappingURL=calendar2.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"calendar2.mjs","sources":["../../../../../../packages/components/calendar/src/calendar.ts"],"sourcesContent":["import { buildProps, definePropType } from '@element-ps/utils'\nimport { UPDATE_MODEL_EVENT } from '@element-ps/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\nexport const calendarProps = buildProps({\n modelValue: {\n type: Date,\n },\n range: {\n type: definePropType<[Date, Date]>(Array),\n validator: (range: unknown): range is [Date, Date] =>\n Array.isArray(range) &&\n range.length === 2 &&\n range.every((item) => item instanceof Date),\n },\n} as const)\nexport type CalendarProps = ExtractPropTypes<typeof calendarProps>\n\nexport type CalendarInstance = InstanceType<typeof Calendar>\n"],"names":[],"mappings":";;;AACY,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,CAAC,KAAK,KAAK,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,YAAY,IAAI,CAAC;AACnH,GAAG;AACH,CAAC;;;;"}
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 <ps-button-group>\n <ps-button size=\"small\">\n {{ t('el.datepicker.prevMonth') }}\n </ps-button>\n <ps-button size=\"small\">\n {{ t('el.datepicker.today') }}\n </ps-button>\n <ps-button size=\"small\">\n {{ t('el.datepicker.nextMonth') }}\n </ps-button>\n </ps-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\">\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 >\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 { PsButton, PsButtonGroup } from '@element-ps/components/button'\nimport { useLocale, useNamespace } from '@element-ps/hooks'\nimport { debugWarn } from '@element-ps/utils'\nimport DateTable from './date-table.vue'\nimport { calendarProps } from './calendar'\n\nimport type { ComputedRef } from 'vue'\nimport type { Dayjs } from 'dayjs'\n\nconst COMPONENT_NAME = 'PsCalendar'\n\ndefineOptions({\n name: 'PsCalendar',\n})\n\nconst props = defineProps(calendarProps)\n\nconst ns = useNamespace('calendar')\n\nconst { t, lang } = useLocale()\nconst selectedDay = ref<Dayjs>()\nconst now = dayjs().locale(lang.value)\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\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 },\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})\n\n// https://github.com/element-ps/element-ps/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\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\ndefineExpose({\n /** @description currently selected date */\n selectedDay: realSelectedDay,\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,154 +1,35 @@
1
- import { defineComponent, computed, openBlock, createElementBlock, normalizeClass, unref, Fragment, renderList, toDisplayString, createCommentVNode, createElementVNode, renderSlot } from 'vue';
2
- import dayjs from 'dayjs';
3
- import localeData from 'dayjs/plugin/localeData.js';
4
- import '../../../hooks/index.mjs';
1
+ import '../../../utils/index.mjs';
5
2
  import '../../time-picker/index.mjs';
6
- import '../../../constants/index.mjs';
7
- import { dateTableProps, getPrevMonthLastDays, getMonthDays, toNestedArr } from './date-table2.mjs';
8
- import _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';
9
- import { useLocale } from '../../../hooks/use-locale/index.mjs';
10
- import { useNamespace } from '../../../hooks/use-namespace/index.mjs';
11
3
  import { rangeArr } from '../../time-picker/src/common/date-utils.mjs';
12
- import { WEEK_DAYS } from '../../../constants/date.mjs';
4
+ import { buildProps, definePropType } from '../../../utils/vue/props.mjs';
13
5
 
14
- const _hoisted_1 = { key: 0 };
15
- const __default__ = {
16
- name: "DateTable"
6
+ const getPrevMonthLastDays = (date, count) => {
7
+ const lastDay = date.subtract(1, "month").endOf("month").date();
8
+ return rangeArr(count).map((_, index) => lastDay - (count - index - 1));
17
9
  };
18
- const _sfc_main = /* @__PURE__ */ defineComponent({
19
- ...__default__,
20
- props: dateTableProps,
21
- setup(__props, { expose }) {
22
- const props = __props;
23
- dayjs.extend(localeData);
24
- const { t, lang } = useLocale();
25
- const nsTable = useNamespace("calendar-table");
26
- const nsDay = useNamespace("calendar-day");
27
- const now = dayjs().locale(lang.value);
28
- const firstDayOfWeek = now.$locale().weekStart || 0;
29
- const isInRange = computed(() => !!props.range && !!props.range.length);
30
- const rows = computed(() => {
31
- let days = [];
32
- if (isInRange.value) {
33
- const [start, end] = props.range;
34
- const currentMonthRange = rangeArr(end.date() - start.date() + 1).map((index) => ({
35
- text: start.date() + index,
36
- type: "current"
37
- }));
38
- let remaining = currentMonthRange.length % 7;
39
- remaining = remaining === 0 ? 0 : 7 - remaining;
40
- const nextMonthRange = rangeArr(remaining).map((_, index) => ({
41
- text: index + 1,
42
- type: "next"
43
- }));
44
- days = currentMonthRange.concat(nextMonthRange);
45
- } else {
46
- const firstDay = props.date.startOf("month").day();
47
- const prevMonthDays = getPrevMonthLastDays(props.date, firstDay - firstDayOfWeek).map((day) => ({
48
- text: day,
49
- type: "prev"
50
- }));
51
- const currentMonthDays = getMonthDays(props.date).map((day) => ({
52
- text: day,
53
- type: "current"
54
- }));
55
- days = [...prevMonthDays, ...currentMonthDays];
56
- const remaining = 7 - (days.length % 7 || 7);
57
- const nextMonthDays = rangeArr(remaining).map((_, index) => ({
58
- text: index + 1,
59
- type: "next"
60
- }));
61
- days = days.concat(nextMonthDays);
62
- }
63
- return toNestedArr(days);
64
- });
65
- const weekDays = computed(() => {
66
- const start = firstDayOfWeek;
67
- if (start === 0) {
68
- return WEEK_DAYS.map((_) => t(`el.datepicker.weeks.${_}`));
69
- } else {
70
- return WEEK_DAYS.slice(start).concat(WEEK_DAYS.slice(0, start)).map((_) => t(`el.datepicker.weeks.${_}`));
71
- }
72
- });
73
- const getFormattedDate = (day, type) => {
74
- switch (type) {
75
- case "prev":
76
- return props.date.startOf("month").subtract(1, "month").date(day);
77
- case "next":
78
- return props.date.startOf("month").add(1, "month").date(day);
79
- case "current":
80
- return props.date.date(day);
81
- }
82
- };
83
- const getCellClass = ({ text, type }) => {
84
- const classes = [type];
85
- if (type === "current") {
86
- const date = getFormattedDate(text, type);
87
- if (date.isSame(props.selectedDay, "day")) {
88
- classes.push(nsDay.is("selected"));
89
- }
90
- if (date.isSame(now, "day")) {
91
- classes.push(nsDay.is("today"));
92
- }
93
- }
94
- return classes;
95
- };
96
- const getSlotData = ({ text, type }) => {
97
- const day = getFormattedDate(text, type);
98
- return {
99
- isSelected: day.isSame(props.selectedDay),
100
- type: `${type}-month`,
101
- day: day.format("YYYY-MM-DD"),
102
- date: day.toDate()
103
- };
104
- };
105
- expose({
106
- getFormattedDate
107
- });
108
- return (_ctx, _cache) => {
109
- return openBlock(), createElementBlock("table", {
110
- class: normalizeClass([unref(nsTable).b(), unref(nsTable).is("range", unref(isInRange))]),
111
- cellspacing: "0",
112
- cellpadding: "0"
113
- }, [
114
- !_ctx.hideHeader ? (openBlock(), createElementBlock("thead", _hoisted_1, [
115
- (openBlock(true), createElementBlock(Fragment, null, renderList(unref(weekDays), (day) => {
116
- return openBlock(), createElementBlock("th", { key: day }, toDisplayString(day), 1);
117
- }), 128))
118
- ])) : createCommentVNode("v-if", true),
119
- createElementVNode("tbody", null, [
120
- (openBlock(true), createElementBlock(Fragment, null, renderList(unref(rows), (row, index) => {
121
- return openBlock(), createElementBlock("tr", {
122
- key: index,
123
- class: normalizeClass({
124
- [unref(nsTable).e("row")]: true,
125
- [unref(nsTable).em("row", "hide-border")]: index === 0 && _ctx.hideHeader
126
- })
127
- }, [
128
- (openBlock(true), createElementBlock(Fragment, null, renderList(row, (cell, key) => {
129
- return openBlock(), createElementBlock("td", {
130
- key,
131
- class: normalizeClass(getCellClass(cell))
132
- }, [
133
- createElementVNode("div", {
134
- class: normalizeClass(unref(nsDay).b())
135
- }, [
136
- renderSlot(_ctx.$slots, "dateCell", {
137
- data: getSlotData(cell)
138
- }, () => [
139
- createElementVNode("span", null, toDisplayString(cell.text), 1)
140
- ])
141
- ], 2)
142
- ], 2);
143
- }), 128))
144
- ], 2);
145
- }), 128))
146
- ])
147
- ], 2);
148
- };
10
+ const getMonthDays = (date) => {
11
+ const days = date.daysInMonth();
12
+ return rangeArr(days).map((_, index) => index + 1);
13
+ };
14
+ const toNestedArr = (days) => rangeArr(days.length / 7).map((index) => {
15
+ const start = index * 7;
16
+ return days.slice(start, start + 7);
17
+ });
18
+ const dateTableProps = buildProps({
19
+ selectedDay: {
20
+ type: definePropType(Object)
21
+ },
22
+ range: {
23
+ type: definePropType(Array)
24
+ },
25
+ date: {
26
+ type: definePropType(Object),
27
+ required: true
28
+ },
29
+ hideHeader: {
30
+ type: Boolean
149
31
  }
150
32
  });
151
- var DateTable = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "/Users/meng/workspace/element-ps/packages/components/calendar/src/date-table.vue"]]);
152
33
 
153
- export { DateTable as default };
34
+ export { dateTableProps, getMonthDays, getPrevMonthLastDays, toNestedArr };
154
35
  //# sourceMappingURL=date-table.mjs.map