@element-plus/nightly 0.0.20220123 → 0.0.20220127

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 (693) hide show
  1. package/attributes.json +1 -1
  2. package/dist/index.css +1 -1
  3. package/dist/index.full.js +1248 -1000
  4. package/dist/index.full.min.js +11 -11
  5. package/dist/index.full.min.js.map +1 -1
  6. package/dist/index.full.min.mjs +11 -11
  7. package/dist/index.full.min.mjs.map +1 -1
  8. package/dist/index.full.mjs +1248 -1000
  9. package/dist/locale/af.js +6 -8
  10. package/dist/locale/af.min.js +1 -1
  11. package/dist/locale/af.min.js.map +1 -1
  12. package/dist/locale/af.min.mjs +1 -1
  13. package/dist/locale/af.mjs +1 -1
  14. package/dist/locale/ar.js +6 -8
  15. package/dist/locale/ar.min.js +1 -1
  16. package/dist/locale/ar.min.js.map +1 -1
  17. package/dist/locale/ar.min.mjs +1 -1
  18. package/dist/locale/ar.mjs +1 -1
  19. package/dist/locale/bg.js +6 -8
  20. package/dist/locale/bg.min.js +1 -1
  21. package/dist/locale/bg.min.js.map +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 +6 -8
  25. package/dist/locale/bn.min.js +1 -1
  26. package/dist/locale/bn.min.js.map +1 -1
  27. package/dist/locale/bn.min.mjs +1 -1
  28. package/dist/locale/bn.mjs +1 -1
  29. package/dist/locale/ca.js +6 -8
  30. package/dist/locale/ca.min.js +1 -1
  31. package/dist/locale/ca.min.js.map +1 -1
  32. package/dist/locale/ca.min.mjs +1 -1
  33. package/dist/locale/ca.mjs +1 -1
  34. package/dist/locale/cs.js +6 -8
  35. package/dist/locale/cs.min.js +1 -1
  36. package/dist/locale/cs.min.js.map +1 -1
  37. package/dist/locale/cs.min.mjs +1 -1
  38. package/dist/locale/cs.mjs +1 -1
  39. package/dist/locale/da.js +6 -8
  40. package/dist/locale/da.min.js +1 -1
  41. package/dist/locale/da.min.js.map +1 -1
  42. package/dist/locale/da.min.mjs +1 -1
  43. package/dist/locale/da.mjs +1 -1
  44. package/dist/locale/de.js +6 -8
  45. package/dist/locale/de.min.js +1 -1
  46. package/dist/locale/de.min.js.map +1 -1
  47. package/dist/locale/de.min.mjs +1 -1
  48. package/dist/locale/de.mjs +1 -1
  49. package/dist/locale/el.js +6 -8
  50. package/dist/locale/el.min.js +1 -1
  51. package/dist/locale/el.min.js.map +1 -1
  52. package/dist/locale/el.min.mjs +1 -1
  53. package/dist/locale/el.mjs +1 -1
  54. package/dist/locale/en.js +6 -8
  55. package/dist/locale/en.min.js +1 -1
  56. package/dist/locale/en.min.js.map +1 -1
  57. package/dist/locale/en.min.mjs +1 -1
  58. package/dist/locale/en.mjs +1 -1
  59. package/dist/locale/eo.js +6 -8
  60. package/dist/locale/eo.min.js +1 -1
  61. package/dist/locale/eo.min.js.map +1 -1
  62. package/dist/locale/eo.min.mjs +1 -1
  63. package/dist/locale/eo.mjs +1 -1
  64. package/dist/locale/es.js +6 -8
  65. package/dist/locale/es.min.js +1 -1
  66. package/dist/locale/es.min.js.map +1 -1
  67. package/dist/locale/es.min.mjs +1 -1
  68. package/dist/locale/es.mjs +1 -1
  69. package/dist/locale/et.js +6 -8
  70. package/dist/locale/et.min.js +1 -1
  71. package/dist/locale/et.min.js.map +1 -1
  72. package/dist/locale/et.min.mjs +1 -1
  73. package/dist/locale/et.mjs +1 -1
  74. package/dist/locale/eu.js +6 -8
  75. package/dist/locale/eu.min.js +1 -1
  76. package/dist/locale/eu.min.js.map +1 -1
  77. package/dist/locale/eu.min.mjs +1 -1
  78. package/dist/locale/eu.mjs +1 -1
  79. package/dist/locale/fa.js +6 -8
  80. package/dist/locale/fa.min.js +1 -1
  81. package/dist/locale/fa.min.js.map +1 -1
  82. package/dist/locale/fa.min.mjs +1 -1
  83. package/dist/locale/fa.mjs +1 -1
  84. package/dist/locale/fi.js +6 -8
  85. package/dist/locale/fi.min.js +1 -1
  86. package/dist/locale/fi.min.js.map +1 -1
  87. package/dist/locale/fi.min.mjs +1 -1
  88. package/dist/locale/fi.mjs +1 -1
  89. package/dist/locale/fr.js +6 -8
  90. package/dist/locale/fr.min.js +1 -1
  91. package/dist/locale/fr.min.js.map +1 -1
  92. package/dist/locale/fr.min.mjs +1 -1
  93. package/dist/locale/fr.mjs +1 -1
  94. package/dist/locale/he.js +6 -8
  95. package/dist/locale/he.min.js +1 -1
  96. package/dist/locale/he.min.js.map +1 -1
  97. package/dist/locale/he.min.mjs +1 -1
  98. package/dist/locale/he.mjs +1 -1
  99. package/dist/locale/hr.js +6 -8
  100. package/dist/locale/hr.min.js +1 -1
  101. package/dist/locale/hr.min.js.map +1 -1
  102. package/dist/locale/hr.min.mjs +1 -1
  103. package/dist/locale/hr.mjs +1 -1
  104. package/dist/locale/hu.js +6 -8
  105. package/dist/locale/hu.min.js +1 -1
  106. package/dist/locale/hu.min.js.map +1 -1
  107. package/dist/locale/hu.min.mjs +1 -1
  108. package/dist/locale/hu.mjs +1 -1
  109. package/dist/locale/hy-am.js +6 -8
  110. package/dist/locale/hy-am.min.js +1 -1
  111. package/dist/locale/hy-am.min.js.map +1 -1
  112. package/dist/locale/hy-am.min.mjs +1 -1
  113. package/dist/locale/hy-am.mjs +1 -1
  114. package/dist/locale/id.js +6 -8
  115. package/dist/locale/id.min.js +1 -1
  116. package/dist/locale/id.min.js.map +1 -1
  117. package/dist/locale/id.min.mjs +1 -1
  118. package/dist/locale/id.mjs +1 -1
  119. package/dist/locale/it.js +6 -8
  120. package/dist/locale/it.min.js +1 -1
  121. package/dist/locale/it.min.js.map +1 -1
  122. package/dist/locale/it.min.mjs +1 -1
  123. package/dist/locale/it.mjs +1 -1
  124. package/dist/locale/ja.js +6 -8
  125. package/dist/locale/ja.min.js +1 -1
  126. package/dist/locale/ja.min.js.map +1 -1
  127. package/dist/locale/ja.min.mjs +1 -1
  128. package/dist/locale/ja.mjs +1 -1
  129. package/dist/locale/kk.js +6 -8
  130. package/dist/locale/kk.min.js +1 -1
  131. package/dist/locale/kk.min.js.map +1 -1
  132. package/dist/locale/kk.min.mjs +1 -1
  133. package/dist/locale/kk.mjs +1 -1
  134. package/dist/locale/km.js +6 -8
  135. package/dist/locale/km.min.js +1 -1
  136. package/dist/locale/km.min.js.map +1 -1
  137. package/dist/locale/km.min.mjs +1 -1
  138. package/dist/locale/km.mjs +1 -1
  139. package/dist/locale/ko.js +6 -8
  140. package/dist/locale/ko.min.js +1 -1
  141. package/dist/locale/ko.min.js.map +1 -1
  142. package/dist/locale/ko.min.mjs +1 -1
  143. package/dist/locale/ko.mjs +1 -1
  144. package/dist/locale/ku.js +6 -8
  145. package/dist/locale/ku.min.js +1 -1
  146. package/dist/locale/ku.min.js.map +1 -1
  147. package/dist/locale/ku.min.mjs +1 -1
  148. package/dist/locale/ku.mjs +1 -1
  149. package/dist/locale/ky.js +6 -8
  150. package/dist/locale/ky.min.js +1 -1
  151. package/dist/locale/ky.min.js.map +1 -1
  152. package/dist/locale/ky.min.mjs +1 -1
  153. package/dist/locale/ky.mjs +1 -1
  154. package/dist/locale/lt.js +6 -8
  155. package/dist/locale/lt.min.js +1 -1
  156. package/dist/locale/lt.min.js.map +1 -1
  157. package/dist/locale/lt.min.mjs +1 -1
  158. package/dist/locale/lt.mjs +1 -1
  159. package/dist/locale/lv.js +6 -8
  160. package/dist/locale/lv.min.js +1 -1
  161. package/dist/locale/lv.min.js.map +1 -1
  162. package/dist/locale/lv.min.mjs +1 -1
  163. package/dist/locale/lv.mjs +1 -1
  164. package/dist/locale/mn.js +6 -8
  165. package/dist/locale/mn.min.js +1 -1
  166. package/dist/locale/mn.min.js.map +1 -1
  167. package/dist/locale/mn.min.mjs +1 -1
  168. package/dist/locale/mn.mjs +1 -1
  169. package/dist/locale/nb-no.js +6 -8
  170. package/dist/locale/nb-no.min.js +1 -1
  171. package/dist/locale/nb-no.min.js.map +1 -1
  172. package/dist/locale/nb-no.min.mjs +1 -1
  173. package/dist/locale/nb-no.mjs +1 -1
  174. package/dist/locale/nl.js +6 -8
  175. package/dist/locale/nl.min.js +1 -1
  176. package/dist/locale/nl.min.js.map +1 -1
  177. package/dist/locale/nl.min.mjs +1 -1
  178. package/dist/locale/nl.mjs +1 -1
  179. package/dist/locale/pa.js +6 -8
  180. package/dist/locale/pa.min.js +1 -1
  181. package/dist/locale/pa.min.js.map +1 -1
  182. package/dist/locale/pa.min.mjs +1 -1
  183. package/dist/locale/pa.mjs +1 -1
  184. package/dist/locale/pl.js +6 -8
  185. package/dist/locale/pl.min.js +1 -1
  186. package/dist/locale/pl.min.js.map +1 -1
  187. package/dist/locale/pl.min.mjs +1 -1
  188. package/dist/locale/pl.mjs +1 -1
  189. package/dist/locale/pt-br.js +6 -8
  190. package/dist/locale/pt-br.min.js +1 -1
  191. package/dist/locale/pt-br.min.js.map +1 -1
  192. package/dist/locale/pt-br.min.mjs +1 -1
  193. package/dist/locale/pt-br.mjs +1 -1
  194. package/dist/locale/pt.js +6 -8
  195. package/dist/locale/pt.min.js +1 -1
  196. package/dist/locale/pt.min.js.map +1 -1
  197. package/dist/locale/pt.min.mjs +1 -1
  198. package/dist/locale/pt.mjs +1 -1
  199. package/dist/locale/ro.js +6 -8
  200. package/dist/locale/ro.min.js +1 -1
  201. package/dist/locale/ro.min.js.map +1 -1
  202. package/dist/locale/ro.min.mjs +1 -1
  203. package/dist/locale/ro.mjs +1 -1
  204. package/dist/locale/ru.js +6 -8
  205. package/dist/locale/ru.min.js +1 -1
  206. package/dist/locale/ru.min.js.map +1 -1
  207. package/dist/locale/ru.min.mjs +1 -1
  208. package/dist/locale/ru.mjs +1 -1
  209. package/dist/locale/sk.js +6 -8
  210. package/dist/locale/sk.min.js +1 -1
  211. package/dist/locale/sk.min.js.map +1 -1
  212. package/dist/locale/sk.min.mjs +1 -1
  213. package/dist/locale/sk.mjs +1 -1
  214. package/dist/locale/sl.js +6 -8
  215. package/dist/locale/sl.min.js +1 -1
  216. package/dist/locale/sl.min.js.map +1 -1
  217. package/dist/locale/sl.min.mjs +1 -1
  218. package/dist/locale/sl.mjs +1 -1
  219. package/dist/locale/sr.js +6 -8
  220. package/dist/locale/sr.min.js +1 -1
  221. package/dist/locale/sr.min.js.map +1 -1
  222. package/dist/locale/sr.min.mjs +1 -1
  223. package/dist/locale/sr.mjs +1 -1
  224. package/dist/locale/sv.js +6 -8
  225. package/dist/locale/sv.min.js +1 -1
  226. package/dist/locale/sv.min.js.map +1 -1
  227. package/dist/locale/sv.min.mjs +1 -1
  228. package/dist/locale/sv.mjs +1 -1
  229. package/dist/locale/ta.js +6 -8
  230. package/dist/locale/ta.min.js +1 -1
  231. package/dist/locale/ta.min.js.map +1 -1
  232. package/dist/locale/ta.min.mjs +1 -1
  233. package/dist/locale/ta.mjs +1 -1
  234. package/dist/locale/th.js +6 -8
  235. package/dist/locale/th.min.js +1 -1
  236. package/dist/locale/th.min.js.map +1 -1
  237. package/dist/locale/th.min.mjs +1 -1
  238. package/dist/locale/th.mjs +1 -1
  239. package/dist/locale/tk.js +6 -8
  240. package/dist/locale/tk.min.js +1 -1
  241. package/dist/locale/tk.min.js.map +1 -1
  242. package/dist/locale/tk.min.mjs +1 -1
  243. package/dist/locale/tk.mjs +1 -1
  244. package/dist/locale/tr.js +6 -8
  245. package/dist/locale/tr.min.js +1 -1
  246. package/dist/locale/tr.min.js.map +1 -1
  247. package/dist/locale/tr.min.mjs +1 -1
  248. package/dist/locale/tr.mjs +1 -1
  249. package/dist/locale/ug-cn.js +6 -8
  250. package/dist/locale/ug-cn.min.js +1 -1
  251. package/dist/locale/ug-cn.min.js.map +1 -1
  252. package/dist/locale/ug-cn.min.mjs +1 -1
  253. package/dist/locale/ug-cn.mjs +1 -1
  254. package/dist/locale/uk.js +6 -8
  255. package/dist/locale/uk.min.js +1 -1
  256. package/dist/locale/uk.min.js.map +1 -1
  257. package/dist/locale/uk.min.mjs +1 -1
  258. package/dist/locale/uk.mjs +1 -1
  259. package/dist/locale/uz-uz.js +6 -8
  260. package/dist/locale/uz-uz.min.js +1 -1
  261. package/dist/locale/uz-uz.min.js.map +1 -1
  262. package/dist/locale/uz-uz.min.mjs +1 -1
  263. package/dist/locale/uz-uz.mjs +1 -1
  264. package/dist/locale/vi.js +6 -8
  265. package/dist/locale/vi.min.js +1 -1
  266. package/dist/locale/vi.min.js.map +1 -1
  267. package/dist/locale/vi.min.mjs +1 -1
  268. package/dist/locale/vi.mjs +1 -1
  269. package/dist/locale/zh-cn.js +6 -8
  270. package/dist/locale/zh-cn.min.js +1 -1
  271. package/dist/locale/zh-cn.min.js.map +1 -1
  272. package/dist/locale/zh-cn.min.mjs +1 -1
  273. package/dist/locale/zh-cn.mjs +1 -1
  274. package/dist/locale/zh-tw.js +6 -8
  275. package/dist/locale/zh-tw.min.js +1 -1
  276. package/dist/locale/zh-tw.min.js.map +1 -1
  277. package/dist/locale/zh-tw.min.mjs +1 -1
  278. package/dist/locale/zh-tw.mjs +1 -1
  279. package/es/components/affix/src/affix2.mjs +2 -1
  280. package/es/components/affix/src/affix2.mjs.map +1 -1
  281. package/es/components/autocomplete/src/index.mjs +2 -1
  282. package/es/components/autocomplete/src/index.mjs.map +1 -1
  283. package/es/components/backtop/src/backtop2.mjs +2 -1
  284. package/es/components/backtop/src/backtop2.mjs.map +1 -1
  285. package/es/components/breadcrumb/src/breadcrumb-item2.mjs +2 -2
  286. package/es/components/breadcrumb/src/breadcrumb-item2.mjs.map +1 -1
  287. package/es/components/button/src/button2.mjs +11 -7
  288. package/es/components/button/src/button2.mjs.map +1 -1
  289. package/es/components/carousel/index.d.ts +11 -0
  290. package/es/components/carousel/src/item.mjs +21 -15
  291. package/es/components/carousel/src/item.mjs.map +1 -1
  292. package/es/components/carousel/src/main.mjs +25 -23
  293. package/es/components/carousel/src/main.mjs.map +1 -1
  294. package/es/components/carousel/src/main.vue.d.ts +11 -0
  295. package/es/components/cascader/index.d.ts +4 -0
  296. package/es/components/cascader/src/index.mjs +38 -21
  297. package/es/components/cascader/src/index.mjs.map +1 -1
  298. package/es/components/cascader/src/index.vue.d.ts +2 -0
  299. package/es/components/cascader-panel/src/index.mjs +16 -13
  300. package/es/components/cascader-panel/src/index.mjs.map +1 -1
  301. package/es/components/cascader-panel/src/menu.mjs +25 -22
  302. package/es/components/cascader-panel/src/menu.mjs.map +1 -1
  303. package/es/components/cascader-panel/src/node2.mjs +6 -2
  304. package/es/components/cascader-panel/src/node2.mjs.map +1 -1
  305. package/es/components/checkbox/index.d.ts +36 -3
  306. package/es/components/checkbox/src/checkbox-button.mjs +21 -15
  307. package/es/components/checkbox/src/checkbox-button.mjs.map +1 -1
  308. package/es/components/checkbox/src/checkbox-button.vue.d.ts +12 -1
  309. package/es/components/checkbox/src/checkbox-group.mjs +5 -2
  310. package/es/components/checkbox/src/checkbox-group.mjs.map +1 -1
  311. package/es/components/checkbox/src/checkbox.mjs +36 -28
  312. package/es/components/checkbox/src/checkbox.mjs.map +1 -1
  313. package/es/components/checkbox/src/checkbox.vue.d.ts +12 -1
  314. package/es/components/checkbox/src/useCheckbox.d.ts +1 -1
  315. package/es/components/checkbox/src/useCheckbox.mjs +2 -2
  316. package/es/components/checkbox/src/useCheckbox.mjs.map +1 -1
  317. package/es/components/collapse/src/collapse-item.mjs +3 -3
  318. package/es/components/collapse/src/collapse-item.mjs.map +1 -1
  319. package/es/components/color-picker/src/index.mjs +8 -5
  320. package/es/components/color-picker/src/index.mjs.map +1 -1
  321. package/es/components/date-picker/src/date-picker-com/basic-date-table.mjs +2 -1
  322. package/es/components/date-picker/src/date-picker-com/basic-date-table.mjs.map +1 -1
  323. package/es/components/date-picker/src/date-picker-com/basic-month-table.mjs +2 -1
  324. package/es/components/date-picker/src/date-picker-com/basic-month-table.mjs.map +1 -1
  325. package/es/components/date-picker/src/date-picker-com/panel-date-pick.mjs +1 -1
  326. package/es/components/date-picker/src/date-picker-com/panel-date-pick.mjs.map +1 -1
  327. package/es/components/descriptions/src/index.mjs +7 -2
  328. package/es/components/descriptions/src/index.mjs.map +1 -1
  329. package/es/components/dialog/src/dialog.mjs +1 -3
  330. package/es/components/dialog/src/dialog.mjs.map +1 -1
  331. package/es/components/drawer/index.d.ts +11 -0
  332. package/es/components/drawer/src/drawer.vue.d.ts +11 -0
  333. package/es/components/drawer/src/drawer2.mjs +33 -29
  334. package/es/components/drawer/src/drawer2.mjs.map +1 -1
  335. package/es/components/dropdown/src/dropdown-item.mjs +12 -6
  336. package/es/components/dropdown/src/dropdown-item.mjs.map +1 -1
  337. package/es/components/dropdown/src/dropdown-menu.mjs +2 -1
  338. package/es/components/dropdown/src/dropdown-menu.mjs.map +1 -1
  339. package/es/components/dropdown/src/dropdown2.mjs +9 -5
  340. package/es/components/dropdown/src/dropdown2.mjs.map +1 -1
  341. package/es/components/empty/src/img-empty.mjs +13 -13
  342. package/es/components/empty/src/img-empty.mjs.map +1 -1
  343. package/es/components/focus-trap/src/focus-trap.mjs +1 -1
  344. package/es/components/focus-trap/src/focus-trap.mjs.map +1 -1
  345. package/es/components/form/src/form-item.mjs +6 -4
  346. package/es/components/form/src/form-item.mjs.map +1 -1
  347. package/es/components/image/src/image2.mjs +3 -2
  348. package/es/components/image/src/image2.mjs.map +1 -1
  349. package/es/components/image-viewer/src/image-viewer2.mjs +3 -2
  350. package/es/components/image-viewer/src/image-viewer2.mjs.map +1 -1
  351. package/es/components/index.mjs +2 -2
  352. package/es/components/input/src/input2.mjs +17 -8
  353. package/es/components/input/src/input2.mjs.map +1 -1
  354. package/es/components/input-number/src/input-number2.mjs +12 -6
  355. package/es/components/input-number/src/input-number2.mjs.map +1 -1
  356. package/es/components/message/src/message2.mjs +1 -1
  357. package/es/components/message-box/src/index.mjs +9 -4
  358. package/es/components/message-box/src/index.mjs.map +1 -1
  359. package/es/components/message-box/src/index.vue.d.ts +1 -0
  360. package/es/components/notification/src/notification2.mjs +1 -1
  361. package/es/components/pagination/src/components/jumper.mjs +11 -5
  362. package/es/components/pagination/src/components/jumper.mjs.map +1 -1
  363. package/es/components/pagination/src/components/sizes.mjs +9 -4
  364. package/es/components/pagination/src/components/sizes.mjs.map +1 -1
  365. package/es/components/pagination/src/components/sizes.vue.d.ts +3 -0
  366. package/es/components/pagination/src/components/total.mjs +10 -4
  367. package/es/components/pagination/src/components/total.mjs.map +1 -1
  368. package/es/components/pagination/src/components/total.vue.d.ts +1 -0
  369. package/es/components/pagination/src/pagination.mjs +12 -1
  370. package/es/components/pagination/src/pagination.mjs.map +1 -1
  371. package/es/components/popconfirm/index.mjs +2 -2
  372. package/es/components/popconfirm/src/popconfirm.mjs +45 -104
  373. package/es/components/popconfirm/src/popconfirm.mjs.map +1 -1
  374. package/es/components/popconfirm/src/popconfirm2.mjs +107 -45
  375. package/es/components/popconfirm/src/popconfirm2.mjs.map +1 -1
  376. package/es/components/popover/index.d.ts +0 -6
  377. package/es/components/popover/src/index.mjs +4 -2
  378. package/es/components/popover/src/index.mjs.map +1 -1
  379. package/es/components/popover/src/index.vue.d.ts +0 -3
  380. package/es/components/popover/src/popover.d.ts +0 -1
  381. package/es/components/popover/src/popover.mjs +0 -4
  382. package/es/components/popover/src/popover.mjs.map +1 -1
  383. package/es/components/popper/src/content.mjs +5 -3
  384. package/es/components/popper/src/content.mjs.map +1 -1
  385. package/es/components/popper/src/trigger.mjs +1 -1
  386. package/es/components/popper/src/trigger.mjs.map +1 -1
  387. package/es/components/progress/src/progress2.mjs +2 -1
  388. package/es/components/progress/src/progress2.mjs.map +1 -1
  389. package/es/components/radio/src/radio-button2.mjs +4 -4
  390. package/es/components/radio/src/radio-button2.mjs.map +1 -1
  391. package/es/components/radio/src/radio-group2.mjs +1 -1
  392. package/es/components/radio/src/radio-group2.mjs.map +1 -1
  393. package/es/components/rate/index.d.ts +8 -8
  394. package/es/components/rate/src/rate.d.ts +4 -4
  395. package/es/components/rate/src/rate.mjs +8 -4
  396. package/es/components/rate/src/rate.mjs.map +1 -1
  397. package/es/components/rate/src/rate.vue.d.ts +8 -8
  398. package/es/components/roving-focus-group/src/roving-focus-group-impl.mjs +10 -6
  399. package/es/components/roving-focus-group/src/roving-focus-group-impl.mjs.map +1 -1
  400. package/es/components/scrollbar/index.d.ts +2 -1
  401. package/es/components/scrollbar/index.mjs +1 -1
  402. package/es/components/scrollbar/index.mjs.map +1 -1
  403. package/es/components/scrollbar/src/bar.d.ts +5 -5
  404. package/es/components/scrollbar/src/bar.mjs +18 -6
  405. package/es/components/scrollbar/src/bar.mjs.map +1 -1
  406. package/es/components/scrollbar/src/bar.vue.d.ts +18 -37
  407. package/es/components/scrollbar/src/bar2.mjs +34 -117
  408. package/es/components/scrollbar/src/bar2.mjs.map +1 -1
  409. package/es/components/scrollbar/src/scrollbar.vue.d.ts +1 -0
  410. package/es/components/scrollbar/src/scrollbar2.mjs +16 -22
  411. package/es/components/scrollbar/src/scrollbar2.mjs.map +1 -1
  412. package/es/components/scrollbar/src/thumb.d.ts +9 -0
  413. package/es/components/scrollbar/src/thumb.mjs +15 -0
  414. package/es/components/scrollbar/src/thumb.mjs.map +1 -0
  415. package/es/components/scrollbar/src/thumb.vue.d.ts +43 -0
  416. package/es/components/scrollbar/src/thumb2.mjs +135 -0
  417. package/es/components/scrollbar/src/thumb2.mjs.map +1 -0
  418. package/es/components/select/src/option-group.mjs +2 -1
  419. package/es/components/select/src/option-group.mjs.map +1 -1
  420. package/es/components/select/src/select-dropdown.mjs +2 -1
  421. package/es/components/select/src/select-dropdown.mjs.map +1 -1
  422. package/es/components/select/src/select.mjs +5 -1
  423. package/es/components/select/src/select.mjs.map +1 -1
  424. package/es/components/select-v2/src/select-dropdown.mjs +2 -1
  425. package/es/components/select-v2/src/select-dropdown.mjs.map +1 -1
  426. package/es/components/select-v2/src/select.mjs +192 -186
  427. package/es/components/select-v2/src/select.mjs.map +1 -1
  428. package/es/components/slider/src/index.mjs +3 -2
  429. package/es/components/slider/src/index.mjs.map +1 -1
  430. package/es/components/slider/src/marker.mjs +2 -1
  431. package/es/components/slider/src/marker.mjs.map +1 -1
  432. package/es/components/steps/src/item.mjs +2 -1
  433. package/es/components/steps/src/item.mjs.map +1 -1
  434. package/es/components/switch/src/switch2.mjs +4 -2
  435. package/es/components/switch/src/switch2.mjs.map +1 -1
  436. package/es/components/table/src/filter-panel.mjs +7 -3
  437. package/es/components/table/src/filter-panel.mjs.map +1 -1
  438. package/es/components/table/src/table-body/index.mjs +1 -1
  439. package/es/components/table/src/table-body/index.mjs.map +1 -1
  440. package/es/components/table/src/table.mjs +3 -2
  441. package/es/components/table/src/table.mjs.map +1 -1
  442. package/es/components/tabs/src/tab-bar2.mjs +3 -2
  443. package/es/components/tabs/src/tab-bar2.mjs.map +1 -1
  444. package/es/components/tag/index.d.ts +12 -1
  445. package/es/components/tag/src/tag.vue.d.ts +12 -1
  446. package/es/components/tag/src/tag2.mjs +23 -18
  447. package/es/components/tag/src/tag2.mjs.map +1 -1
  448. package/es/components/time-picker/src/common/picker.mjs +16 -8
  449. package/es/components/time-picker/src/common/picker.mjs.map +1 -1
  450. package/es/components/time-select/src/time-select.mjs +4 -2
  451. package/es/components/time-select/src/time-select.mjs.map +1 -1
  452. package/es/components/tooltip/src/content.mjs +9 -4
  453. package/es/components/tooltip/src/content.mjs.map +1 -1
  454. package/es/components/tooltip/src/tooltip2.mjs +2 -1
  455. package/es/components/tooltip/src/tooltip2.mjs.map +1 -1
  456. package/es/components/transfer/index.d.ts +492 -0
  457. package/es/components/transfer/src/index.mjs +13 -7
  458. package/es/components/transfer/src/index.mjs.map +1 -1
  459. package/es/components/transfer/src/index.vue.d.ts +246 -0
  460. package/es/components/tree/src/tree.mjs +2 -1
  461. package/es/components/tree/src/tree.mjs.map +1 -1
  462. package/es/components/tree-v2/src/tree-node.mjs +11 -7
  463. package/es/components/tree-v2/src/tree-node.mjs.map +1 -1
  464. package/es/components/tree-v2/src/tree.mjs +2 -1
  465. package/es/components/tree-v2/src/tree.mjs.map +1 -1
  466. package/es/components/upload/src/index.mjs +3 -2
  467. package/es/components/upload/src/index.mjs.map +1 -1
  468. package/es/components/upload/src/upload-dragger.mjs +2 -1
  469. package/es/components/upload/src/upload-dragger.mjs.map +1 -1
  470. package/es/index.mjs +2 -2
  471. package/es/utils/validators.d.ts +0 -1
  472. package/es/utils/validators.mjs +1 -9
  473. package/es/utils/validators.mjs.map +1 -1
  474. package/es/version.d.ts +1 -1
  475. package/es/version.mjs +1 -1
  476. package/es/version.mjs.map +1 -1
  477. package/lib/components/affix/src/affix2.js +2 -1
  478. package/lib/components/affix/src/affix2.js.map +1 -1
  479. package/lib/components/autocomplete/src/index.js +2 -1
  480. package/lib/components/autocomplete/src/index.js.map +1 -1
  481. package/lib/components/backtop/src/backtop2.js +2 -1
  482. package/lib/components/backtop/src/backtop2.js.map +1 -1
  483. package/lib/components/breadcrumb/src/breadcrumb-item2.js +2 -2
  484. package/lib/components/breadcrumb/src/breadcrumb-item2.js.map +1 -1
  485. package/lib/components/button/src/button2.js +11 -7
  486. package/lib/components/button/src/button2.js.map +1 -1
  487. package/lib/components/carousel/index.d.ts +11 -0
  488. package/lib/components/carousel/src/item.js +21 -15
  489. package/lib/components/carousel/src/item.js.map +1 -1
  490. package/lib/components/carousel/src/main.js +25 -23
  491. package/lib/components/carousel/src/main.js.map +1 -1
  492. package/lib/components/carousel/src/main.vue.d.ts +11 -0
  493. package/lib/components/cascader/index.d.ts +4 -0
  494. package/lib/components/cascader/src/index.js +38 -21
  495. package/lib/components/cascader/src/index.js.map +1 -1
  496. package/lib/components/cascader/src/index.vue.d.ts +2 -0
  497. package/lib/components/cascader-panel/src/index.js +16 -13
  498. package/lib/components/cascader-panel/src/index.js.map +1 -1
  499. package/lib/components/cascader-panel/src/menu.js +25 -22
  500. package/lib/components/cascader-panel/src/menu.js.map +1 -1
  501. package/lib/components/cascader-panel/src/node2.js +6 -2
  502. package/lib/components/cascader-panel/src/node2.js.map +1 -1
  503. package/lib/components/checkbox/index.d.ts +36 -3
  504. package/lib/components/checkbox/src/checkbox-button.js +21 -15
  505. package/lib/components/checkbox/src/checkbox-button.js.map +1 -1
  506. package/lib/components/checkbox/src/checkbox-button.vue.d.ts +12 -1
  507. package/lib/components/checkbox/src/checkbox-group.js +5 -2
  508. package/lib/components/checkbox/src/checkbox-group.js.map +1 -1
  509. package/lib/components/checkbox/src/checkbox.js +35 -27
  510. package/lib/components/checkbox/src/checkbox.js.map +1 -1
  511. package/lib/components/checkbox/src/checkbox.vue.d.ts +12 -1
  512. package/lib/components/checkbox/src/useCheckbox.d.ts +1 -1
  513. package/lib/components/checkbox/src/useCheckbox.js +2 -2
  514. package/lib/components/checkbox/src/useCheckbox.js.map +1 -1
  515. package/lib/components/collapse/src/collapse-item.js +3 -3
  516. package/lib/components/collapse/src/collapse-item.js.map +1 -1
  517. package/lib/components/color-picker/src/index.js +8 -5
  518. package/lib/components/color-picker/src/index.js.map +1 -1
  519. package/lib/components/date-picker/src/date-picker-com/basic-date-table.js +2 -1
  520. package/lib/components/date-picker/src/date-picker-com/basic-date-table.js.map +1 -1
  521. package/lib/components/date-picker/src/date-picker-com/basic-month-table.js +2 -1
  522. package/lib/components/date-picker/src/date-picker-com/basic-month-table.js.map +1 -1
  523. package/lib/components/date-picker/src/date-picker-com/panel-date-pick.js +1 -1
  524. package/lib/components/date-picker/src/date-picker-com/panel-date-pick.js.map +1 -1
  525. package/lib/components/descriptions/src/index.js +7 -2
  526. package/lib/components/descriptions/src/index.js.map +1 -1
  527. package/lib/components/dialog/src/dialog.js +1 -3
  528. package/lib/components/dialog/src/dialog.js.map +1 -1
  529. package/lib/components/drawer/index.d.ts +11 -0
  530. package/lib/components/drawer/src/drawer.vue.d.ts +11 -0
  531. package/lib/components/drawer/src/drawer2.js +33 -29
  532. package/lib/components/drawer/src/drawer2.js.map +1 -1
  533. package/lib/components/dropdown/src/dropdown-item.js +12 -6
  534. package/lib/components/dropdown/src/dropdown-item.js.map +1 -1
  535. package/lib/components/dropdown/src/dropdown-menu.js +2 -1
  536. package/lib/components/dropdown/src/dropdown-menu.js.map +1 -1
  537. package/lib/components/dropdown/src/dropdown2.js +9 -5
  538. package/lib/components/dropdown/src/dropdown2.js.map +1 -1
  539. package/lib/components/empty/src/img-empty.js +13 -13
  540. package/lib/components/empty/src/img-empty.js.map +1 -1
  541. package/lib/components/focus-trap/src/focus-trap.js +1 -1
  542. package/lib/components/focus-trap/src/focus-trap.js.map +1 -1
  543. package/lib/components/form/src/form-item.js +6 -4
  544. package/lib/components/form/src/form-item.js.map +1 -1
  545. package/lib/components/image/src/image2.js +3 -2
  546. package/lib/components/image/src/image2.js.map +1 -1
  547. package/lib/components/image-viewer/src/image-viewer2.js +3 -2
  548. package/lib/components/image-viewer/src/image-viewer2.js.map +1 -1
  549. package/lib/components/index.js +3 -3
  550. package/lib/components/input/src/input2.js +17 -8
  551. package/lib/components/input/src/input2.js.map +1 -1
  552. package/lib/components/input-number/src/input-number2.js +12 -6
  553. package/lib/components/input-number/src/input-number2.js.map +1 -1
  554. package/lib/components/message/src/message2.js +1 -1
  555. package/lib/components/message-box/src/index.js +17 -12
  556. package/lib/components/message-box/src/index.js.map +1 -1
  557. package/lib/components/message-box/src/index.vue.d.ts +1 -0
  558. package/lib/components/notification/src/notification2.js +1 -1
  559. package/lib/components/pagination/src/components/jumper.js +11 -5
  560. package/lib/components/pagination/src/components/jumper.js.map +1 -1
  561. package/lib/components/pagination/src/components/sizes.js +9 -4
  562. package/lib/components/pagination/src/components/sizes.js.map +1 -1
  563. package/lib/components/pagination/src/components/sizes.vue.d.ts +3 -0
  564. package/lib/components/pagination/src/components/total.js +10 -4
  565. package/lib/components/pagination/src/components/total.js.map +1 -1
  566. package/lib/components/pagination/src/components/total.vue.d.ts +1 -0
  567. package/lib/components/pagination/src/pagination.js +12 -1
  568. package/lib/components/pagination/src/pagination.js.map +1 -1
  569. package/lib/components/popconfirm/index.js +2 -2
  570. package/lib/components/popconfirm/src/popconfirm.js +45 -104
  571. package/lib/components/popconfirm/src/popconfirm.js.map +1 -1
  572. package/lib/components/popconfirm/src/popconfirm2.js +107 -45
  573. package/lib/components/popconfirm/src/popconfirm2.js.map +1 -1
  574. package/lib/components/popover/index.d.ts +0 -6
  575. package/lib/components/popover/src/index.js +4 -2
  576. package/lib/components/popover/src/index.js.map +1 -1
  577. package/lib/components/popover/src/index.vue.d.ts +0 -3
  578. package/lib/components/popover/src/popover.d.ts +0 -1
  579. package/lib/components/popover/src/popover.js +0 -4
  580. package/lib/components/popover/src/popover.js.map +1 -1
  581. package/lib/components/popper/src/content.js +5 -3
  582. package/lib/components/popper/src/content.js.map +1 -1
  583. package/lib/components/popper/src/trigger.js +1 -1
  584. package/lib/components/popper/src/trigger.js.map +1 -1
  585. package/lib/components/progress/src/progress2.js +2 -1
  586. package/lib/components/progress/src/progress2.js.map +1 -1
  587. package/lib/components/radio/src/radio-button2.js +4 -4
  588. package/lib/components/radio/src/radio-button2.js.map +1 -1
  589. package/lib/components/radio/src/radio-group2.js +1 -1
  590. package/lib/components/radio/src/radio-group2.js.map +1 -1
  591. package/lib/components/rate/index.d.ts +8 -8
  592. package/lib/components/rate/src/rate.d.ts +4 -4
  593. package/lib/components/rate/src/rate.js +8 -4
  594. package/lib/components/rate/src/rate.js.map +1 -1
  595. package/lib/components/rate/src/rate.vue.d.ts +8 -8
  596. package/lib/components/roving-focus-group/src/roving-focus-group-impl.js +10 -6
  597. package/lib/components/roving-focus-group/src/roving-focus-group-impl.js.map +1 -1
  598. package/lib/components/scrollbar/index.d.ts +2 -1
  599. package/lib/components/scrollbar/index.js +2 -2
  600. package/lib/components/scrollbar/index.js.map +1 -1
  601. package/lib/components/scrollbar/src/bar.d.ts +5 -5
  602. package/lib/components/scrollbar/src/bar.js +18 -6
  603. package/lib/components/scrollbar/src/bar.js.map +1 -1
  604. package/lib/components/scrollbar/src/bar.vue.d.ts +18 -37
  605. package/lib/components/scrollbar/src/bar2.js +33 -116
  606. package/lib/components/scrollbar/src/bar2.js.map +1 -1
  607. package/lib/components/scrollbar/src/scrollbar.vue.d.ts +1 -0
  608. package/lib/components/scrollbar/src/scrollbar2.js +15 -21
  609. package/lib/components/scrollbar/src/scrollbar2.js.map +1 -1
  610. package/lib/components/scrollbar/src/thumb.d.ts +9 -0
  611. package/lib/components/scrollbar/src/thumb.js +19 -0
  612. package/lib/components/scrollbar/src/thumb.js.map +1 -0
  613. package/lib/components/scrollbar/src/thumb.vue.d.ts +43 -0
  614. package/lib/components/scrollbar/src/thumb2.js +139 -0
  615. package/lib/components/scrollbar/src/thumb2.js.map +1 -0
  616. package/lib/components/select/src/option-group.js +2 -1
  617. package/lib/components/select/src/option-group.js.map +1 -1
  618. package/lib/components/select/src/select-dropdown.js +2 -1
  619. package/lib/components/select/src/select-dropdown.js.map +1 -1
  620. package/lib/components/select/src/select.js +5 -1
  621. package/lib/components/select/src/select.js.map +1 -1
  622. package/lib/components/select-v2/src/select-dropdown.js +2 -1
  623. package/lib/components/select-v2/src/select-dropdown.js.map +1 -1
  624. package/lib/components/select-v2/src/select.js +192 -186
  625. package/lib/components/select-v2/src/select.js.map +1 -1
  626. package/lib/components/slider/src/index.js +3 -2
  627. package/lib/components/slider/src/index.js.map +1 -1
  628. package/lib/components/slider/src/marker.js +2 -1
  629. package/lib/components/slider/src/marker.js.map +1 -1
  630. package/lib/components/steps/src/item.js +2 -1
  631. package/lib/components/steps/src/item.js.map +1 -1
  632. package/lib/components/switch/src/switch2.js +4 -2
  633. package/lib/components/switch/src/switch2.js.map +1 -1
  634. package/lib/components/table/src/filter-panel.js +7 -3
  635. package/lib/components/table/src/filter-panel.js.map +1 -1
  636. package/lib/components/table/src/table-body/index.js +1 -1
  637. package/lib/components/table/src/table-body/index.js.map +1 -1
  638. package/lib/components/table/src/table.js +3 -2
  639. package/lib/components/table/src/table.js.map +1 -1
  640. package/lib/components/tabs/src/tab-bar2.js +3 -2
  641. package/lib/components/tabs/src/tab-bar2.js.map +1 -1
  642. package/lib/components/tag/index.d.ts +12 -1
  643. package/lib/components/tag/src/tag.vue.d.ts +12 -1
  644. package/lib/components/tag/src/tag2.js +23 -18
  645. package/lib/components/tag/src/tag2.js.map +1 -1
  646. package/lib/components/time-picker/src/common/picker.js +16 -8
  647. package/lib/components/time-picker/src/common/picker.js.map +1 -1
  648. package/lib/components/time-select/src/time-select.js +4 -2
  649. package/lib/components/time-select/src/time-select.js.map +1 -1
  650. package/lib/components/tooltip/src/content.js +9 -4
  651. package/lib/components/tooltip/src/content.js.map +1 -1
  652. package/lib/components/tooltip/src/tooltip2.js +2 -1
  653. package/lib/components/tooltip/src/tooltip2.js.map +1 -1
  654. package/lib/components/transfer/index.d.ts +492 -0
  655. package/lib/components/transfer/src/index.js +13 -7
  656. package/lib/components/transfer/src/index.js.map +1 -1
  657. package/lib/components/transfer/src/index.vue.d.ts +246 -0
  658. package/lib/components/tree/src/tree.js +2 -1
  659. package/lib/components/tree/src/tree.js.map +1 -1
  660. package/lib/components/tree-v2/src/tree-node.js +11 -7
  661. package/lib/components/tree-v2/src/tree-node.js.map +1 -1
  662. package/lib/components/tree-v2/src/tree.js +2 -1
  663. package/lib/components/tree-v2/src/tree.js.map +1 -1
  664. package/lib/components/upload/src/index.js +3 -2
  665. package/lib/components/upload/src/index.js.map +1 -1
  666. package/lib/components/upload/src/upload-dragger.js +2 -1
  667. package/lib/components/upload/src/upload-dragger.js.map +1 -1
  668. package/lib/index.js +3 -3
  669. package/lib/utils/validators.d.ts +0 -1
  670. package/lib/utils/validators.js +0 -9
  671. package/lib/utils/validators.js.map +1 -1
  672. package/lib/version.d.ts +1 -1
  673. package/lib/version.js +1 -1
  674. package/lib/version.js.map +1 -1
  675. package/package.json +2 -2
  676. package/tags.json +1 -1
  677. package/theme-chalk/el-breadcrumb.css +1 -1
  678. package/theme-chalk/el-empty.css +1 -1
  679. package/theme-chalk/el-pagination.css +1 -1
  680. package/theme-chalk/el-popper.css +1 -1
  681. package/theme-chalk/el-rate.css +1 -1
  682. package/theme-chalk/el-select.css +1 -1
  683. package/theme-chalk/el-table.css +1 -1
  684. package/theme-chalk/el-tooltip.css +0 -1
  685. package/theme-chalk/index.css +1 -1
  686. package/theme-chalk/src/breadcrumb.scss +2 -0
  687. package/theme-chalk/src/common/var.scss +18 -19
  688. package/theme-chalk/src/pagination.scss +73 -56
  689. package/theme-chalk/src/popper.scss +20 -2
  690. package/theme-chalk/src/select.scss +3 -3
  691. package/theme-chalk/src/table.scss +0 -12
  692. package/theme-chalk/src/tooltip.scss +0 -95
  693. package/web-types.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"useCheckbox.mjs","sources":["../../../../../../packages/components/checkbox/src/useCheckbox.ts"],"sourcesContent":["import { ref, computed, inject, getCurrentInstance, watch } from 'vue'\nimport { toTypeString } from '@vue/shared'\nimport { UPDATE_MODEL_EVENT } from '@element-plus/utils/constants'\nimport { elFormKey, elFormItemKey } from '@element-plus/tokens'\n\nimport { useSize } from '@element-plus/hooks'\nimport type { ExtractPropTypes } from 'vue'\nimport type { ElFormContext, ElFormItemContext } from '@element-plus/tokens'\nimport type { PartialReturnType } from '@element-plus/utils/types'\nimport type { ICheckboxGroupInstance } from './checkbox.type'\n\nexport const useCheckboxProps = {\n modelValue: {\n type: [Boolean, Number, String],\n default: () => undefined,\n },\n label: {\n type: [String, Boolean, Number, Object],\n },\n indeterminate: Boolean,\n disabled: Boolean,\n checked: Boolean,\n name: {\n type: String,\n default: undefined,\n },\n trueLabel: {\n type: [String, Number],\n default: undefined,\n },\n falseLabel: {\n type: [String, Number],\n default: undefined,\n },\n tabindex: [String, Number],\n size: String,\n}\n\nexport type IUseCheckboxProps = ExtractPropTypes<typeof useCheckboxProps>\n\nexport const useCheckboxGroup = () => {\n const elForm = inject(elFormKey, {} as ElFormContext)\n const elFormItem = inject(elFormItemKey, {} as ElFormItemContext)\n const checkboxGroup = inject<ICheckboxGroupInstance>('CheckboxGroup', {})\n const isGroup = computed(\n () => checkboxGroup && checkboxGroup?.name === 'ElCheckboxGroup'\n )\n const elFormItemSize = computed(() => {\n return elFormItem.size\n })\n return {\n isGroup,\n checkboxGroup,\n elForm,\n elFormItemSize,\n elFormItem,\n }\n}\n\nconst useModel = (props: IUseCheckboxProps) => {\n const selfModel = ref(false)\n const { emit } = getCurrentInstance()\n const { isGroup, checkboxGroup } = useCheckboxGroup()\n const isLimitExceeded = ref(false)\n const model = computed({\n get() {\n return isGroup.value\n ? checkboxGroup.modelValue?.value\n : props.modelValue ?? selfModel.value\n },\n\n set(val: unknown) {\n if (isGroup.value && Array.isArray(val)) {\n isLimitExceeded.value =\n checkboxGroup.max !== undefined &&\n val.length > checkboxGroup.max.value\n isLimitExceeded.value === false && checkboxGroup?.changeEvent?.(val)\n } else {\n emit(UPDATE_MODEL_EVENT, val)\n selfModel.value = val as boolean\n }\n },\n })\n\n return {\n model,\n isLimitExceeded,\n }\n}\n\nconst useCheckboxStatus = (\n props: IUseCheckboxProps,\n { model }: PartialReturnType<typeof useModel>\n) => {\n const { isGroup, checkboxGroup } = useCheckboxGroup()\n const focus = ref(false)\n const size = useSize(checkboxGroup?.checkboxGroupSize, { prop: true })\n const isChecked = computed<boolean>(() => {\n const value = model.value\n if (toTypeString(value) === '[object Boolean]') {\n return value\n } else if (Array.isArray(value)) {\n return value.includes(props.label)\n } else if (value !== null && value !== undefined) {\n return value === props.trueLabel\n } else {\n return !!value\n }\n })\n\n const checkboxSize = useSize(\n computed(() =>\n isGroup.value ? checkboxGroup?.checkboxGroupSize?.value : undefined\n )\n )\n\n return {\n isChecked,\n focus,\n size,\n checkboxSize,\n }\n}\n\nconst useDisabled = (\n props: IUseCheckboxProps,\n {\n model,\n isChecked,\n }: PartialReturnType<typeof useModel> &\n PartialReturnType<typeof useCheckboxStatus>\n) => {\n const { elForm, isGroup, checkboxGroup } = useCheckboxGroup()\n const isLimitDisabled = computed(() => {\n const max = checkboxGroup.max?.value\n const min = checkboxGroup.min?.value\n return (\n (!!(max || min) && model.value.length >= max && !isChecked.value) ||\n (model.value.length <= min && isChecked.value)\n )\n })\n const isDisabled = computed(() => {\n const disabled = props.disabled || elForm.disabled\n return isGroup.value\n ? checkboxGroup.disabled?.value || disabled || isLimitDisabled.value\n : props.disabled || elForm.disabled\n })\n\n return {\n isDisabled,\n isLimitDisabled,\n }\n}\n\nconst setStoreValue = (\n props: IUseCheckboxProps,\n { model }: PartialReturnType<typeof useModel>\n) => {\n function addToStore() {\n if (Array.isArray(model.value) && !model.value.includes(props.label)) {\n model.value.push(props.label)\n } else {\n model.value = props.trueLabel || true\n }\n }\n props.checked && addToStore()\n}\n\nconst useEvent = (\n props: IUseCheckboxProps,\n { isLimitExceeded }: PartialReturnType<typeof useModel>\n) => {\n const { elFormItem } = useCheckboxGroup()\n const { emit } = getCurrentInstance()\n function handleChange(e: InputEvent) {\n if (isLimitExceeded.value) return\n const target = e.target as HTMLInputElement\n const value = target.checked\n ? props.trueLabel ?? true\n : props.falseLabel ?? false\n\n emit('change', value, e)\n }\n\n watch(\n () => props.modelValue,\n () => {\n elFormItem.validate?.('change')\n }\n )\n\n return {\n handleChange,\n }\n}\n\nexport const useCheckbox = (props: IUseCheckboxProps) => {\n const { model, isLimitExceeded } = useModel(props)\n const { focus, size, isChecked, checkboxSize } = useCheckboxStatus(props, {\n model,\n })\n const { isDisabled } = useDisabled(props, { model, isChecked })\n const { handleChange } = useEvent(props, { isLimitExceeded })\n\n setStoreValue(props, { model })\n\n return {\n isChecked,\n isDisabled,\n checkboxSize,\n model,\n handleChange,\n focus,\n size,\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useCheckbox.mjs","sources":["../../../../../../packages/components/checkbox/src/useCheckbox.ts"],"sourcesContent":["import { ref, computed, inject, getCurrentInstance, watch } from 'vue'\nimport { toTypeString } from '@vue/shared'\nimport { UPDATE_MODEL_EVENT } from '@element-plus/utils/constants'\nimport { elFormKey, elFormItemKey } from '@element-plus/tokens'\n\nimport { useSize } from '@element-plus/hooks'\nimport type { ExtractPropTypes } from 'vue'\nimport type { ElFormContext, ElFormItemContext } from '@element-plus/tokens'\nimport type { PartialReturnType } from '@element-plus/utils/types'\nimport type { ICheckboxGroupInstance } from './checkbox.type'\n\nexport const useCheckboxProps = {\n modelValue: {\n type: [Boolean, Number, String],\n default: () => undefined,\n },\n label: {\n type: [String, Boolean, Number, Object],\n },\n indeterminate: Boolean,\n disabled: Boolean,\n checked: Boolean,\n name: {\n type: String,\n default: undefined,\n },\n trueLabel: {\n type: [String, Number],\n default: undefined,\n },\n falseLabel: {\n type: [String, Number],\n default: undefined,\n },\n tabindex: [String, Number],\n size: String,\n}\n\nexport type IUseCheckboxProps = ExtractPropTypes<typeof useCheckboxProps>\n\nexport const useCheckboxGroup = () => {\n const elForm = inject(elFormKey, {} as ElFormContext)\n const elFormItem = inject(elFormItemKey, {} as ElFormItemContext)\n const checkboxGroup = inject<ICheckboxGroupInstance>('CheckboxGroup', {})\n const isGroup = computed(\n () => checkboxGroup && checkboxGroup?.name === 'ElCheckboxGroup'\n )\n const elFormItemSize = computed(() => {\n return elFormItem.size\n })\n return {\n isGroup,\n checkboxGroup,\n elForm,\n elFormItemSize,\n elFormItem,\n }\n}\n\nconst useModel = (props: IUseCheckboxProps) => {\n const selfModel = ref(false)\n const { emit } = getCurrentInstance()\n const { isGroup, checkboxGroup } = useCheckboxGroup()\n const isLimitExceeded = ref(false)\n const model = computed({\n get() {\n return isGroup.value\n ? checkboxGroup.modelValue?.value\n : props.modelValue ?? selfModel.value\n },\n\n set(val: unknown) {\n if (isGroup.value && Array.isArray(val)) {\n isLimitExceeded.value =\n checkboxGroup.max !== undefined &&\n val.length > checkboxGroup.max.value\n isLimitExceeded.value === false && checkboxGroup?.changeEvent?.(val)\n } else {\n emit(UPDATE_MODEL_EVENT, val)\n selfModel.value = val as boolean\n }\n },\n })\n\n return {\n model,\n isLimitExceeded,\n }\n}\n\nconst useCheckboxStatus = (\n props: IUseCheckboxProps,\n { model }: PartialReturnType<typeof useModel>\n) => {\n const { isGroup, checkboxGroup } = useCheckboxGroup()\n const focus = ref(false)\n const size = useSize(checkboxGroup?.checkboxGroupSize, { prop: true })\n const isChecked = computed<boolean>(() => {\n const value = model.value\n if (toTypeString(value) === '[object Boolean]') {\n return value\n } else if (Array.isArray(value)) {\n return value.includes(props.label)\n } else if (value !== null && value !== undefined) {\n return value === props.trueLabel\n } else {\n return !!value\n }\n })\n\n const checkboxSize = useSize(\n computed(() =>\n isGroup.value ? checkboxGroup?.checkboxGroupSize?.value : undefined\n )\n )\n\n return {\n isChecked,\n focus,\n size,\n checkboxSize,\n }\n}\n\nconst useDisabled = (\n props: IUseCheckboxProps,\n {\n model,\n isChecked,\n }: PartialReturnType<typeof useModel> &\n PartialReturnType<typeof useCheckboxStatus>\n) => {\n const { elForm, isGroup, checkboxGroup } = useCheckboxGroup()\n const isLimitDisabled = computed(() => {\n const max = checkboxGroup.max?.value\n const min = checkboxGroup.min?.value\n return (\n (!!(max || min) && model.value.length >= max && !isChecked.value) ||\n (model.value.length <= min && isChecked.value)\n )\n })\n const isDisabled = computed(() => {\n const disabled = props.disabled || elForm.disabled\n return (\n (isGroup.value\n ? checkboxGroup.disabled?.value || disabled || isLimitDisabled.value\n : props.disabled || elForm.disabled) ?? false\n )\n })\n\n return {\n isDisabled,\n isLimitDisabled,\n }\n}\n\nconst setStoreValue = (\n props: IUseCheckboxProps,\n { model }: PartialReturnType<typeof useModel>\n) => {\n function addToStore() {\n if (Array.isArray(model.value) && !model.value.includes(props.label)) {\n model.value.push(props.label)\n } else {\n model.value = props.trueLabel || true\n }\n }\n props.checked && addToStore()\n}\n\nconst useEvent = (\n props: IUseCheckboxProps,\n { isLimitExceeded }: PartialReturnType<typeof useModel>\n) => {\n const { elFormItem } = useCheckboxGroup()\n const { emit } = getCurrentInstance()\n function handleChange(e: InputEvent) {\n if (isLimitExceeded.value) return\n const target = e.target as HTMLInputElement\n const value = target.checked\n ? props.trueLabel ?? true\n : props.falseLabel ?? false\n\n emit('change', value, e)\n }\n\n watch(\n () => props.modelValue,\n () => {\n elFormItem.validate?.('change')\n }\n )\n\n return {\n handleChange,\n }\n}\n\nexport const useCheckbox = (props: IUseCheckboxProps) => {\n const { model, isLimitExceeded } = useModel(props)\n const { focus, size, isChecked, checkboxSize } = useCheckboxStatus(props, {\n model,\n })\n const { isDisabled } = useDisabled(props, { model, isChecked })\n const { handleChange } = useEvent(props, { isLimitExceeded })\n\n setStoreValue(props, { model })\n\n return {\n isChecked,\n isDisabled,\n checkboxSize,\n model,\n handleChange,\n focus,\n size,\n }\n}\n"],"names":[],"mappings":";;;;;;;;AAKY,MAAC,gBAAgB,GAAG;AAChC,EAAE,UAAU,EAAE;AACd,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC;AACnC,IAAI,OAAO,EAAE,MAAM,KAAK,CAAC;AACzB,GAAG;AACH,EAAE,KAAK,EAAE;AACT,IAAI,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC;AAC3C,GAAG;AACH,EAAE,aAAa,EAAE,OAAO;AACxB,EAAE,QAAQ,EAAE,OAAO;AACnB,EAAE,OAAO,EAAE,OAAO;AAClB,EAAE,IAAI,EAAE;AACR,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,KAAK,CAAC;AACnB,GAAG;AACH,EAAE,SAAS,EAAE;AACb,IAAI,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;AAC1B,IAAI,OAAO,EAAE,KAAK,CAAC;AACnB,GAAG;AACH,EAAE,UAAU,EAAE;AACd,IAAI,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;AAC1B,IAAI,OAAO,EAAE,KAAK,CAAC;AACnB,GAAG;AACH,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;AAC5B,EAAE,IAAI,EAAE,MAAM;AACd,EAAE;AACU,MAAC,gBAAgB,GAAG,MAAM;AACtC,EAAE,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;AACvC,EAAE,MAAM,UAAU,GAAG,MAAM,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;AAC/C,EAAE,MAAM,aAAa,GAAG,MAAM,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;AACpD,EAAE,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,aAAa,IAAI,CAAC,aAAa,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,aAAa,CAAC,IAAI,MAAM,iBAAiB,CAAC,CAAC;AAC/H,EAAE,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM;AACxC,IAAI,OAAO,UAAU,CAAC,IAAI,CAAC;AAC3B,GAAG,CAAC,CAAC;AACL,EAAE,OAAO;AACT,IAAI,OAAO;AACX,IAAI,aAAa;AACjB,IAAI,MAAM;AACV,IAAI,cAAc;AAClB,IAAI,UAAU;AACd,GAAG,CAAC;AACJ,EAAE;AACF,MAAM,QAAQ,GAAG,CAAC,KAAK,KAAK;AAC5B,EAAE,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;AAC/B,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,kBAAkB,EAAE,CAAC;AACxC,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,gBAAgB,EAAE,CAAC;AACxD,EAAE,MAAM,eAAe,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;AACrC,EAAE,MAAM,KAAK,GAAG,QAAQ,CAAC;AACzB,IAAI,GAAG,GAAG;AACV,MAAM,IAAI,EAAE,EAAE,EAAE,CAAC;AACjB,MAAM,OAAO,OAAO,CAAC,KAAK,GAAG,CAAC,EAAE,GAAG,aAAa,CAAC,UAAU,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,GAAG,CAAC,EAAE,GAAG,KAAK,CAAC,UAAU,KAAK,IAAI,GAAG,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC;AAClJ,KAAK;AACL,IAAI,GAAG,CAAC,GAAG,EAAE;AACb,MAAM,IAAI,EAAE,CAAC;AACb,MAAM,IAAI,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;AAC/C,QAAQ,eAAe,CAAC,KAAK,GAAG,aAAa,CAAC,GAAG,KAAK,KAAK,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC;AACrG,QAAQ,eAAe,CAAC,KAAK,KAAK,KAAK,KAAK,CAAC,EAAE,GAAG,aAAa,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,aAAa,CAAC,WAAW,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,CAAC;AAC9J,OAAO,MAAM;AACb,QAAQ,IAAI,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC;AACtC,QAAQ,SAAS,CAAC,KAAK,GAAG,GAAG,CAAC;AAC9B,OAAO;AACP,KAAK;AACL,GAAG,CAAC,CAAC;AACL,EAAE,OAAO;AACT,IAAI,KAAK;AACT,IAAI,eAAe;AACnB,GAAG,CAAC;AACJ,CAAC,CAAC;AACF,MAAM,iBAAiB,GAAG,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK;AAChD,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,gBAAgB,EAAE,CAAC;AACxD,EAAE,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;AAC3B,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,aAAa,CAAC,iBAAiB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AACzG,EAAE,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM;AACnC,IAAI,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;AAC9B,IAAI,IAAI,YAAY,CAAC,KAAK,CAAC,KAAK,kBAAkB,EAAE;AACpD,MAAM,OAAO,KAAK,CAAC;AACnB,KAAK,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACrC,MAAM,OAAO,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACzC,KAAK,MAAM,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,CAAC,EAAE;AACnD,MAAM,OAAO,KAAK,KAAK,KAAK,CAAC,SAAS,CAAC;AACvC,KAAK,MAAM;AACX,MAAM,OAAO,CAAC,CAAC,KAAK,CAAC;AACrB,KAAK;AACL,GAAG,CAAC,CAAC;AACL,EAAE,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM;AAC9C,IAAI,IAAI,EAAE,CAAC;AACX,IAAI,OAAO,OAAO,CAAC,KAAK,GAAG,CAAC,EAAE,GAAG,aAAa,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,aAAa,CAAC,iBAAiB,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC;AACxI,GAAG,CAAC,CAAC,CAAC;AACN,EAAE,OAAO;AACT,IAAI,SAAS;AACb,IAAI,KAAK;AACT,IAAI,IAAI;AACR,IAAI,YAAY;AAChB,GAAG,CAAC;AACJ,CAAC,CAAC;AACF,MAAM,WAAW,GAAG,CAAC,KAAK,EAAE;AAC5B,EAAE,KAAK;AACP,EAAE,SAAS;AACX,CAAC,KAAK;AACN,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,gBAAgB,EAAE,CAAC;AAChE,EAAE,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM;AACzC,IAAI,IAAI,EAAE,EAAE,EAAE,CAAC;AACf,IAAI,MAAM,GAAG,GAAG,CAAC,EAAE,GAAG,aAAa,CAAC,GAAG,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC;AACrE,IAAI,MAAM,GAAG,GAAG,CAAC,EAAE,GAAG,aAAa,CAAC,GAAG,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC;AACrE,IAAI,OAAO,CAAC,EAAE,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,IAAI,GAAG,IAAI,SAAS,CAAC,KAAK,CAAC;AAC3H,GAAG,CAAC,CAAC;AACL,EAAE,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM;AACpC,IAAI,IAAI,EAAE,EAAE,EAAE,CAAC;AACf,IAAI,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC;AACvD,IAAI,OAAO,CAAC,EAAE,GAAG,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,GAAG,aAAa,CAAC,QAAQ,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,KAAK,QAAQ,IAAI,eAAe,CAAC,KAAK,GAAG,KAAK,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,KAAK,IAAI,GAAG,EAAE,GAAG,KAAK,CAAC;AAC5L,GAAG,CAAC,CAAC;AACL,EAAE,OAAO;AACT,IAAI,UAAU;AACd,IAAI,eAAe;AACnB,GAAG,CAAC;AACJ,CAAC,CAAC;AACF,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK;AAC5C,EAAE,SAAS,UAAU,GAAG;AACxB,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;AAC1E,MAAM,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACpC,KAAK,MAAM;AACX,MAAM,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC;AAC5C,KAAK;AACL,GAAG;AACH,EAAE,KAAK,CAAC,OAAO,IAAI,UAAU,EAAE,CAAC;AAChC,CAAC,CAAC;AACF,MAAM,QAAQ,GAAG,CAAC,KAAK,EAAE,EAAE,eAAe,EAAE,KAAK;AACjD,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,gBAAgB,EAAE,CAAC;AAC5C,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,kBAAkB,EAAE,CAAC;AACxC,EAAE,SAAS,YAAY,CAAC,CAAC,EAAE;AAC3B,IAAI,IAAI,EAAE,EAAE,EAAE,CAAC;AACf,IAAI,IAAI,eAAe,CAAC,KAAK;AAC7B,MAAM,OAAO;AACb,IAAI,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;AAC5B,IAAI,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,GAAG,CAAC,EAAE,GAAG,KAAK,CAAC,SAAS,KAAK,IAAI,GAAG,EAAE,GAAG,IAAI,GAAG,CAAC,EAAE,GAAG,KAAK,CAAC,UAAU,KAAK,IAAI,GAAG,EAAE,GAAG,KAAK,CAAC;AAC7H,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;AAC7B,GAAG;AACH,EAAE,KAAK,CAAC,MAAM,KAAK,CAAC,UAAU,EAAE,MAAM;AACtC,IAAI,IAAI,EAAE,CAAC;AACX,IAAI,CAAC,EAAE,GAAG,UAAU,CAAC,QAAQ,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;AAChF,GAAG,CAAC,CAAC;AACL,EAAE,OAAO;AACT,IAAI,YAAY;AAChB,GAAG,CAAC;AACJ,CAAC,CAAC;AACU,MAAC,WAAW,GAAG,CAAC,KAAK,KAAK;AACtC,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;AACrD,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,iBAAiB,CAAC,KAAK,EAAE;AAC5E,IAAI,KAAK;AACT,GAAG,CAAC,CAAC;AACL,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,WAAW,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;AAClE,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,eAAe,EAAE,CAAC,CAAC;AAChE,EAAE,aAAa,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;AAClC,EAAE,OAAO;AACT,IAAI,SAAS;AACb,IAAI,UAAU;AACd,IAAI,YAAY;AAChB,IAAI,KAAK;AACT,IAAI,YAAY;AAChB,IAAI,KAAK;AACT,IAAI,IAAI;AACR,GAAG,CAAC;AACJ;;;;"}
@@ -32,7 +32,7 @@ const _sfc_main = defineComponent({
32
32
  const isClick = ref(false);
33
33
  const id = ref(generateId());
34
34
  const isActive = computed(() => {
35
- return collapse?.activeNames.value.indexOf(props.name) > -1;
35
+ return (collapse == null ? void 0 : collapse.activeNames.value.indexOf(props.name)) > -1;
36
36
  });
37
37
  const handleFocus = () => {
38
38
  setTimeout(() => {
@@ -46,12 +46,12 @@ const _sfc_main = defineComponent({
46
46
  const handleHeaderClick = () => {
47
47
  if (props.disabled)
48
48
  return;
49
- collapse?.handleItemClick(props.name);
49
+ collapse == null ? void 0 : collapse.handleItemClick(props.name);
50
50
  focusing.value = false;
51
51
  isClick.value = true;
52
52
  };
53
53
  const handleEnterClick = () => {
54
- collapse?.handleItemClick(props.name);
54
+ collapse == null ? void 0 : collapse.handleItemClick(props.name);
55
55
  };
56
56
  return {
57
57
  isActive,
@@ -1 +1 @@
1
- {"version":3,"file":"collapse-item.mjs","sources":["../../../../../../packages/components/collapse/src/collapse-item.vue"],"sourcesContent":["<template>\n <div\n class=\"el-collapse-item\"\n :class=\"{ 'is-active': isActive, 'is-disabled': disabled }\"\n >\n <div\n role=\"tab\"\n :aria-expanded=\"isActive\"\n :aria-controls=\"`el-collapse-content-${id}`\"\n :aria-describedby=\"`el-collapse-content-${id}`\"\n >\n <div\n :id=\"`el-collapse-head-${id}`\"\n class=\"el-collapse-item__header\"\n role=\"button\"\n :tabindex=\"disabled ? -1 : 0\"\n :class=\"{\n focusing: focusing,\n 'is-active': isActive,\n }\"\n @click=\"handleHeaderClick\"\n @keyup.space.enter.stop=\"handleEnterClick\"\n @focus=\"handleFocus\"\n @blur=\"focusing = false\"\n >\n <slot name=\"title\">{{ title }}</slot>\n <el-icon\n class=\"el-collapse-item__arrow\"\n :class=\"{ 'is-active': isActive }\"\n >\n <arrow-right />\n </el-icon>\n </div>\n </div>\n <el-collapse-transition>\n <div\n v-show=\"isActive\"\n :id=\"`el-collapse-content-${id}`\"\n class=\"el-collapse-item__wrap\"\n role=\"tabpanel\"\n :aria-hidden=\"!isActive\"\n :aria-labelledby=\"`el-collapse-head-${id}`\"\n >\n <div class=\"el-collapse-item__content\">\n <slot></slot>\n </div>\n </div>\n </el-collapse-transition>\n </div>\n</template>\n<script lang=\"ts\">\nimport { defineComponent, inject, computed, ref } from 'vue'\nimport { generateId } from '@element-plus/utils/util'\nimport ElCollapseTransition from '@element-plus/components/collapse-transition'\nimport ElIcon from '@element-plus/components/icon'\nimport { ArrowRight } from '@element-plus/icons-vue'\n\nimport type { PropType } from 'vue'\nimport type { CollapseProvider } from './collapse.type'\n\nexport default defineComponent({\n name: 'ElCollapseItem',\n components: { ElCollapseTransition, ElIcon, ArrowRight },\n props: {\n title: {\n type: String,\n default: '',\n },\n name: {\n type: [String, Number] as PropType<string | number>,\n default: () => {\n return generateId()\n },\n },\n disabled: Boolean,\n },\n setup(props) {\n const collapse = inject<CollapseProvider>('collapse')\n\n const contentWrapStyle = ref({\n height: 'auto',\n display: 'block',\n })\n const contentHeight = ref(0)\n const focusing = ref(false)\n const isClick = ref(false)\n const id = ref(generateId())\n\n const isActive = computed(() => {\n return collapse?.activeNames.value.indexOf(props.name) > -1\n })\n\n const handleFocus = () => {\n setTimeout(() => {\n if (!isClick.value) {\n focusing.value = true\n } else {\n isClick.value = false\n }\n }, 50)\n }\n\n const handleHeaderClick = () => {\n if (props.disabled) return\n collapse?.handleItemClick(props.name)\n focusing.value = false\n isClick.value = true\n }\n\n const handleEnterClick = () => {\n collapse?.handleItemClick(props.name)\n }\n\n return {\n isActive,\n contentWrapStyle,\n contentHeight,\n focusing,\n isClick,\n id,\n handleFocus,\n handleHeaderClick,\n handleEnterClick,\n collapse,\n }\n },\n})\n</script>\n"],"names":["ElCollapseTransition","_openBlock","_withCtx","_createElementVNode"],"mappings":";;;;;;;AA4DA,MAAK,YAAa,gBAAa;AAAA,EAC7B,MAAM;AAAA,EACN,YAAY,wBAAEA,qBAAsB,QAAQ;AAAA,EAC5C,OAAO;AAAA,IACL,OAAO;AAAA,MACL,MAAM;AAAA,MACN,SAAS;AAAA;AAAA,IAEX,MAAM;AAAA,MACJ,MAAM,CAAC,QAAQ;AAAA,MACf,SAAS,MAAM;AACb,eAAO;AAAA;AAAA;AAAA,IAGX,UAAU;AAAA;AAAA,EAEZ,MAAM,OAAO;AACX,UAAM,WAAW,OAAyB;AAE1C,UAAM,mBAAmB,IAAI;AAAA,MAC3B,QAAQ;AAAA,MACR,SAAS;AAAA;AAEX,UAAM,gBAAgB,IAAI;AAC1B,UAAM,WAAW,IAAI;AACrB,UAAM,UAAU,IAAI;AACpB,UAAM,KAAK,IAAI;AAEf,UAAM,WAAW,SAAS,MAAM;AAC9B,aAAO,UAAU,YAAY,MAAM,QAAQ,MAAM,QAAQ;AAAA;AAG3D,UAAM,cAAc,MAAM;AACxB,iBAAW,MAAM;AACf,YAAI,CAAC,QAAQ,OAAO;AAClB,mBAAS,QAAQ;AAAA,eACZ;AACL,kBAAQ,QAAQ;AAAA;AAAA,SAEjB;AAAA;AAGL,UAAM,oBAAoB,MAAM;AAC9B,UAAI,MAAM;AAAU;AACpB,gBAAU,gBAAgB,MAAM;AAChC,eAAS,QAAQ;AACjB,cAAQ,QAAQ;AAAA;AAGlB,UAAM,mBAAmB,MAAM;AAC7B,gBAAU,gBAAgB,MAAM;AAAA;AAGlC,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA;AAAA;;;0BAhFY,eAAC;;;;;;SAzCVC,gCAAC,OAAkB;AAAA;KAGxB;AAAA,uBACY;AAAA,MACT;AAAA,MACA,iBAAa;AAAA,MACb,wCAAgB,KAAyB;AAAA;OAE1C;AAAA,yBACK,OAAsB;AAAA,QACzB,wBAAM;AAAA,8BAGwB,6BAAQ;AAAA,yBAAyB;AAAA;;QAD9D;AAAA,QAKA,UAAK;AAAA,QACL,SAAK,iEAAmB;AAAA,QACxB,SAAK,iDAAE,sCAAW;AAAA,QAClB,SAAI,uCAAE,oBAAQ;AAAA;SAEf;AAAA,6CAAsB;AAAA;;oBAEf,oBAAC;AAAA;;mBAGNC,QAAe;AAAA;;;;;OAIrB,GAayB;AAAA,mDADjB;AAAA,uBAXN;AAAA,uBAEKC,mBAA2B;AAAA,UAC9B,2BAAM,KAAwB;AAAA,UAC9B,OAAK;AAAA,UACJ;AAAA,UACA,qBAAe;AAAA;WAEhB;AAAA,6BACe;AAAA;;cARP,aAAQ;AAAA;;;;;;;;;;;"}
1
+ {"version":3,"file":"collapse-item.mjs","sources":["../../../../../../packages/components/collapse/src/collapse-item.vue"],"sourcesContent":["<template>\n <div\n class=\"el-collapse-item\"\n :class=\"{ 'is-active': isActive, 'is-disabled': disabled }\"\n >\n <div\n role=\"tab\"\n :aria-expanded=\"isActive\"\n :aria-controls=\"`el-collapse-content-${id}`\"\n :aria-describedby=\"`el-collapse-content-${id}`\"\n >\n <div\n :id=\"`el-collapse-head-${id}`\"\n class=\"el-collapse-item__header\"\n role=\"button\"\n :tabindex=\"disabled ? -1 : 0\"\n :class=\"{\n focusing: focusing,\n 'is-active': isActive,\n }\"\n @click=\"handleHeaderClick\"\n @keyup.space.enter.stop=\"handleEnterClick\"\n @focus=\"handleFocus\"\n @blur=\"focusing = false\"\n >\n <slot name=\"title\">{{ title }}</slot>\n <el-icon\n class=\"el-collapse-item__arrow\"\n :class=\"{ 'is-active': isActive }\"\n >\n <arrow-right />\n </el-icon>\n </div>\n </div>\n <el-collapse-transition>\n <div\n v-show=\"isActive\"\n :id=\"`el-collapse-content-${id}`\"\n class=\"el-collapse-item__wrap\"\n role=\"tabpanel\"\n :aria-hidden=\"!isActive\"\n :aria-labelledby=\"`el-collapse-head-${id}`\"\n >\n <div class=\"el-collapse-item__content\">\n <slot></slot>\n </div>\n </div>\n </el-collapse-transition>\n </div>\n</template>\n<script lang=\"ts\">\nimport { defineComponent, inject, computed, ref } from 'vue'\nimport { generateId } from '@element-plus/utils/util'\nimport ElCollapseTransition from '@element-plus/components/collapse-transition'\nimport ElIcon from '@element-plus/components/icon'\nimport { ArrowRight } from '@element-plus/icons-vue'\n\nimport type { PropType } from 'vue'\nimport type { CollapseProvider } from './collapse.type'\n\nexport default defineComponent({\n name: 'ElCollapseItem',\n components: { ElCollapseTransition, ElIcon, ArrowRight },\n props: {\n title: {\n type: String,\n default: '',\n },\n name: {\n type: [String, Number] as PropType<string | number>,\n default: () => {\n return generateId()\n },\n },\n disabled: Boolean,\n },\n setup(props) {\n const collapse = inject<CollapseProvider>('collapse')\n\n const contentWrapStyle = ref({\n height: 'auto',\n display: 'block',\n })\n const contentHeight = ref(0)\n const focusing = ref(false)\n const isClick = ref(false)\n const id = ref(generateId())\n\n const isActive = computed(() => {\n return collapse?.activeNames.value.indexOf(props.name) > -1\n })\n\n const handleFocus = () => {\n setTimeout(() => {\n if (!isClick.value) {\n focusing.value = true\n } else {\n isClick.value = false\n }\n }, 50)\n }\n\n const handleHeaderClick = () => {\n if (props.disabled) return\n collapse?.handleItemClick(props.name)\n focusing.value = false\n isClick.value = true\n }\n\n const handleEnterClick = () => {\n collapse?.handleItemClick(props.name)\n }\n\n return {\n isActive,\n contentWrapStyle,\n contentHeight,\n focusing,\n isClick,\n id,\n handleFocus,\n handleHeaderClick,\n handleEnterClick,\n collapse,\n }\n },\n})\n</script>\n"],"names":["ElCollapseTransition","_openBlock","_withCtx","_createElementVNode"],"mappings":";;;;;;;AA4DA,MAAK,YAAa,gBAAa;AAAA,EAC7B,MAAM;AAAA,EACN,YAAY,wBAAEA,qBAAsB,QAAQ;AAAA,EAC5C,OAAO;AAAA,IACL,OAAO;AAAA,MACL,MAAM;AAAA,MACN,SAAS;AAAA;AAAA,IAEX,MAAM;AAAA,MACJ,MAAM,CAAC,QAAQ;AAAA,MACf,SAAS,MAAM;AACb,eAAO;AAAA;AAAA;AAAA,IAGX,UAAU;AAAA;AAAA,EAEZ,MAAM,OAAO;AACX,UAAM,WAAW,OAAyB;AAE1C,UAAM,mBAAmB,IAAI;AAAA,MAC3B,QAAQ;AAAA,MACR,SAAS;AAAA;AAEX,UAAM,gBAAgB,IAAI;AAC1B,UAAM,WAAW,IAAI;AACrB,UAAM,UAAU,IAAI;AACpB,UAAM,KAAK,IAAI;AAEf,UAAM,WAAW,SAAS,MAAM;AAC9B,aAAO,kDAAkD;AAAA;AAG3D,UAAM,cAAc,MAAM;AACxB,iBAAW,MAAM;AACf,YAAI,CAAC,QAAQ,OAAO;AAClB,mBAAS,QAAQ;AAAA,eACZ;AACL,kBAAQ,QAAQ;AAAA;AAAA,SAEjB;AAAA;AAGL,UAAM,oBAAoB,MAAM;AAC9B,UAAI,MAAM;AAAU;AACpB;AACA,eAAS,QAAQ;AACjB,cAAQ,QAAQ;AAAA;AAGlB,UAAM,mBAAmB,MAAM;AAC7B;AAAgC;AAGlC,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA;AAAA;;;0BAhFY,eAAC;;;;;;SAzCVC,gCAAC,OAAkB;AAAA;KAGxB;AAAA,uBACY;AAAA,MACT;AAAA,MACA,iBAAa;AAAA,MACb,wCAAgB,KAAyB;AAAA;OAE1C;AAAA,yBACK,OAAsB;AAAA,QACzB,wBAAM;AAAA,8BAGwB,6BAAQ;AAAA,yBAAyB;AAAA;;QAD9D;AAAA,QAKA,UAAK;AAAA,QACL,SAAK,iEAAmB;AAAA,QACxB,SAAK,iDAAE,sCAAW;AAAA,QAClB,SAAI,uCAAE,oBAAQ;AAAA;SAEf;AAAA,6CAAsB;AAAA;;oBAEf,oBAAC;AAAA;;mBAGNC,QAAe;AAAA;;;;;OAIrB,GAayB;AAAA,mDADjB;AAAA,uBAXN;AAAA,uBAEKC,mBAA2B;AAAA,UAC9B,2BAAM,KAAwB;AAAA,UAC9B,OAAK;AAAA,UACJ;AAAA,UACA,qBAAe;AAAA;WAEhB;AAAA,6BACe;AAAA;;cARP,aAAQ;AAAA;;;;;;;;;;;"}
@@ -130,10 +130,11 @@ const _sfc_main = defineComponent({
130
130
  color.fromString(customInput.value);
131
131
  }
132
132
  function confirmValue() {
133
+ var _a;
133
134
  const value = color.value;
134
135
  emit(UPDATE_MODEL_EVENT, value);
135
136
  emit("change", value);
136
- elFormItem.validate?.("change");
137
+ (_a = elFormItem.validate) == null ? void 0 : _a.call(elFormItem, "change");
137
138
  debounceSetShowPicker(false);
138
139
  nextTick(() => {
139
140
  const newColor = new Color({
@@ -147,11 +148,12 @@ const _sfc_main = defineComponent({
147
148
  });
148
149
  }
149
150
  function clear() {
151
+ var _a;
150
152
  debounceSetShowPicker(false);
151
153
  emit(UPDATE_MODEL_EVENT, null);
152
154
  emit("change", null);
153
155
  if (props.modelValue !== null) {
154
- elFormItem.validate?.("change");
156
+ (_a = elFormItem.validate) == null ? void 0 : _a.call(elFormItem, "change");
155
157
  }
156
158
  resetColor();
157
159
  }
@@ -162,9 +164,10 @@ const _sfc_main = defineComponent({
162
164
  });
163
165
  watch(() => showPicker.value, () => {
164
166
  nextTick(() => {
165
- hue.value?.update();
166
- svPanel.value?.update();
167
- alpha.value?.update();
167
+ var _a, _b, _c;
168
+ (_a = hue.value) == null ? void 0 : _a.update();
169
+ (_b = svPanel.value) == null ? void 0 : _b.update();
170
+ (_c = alpha.value) == null ? void 0 : _c.update();
168
171
  });
169
172
  });
170
173
  provide(OPTIONS_KEY, {
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../../../packages/components/color-picker/src/index.vue"],"sourcesContent":["<template>\n <el-tooltip\n ref=\"popper\"\n v-model:visible=\"showPicker\"\n :show-arrow=\"false\"\n :fallback-placements=\"['bottom', 'top', 'right', 'left']\"\n :offset=\"0\"\n :gpu-acceleration=\"false\"\n :popper-class=\"`el-color-picker__panel el-color-dropdown ${popperClass}`\"\n :stop-popper-mouse-event=\"false\"\n effect=\"light\"\n trigger=\"click\"\n transition=\"el-zoom-in-top\"\n persistent\n >\n <template #content>\n <div v-click-outside=\"hide\">\n <div class=\"el-color-dropdown__main-wrapper\">\n <hue-slider ref=\"hue\" class=\"hue-slider\" :color=\"color\" vertical />\n <sv-panel ref=\"svPanel\" :color=\"color\" />\n </div>\n <alpha-slider v-if=\"showAlpha\" ref=\"alpha\" :color=\"color\" />\n <predefine\n v-if=\"predefine\"\n ref=\"predefine\"\n :color=\"color\"\n :colors=\"predefine\"\n />\n <div class=\"el-color-dropdown__btns\">\n <span class=\"el-color-dropdown__value\">\n <el-input\n v-model=\"customInput\"\n :validate-event=\"false\"\n size=\"small\"\n @keyup.enter=\"handleConfirm\"\n @blur=\"handleConfirm\"\n />\n </span>\n <el-button\n size=\"small\"\n type=\"text\"\n class=\"el-color-dropdown__link-btn\"\n @click=\"clear\"\n >\n {{ t('el.colorpicker.clear') }}\n </el-button>\n <el-button\n plain\n size=\"small\"\n class=\"el-color-dropdown__btn\"\n @click=\"confirmValue\"\n >\n {{ t('el.colorpicker.confirm') }}\n </el-button>\n </div>\n </div>\n </template>\n <template #default>\n <div\n :class=\"[\n 'el-color-picker',\n colorDisabled ? 'is-disabled' : '',\n colorSize ? `el-color-picker--${colorSize}` : '',\n ]\"\n >\n <div v-if=\"colorDisabled\" class=\"el-color-picker__mask\"></div>\n <div class=\"el-color-picker__trigger\" @click=\"handleTrigger\">\n <span\n class=\"el-color-picker__color\"\n :class=\"{ 'is-alpha': showAlpha }\"\n >\n <span\n class=\"el-color-picker__color-inner\"\n :style=\"{\n backgroundColor: displayedColor,\n }\"\n >\n <el-icon\n v-show=\"modelValue || showPanelColor\"\n class=\"el-color-picker__icon is-icon-arrow-down\"\n >\n <arrow-down />\n </el-icon>\n <el-icon\n v-if=\"!modelValue && !showPanelColor\"\n class=\"el-color-picker__empty is-icon-close\"\n >\n <close />\n </el-icon>\n </span>\n </span>\n </div>\n </div>\n </template>\n </el-tooltip>\n</template>\n\n<script lang=\"ts\">\nimport {\n computed,\n defineComponent,\n inject,\n nextTick,\n onMounted,\n provide,\n reactive,\n ref,\n watch,\n} from 'vue'\nimport debounce from 'lodash/debounce'\nimport ElButton from '@element-plus/components/button'\nimport ElIcon from '@element-plus/components/icon'\nimport { ClickOutside } from '@element-plus/directives'\nimport { elFormItemKey, elFormKey } from '@element-plus/tokens'\nimport { useLocale, useSize } from '@element-plus/hooks'\nimport ElTooltip from '@element-plus/components/tooltip'\nimport ElInput from '@element-plus/components/input'\nimport { UPDATE_MODEL_EVENT } from '@element-plus/utils/constants'\nimport { isValidComponentSize } from '@element-plus/utils/validators'\nimport { Close, ArrowDown } from '@element-plus/icons-vue'\nimport AlphaSlider from './components/alpha-slider.vue'\nimport HueSlider from './components/hue-slider.vue'\nimport Predefine from './components/predefine.vue'\nimport SvPanel from './components/sv-panel.vue'\nimport Color from './color'\nimport { OPTIONS_KEY } from './useOption'\n\nimport type { PropType } from 'vue'\nimport type { ElFormContext, ElFormItemContext } from '@element-plus/tokens'\nimport type { ComponentSize } from '@element-plus/utils/types'\nimport type { IUseOptions } from './useOption'\n\nexport default defineComponent({\n name: 'ElColorPicker',\n components: {\n ElButton,\n ElTooltip,\n ElInput,\n ElIcon,\n Close,\n ArrowDown,\n SvPanel,\n HueSlider,\n AlphaSlider,\n Predefine,\n },\n directives: {\n ClickOutside,\n },\n props: {\n modelValue: String,\n showAlpha: Boolean,\n colorFormat: String,\n disabled: Boolean,\n size: {\n type: String as PropType<ComponentSize>,\n validator: isValidComponentSize,\n },\n popperClass: String,\n predefine: Array,\n },\n emits: ['change', 'active-change', UPDATE_MODEL_EVENT],\n setup(props, { emit }) {\n const { t } = useLocale()\n const elForm = inject(elFormKey, {} as ElFormContext)\n const elFormItem = inject(elFormItemKey, {} as ElFormItemContext)\n\n const hue = ref(null)\n const svPanel = ref(null)\n const alpha = ref(null)\n const popper = ref(null)\n // data\n const color = reactive(\n new Color({\n enableAlpha: props.showAlpha,\n format: props.colorFormat,\n value: props.modelValue,\n })\n )\n const showPicker = ref(false)\n const showPanelColor = ref(false)\n const customInput = ref('')\n // computed\n const displayedColor = computed(() => {\n if (!props.modelValue && !showPanelColor.value) {\n return 'transparent'\n }\n return displayedRgb(color, props.showAlpha)\n })\n const colorSize = useSize()\n const colorDisabled = computed(() => {\n return props.disabled || elForm.disabled\n })\n\n const currentColor = computed(() => {\n return !props.modelValue && !showPanelColor.value ? '' : color.value\n })\n // watch\n watch(\n () => props.modelValue,\n (newVal) => {\n if (!newVal) {\n showPanelColor.value = false\n } else if (newVal && newVal !== color.value) {\n color.fromString(newVal)\n }\n }\n )\n watch(\n () => currentColor.value,\n (val) => {\n customInput.value = val\n emit('active-change', val)\n }\n )\n\n watch(\n () => color.value,\n () => {\n if (!props.modelValue && !showPanelColor.value) {\n showPanelColor.value = true\n }\n }\n )\n\n // methods\n function displayedRgb(color, showAlpha) {\n if (!(color instanceof Color)) {\n throw Error('color should be instance of _color Class')\n }\n\n const { r, g, b } = color.toRgb()\n return showAlpha\n ? `rgba(${r}, ${g}, ${b}, ${color.get('alpha') / 100})`\n : `rgb(${r}, ${g}, ${b})`\n }\n\n function setShowPicker(value) {\n showPicker.value = value\n }\n\n const debounceSetShowPicker = debounce(setShowPicker, 100)\n\n function hide() {\n debounceSetShowPicker(false)\n resetColor()\n }\n\n function resetColor() {\n nextTick(() => {\n if (props.modelValue) {\n color.fromString(props.modelValue)\n } else {\n showPanelColor.value = false\n }\n })\n }\n\n function handleTrigger() {\n if (colorDisabled.value) return\n debounceSetShowPicker(!showPicker.value)\n }\n\n function handleConfirm() {\n color.fromString(customInput.value)\n }\n\n function confirmValue() {\n const value = color.value\n emit(UPDATE_MODEL_EVENT, value)\n emit('change', value)\n elFormItem.validate?.('change')\n debounceSetShowPicker(false)\n // check if modelValue change, if not change, then reset color.\n nextTick(() => {\n const newColor = new Color({\n enableAlpha: props.showAlpha,\n format: props.colorFormat,\n value: props.modelValue,\n })\n if (!color.compare(newColor)) {\n resetColor()\n }\n })\n }\n\n function clear() {\n debounceSetShowPicker(false)\n emit(UPDATE_MODEL_EVENT, null)\n emit('change', null)\n if (props.modelValue !== null) {\n elFormItem.validate?.('change')\n }\n resetColor()\n }\n\n onMounted(() => {\n if (props.modelValue) {\n customInput.value = currentColor.value\n }\n })\n watch(\n () => showPicker.value,\n () => {\n nextTick(() => {\n hue.value?.update()\n svPanel.value?.update()\n alpha.value?.update()\n })\n }\n )\n\n provide<IUseOptions>(OPTIONS_KEY, {\n currentColor,\n })\n\n return {\n color: color as Color,\n colorDisabled,\n colorSize,\n displayedColor,\n showPanelColor,\n showPicker,\n customInput,\n handleConfirm,\n hide,\n handleTrigger,\n clear,\n confirmValue,\n t,\n hue,\n svPanel,\n alpha,\n popper,\n }\n },\n})\n</script>\n"],"names":["_openBlock","_createBlock","_createCommentVNode","_withKeys","_withCtx"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../../packages/components/color-picker/src/index.vue"],"sourcesContent":["<template>\n <el-tooltip\n ref=\"popper\"\n v-model:visible=\"showPicker\"\n :show-arrow=\"false\"\n :fallback-placements=\"['bottom', 'top', 'right', 'left']\"\n :offset=\"0\"\n :gpu-acceleration=\"false\"\n :popper-class=\"`el-color-picker__panel el-color-dropdown ${popperClass}`\"\n :stop-popper-mouse-event=\"false\"\n effect=\"light\"\n trigger=\"click\"\n transition=\"el-zoom-in-top\"\n persistent\n >\n <template #content>\n <div v-click-outside=\"hide\">\n <div class=\"el-color-dropdown__main-wrapper\">\n <hue-slider ref=\"hue\" class=\"hue-slider\" :color=\"color\" vertical />\n <sv-panel ref=\"svPanel\" :color=\"color\" />\n </div>\n <alpha-slider v-if=\"showAlpha\" ref=\"alpha\" :color=\"color\" />\n <predefine\n v-if=\"predefine\"\n ref=\"predefine\"\n :color=\"color\"\n :colors=\"predefine\"\n />\n <div class=\"el-color-dropdown__btns\">\n <span class=\"el-color-dropdown__value\">\n <el-input\n v-model=\"customInput\"\n :validate-event=\"false\"\n size=\"small\"\n @keyup.enter=\"handleConfirm\"\n @blur=\"handleConfirm\"\n />\n </span>\n <el-button\n size=\"small\"\n type=\"text\"\n class=\"el-color-dropdown__link-btn\"\n @click=\"clear\"\n >\n {{ t('el.colorpicker.clear') }}\n </el-button>\n <el-button\n plain\n size=\"small\"\n class=\"el-color-dropdown__btn\"\n @click=\"confirmValue\"\n >\n {{ t('el.colorpicker.confirm') }}\n </el-button>\n </div>\n </div>\n </template>\n <template #default>\n <div\n :class=\"[\n 'el-color-picker',\n colorDisabled ? 'is-disabled' : '',\n colorSize ? `el-color-picker--${colorSize}` : '',\n ]\"\n >\n <div v-if=\"colorDisabled\" class=\"el-color-picker__mask\"></div>\n <div class=\"el-color-picker__trigger\" @click=\"handleTrigger\">\n <span\n class=\"el-color-picker__color\"\n :class=\"{ 'is-alpha': showAlpha }\"\n >\n <span\n class=\"el-color-picker__color-inner\"\n :style=\"{\n backgroundColor: displayedColor,\n }\"\n >\n <el-icon\n v-show=\"modelValue || showPanelColor\"\n class=\"el-color-picker__icon is-icon-arrow-down\"\n >\n <arrow-down />\n </el-icon>\n <el-icon\n v-if=\"!modelValue && !showPanelColor\"\n class=\"el-color-picker__empty is-icon-close\"\n >\n <close />\n </el-icon>\n </span>\n </span>\n </div>\n </div>\n </template>\n </el-tooltip>\n</template>\n\n<script lang=\"ts\">\nimport {\n computed,\n defineComponent,\n inject,\n nextTick,\n onMounted,\n provide,\n reactive,\n ref,\n watch,\n} from 'vue'\nimport debounce from 'lodash/debounce'\nimport ElButton from '@element-plus/components/button'\nimport ElIcon from '@element-plus/components/icon'\nimport { ClickOutside } from '@element-plus/directives'\nimport { elFormItemKey, elFormKey } from '@element-plus/tokens'\nimport { useLocale, useSize } from '@element-plus/hooks'\nimport ElTooltip from '@element-plus/components/tooltip'\nimport ElInput from '@element-plus/components/input'\nimport { UPDATE_MODEL_EVENT } from '@element-plus/utils/constants'\nimport { isValidComponentSize } from '@element-plus/utils/validators'\nimport { Close, ArrowDown } from '@element-plus/icons-vue'\nimport AlphaSlider from './components/alpha-slider.vue'\nimport HueSlider from './components/hue-slider.vue'\nimport Predefine from './components/predefine.vue'\nimport SvPanel from './components/sv-panel.vue'\nimport Color from './color'\nimport { OPTIONS_KEY } from './useOption'\n\nimport type { PropType } from 'vue'\nimport type { ElFormContext, ElFormItemContext } from '@element-plus/tokens'\nimport type { ComponentSize } from '@element-plus/utils/types'\nimport type { IUseOptions } from './useOption'\n\nexport default defineComponent({\n name: 'ElColorPicker',\n components: {\n ElButton,\n ElTooltip,\n ElInput,\n ElIcon,\n Close,\n ArrowDown,\n SvPanel,\n HueSlider,\n AlphaSlider,\n Predefine,\n },\n directives: {\n ClickOutside,\n },\n props: {\n modelValue: String,\n showAlpha: Boolean,\n colorFormat: String,\n disabled: Boolean,\n size: {\n type: String as PropType<ComponentSize>,\n validator: isValidComponentSize,\n },\n popperClass: String,\n predefine: Array,\n },\n emits: ['change', 'active-change', UPDATE_MODEL_EVENT],\n setup(props, { emit }) {\n const { t } = useLocale()\n const elForm = inject(elFormKey, {} as ElFormContext)\n const elFormItem = inject(elFormItemKey, {} as ElFormItemContext)\n\n const hue = ref(null)\n const svPanel = ref(null)\n const alpha = ref(null)\n const popper = ref(null)\n // data\n const color = reactive(\n new Color({\n enableAlpha: props.showAlpha,\n format: props.colorFormat,\n value: props.modelValue,\n })\n )\n const showPicker = ref(false)\n const showPanelColor = ref(false)\n const customInput = ref('')\n // computed\n const displayedColor = computed(() => {\n if (!props.modelValue && !showPanelColor.value) {\n return 'transparent'\n }\n return displayedRgb(color, props.showAlpha)\n })\n const colorSize = useSize()\n const colorDisabled = computed(() => {\n return props.disabled || elForm.disabled\n })\n\n const currentColor = computed(() => {\n return !props.modelValue && !showPanelColor.value ? '' : color.value\n })\n // watch\n watch(\n () => props.modelValue,\n (newVal) => {\n if (!newVal) {\n showPanelColor.value = false\n } else if (newVal && newVal !== color.value) {\n color.fromString(newVal)\n }\n }\n )\n watch(\n () => currentColor.value,\n (val) => {\n customInput.value = val\n emit('active-change', val)\n }\n )\n\n watch(\n () => color.value,\n () => {\n if (!props.modelValue && !showPanelColor.value) {\n showPanelColor.value = true\n }\n }\n )\n\n // methods\n function displayedRgb(color, showAlpha) {\n if (!(color instanceof Color)) {\n throw Error('color should be instance of _color Class')\n }\n\n const { r, g, b } = color.toRgb()\n return showAlpha\n ? `rgba(${r}, ${g}, ${b}, ${color.get('alpha') / 100})`\n : `rgb(${r}, ${g}, ${b})`\n }\n\n function setShowPicker(value) {\n showPicker.value = value\n }\n\n const debounceSetShowPicker = debounce(setShowPicker, 100)\n\n function hide() {\n debounceSetShowPicker(false)\n resetColor()\n }\n\n function resetColor() {\n nextTick(() => {\n if (props.modelValue) {\n color.fromString(props.modelValue)\n } else {\n showPanelColor.value = false\n }\n })\n }\n\n function handleTrigger() {\n if (colorDisabled.value) return\n debounceSetShowPicker(!showPicker.value)\n }\n\n function handleConfirm() {\n color.fromString(customInput.value)\n }\n\n function confirmValue() {\n const value = color.value\n emit(UPDATE_MODEL_EVENT, value)\n emit('change', value)\n elFormItem.validate?.('change')\n debounceSetShowPicker(false)\n // check if modelValue change, if not change, then reset color.\n nextTick(() => {\n const newColor = new Color({\n enableAlpha: props.showAlpha,\n format: props.colorFormat,\n value: props.modelValue,\n })\n if (!color.compare(newColor)) {\n resetColor()\n }\n })\n }\n\n function clear() {\n debounceSetShowPicker(false)\n emit(UPDATE_MODEL_EVENT, null)\n emit('change', null)\n if (props.modelValue !== null) {\n elFormItem.validate?.('change')\n }\n resetColor()\n }\n\n onMounted(() => {\n if (props.modelValue) {\n customInput.value = currentColor.value\n }\n })\n watch(\n () => showPicker.value,\n () => {\n nextTick(() => {\n hue.value?.update()\n svPanel.value?.update()\n alpha.value?.update()\n })\n }\n )\n\n provide<IUseOptions>(OPTIONS_KEY, {\n currentColor,\n })\n\n return {\n color: color as Color,\n colorDisabled,\n colorSize,\n displayedColor,\n showPanelColor,\n showPicker,\n customInput,\n handleConfirm,\n hide,\n handleTrigger,\n clear,\n confirmValue,\n t,\n hue,\n svPanel,\n alpha,\n popper,\n }\n },\n})\n</script>\n"],"names":[],"mappings":"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"}
@@ -64,6 +64,7 @@ const _sfc_main = defineComponent({
64
64
  return WEEKS_CONSTANT.concat(WEEKS_CONSTANT).slice(firstDayOfWeek, firstDayOfWeek + 7);
65
65
  });
66
66
  const rows = computed(() => {
67
+ var _a;
67
68
  const startOfMonth = props.date.startOf("month");
68
69
  const startOfMonthDay = startOfMonth.day() || 7;
69
70
  const dateCountOfMonth = startOfMonth.daysInMonth();
@@ -103,7 +104,7 @@ const _sfc_main = defineComponent({
103
104
  cell.type = "normal";
104
105
  const calEndDate = props.rangeState.endDate || props.maxDate || props.rangeState.selecting && props.minDate;
105
106
  cell.inRange = props.minDate && calTime.isSameOrAfter(props.minDate, "day") && calEndDate && calTime.isSameOrBefore(calEndDate, "day") || props.minDate && calTime.isSameOrBefore(props.minDate, "day") && calEndDate && calTime.isSameOrAfter(calEndDate, "day");
106
- if (props.minDate?.isSameOrAfter(calEndDate)) {
107
+ if ((_a = props.minDate) == null ? void 0 : _a.isSameOrAfter(calEndDate)) {
107
108
  cell.start = calEndDate && calTime.isSame(calEndDate, "day");
108
109
  cell.end = props.minDate && calTime.isSame(props.minDate, "day");
109
110
  } else {
@@ -1 +1 @@
1
- {"version":3,"file":"basic-date-table.mjs","sources":["../../../../../../../packages/components/date-picker/src/date-picker-com/basic-date-table.vue"],"sourcesContent":["<template>\n <table\n cellspacing=\"0\"\n cellpadding=\"0\"\n class=\"el-date-table\"\n :class=\"{ 'is-week-mode': selectionMode === 'week' }\"\n @click=\"handleClick\"\n @mousemove=\"handleMouseMove\"\n >\n <tbody>\n <tr>\n <th v-if=\"showWeekNumber\">{{ t('el.datepicker.week') }}</th>\n <th v-for=\"(week, key) in WEEKS\" :key=\"key\">\n {{ t('el.datepicker.weeks.' + week) }}\n </th>\n </tr>\n <tr\n v-for=\"(row, key) in rows\"\n :key=\"key\"\n class=\"el-date-table__row\"\n :class=\"{ current: isWeekActive(row[1]) }\"\n >\n <td\n v-for=\"(cell, key_) in row\"\n :key=\"key_\"\n :class=\"getCellClasses(cell)\"\n >\n <el-date-picker-cell :cell=\"cell\" />\n </td>\n </tr>\n </tbody>\n </table>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, computed, ref } from 'vue'\nimport dayjs from 'dayjs'\nimport { useLocale } from '@element-plus/hooks'\nimport { coerceTruthyValueToArray } from '@element-plus/utils/util'\nimport ElDatePickerCell from './basic-cell-render'\nimport type { PropType } from 'vue'\n\nimport type { Dayjs } from 'dayjs'\nimport type { DateCell } from '../date-picker.type'\n\nexport default defineComponent({\n components: {\n ElDatePickerCell,\n },\n props: {\n date: {\n type: Object as PropType<Dayjs>,\n },\n minDate: {\n type: Object as PropType<Dayjs>,\n },\n maxDate: {\n type: Object as PropType<Dayjs>,\n },\n parsedValue: {\n type: [Object, Array] as PropType<Dayjs | Dayjs[]>,\n },\n selectionMode: {\n type: String,\n default: 'day',\n },\n showWeekNumber: {\n type: Boolean,\n default: false,\n },\n disabledDate: {\n type: Function,\n },\n cellClassName: {\n type: Function,\n },\n rangeState: {\n type: Object,\n default: () => ({\n endDate: null,\n selecting: false,\n }),\n },\n },\n emits: ['changerange', 'pick', 'select'],\n\n setup(props, ctx) {\n const { t, lang } = useLocale()\n // data\n const lastRow = ref(null)\n const lastColumn = ref(null)\n const tableRows = ref<DateCell[][]>([[], [], [], [], [], []])\n\n // todo better way to get Day.js locale object\n const firstDayOfWeek = (props.date as any).$locale().weekStart || 7\n const WEEKS_CONSTANT = props.date\n .locale('en')\n .localeData()\n .weekdaysShort()\n .map((_) => _.toLowerCase())\n\n const offsetDay = computed(() => {\n // Sunday 7(0), cal the left and right offset days, 3217654, such as Monday is -1, the is to adjust the position of the first two rows of dates\n return firstDayOfWeek > 3 ? 7 - firstDayOfWeek : -firstDayOfWeek\n })\n\n const startDate = computed(() => {\n const startDayOfMonth = props.date.startOf('month')\n return startDayOfMonth.subtract(startDayOfMonth.day() || 7, 'day')\n })\n\n const WEEKS = computed(() => {\n return WEEKS_CONSTANT.concat(WEEKS_CONSTANT).slice(\n firstDayOfWeek,\n firstDayOfWeek + 7\n )\n })\n\n const rows = computed(() => {\n // TODO: refactory rows / getCellClasses\n const startOfMonth = props.date.startOf('month')\n const startOfMonthDay = startOfMonth.day() || 7 // day of first day\n const dateCountOfMonth = startOfMonth.daysInMonth()\n const dateCountOfLastMonth = startOfMonth\n .subtract(1, 'month')\n .daysInMonth()\n\n const offset = offsetDay.value\n const rows_ = tableRows.value\n let count = 1\n\n const selectedDate: Dayjs[] =\n props.selectionMode === 'dates'\n ? coerceTruthyValueToArray(props.parsedValue)\n : []\n\n const calNow = dayjs().locale(lang.value).startOf('day')\n\n for (let i = 0; i < 6; i++) {\n const row = rows_[i]\n\n if (props.showWeekNumber) {\n if (!row[0]) {\n row[0] = {\n type: 'week',\n text: startDate.value.add(i * 7 + 1, 'day').week(),\n }\n }\n }\n\n for (let j = 0; j < 7; j++) {\n let cell = row[props.showWeekNumber ? j + 1 : j]\n if (!cell) {\n cell = {\n row: i,\n column: j,\n type: 'normal',\n inRange: false,\n start: false,\n end: false,\n }\n }\n const index = i * 7 + j\n const calTime = startDate.value.add(index - offset, 'day')\n cell.dayjs = calTime\n cell.date = calTime.toDate()\n cell.timestamp = calTime.valueOf()\n cell.type = 'normal'\n\n const calEndDate =\n props.rangeState.endDate ||\n props.maxDate ||\n (props.rangeState.selecting && props.minDate)\n\n cell.inRange =\n (props.minDate &&\n calTime.isSameOrAfter(props.minDate, 'day') &&\n calEndDate &&\n calTime.isSameOrBefore(calEndDate, 'day')) ||\n (props.minDate &&\n calTime.isSameOrBefore(props.minDate, 'day') &&\n calEndDate &&\n calTime.isSameOrAfter(calEndDate, 'day'))\n\n if (props.minDate?.isSameOrAfter(calEndDate)) {\n cell.start = calEndDate && calTime.isSame(calEndDate, 'day')\n cell.end = props.minDate && calTime.isSame(props.minDate, 'day')\n } else {\n cell.start = props.minDate && calTime.isSame(props.minDate, 'day')\n cell.end = calEndDate && calTime.isSame(calEndDate, 'day')\n }\n\n const isToday = calTime.isSame(calNow, 'day')\n\n if (isToday) {\n cell.type = 'today'\n }\n\n if (i >= 0 && i <= 1) {\n const numberOfDaysFromPreviousMonth =\n startOfMonthDay + offset < 0\n ? 7 + startOfMonthDay + offset\n : startOfMonthDay + offset\n\n if (j + i * 7 >= numberOfDaysFromPreviousMonth) {\n cell.text = count++\n } else {\n cell.text =\n dateCountOfLastMonth -\n (numberOfDaysFromPreviousMonth - (j % 7)) +\n 1 +\n i * 7\n cell.type = 'prev-month'\n }\n } else {\n if (count <= dateCountOfMonth) {\n cell.text = count++\n } else {\n cell.text = count++ - dateCountOfMonth\n cell.type = 'next-month'\n }\n }\n\n const cellDate = calTime.toDate()\n cell.selected = selectedDate.find(\n (_) => _.valueOf() === calTime.valueOf()\n )\n cell.isSelected = !!cell.selected\n cell.isCurrent = isCurrent(cell)\n cell.disabled = props.disabledDate && props.disabledDate(cellDate)\n cell.customClass =\n props.cellClassName && props.cellClassName(cellDate)\n row[props.showWeekNumber ? j + 1 : j] = cell\n }\n\n if (props.selectionMode === 'week') {\n const start = props.showWeekNumber ? 1 : 0\n const end = props.showWeekNumber ? 7 : 6\n const isActive = isWeekActive(row[start + 1])\n row[start].inRange = isActive\n row[start].start = isActive\n row[end].inRange = isActive\n row[end].end = isActive\n }\n }\n return rows_\n })\n\n const isCurrent = (cell): boolean => {\n return (\n props.selectionMode === 'day' &&\n (cell.type === 'normal' || cell.type === 'today') &&\n cellMatchesDate(cell, props.parsedValue)\n )\n }\n\n const cellMatchesDate = (cell, date) => {\n if (!date) return false\n return dayjs(date)\n .locale(lang.value)\n .isSame(props.date.date(Number(cell.text)), 'day')\n }\n\n const getCellClasses = (cell) => {\n const classes: string[] = []\n if ((cell.type === 'normal' || cell.type === 'today') && !cell.disabled) {\n classes.push('available')\n if (cell.type === 'today') {\n classes.push('today')\n }\n } else {\n classes.push(cell.type)\n }\n\n if (isCurrent(cell)) {\n classes.push('current')\n }\n\n if (\n cell.inRange &&\n (cell.type === 'normal' ||\n cell.type === 'today' ||\n props.selectionMode === 'week')\n ) {\n classes.push('in-range')\n\n if (cell.start) {\n classes.push('start-date')\n }\n\n if (cell.end) {\n classes.push('end-date')\n }\n }\n\n if (cell.disabled) {\n classes.push('disabled')\n }\n\n if (cell.selected) {\n classes.push('selected')\n }\n\n if (cell.customClass) {\n classes.push(cell.customClass)\n }\n\n return classes.join(' ')\n }\n\n const getDateOfCell = (row, column) => {\n const offsetFromStart =\n row * 7 + (column - (props.showWeekNumber ? 1 : 0)) - offsetDay.value\n return startDate.value.add(offsetFromStart, 'day')\n }\n\n const handleMouseMove = (event) => {\n if (!props.rangeState.selecting) return\n\n let target = event.target\n if (target.tagName === 'SPAN') {\n target = target.parentNode.parentNode\n }\n if (target.tagName === 'DIV') {\n target = target.parentNode\n }\n if (target.tagName !== 'TD') return\n\n const row = target.parentNode.rowIndex - 1\n const column = target.cellIndex\n\n // can not select disabled date\n if (rows.value[row][column].disabled) return\n\n // only update rangeState when mouse moves to a new cell\n // this avoids frequent Date object creation and improves performance\n if (row !== lastRow.value || column !== lastColumn.value) {\n lastRow.value = row\n lastColumn.value = column\n ctx.emit('changerange', {\n selecting: true,\n endDate: getDateOfCell(row, column),\n })\n }\n }\n\n const handleClick = (event) => {\n let target = event.target\n\n while (target) {\n if (target.tagName === 'TD') {\n break\n }\n target = target.parentNode\n }\n\n if (!target || target.tagName !== 'TD') return\n\n const row = target.parentNode.rowIndex - 1\n const column = target.cellIndex\n const cell = rows.value[row][column]\n\n if (cell.disabled || cell.type === 'week') return\n\n const newDate = getDateOfCell(row, column)\n\n if (props.selectionMode === 'range') {\n if (!props.rangeState.selecting) {\n ctx.emit('pick', { minDate: newDate, maxDate: null })\n ctx.emit('select', true)\n } else {\n if (newDate >= props.minDate) {\n ctx.emit('pick', { minDate: props.minDate, maxDate: newDate })\n } else {\n ctx.emit('pick', { minDate: newDate, maxDate: props.minDate })\n }\n ctx.emit('select', false)\n }\n } else if (props.selectionMode === 'day') {\n ctx.emit('pick', newDate)\n } else if (props.selectionMode === 'week') {\n const weekNumber = newDate.week()\n const value = `${newDate.year()}w${weekNumber}`\n ctx.emit('pick', {\n year: newDate.year(),\n week: weekNumber,\n value,\n date: newDate.startOf('week'),\n })\n } else if (props.selectionMode === 'dates') {\n const newValue = cell.selected\n ? coerceTruthyValueToArray(props.parsedValue).filter(\n (_) => _.valueOf() !== newDate.valueOf()\n )\n : coerceTruthyValueToArray(props.parsedValue).concat([newDate])\n ctx.emit('pick', newValue)\n }\n }\n\n const isWeekActive = (cell) => {\n if (props.selectionMode !== 'week') return false\n let newDate = props.date.startOf('day')\n\n if (cell.type === 'prev-month') {\n newDate = newDate.subtract(1, 'month')\n }\n\n if (cell.type === 'next-month') {\n newDate = newDate.add(1, 'month')\n }\n\n newDate = newDate.date(parseInt(cell.text, 10))\n\n if (props.parsedValue && !Array.isArray(props.parsedValue)) {\n const dayOffset =\n ((props.parsedValue.day() - firstDayOfWeek + 7) % 7) - 1\n const weekDate = props.parsedValue.subtract(dayOffset, 'day')\n return weekDate.isSame(newDate, 'day')\n }\n return false\n }\n\n return {\n handleMouseMove,\n t,\n rows,\n isWeekActive,\n getCellClasses,\n WEEKS,\n handleClick,\n }\n },\n})\n</script>\n"],"names":["_openBlock","_createElementBlock","_normalizeClass","_renderList","_Fragment"],"mappings":"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"}
1
+ {"version":3,"file":"basic-date-table.mjs","sources":["../../../../../../../packages/components/date-picker/src/date-picker-com/basic-date-table.vue"],"sourcesContent":["<template>\n <table\n cellspacing=\"0\"\n cellpadding=\"0\"\n class=\"el-date-table\"\n :class=\"{ 'is-week-mode': selectionMode === 'week' }\"\n @click=\"handleClick\"\n @mousemove=\"handleMouseMove\"\n >\n <tbody>\n <tr>\n <th v-if=\"showWeekNumber\">{{ t('el.datepicker.week') }}</th>\n <th v-for=\"(week, key) in WEEKS\" :key=\"key\">\n {{ t('el.datepicker.weeks.' + week) }}\n </th>\n </tr>\n <tr\n v-for=\"(row, key) in rows\"\n :key=\"key\"\n class=\"el-date-table__row\"\n :class=\"{ current: isWeekActive(row[1]) }\"\n >\n <td\n v-for=\"(cell, key_) in row\"\n :key=\"key_\"\n :class=\"getCellClasses(cell)\"\n >\n <el-date-picker-cell :cell=\"cell\" />\n </td>\n </tr>\n </tbody>\n </table>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, computed, ref } from 'vue'\nimport dayjs from 'dayjs'\nimport { useLocale } from '@element-plus/hooks'\nimport { coerceTruthyValueToArray } from '@element-plus/utils/util'\nimport ElDatePickerCell from './basic-cell-render'\nimport type { PropType } from 'vue'\n\nimport type { Dayjs } from 'dayjs'\nimport type { DateCell } from '../date-picker.type'\n\nexport default defineComponent({\n components: {\n ElDatePickerCell,\n },\n props: {\n date: {\n type: Object as PropType<Dayjs>,\n },\n minDate: {\n type: Object as PropType<Dayjs>,\n },\n maxDate: {\n type: Object as PropType<Dayjs>,\n },\n parsedValue: {\n type: [Object, Array] as PropType<Dayjs | Dayjs[]>,\n },\n selectionMode: {\n type: String,\n default: 'day',\n },\n showWeekNumber: {\n type: Boolean,\n default: false,\n },\n disabledDate: {\n type: Function,\n },\n cellClassName: {\n type: Function,\n },\n rangeState: {\n type: Object,\n default: () => ({\n endDate: null,\n selecting: false,\n }),\n },\n },\n emits: ['changerange', 'pick', 'select'],\n\n setup(props, ctx) {\n const { t, lang } = useLocale()\n // data\n const lastRow = ref(null)\n const lastColumn = ref(null)\n const tableRows = ref<DateCell[][]>([[], [], [], [], [], []])\n\n // todo better way to get Day.js locale object\n const firstDayOfWeek = (props.date as any).$locale().weekStart || 7\n const WEEKS_CONSTANT = props.date\n .locale('en')\n .localeData()\n .weekdaysShort()\n .map((_) => _.toLowerCase())\n\n const offsetDay = computed(() => {\n // Sunday 7(0), cal the left and right offset days, 3217654, such as Monday is -1, the is to adjust the position of the first two rows of dates\n return firstDayOfWeek > 3 ? 7 - firstDayOfWeek : -firstDayOfWeek\n })\n\n const startDate = computed(() => {\n const startDayOfMonth = props.date.startOf('month')\n return startDayOfMonth.subtract(startDayOfMonth.day() || 7, 'day')\n })\n\n const WEEKS = computed(() => {\n return WEEKS_CONSTANT.concat(WEEKS_CONSTANT).slice(\n firstDayOfWeek,\n firstDayOfWeek + 7\n )\n })\n\n const rows = computed(() => {\n // TODO: refactory rows / getCellClasses\n const startOfMonth = props.date.startOf('month')\n const startOfMonthDay = startOfMonth.day() || 7 // day of first day\n const dateCountOfMonth = startOfMonth.daysInMonth()\n const dateCountOfLastMonth = startOfMonth\n .subtract(1, 'month')\n .daysInMonth()\n\n const offset = offsetDay.value\n const rows_ = tableRows.value\n let count = 1\n\n const selectedDate: Dayjs[] =\n props.selectionMode === 'dates'\n ? coerceTruthyValueToArray(props.parsedValue)\n : []\n\n const calNow = dayjs().locale(lang.value).startOf('day')\n\n for (let i = 0; i < 6; i++) {\n const row = rows_[i]\n\n if (props.showWeekNumber) {\n if (!row[0]) {\n row[0] = {\n type: 'week',\n text: startDate.value.add(i * 7 + 1, 'day').week(),\n }\n }\n }\n\n for (let j = 0; j < 7; j++) {\n let cell = row[props.showWeekNumber ? j + 1 : j]\n if (!cell) {\n cell = {\n row: i,\n column: j,\n type: 'normal',\n inRange: false,\n start: false,\n end: false,\n }\n }\n const index = i * 7 + j\n const calTime = startDate.value.add(index - offset, 'day')\n cell.dayjs = calTime\n cell.date = calTime.toDate()\n cell.timestamp = calTime.valueOf()\n cell.type = 'normal'\n\n const calEndDate =\n props.rangeState.endDate ||\n props.maxDate ||\n (props.rangeState.selecting && props.minDate)\n\n cell.inRange =\n (props.minDate &&\n calTime.isSameOrAfter(props.minDate, 'day') &&\n calEndDate &&\n calTime.isSameOrBefore(calEndDate, 'day')) ||\n (props.minDate &&\n calTime.isSameOrBefore(props.minDate, 'day') &&\n calEndDate &&\n calTime.isSameOrAfter(calEndDate, 'day'))\n\n if (props.minDate?.isSameOrAfter(calEndDate)) {\n cell.start = calEndDate && calTime.isSame(calEndDate, 'day')\n cell.end = props.minDate && calTime.isSame(props.minDate, 'day')\n } else {\n cell.start = props.minDate && calTime.isSame(props.minDate, 'day')\n cell.end = calEndDate && calTime.isSame(calEndDate, 'day')\n }\n\n const isToday = calTime.isSame(calNow, 'day')\n\n if (isToday) {\n cell.type = 'today'\n }\n\n if (i >= 0 && i <= 1) {\n const numberOfDaysFromPreviousMonth =\n startOfMonthDay + offset < 0\n ? 7 + startOfMonthDay + offset\n : startOfMonthDay + offset\n\n if (j + i * 7 >= numberOfDaysFromPreviousMonth) {\n cell.text = count++\n } else {\n cell.text =\n dateCountOfLastMonth -\n (numberOfDaysFromPreviousMonth - (j % 7)) +\n 1 +\n i * 7\n cell.type = 'prev-month'\n }\n } else {\n if (count <= dateCountOfMonth) {\n cell.text = count++\n } else {\n cell.text = count++ - dateCountOfMonth\n cell.type = 'next-month'\n }\n }\n\n const cellDate = calTime.toDate()\n cell.selected = selectedDate.find(\n (_) => _.valueOf() === calTime.valueOf()\n )\n cell.isSelected = !!cell.selected\n cell.isCurrent = isCurrent(cell)\n cell.disabled = props.disabledDate && props.disabledDate(cellDate)\n cell.customClass =\n props.cellClassName && props.cellClassName(cellDate)\n row[props.showWeekNumber ? j + 1 : j] = cell\n }\n\n if (props.selectionMode === 'week') {\n const start = props.showWeekNumber ? 1 : 0\n const end = props.showWeekNumber ? 7 : 6\n const isActive = isWeekActive(row[start + 1])\n row[start].inRange = isActive\n row[start].start = isActive\n row[end].inRange = isActive\n row[end].end = isActive\n }\n }\n return rows_\n })\n\n const isCurrent = (cell): boolean => {\n return (\n props.selectionMode === 'day' &&\n (cell.type === 'normal' || cell.type === 'today') &&\n cellMatchesDate(cell, props.parsedValue)\n )\n }\n\n const cellMatchesDate = (cell, date) => {\n if (!date) return false\n return dayjs(date)\n .locale(lang.value)\n .isSame(props.date.date(Number(cell.text)), 'day')\n }\n\n const getCellClasses = (cell) => {\n const classes: string[] = []\n if ((cell.type === 'normal' || cell.type === 'today') && !cell.disabled) {\n classes.push('available')\n if (cell.type === 'today') {\n classes.push('today')\n }\n } else {\n classes.push(cell.type)\n }\n\n if (isCurrent(cell)) {\n classes.push('current')\n }\n\n if (\n cell.inRange &&\n (cell.type === 'normal' ||\n cell.type === 'today' ||\n props.selectionMode === 'week')\n ) {\n classes.push('in-range')\n\n if (cell.start) {\n classes.push('start-date')\n }\n\n if (cell.end) {\n classes.push('end-date')\n }\n }\n\n if (cell.disabled) {\n classes.push('disabled')\n }\n\n if (cell.selected) {\n classes.push('selected')\n }\n\n if (cell.customClass) {\n classes.push(cell.customClass)\n }\n\n return classes.join(' ')\n }\n\n const getDateOfCell = (row, column) => {\n const offsetFromStart =\n row * 7 + (column - (props.showWeekNumber ? 1 : 0)) - offsetDay.value\n return startDate.value.add(offsetFromStart, 'day')\n }\n\n const handleMouseMove = (event) => {\n if (!props.rangeState.selecting) return\n\n let target = event.target\n if (target.tagName === 'SPAN') {\n target = target.parentNode.parentNode\n }\n if (target.tagName === 'DIV') {\n target = target.parentNode\n }\n if (target.tagName !== 'TD') return\n\n const row = target.parentNode.rowIndex - 1\n const column = target.cellIndex\n\n // can not select disabled date\n if (rows.value[row][column].disabled) return\n\n // only update rangeState when mouse moves to a new cell\n // this avoids frequent Date object creation and improves performance\n if (row !== lastRow.value || column !== lastColumn.value) {\n lastRow.value = row\n lastColumn.value = column\n ctx.emit('changerange', {\n selecting: true,\n endDate: getDateOfCell(row, column),\n })\n }\n }\n\n const handleClick = (event) => {\n let target = event.target\n\n while (target) {\n if (target.tagName === 'TD') {\n break\n }\n target = target.parentNode\n }\n\n if (!target || target.tagName !== 'TD') return\n\n const row = target.parentNode.rowIndex - 1\n const column = target.cellIndex\n const cell = rows.value[row][column]\n\n if (cell.disabled || cell.type === 'week') return\n\n const newDate = getDateOfCell(row, column)\n\n if (props.selectionMode === 'range') {\n if (!props.rangeState.selecting) {\n ctx.emit('pick', { minDate: newDate, maxDate: null })\n ctx.emit('select', true)\n } else {\n if (newDate >= props.minDate) {\n ctx.emit('pick', { minDate: props.minDate, maxDate: newDate })\n } else {\n ctx.emit('pick', { minDate: newDate, maxDate: props.minDate })\n }\n ctx.emit('select', false)\n }\n } else if (props.selectionMode === 'day') {\n ctx.emit('pick', newDate)\n } else if (props.selectionMode === 'week') {\n const weekNumber = newDate.week()\n const value = `${newDate.year()}w${weekNumber}`\n ctx.emit('pick', {\n year: newDate.year(),\n week: weekNumber,\n value,\n date: newDate.startOf('week'),\n })\n } else if (props.selectionMode === 'dates') {\n const newValue = cell.selected\n ? coerceTruthyValueToArray(props.parsedValue).filter(\n (_) => _.valueOf() !== newDate.valueOf()\n )\n : coerceTruthyValueToArray(props.parsedValue).concat([newDate])\n ctx.emit('pick', newValue)\n }\n }\n\n const isWeekActive = (cell) => {\n if (props.selectionMode !== 'week') return false\n let newDate = props.date.startOf('day')\n\n if (cell.type === 'prev-month') {\n newDate = newDate.subtract(1, 'month')\n }\n\n if (cell.type === 'next-month') {\n newDate = newDate.add(1, 'month')\n }\n\n newDate = newDate.date(parseInt(cell.text, 10))\n\n if (props.parsedValue && !Array.isArray(props.parsedValue)) {\n const dayOffset =\n ((props.parsedValue.day() - firstDayOfWeek + 7) % 7) - 1\n const weekDate = props.parsedValue.subtract(dayOffset, 'day')\n return weekDate.isSame(newDate, 'day')\n }\n return false\n }\n\n return {\n handleMouseMove,\n t,\n rows,\n isWeekActive,\n getCellClasses,\n WEEKS,\n handleClick,\n }\n },\n})\n</script>\n"],"names":["_openBlock"],"mappings":";;;;;;;;AA6CA,MAAK,YAAa,gBAAa;AAAA,EAC7B,YAAY;AAAA,IACV;AAAA;AAAA,EAEF,OAAO;AAAA,IACL,MAAM;AAAA,MACJ,MAAM;AAAA;AAAA,IAER,SAAS;AAAA,MACP,MAAM;AAAA;AAAA,IAER,SAAS;AAAA,MACP,MAAM;AAAA;AAAA,IAER,aAAa;AAAA,MACX,MAAM,CAAC,QAAQ;AAAA;AAAA,IAEjB,eAAe;AAAA,MACb,MAAM;AAAA,MACN,SAAS;AAAA;AAAA,IAEX,gBAAgB;AAAA,MACd,MAAM;AAAA,MACN,SAAS;AAAA;AAAA,IAEX,cAAc;AAAA,MACZ,MAAM;AAAA;AAAA,IAER,eAAe;AAAA,MACb,MAAM;AAAA;AAAA,IAER,YAAY;AAAA,MACV,MAAM;AAAA,MACN,SAAS;AAAO,QACd,SAAS;AAAA,QACT,WAAW;AAAA;AAAA;AAAA;AAAA,EAIjB,OAAO,CAAC,eAAe,QAAQ;AAAA,EAE/B,MAAM,OAAO,KAAK;AAChB,UAAM,EAAE,GAAG,SAAS;AAEpB,UAAM,UAAU,IAAI;AACpB,UAAM,aAAa,IAAI;AACvB,UAAM,YAAY,IAAkB,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI;AAGzD,UAAM,iBAAkB,MAAM,KAAa,UAAU,aAAa;AAClE,UAAM,iBAAiB,MAAM,KAC1B,OAAO,MACP,aACA,gBACA,IAAI,CAAC,MAAM,EAAE;AAEhB,UAAM,YAAY,SAAS,MAAM;AAE/B,aAAO,iBAAiB,IAAI,IAAI,iBAAiB,CAAC;AAAA;AAGpD,UAAM,YAAY,SAAS,MAAM;AAC/B,YAAM,kBAAkB,MAAM,KAAK,QAAQ;AAC3C,aAAO,gBAAgB,SAAS,gBAAgB,SAAS,GAAG;AAAA;AAG9D,UAAM,QAAQ,SAAS,MAAM;AAC3B,aAAO,eAAe,OAAO,gBAAgB,MAC3C,gBACA,iBAAiB;AAAA;AAIrB,UAAM,OAAO,SAAS,MAAM;AAE1B,YAAM;AACN,YAAM;AACN,YAAM;AACN,YAAM,6CACM;AAGZ,YAAM;AACN,YAAM,kBAAkB;AACxB;AAEA;AAKA,YAAM;AAEN,0BAAoB,GAAG;AACrB,oBAAY,MAAM;AAElB;AACE;AACE,qBAAS;AAAA;AACD,cACN,MAAM;AAAsC;AAAA;AAAA;AAKlD;AACE,qBAAW,IAAI,MAAM;AACrB,cAAI,OAAO;AACT,mBAAO;AAAA,mBACA;AAAA,cACL;AAAQ,cACR,MAAM;AAAA,cACN;AAAS,cACT,OAAO;AAAA,cACP,KAAK;AAAA;AAAA;AAGT;AACA,gBAAM;AACN,uBAAa;AACb,eAAK,eAAe;AACpB,eAAK;AACL,eAAK;AAEL;AAKA,sEAEgC,SAAS;AAQzC,cAAI;AACF,iBAAK,QAAQ,6BAA6B;AAC1C,iBAAK;AAAqD,iBACrD;AACL,iBAAK;AACL,iBAAK;AAA+C;AAGtD;AAEA,uBAAa;AACX;AAAY;AAGd;AACE;AAKA;AACE;AAAY,mBACP;AACL,mBAAK;AAKL,mBAAK,OAAO;AAAA;AAAA;AAGd;AACE;AAAY,mBACP;AACL,mBAAK;AACL,mBAAK,OAAO;AAAA;AAAA;AAIhB;AACA,4CACE;AAEF,eAAK;AACL,eAAK;AACL,eAAK;AACL,eAAK;AAEL,cAAI;AAAoC;AAG1C;AACE;AACA,gBAAM;AACN,gBAAM,WAAW;AACjB;AACA,cAAI,OAAO;AACX,cAAI,KAAK,UAAU;AACnB,cAAI,KAAK;AAAM;AAAA;AAGnB;AAAO;AAGT;AACE,mBACQ;AAEsB;AAIhC;AACE,UAAI;AAAO,eAAO;AAClB;AAE8C;AAGhD;AACE;AACA,yBAAmB;AACjB,gBAAQ;AACR;AACE;AAAa;AAAA;AAGf;AAAkB;AAGpB;AACE;AAAa;AAGf;AAME;AAEA;AACE;AAAa;AAGf;AACE;AAAa;AAAA;AAIjB;AACE;AAAa;AAGf;AACE;AAAa;AAGf;AACE,0BAAkB;AAAA;AAGpB;AAAoB;AAGtB;AACE,8BACE;AACF,iCAA2B;AAAiB;AAG9C;AACE,UAAI,kBAAkB;AAAW;AAEjC;AACA,UAAI;AACF,iBAAS,OAAO,WAAW;AAAA;AAE7B;AACE,iBAAS,OAAO;AAAA;AAElB;AAA6B;AAE7B;AACA,YAAM;AAGN,qBAAe;AAAuB;AAItC;AACE;AACA,2BAAmB;AACnB;AAAwB;AACX,UACX,SAAS;AAAmB;AAAA;AAAA;AAKlC;AACE,UAAI,eAAe;AAEnB;AACE,mBAAW;AACT;AAAA;AAEF;AAAgB;AAGlB;AAAwC;AAExC;AACA,YAAM;AACN,YAAM;AAEN,yCAAmC;AAAQ;AAE3C;AAEA;AACE,yCAAiC;AAC/B,mBAAS,UAAU;AACnB,cAAI,KAAK,UAAU;AAAA;AAEnB;AACE,qBAAS,UAAU,SAAS;AAAwB;AAEpD;AAAoD;AAEtD;AAAmB;AAAA;AAGrB,iBAAS;AAAQ,iBACR,MAAM;AACf;AACA,cAAM;AACN,yBAAiB;AAAA,gBACT;AAAQ,UACd,MAAM;AAAA,UACN;AAAA,UACA;AAAsB;AAAA;AAGxB,yCACI;AAIJ,yBAAiB;AAAA;AAAA;AAIrB;AACE,UAAI;AAAgC,eAAO;AAC3C,oBAAc;AAEd,UAAI,4BAA4B;AAC9B,sCAA8B;AAAA;AAGhC;AACE;AAAyB;AAG3B;AAEA,gBAAU,sBAAsB,cAAc;AAC5C,6CACsB;AACtB,cAAM;AACN,+BAAuB;AAAS;AAElC;AAAO;AAGT;AAAO;AACL,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA;AAAA;;;;;AA3aa;AACH,IACZ,aAAK;AAAA,IAEJ;AAAO,IACP;AAAW;;AAEZ;AAMO;AAJqB;AACxB,8DAAqC;;;;;;AAM5B;AACT;;;;AAKY,mBACJA;AAAA;;AAEN;;;;;;;;;;;;;"}
@@ -50,6 +50,7 @@ const _sfc_main = defineComponent({
50
50
  const lastRow = ref(null);
51
51
  const lastColumn = ref(null);
52
52
  const rows = computed(() => {
53
+ var _a;
53
54
  const rows2 = tableRows.value;
54
55
  const now = dayjs().locale(lang.value).startOf("month");
55
56
  for (let i = 0; i < 3; i++) {
@@ -71,7 +72,7 @@ const _sfc_main = defineComponent({
71
72
  const calTime = props.date.startOf("year").month(index);
72
73
  const calEndDate = props.rangeState.endDate || props.maxDate || props.rangeState.selecting && props.minDate;
73
74
  cell.inRange = props.minDate && calTime.isSameOrAfter(props.minDate, "month") && calEndDate && calTime.isSameOrBefore(calEndDate, "month") || props.minDate && calTime.isSameOrBefore(props.minDate, "month") && calEndDate && calTime.isSameOrAfter(calEndDate, "month");
74
- if (props.minDate?.isSameOrAfter(calEndDate)) {
75
+ if ((_a = props.minDate) == null ? void 0 : _a.isSameOrAfter(calEndDate)) {
75
76
  cell.start = calEndDate && calTime.isSame(calEndDate, "month");
76
77
  cell.end = props.minDate && calTime.isSame(props.minDate, "month");
77
78
  } else {
@@ -1 +1 @@
1
- {"version":3,"file":"basic-month-table.mjs","sources":["../../../../../../../packages/components/date-picker/src/date-picker-com/basic-month-table.vue"],"sourcesContent":["<template>\n <table\n class=\"el-month-table\"\n @click=\"handleMonthTableClick\"\n @mousemove=\"handleMouseMove\"\n >\n <tbody>\n <tr v-for=\"(row, key) in rows\" :key=\"key\">\n <td v-for=\"(cell, key_) in row\" :key=\"key_\" :class=\"getCellStyle(cell)\">\n <div>\n <a class=\"cell\">{{\n t('el.datepicker.months.' + months[cell.text])\n }}</a>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, computed, ref } from 'vue'\nimport dayjs from 'dayjs'\nimport { useLocale } from '@element-plus/hooks'\nimport { rangeArr } from '@element-plus/components/time-picker'\nimport { hasClass } from '@element-plus/utils/dom'\nimport { coerceTruthyValueToArray } from '@element-plus/utils/util'\n\nimport type { PropType } from 'vue'\nimport type { Dayjs } from 'dayjs'\n\nconst datesInMonth = (year: number, month: number, lang: string) => {\n const firstDay = dayjs().locale(lang).startOf('month').month(month).year(year)\n const numOfDays = firstDay.daysInMonth()\n return rangeArr(numOfDays).map((n) => firstDay.add(n, 'day').toDate())\n}\n\nexport default defineComponent({\n props: {\n disabledDate: {\n type: Function as PropType<(_: Date) => void>,\n },\n selectionMode: {\n type: String,\n default: 'month',\n },\n minDate: {\n type: Object as PropType<Dayjs>,\n },\n maxDate: {\n type: Object as PropType<Dayjs>,\n },\n date: {\n type: Object as PropType<Dayjs>,\n },\n parsedValue: {\n type: Object as PropType<Dayjs>,\n },\n rangeState: {\n type: Object,\n default: () => ({\n endDate: null,\n selecting: false,\n }),\n },\n },\n\n emits: ['changerange', 'pick', 'select'],\n\n setup(props, ctx) {\n const { t, lang } = useLocale()\n const months = ref(\n props.date\n .locale('en')\n .localeData()\n .monthsShort()\n .map((_) => _.toLowerCase())\n )\n const tableRows = ref([[], [], []])\n const lastRow = ref(null)\n const lastColumn = ref(null)\n const rows = computed(() => {\n // TODO: refactory rows / getCellClasses\n const rows = tableRows.value\n const now = dayjs().locale(lang.value).startOf('month')\n\n for (let i = 0; i < 3; i++) {\n const row = rows[i]\n for (let j = 0; j < 4; j++) {\n let cell = row[j]\n if (!cell) {\n cell = {\n row: i,\n column: j,\n type: 'normal',\n inRange: false,\n start: false,\n end: false,\n }\n }\n\n cell.type = 'normal'\n\n const index = i * 4 + j\n const calTime = props.date.startOf('year').month(index)\n\n const calEndDate =\n props.rangeState.endDate ||\n props.maxDate ||\n (props.rangeState.selecting && props.minDate)\n\n cell.inRange =\n (props.minDate &&\n calTime.isSameOrAfter(props.minDate, 'month') &&\n calEndDate &&\n calTime.isSameOrBefore(calEndDate, 'month')) ||\n (props.minDate &&\n calTime.isSameOrBefore(props.minDate, 'month') &&\n calEndDate &&\n calTime.isSameOrAfter(calEndDate, 'month'))\n\n if (props.minDate?.isSameOrAfter(calEndDate)) {\n cell.start = calEndDate && calTime.isSame(calEndDate, 'month')\n cell.end = props.minDate && calTime.isSame(props.minDate, 'month')\n } else {\n cell.start = props.minDate && calTime.isSame(props.minDate, 'month')\n cell.end = calEndDate && calTime.isSame(calEndDate, 'month')\n }\n\n const isToday = now.isSame(calTime)\n\n if (isToday) {\n cell.type = 'today'\n }\n cell.text = index\n const cellDate = calTime.toDate()\n cell.disabled = props.disabledDate && props.disabledDate(cellDate)\n row[j] = cell\n }\n }\n return rows\n })\n const getCellStyle = (cell) => {\n const style = {} as any\n const year = props.date.year()\n const today = new Date()\n const month = cell.text\n\n style.disabled = props.disabledDate\n ? datesInMonth(year, month, lang.value).every(props.disabledDate)\n : false\n style.current =\n coerceTruthyValueToArray(props.parsedValue).findIndex(\n (date) => date.year() === year && date.month() === month\n ) >= 0\n style.today = today.getFullYear() === year && today.getMonth() === month\n\n if (cell.inRange) {\n style['in-range'] = true\n\n if (cell.start) {\n style['start-date'] = true\n }\n\n if (cell.end) {\n style['end-date'] = true\n }\n }\n return style\n }\n\n const handleMouseMove = (event) => {\n if (!props.rangeState.selecting) return\n\n let target = event.target\n if (target.tagName === 'A') {\n target = target.parentNode.parentNode\n }\n if (target.tagName === 'DIV') {\n target = target.parentNode\n }\n if (target.tagName !== 'TD') return\n\n const row = target.parentNode.rowIndex\n const column = target.cellIndex\n // can not select disabled date\n if (rows.value[row][column].disabled) return\n\n // only update rangeState when mouse moves to a new cell\n // this avoids frequent Date object creation and improves performance\n if (row !== lastRow.value || column !== lastColumn.value) {\n lastRow.value = row\n lastColumn.value = column\n ctx.emit('changerange', {\n selecting: true,\n endDate: props.date.startOf('year').month(row * 4 + column),\n })\n }\n }\n const handleMonthTableClick = (event) => {\n let target = event.target\n if (target.tagName === 'A') {\n target = target.parentNode.parentNode\n }\n if (target.tagName === 'DIV') {\n target = target.parentNode\n }\n if (target.tagName !== 'TD') return\n if (hasClass(target, 'disabled')) return\n const column = target.cellIndex\n const row = target.parentNode.rowIndex\n const month = row * 4 + column\n const newDate = props.date.startOf('year').month(month)\n if (props.selectionMode === 'range') {\n if (!props.rangeState.selecting) {\n ctx.emit('pick', { minDate: newDate, maxDate: null })\n ctx.emit('select', true)\n } else {\n if (newDate >= props.minDate) {\n ctx.emit('pick', { minDate: props.minDate, maxDate: newDate })\n } else {\n ctx.emit('pick', { minDate: newDate, maxDate: props.minDate })\n }\n ctx.emit('select', false)\n }\n } else {\n ctx.emit('pick', month)\n }\n }\n\n return {\n handleMouseMove,\n handleMonthTableClick,\n rows,\n getCellStyle,\n t,\n months,\n }\n },\n})\n</script>\n"],"names":["_openBlock","_createElementBlock","_renderList","_Fragment"],"mappings":"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"}
1
+ {"version":3,"file":"basic-month-table.mjs","sources":["../../../../../../../packages/components/date-picker/src/date-picker-com/basic-month-table.vue"],"sourcesContent":["<template>\n <table\n class=\"el-month-table\"\n @click=\"handleMonthTableClick\"\n @mousemove=\"handleMouseMove\"\n >\n <tbody>\n <tr v-for=\"(row, key) in rows\" :key=\"key\">\n <td v-for=\"(cell, key_) in row\" :key=\"key_\" :class=\"getCellStyle(cell)\">\n <div>\n <a class=\"cell\">{{\n t('el.datepicker.months.' + months[cell.text])\n }}</a>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, computed, ref } from 'vue'\nimport dayjs from 'dayjs'\nimport { useLocale } from '@element-plus/hooks'\nimport { rangeArr } from '@element-plus/components/time-picker'\nimport { hasClass } from '@element-plus/utils/dom'\nimport { coerceTruthyValueToArray } from '@element-plus/utils/util'\n\nimport type { PropType } from 'vue'\nimport type { Dayjs } from 'dayjs'\n\nconst datesInMonth = (year: number, month: number, lang: string) => {\n const firstDay = dayjs().locale(lang).startOf('month').month(month).year(year)\n const numOfDays = firstDay.daysInMonth()\n return rangeArr(numOfDays).map((n) => firstDay.add(n, 'day').toDate())\n}\n\nexport default defineComponent({\n props: {\n disabledDate: {\n type: Function as PropType<(_: Date) => void>,\n },\n selectionMode: {\n type: String,\n default: 'month',\n },\n minDate: {\n type: Object as PropType<Dayjs>,\n },\n maxDate: {\n type: Object as PropType<Dayjs>,\n },\n date: {\n type: Object as PropType<Dayjs>,\n },\n parsedValue: {\n type: Object as PropType<Dayjs>,\n },\n rangeState: {\n type: Object,\n default: () => ({\n endDate: null,\n selecting: false,\n }),\n },\n },\n\n emits: ['changerange', 'pick', 'select'],\n\n setup(props, ctx) {\n const { t, lang } = useLocale()\n const months = ref(\n props.date\n .locale('en')\n .localeData()\n .monthsShort()\n .map((_) => _.toLowerCase())\n )\n const tableRows = ref([[], [], []])\n const lastRow = ref(null)\n const lastColumn = ref(null)\n const rows = computed(() => {\n // TODO: refactory rows / getCellClasses\n const rows = tableRows.value\n const now = dayjs().locale(lang.value).startOf('month')\n\n for (let i = 0; i < 3; i++) {\n const row = rows[i]\n for (let j = 0; j < 4; j++) {\n let cell = row[j]\n if (!cell) {\n cell = {\n row: i,\n column: j,\n type: 'normal',\n inRange: false,\n start: false,\n end: false,\n }\n }\n\n cell.type = 'normal'\n\n const index = i * 4 + j\n const calTime = props.date.startOf('year').month(index)\n\n const calEndDate =\n props.rangeState.endDate ||\n props.maxDate ||\n (props.rangeState.selecting && props.minDate)\n\n cell.inRange =\n (props.minDate &&\n calTime.isSameOrAfter(props.minDate, 'month') &&\n calEndDate &&\n calTime.isSameOrBefore(calEndDate, 'month')) ||\n (props.minDate &&\n calTime.isSameOrBefore(props.minDate, 'month') &&\n calEndDate &&\n calTime.isSameOrAfter(calEndDate, 'month'))\n\n if (props.minDate?.isSameOrAfter(calEndDate)) {\n cell.start = calEndDate && calTime.isSame(calEndDate, 'month')\n cell.end = props.minDate && calTime.isSame(props.minDate, 'month')\n } else {\n cell.start = props.minDate && calTime.isSame(props.minDate, 'month')\n cell.end = calEndDate && calTime.isSame(calEndDate, 'month')\n }\n\n const isToday = now.isSame(calTime)\n\n if (isToday) {\n cell.type = 'today'\n }\n cell.text = index\n const cellDate = calTime.toDate()\n cell.disabled = props.disabledDate && props.disabledDate(cellDate)\n row[j] = cell\n }\n }\n return rows\n })\n const getCellStyle = (cell) => {\n const style = {} as any\n const year = props.date.year()\n const today = new Date()\n const month = cell.text\n\n style.disabled = props.disabledDate\n ? datesInMonth(year, month, lang.value).every(props.disabledDate)\n : false\n style.current =\n coerceTruthyValueToArray(props.parsedValue).findIndex(\n (date) => date.year() === year && date.month() === month\n ) >= 0\n style.today = today.getFullYear() === year && today.getMonth() === month\n\n if (cell.inRange) {\n style['in-range'] = true\n\n if (cell.start) {\n style['start-date'] = true\n }\n\n if (cell.end) {\n style['end-date'] = true\n }\n }\n return style\n }\n\n const handleMouseMove = (event) => {\n if (!props.rangeState.selecting) return\n\n let target = event.target\n if (target.tagName === 'A') {\n target = target.parentNode.parentNode\n }\n if (target.tagName === 'DIV') {\n target = target.parentNode\n }\n if (target.tagName !== 'TD') return\n\n const row = target.parentNode.rowIndex\n const column = target.cellIndex\n // can not select disabled date\n if (rows.value[row][column].disabled) return\n\n // only update rangeState when mouse moves to a new cell\n // this avoids frequent Date object creation and improves performance\n if (row !== lastRow.value || column !== lastColumn.value) {\n lastRow.value = row\n lastColumn.value = column\n ctx.emit('changerange', {\n selecting: true,\n endDate: props.date.startOf('year').month(row * 4 + column),\n })\n }\n }\n const handleMonthTableClick = (event) => {\n let target = event.target\n if (target.tagName === 'A') {\n target = target.parentNode.parentNode\n }\n if (target.tagName === 'DIV') {\n target = target.parentNode\n }\n if (target.tagName !== 'TD') return\n if (hasClass(target, 'disabled')) return\n const column = target.cellIndex\n const row = target.parentNode.rowIndex\n const month = row * 4 + column\n const newDate = props.date.startOf('year').month(month)\n if (props.selectionMode === 'range') {\n if (!props.rangeState.selecting) {\n ctx.emit('pick', { minDate: newDate, maxDate: null })\n ctx.emit('select', true)\n } else {\n if (newDate >= props.minDate) {\n ctx.emit('pick', { minDate: props.minDate, maxDate: newDate })\n } else {\n ctx.emit('pick', { minDate: newDate, maxDate: props.minDate })\n }\n ctx.emit('select', false)\n }\n } else {\n ctx.emit('pick', month)\n }\n }\n\n return {\n handleMouseMove,\n handleMonthTableClick,\n rows,\n getCellStyle,\n t,\n months,\n }\n },\n})\n</script>\n"],"names":["_openBlock"],"mappings":"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"}
@@ -177,7 +177,7 @@ const _sfc_main = defineComponent({
177
177
  currentView.value = "date";
178
178
  }, { immediate: true });
179
179
  watch(() => currentView.value, () => {
180
- popper?.updatePopper();
180
+ popper == null ? void 0 : popper.updatePopper();
181
181
  });
182
182
  const hasShortcuts = computed(() => !!shortcuts.length);
183
183
  const handleMonthPick = (month2) => {
@@ -1 +1 @@
1
- {"version":3,"file":"panel-date-pick.mjs","sources":["../../../../../../../packages/components/date-picker/src/date-picker-com/panel-date-pick.vue"],"sourcesContent":["<template>\n <div\n class=\"el-picker-panel el-date-picker\"\n :class=\"[\n {\n 'has-sidebar': $slots.sidebar || hasShortcuts,\n 'has-time': showTime,\n },\n ]\"\n >\n <div class=\"el-picker-panel__body-wrapper\">\n <slot name=\"sidebar\" class=\"el-picker-panel__sidebar\"></slot>\n <div v-if=\"hasShortcuts\" class=\"el-picker-panel__sidebar\">\n <button\n v-for=\"(shortcut, key) in shortcuts\"\n :key=\"key\"\n type=\"button\"\n class=\"el-picker-panel__shortcut\"\n @click=\"handleShortcutClick(shortcut)\"\n >\n {{ shortcut.text }}\n </button>\n </div>\n <div class=\"el-picker-panel__body\">\n <div v-if=\"showTime\" class=\"el-date-picker__time-header\">\n <span class=\"el-date-picker__editor-wrap\">\n <el-input\n :placeholder=\"t('el.datepicker.selectDate')\"\n :model-value=\"visibleDate\"\n size=\"small\"\n @input=\"(val) => (userInputDate = val)\"\n @change=\"handleVisibleDateChange\"\n />\n </span>\n <span\n v-clickoutside=\"handleTimePickClose\"\n class=\"el-date-picker__editor-wrap\"\n >\n <el-input\n :placeholder=\"t('el.datepicker.selectTime')\"\n :model-value=\"visibleTime\"\n size=\"small\"\n @focus=\"onTimePickerInputFocus\"\n @input=\"(val) => (userInputTime = val)\"\n @change=\"handleVisibleTimeChange\"\n />\n <time-pick-panel\n :visible=\"timePickerVisible\"\n :format=\"timeFormat\"\n :time-arrow-control=\"arrowControl\"\n :parsed-value=\"innerDate\"\n @pick=\"handleTimePick\"\n />\n </span>\n </div>\n <div\n v-show=\"currentView !== 'time'\"\n class=\"el-date-picker__header\"\n :class=\"{\n 'el-date-picker__header--bordered':\n currentView === 'year' || currentView === 'month',\n }\"\n >\n <button\n type=\"button\"\n :aria-label=\"t(`el.datepicker.prevYear`)\"\n class=\"el-picker-panel__icon-btn el-date-picker__prev-btn d-arrow-left\"\n @click=\"prevYear_\"\n >\n <el-icon><d-arrow-left /></el-icon>\n </button>\n <button\n v-show=\"currentView === 'date'\"\n type=\"button\"\n :aria-label=\"t(`el.datepicker.prevMonth`)\"\n class=\"el-picker-panel__icon-btn el-date-picker__prev-btn arrow-left\"\n @click=\"prevMonth_\"\n >\n <el-icon><arrow-left /></el-icon>\n </button>\n <span\n role=\"button\"\n class=\"el-date-picker__header-label\"\n @click=\"showYearPicker\"\n >{{ yearLabel }}</span\n >\n <span\n v-show=\"currentView === 'date'\"\n role=\"button\"\n class=\"el-date-picker__header-label\"\n :class=\"{ active: currentView === 'month' }\"\n @click=\"showMonthPicker\"\n >{{ t(`el.datepicker.month${month + 1}`) }}</span\n >\n <button\n type=\"button\"\n :aria-label=\"t(`el.datepicker.nextYear`)\"\n class=\"el-picker-panel__icon-btn el-date-picker__next-btn d-arrow-right\"\n @click=\"nextYear_\"\n >\n <el-icon><d-arrow-right /></el-icon>\n </button>\n <button\n v-show=\"currentView === 'date'\"\n type=\"button\"\n :aria-label=\"t(`el.datepicker.nextMonth`)\"\n class=\"el-picker-panel__icon-btn el-date-picker__next-btn arrow-right\"\n @click=\"nextMonth_\"\n >\n <el-icon><arrow-right /></el-icon>\n </button>\n </div>\n <div class=\"el-picker-panel__content\">\n <date-table\n v-if=\"currentView === 'date'\"\n :selection-mode=\"selectionMode\"\n :date=\"innerDate\"\n :parsed-value=\"parsedValue\"\n :disabled-date=\"disabledDate\"\n @pick=\"handleDatePick\"\n />\n <year-table\n v-if=\"currentView === 'year'\"\n :date=\"innerDate\"\n :disabled-date=\"disabledDate\"\n :parsed-value=\"parsedValue\"\n @pick=\"handleYearPick\"\n />\n <month-table\n v-if=\"currentView === 'month'\"\n :date=\"innerDate\"\n :parsed-value=\"parsedValue\"\n :disabled-date=\"disabledDate\"\n @pick=\"handleMonthPick\"\n />\n </div>\n </div>\n </div>\n <div\n v-show=\"footerVisible && currentView === 'date'\"\n class=\"el-picker-panel__footer\"\n >\n <el-button\n v-show=\"selectionMode !== 'dates'\"\n size=\"small\"\n type=\"text\"\n class=\"el-picker-panel__link-btn\"\n @click=\"changeToNow\"\n >\n {{ t('el.datepicker.now') }}\n </el-button>\n <el-button\n plain\n size=\"small\"\n class=\"el-picker-panel__link-btn\"\n @click=\"onConfirm\"\n >\n {{ t('el.datepicker.confirm') }}\n </el-button>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, inject, ref, watch, toRef } from 'vue'\nimport dayjs from 'dayjs'\nimport ElButton from '@element-plus/components/button'\nimport { ClickOutside } from '@element-plus/directives'\nimport { useLocale } from '@element-plus/hooks'\nimport ElInput from '@element-plus/components/input'\nimport {\n extractDateFormat,\n extractTimeFormat,\n TimePickPanel,\n} from '@element-plus/components/time-picker'\nimport { ElIcon } from '@element-plus/components/icon'\nimport { EVENT_CODE } from '@element-plus/utils/aria'\nimport { isValidDatePickType } from '@element-plus/utils/validators'\nimport {\n DArrowLeft,\n ArrowLeft,\n DArrowRight,\n ArrowRight,\n} from '@element-plus/icons-vue'\nimport { TOOLTIP_INJECTION_KEY } from '@element-plus/components/tooltip'\nimport DateTable from './basic-date-table.vue'\nimport MonthTable from './basic-month-table.vue'\nimport YearTable from './basic-year-table.vue'\n\nimport type { PropType } from 'vue'\nimport type { ConfigType, Dayjs } from 'dayjs'\nimport type { IDatePickerType } from '../date-picker.type'\n\n// todo\n/* eslint-disable-next-line */\nconst timeWithinRange = (_: ConfigType, __: any, ___: string) => true\n\nexport default defineComponent({\n components: {\n DateTable,\n ElInput,\n ElButton,\n ElIcon,\n TimePickPanel,\n MonthTable,\n YearTable,\n DArrowLeft,\n ArrowLeft,\n DArrowRight,\n ArrowRight,\n },\n\n directives: { clickoutside: ClickOutside },\n props: {\n visible: {\n type: Boolean,\n default: false,\n },\n parsedValue: {\n type: [Object, Array] as PropType<Dayjs | Dayjs[]>,\n },\n format: {\n type: String,\n default: '',\n },\n type: {\n type: String as PropType<IDatePickerType>,\n required: true,\n validator: isValidDatePickType,\n },\n },\n emits: ['pick', 'set-picker-option', 'panel-change'],\n setup(props, ctx) {\n const { t, lang } = useLocale()\n const pickerBase = inject('EP_PICKER_BASE') as any\n const popper = inject(TOOLTIP_INJECTION_KEY)\n const {\n shortcuts,\n disabledDate,\n cellClassName,\n defaultTime,\n arrowControl,\n } = pickerBase.props\n const defaultValue = toRef(pickerBase.props, 'defaultValue')\n\n const innerDate = ref(dayjs().locale(lang.value))\n\n const defaultTimeD = computed(() => {\n return dayjs(defaultTime).locale(lang.value)\n })\n\n const month = computed(() => {\n return innerDate.value.month()\n })\n\n const year = computed(() => {\n return innerDate.value.year()\n })\n\n const selectableRange = ref([])\n const userInputDate = ref(null)\n const userInputTime = ref(null)\n // todo update to disableHour\n const checkDateWithinRange = (date: ConfigType) => {\n return selectableRange.value.length > 0\n ? timeWithinRange(\n date,\n selectableRange.value,\n props.format || 'HH:mm:ss'\n )\n : true\n }\n const formatEmit = (emitDayjs: Dayjs) => {\n if (defaultTime && !visibleTime.value) {\n return defaultTimeD.value\n .year(emitDayjs.year())\n .month(emitDayjs.month())\n .date(emitDayjs.date())\n }\n if (showTime.value) return emitDayjs.millisecond(0)\n return emitDayjs.startOf('day')\n }\n const emit = (value, ...args) => {\n if (!value) {\n ctx.emit('pick', value, ...args)\n } else if (Array.isArray(value)) {\n const dates = value.map(formatEmit)\n ctx.emit('pick', dates, ...args)\n } else {\n ctx.emit('pick', formatEmit(value), ...args)\n }\n userInputDate.value = null\n userInputTime.value = null\n }\n const handleDatePick = (value: Dayjs) => {\n if (selectionMode.value === 'day') {\n let newDate = props.parsedValue\n ? (props.parsedValue as Dayjs)\n .year(value.year())\n .month(value.month())\n .date(value.date())\n : value\n // change default time while out of selectableRange\n if (!checkDateWithinRange(newDate)) {\n newDate = (selectableRange.value[0][0] as Dayjs)\n .year(value.year())\n .month(value.month())\n .date(value.date())\n }\n innerDate.value = newDate\n emit(newDate, showTime.value)\n } else if (selectionMode.value === 'week') {\n emit(value.date)\n } else if (selectionMode.value === 'dates') {\n emit(value, true) // set false to keep panel open\n }\n }\n const prevMonth_ = () => {\n innerDate.value = innerDate.value.subtract(1, 'month')\n handlePanelChange('month')\n }\n\n const nextMonth_ = () => {\n innerDate.value = innerDate.value.add(1, 'month')\n handlePanelChange('month')\n }\n\n const prevYear_ = () => {\n if (currentView.value === 'year') {\n innerDate.value = innerDate.value.subtract(10, 'year')\n } else {\n innerDate.value = innerDate.value.subtract(1, 'year')\n }\n handlePanelChange('year')\n }\n\n const nextYear_ = () => {\n if (currentView.value === 'year') {\n innerDate.value = innerDate.value.add(10, 'year')\n } else {\n innerDate.value = innerDate.value.add(1, 'year')\n }\n handlePanelChange('year')\n }\n\n const currentView = ref('date')\n\n const yearLabel = computed(() => {\n const yearTranslation = t('el.datepicker.year')\n if (currentView.value === 'year') {\n const startYear = Math.floor(year.value / 10) * 10\n if (yearTranslation) {\n return `${startYear} ${yearTranslation} - ${\n startYear + 9\n } ${yearTranslation}`\n }\n return `${startYear} - ${startYear + 9}`\n }\n return `${year.value} ${yearTranslation}`\n })\n\n const handleShortcutClick = (shortcut) => {\n const shortcutValue =\n typeof shortcut.value === 'function' ? shortcut.value() : shortcut.value\n if (shortcutValue) {\n emit(dayjs(shortcutValue).locale(lang.value))\n return\n }\n if (shortcut.onClick) {\n shortcut.onClick(ctx)\n }\n }\n\n const selectionMode = computed(() => {\n if (['week', 'month', 'year', 'dates'].includes(props.type)) {\n return props.type\n }\n return 'day'\n })\n\n watch(\n () => selectionMode.value,\n (val) => {\n if (['month', 'year'].includes(val)) {\n currentView.value = val\n return\n }\n currentView.value = 'date'\n },\n { immediate: true }\n )\n\n watch(\n () => currentView.value,\n () => {\n popper?.updatePopper()\n }\n )\n\n const hasShortcuts = computed(() => !!shortcuts.length)\n\n const handleMonthPick = (month) => {\n innerDate.value = innerDate.value.startOf('month').month(month)\n if (selectionMode.value === 'month') {\n emit(innerDate.value)\n } else {\n currentView.value = 'date'\n }\n handlePanelChange('month')\n }\n\n const handleYearPick = (year) => {\n if (selectionMode.value === 'year') {\n innerDate.value = innerDate.value.startOf('year').year(year)\n emit(innerDate.value)\n } else {\n innerDate.value = innerDate.value.year(year)\n currentView.value = 'month'\n }\n handlePanelChange('year')\n }\n\n const showMonthPicker = () => {\n currentView.value = 'month'\n }\n\n const showYearPicker = () => {\n currentView.value = 'year'\n }\n\n const showTime = computed(\n () => props.type === 'datetime' || props.type === 'datetimerange'\n )\n\n const footerVisible = computed(() => {\n return showTime.value || selectionMode.value === 'dates'\n })\n\n const onConfirm = () => {\n if (selectionMode.value === 'dates') {\n emit(props.parsedValue)\n } else {\n // deal with the scenario where: user opens the date time picker, then confirm without doing anything\n let result = props.parsedValue as Dayjs\n if (!result) {\n const defaultTimeD = dayjs(defaultTime).locale(lang.value)\n const defaultValueD = getDefaultValue()\n result = defaultTimeD\n .year(defaultValueD.year())\n .month(defaultValueD.month())\n .date(defaultValueD.date())\n }\n innerDate.value = result\n emit(result)\n }\n }\n\n const changeToNow = () => {\n // NOTE: not a permanent solution\n // consider disable \"now\" button in the future\n const now = dayjs().locale(lang.value)\n const nowDate = now.toDate()\n if (\n (!disabledDate || !disabledDate(nowDate)) &&\n checkDateWithinRange(nowDate)\n ) {\n innerDate.value = dayjs().locale(lang.value)\n emit(innerDate.value)\n }\n }\n\n const timeFormat = computed(() => {\n return extractTimeFormat(props.format)\n })\n\n const dateFormat = computed(() => {\n return extractDateFormat(props.format)\n })\n\n const visibleTime = computed(() => {\n if (userInputTime.value) return userInputTime.value\n if (!props.parsedValue && !defaultValue.value) return\n return ((props.parsedValue || innerDate.value) as Dayjs).format(\n timeFormat.value\n )\n })\n\n const visibleDate = computed(() => {\n if (userInputDate.value) return userInputDate.value\n if (!props.parsedValue && !defaultValue.value) return\n return ((props.parsedValue || innerDate.value) as Dayjs).format(\n dateFormat.value\n )\n })\n\n const timePickerVisible = ref(false)\n const onTimePickerInputFocus = () => {\n timePickerVisible.value = true\n }\n const handleTimePickClose = () => {\n timePickerVisible.value = false\n }\n\n const handleTimePick = (value, visible, first) => {\n const newDate = props.parsedValue\n ? (props.parsedValue as Dayjs)\n .hour(value.hour())\n .minute(value.minute())\n .second(value.second())\n : value\n innerDate.value = newDate\n emit(innerDate.value, true)\n if (!first) {\n timePickerVisible.value = visible\n }\n }\n\n const handleVisibleTimeChange = (value) => {\n const newDate = dayjs(value, timeFormat.value).locale(lang.value)\n if (newDate.isValid() && checkDateWithinRange(newDate)) {\n innerDate.value = newDate\n .year(innerDate.value.year())\n .month(innerDate.value.month())\n .date(innerDate.value.date())\n userInputTime.value = null\n timePickerVisible.value = false\n emit(innerDate.value, true)\n }\n }\n\n const handleVisibleDateChange = (value) => {\n const newDate = dayjs(value, dateFormat.value).locale(lang.value)\n if (newDate.isValid()) {\n if (disabledDate && disabledDate(newDate.toDate())) {\n return\n }\n innerDate.value = newDate\n .hour(innerDate.value.hour())\n .minute(innerDate.value.minute())\n .second(innerDate.value.second())\n userInputDate.value = null\n emit(innerDate.value, true)\n }\n }\n\n const isValidValue = (date: unknown) => {\n return (\n dayjs.isDayjs(date) &&\n date.isValid() &&\n (disabledDate ? !disabledDate(date.toDate()) : true)\n )\n }\n\n const formatToString = (value) => {\n if (selectionMode.value === 'dates') {\n return value.map((_) => _.format(props.format))\n }\n return value.format(props.format)\n }\n\n const parseUserInput = (value) => {\n return dayjs(value, props.format).locale(lang.value)\n }\n\n const getDefaultValue = () => {\n const parseDate = dayjs(defaultValue.value).locale(lang.value)\n if (!defaultValue.value) {\n const defaultTimeDValue = defaultTimeD.value\n return dayjs()\n .hour(defaultTimeDValue.hour())\n .minute(defaultTimeDValue.minute())\n .second(defaultTimeDValue.second())\n .locale(lang.value)\n }\n return parseDate\n }\n\n const handleKeydown = (event) => {\n const { code, keyCode } = event\n const list = [\n EVENT_CODE.up,\n EVENT_CODE.down,\n EVENT_CODE.left,\n EVENT_CODE.right,\n ]\n if (props.visible && !timePickerVisible.value) {\n if (list.includes(code)) {\n handleKeyControl(keyCode)\n event.stopPropagation()\n event.preventDefault()\n }\n if (\n code === EVENT_CODE.enter &&\n userInputDate.value === null &&\n userInputTime.value === null\n ) {\n // Enter\n emit(innerDate, false)\n }\n }\n }\n\n const handleKeyControl = (keyCode) => {\n const mapping = {\n year: {\n 38: -4,\n 40: 4,\n 37: -1,\n 39: 1,\n offset: (date, step) => date.setFullYear(date.getFullYear() + step),\n },\n month: {\n 38: -4,\n 40: 4,\n 37: -1,\n 39: 1,\n offset: (date, step) => date.setMonth(date.getMonth() + step),\n },\n week: {\n 38: -1,\n 40: 1,\n 37: -1,\n 39: 1,\n offset: (date, step) => date.setDate(date.getDate() + step * 7),\n },\n day: {\n 38: -7,\n 40: 7,\n 37: -1,\n 39: 1,\n offset: (date, step) => date.setDate(date.getDate() + step),\n },\n }\n\n const newDate = innerDate.value.toDate()\n while (Math.abs(innerDate.value.diff(newDate, 'year', true)) < 1) {\n const map = mapping[selectionMode.value]\n map.offset(newDate, map[keyCode])\n if (disabledDate && disabledDate(newDate)) {\n continue\n }\n const result = dayjs(newDate).locale(lang.value)\n innerDate.value = result\n ctx.emit('pick', result, true)\n break\n }\n }\n\n const handlePanelChange = (mode: 'month' | 'year') => {\n ctx.emit(\n 'panel-change',\n innerDate.value.toDate(),\n mode,\n currentView.value\n )\n }\n\n ctx.emit('set-picker-option', ['isValidValue', isValidValue])\n ctx.emit('set-picker-option', ['formatToString', formatToString])\n ctx.emit('set-picker-option', ['parseUserInput', parseUserInput])\n ctx.emit('set-picker-option', ['handleKeydown', handleKeydown])\n\n watch(\n () => defaultValue.value,\n (val) => {\n if (val) {\n innerDate.value = getDefaultValue()\n }\n },\n { immediate: true }\n )\n\n watch(\n () => props.parsedValue,\n (val) => {\n if (val) {\n if (selectionMode.value === 'dates') return\n if (Array.isArray(val)) return\n innerDate.value = val\n } else {\n innerDate.value = getDefaultValue()\n }\n },\n { immediate: true }\n )\n\n return {\n handleTimePick,\n handleTimePickClose,\n onTimePickerInputFocus,\n timePickerVisible,\n visibleTime,\n visibleDate,\n showTime,\n changeToNow,\n onConfirm,\n footerVisible,\n handleYearPick,\n showMonthPicker,\n showYearPicker,\n handleMonthPick,\n hasShortcuts,\n shortcuts,\n arrowControl,\n disabledDate,\n cellClassName,\n selectionMode,\n handleShortcutClick,\n prevYear_,\n nextYear_,\n prevMonth_,\n nextMonth_,\n innerDate,\n t,\n yearLabel,\n currentView,\n month,\n handleDatePick,\n handleVisibleTimeChange,\n handleVisibleDateChange,\n timeFormat,\n userInputTime,\n userInputDate,\n }\n },\n})\n</script>\n"],"names":["_openBlock","_Fragment","_createElementBlock","_createCommentVNode","_createElementVNode","_withCtx","_normalizeClass","_createVNode"],"mappings":"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"}
1
+ {"version":3,"file":"panel-date-pick.mjs","sources":["../../../../../../../packages/components/date-picker/src/date-picker-com/panel-date-pick.vue"],"sourcesContent":["<template>\n <div\n class=\"el-picker-panel el-date-picker\"\n :class=\"[\n {\n 'has-sidebar': $slots.sidebar || hasShortcuts,\n 'has-time': showTime,\n },\n ]\"\n >\n <div class=\"el-picker-panel__body-wrapper\">\n <slot name=\"sidebar\" class=\"el-picker-panel__sidebar\"></slot>\n <div v-if=\"hasShortcuts\" class=\"el-picker-panel__sidebar\">\n <button\n v-for=\"(shortcut, key) in shortcuts\"\n :key=\"key\"\n type=\"button\"\n class=\"el-picker-panel__shortcut\"\n @click=\"handleShortcutClick(shortcut)\"\n >\n {{ shortcut.text }}\n </button>\n </div>\n <div class=\"el-picker-panel__body\">\n <div v-if=\"showTime\" class=\"el-date-picker__time-header\">\n <span class=\"el-date-picker__editor-wrap\">\n <el-input\n :placeholder=\"t('el.datepicker.selectDate')\"\n :model-value=\"visibleDate\"\n size=\"small\"\n @input=\"(val) => (userInputDate = val)\"\n @change=\"handleVisibleDateChange\"\n />\n </span>\n <span\n v-clickoutside=\"handleTimePickClose\"\n class=\"el-date-picker__editor-wrap\"\n >\n <el-input\n :placeholder=\"t('el.datepicker.selectTime')\"\n :model-value=\"visibleTime\"\n size=\"small\"\n @focus=\"onTimePickerInputFocus\"\n @input=\"(val) => (userInputTime = val)\"\n @change=\"handleVisibleTimeChange\"\n />\n <time-pick-panel\n :visible=\"timePickerVisible\"\n :format=\"timeFormat\"\n :time-arrow-control=\"arrowControl\"\n :parsed-value=\"innerDate\"\n @pick=\"handleTimePick\"\n />\n </span>\n </div>\n <div\n v-show=\"currentView !== 'time'\"\n class=\"el-date-picker__header\"\n :class=\"{\n 'el-date-picker__header--bordered':\n currentView === 'year' || currentView === 'month',\n }\"\n >\n <button\n type=\"button\"\n :aria-label=\"t(`el.datepicker.prevYear`)\"\n class=\"el-picker-panel__icon-btn el-date-picker__prev-btn d-arrow-left\"\n @click=\"prevYear_\"\n >\n <el-icon><d-arrow-left /></el-icon>\n </button>\n <button\n v-show=\"currentView === 'date'\"\n type=\"button\"\n :aria-label=\"t(`el.datepicker.prevMonth`)\"\n class=\"el-picker-panel__icon-btn el-date-picker__prev-btn arrow-left\"\n @click=\"prevMonth_\"\n >\n <el-icon><arrow-left /></el-icon>\n </button>\n <span\n role=\"button\"\n class=\"el-date-picker__header-label\"\n @click=\"showYearPicker\"\n >{{ yearLabel }}</span\n >\n <span\n v-show=\"currentView === 'date'\"\n role=\"button\"\n class=\"el-date-picker__header-label\"\n :class=\"{ active: currentView === 'month' }\"\n @click=\"showMonthPicker\"\n >{{ t(`el.datepicker.month${month + 1}`) }}</span\n >\n <button\n type=\"button\"\n :aria-label=\"t(`el.datepicker.nextYear`)\"\n class=\"el-picker-panel__icon-btn el-date-picker__next-btn d-arrow-right\"\n @click=\"nextYear_\"\n >\n <el-icon><d-arrow-right /></el-icon>\n </button>\n <button\n v-show=\"currentView === 'date'\"\n type=\"button\"\n :aria-label=\"t(`el.datepicker.nextMonth`)\"\n class=\"el-picker-panel__icon-btn el-date-picker__next-btn arrow-right\"\n @click=\"nextMonth_\"\n >\n <el-icon><arrow-right /></el-icon>\n </button>\n </div>\n <div class=\"el-picker-panel__content\">\n <date-table\n v-if=\"currentView === 'date'\"\n :selection-mode=\"selectionMode\"\n :date=\"innerDate\"\n :parsed-value=\"parsedValue\"\n :disabled-date=\"disabledDate\"\n @pick=\"handleDatePick\"\n />\n <year-table\n v-if=\"currentView === 'year'\"\n :date=\"innerDate\"\n :disabled-date=\"disabledDate\"\n :parsed-value=\"parsedValue\"\n @pick=\"handleYearPick\"\n />\n <month-table\n v-if=\"currentView === 'month'\"\n :date=\"innerDate\"\n :parsed-value=\"parsedValue\"\n :disabled-date=\"disabledDate\"\n @pick=\"handleMonthPick\"\n />\n </div>\n </div>\n </div>\n <div\n v-show=\"footerVisible && currentView === 'date'\"\n class=\"el-picker-panel__footer\"\n >\n <el-button\n v-show=\"selectionMode !== 'dates'\"\n size=\"small\"\n type=\"text\"\n class=\"el-picker-panel__link-btn\"\n @click=\"changeToNow\"\n >\n {{ t('el.datepicker.now') }}\n </el-button>\n <el-button\n plain\n size=\"small\"\n class=\"el-picker-panel__link-btn\"\n @click=\"onConfirm\"\n >\n {{ t('el.datepicker.confirm') }}\n </el-button>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, inject, ref, watch, toRef } from 'vue'\nimport dayjs from 'dayjs'\nimport ElButton from '@element-plus/components/button'\nimport { ClickOutside } from '@element-plus/directives'\nimport { useLocale } from '@element-plus/hooks'\nimport ElInput from '@element-plus/components/input'\nimport {\n extractDateFormat,\n extractTimeFormat,\n TimePickPanel,\n} from '@element-plus/components/time-picker'\nimport { ElIcon } from '@element-plus/components/icon'\nimport { EVENT_CODE } from '@element-plus/utils/aria'\nimport { isValidDatePickType } from '@element-plus/utils/validators'\nimport {\n DArrowLeft,\n ArrowLeft,\n DArrowRight,\n ArrowRight,\n} from '@element-plus/icons-vue'\nimport { TOOLTIP_INJECTION_KEY } from '@element-plus/components/tooltip'\nimport DateTable from './basic-date-table.vue'\nimport MonthTable from './basic-month-table.vue'\nimport YearTable from './basic-year-table.vue'\n\nimport type { PropType } from 'vue'\nimport type { ConfigType, Dayjs } from 'dayjs'\nimport type { IDatePickerType } from '../date-picker.type'\n\n// todo\n/* eslint-disable-next-line */\nconst timeWithinRange = (_: ConfigType, __: any, ___: string) => true\n\nexport default defineComponent({\n components: {\n DateTable,\n ElInput,\n ElButton,\n ElIcon,\n TimePickPanel,\n MonthTable,\n YearTable,\n DArrowLeft,\n ArrowLeft,\n DArrowRight,\n ArrowRight,\n },\n\n directives: { clickoutside: ClickOutside },\n props: {\n visible: {\n type: Boolean,\n default: false,\n },\n parsedValue: {\n type: [Object, Array] as PropType<Dayjs | Dayjs[]>,\n },\n format: {\n type: String,\n default: '',\n },\n type: {\n type: String as PropType<IDatePickerType>,\n required: true,\n validator: isValidDatePickType,\n },\n },\n emits: ['pick', 'set-picker-option', 'panel-change'],\n setup(props, ctx) {\n const { t, lang } = useLocale()\n const pickerBase = inject('EP_PICKER_BASE') as any\n const popper = inject(TOOLTIP_INJECTION_KEY)\n const {\n shortcuts,\n disabledDate,\n cellClassName,\n defaultTime,\n arrowControl,\n } = pickerBase.props\n const defaultValue = toRef(pickerBase.props, 'defaultValue')\n\n const innerDate = ref(dayjs().locale(lang.value))\n\n const defaultTimeD = computed(() => {\n return dayjs(defaultTime).locale(lang.value)\n })\n\n const month = computed(() => {\n return innerDate.value.month()\n })\n\n const year = computed(() => {\n return innerDate.value.year()\n })\n\n const selectableRange = ref([])\n const userInputDate = ref(null)\n const userInputTime = ref(null)\n // todo update to disableHour\n const checkDateWithinRange = (date: ConfigType) => {\n return selectableRange.value.length > 0\n ? timeWithinRange(\n date,\n selectableRange.value,\n props.format || 'HH:mm:ss'\n )\n : true\n }\n const formatEmit = (emitDayjs: Dayjs) => {\n if (defaultTime && !visibleTime.value) {\n return defaultTimeD.value\n .year(emitDayjs.year())\n .month(emitDayjs.month())\n .date(emitDayjs.date())\n }\n if (showTime.value) return emitDayjs.millisecond(0)\n return emitDayjs.startOf('day')\n }\n const emit = (value, ...args) => {\n if (!value) {\n ctx.emit('pick', value, ...args)\n } else if (Array.isArray(value)) {\n const dates = value.map(formatEmit)\n ctx.emit('pick', dates, ...args)\n } else {\n ctx.emit('pick', formatEmit(value), ...args)\n }\n userInputDate.value = null\n userInputTime.value = null\n }\n const handleDatePick = (value: Dayjs) => {\n if (selectionMode.value === 'day') {\n let newDate = props.parsedValue\n ? (props.parsedValue as Dayjs)\n .year(value.year())\n .month(value.month())\n .date(value.date())\n : value\n // change default time while out of selectableRange\n if (!checkDateWithinRange(newDate)) {\n newDate = (selectableRange.value[0][0] as Dayjs)\n .year(value.year())\n .month(value.month())\n .date(value.date())\n }\n innerDate.value = newDate\n emit(newDate, showTime.value)\n } else if (selectionMode.value === 'week') {\n emit(value.date)\n } else if (selectionMode.value === 'dates') {\n emit(value, true) // set false to keep panel open\n }\n }\n const prevMonth_ = () => {\n innerDate.value = innerDate.value.subtract(1, 'month')\n handlePanelChange('month')\n }\n\n const nextMonth_ = () => {\n innerDate.value = innerDate.value.add(1, 'month')\n handlePanelChange('month')\n }\n\n const prevYear_ = () => {\n if (currentView.value === 'year') {\n innerDate.value = innerDate.value.subtract(10, 'year')\n } else {\n innerDate.value = innerDate.value.subtract(1, 'year')\n }\n handlePanelChange('year')\n }\n\n const nextYear_ = () => {\n if (currentView.value === 'year') {\n innerDate.value = innerDate.value.add(10, 'year')\n } else {\n innerDate.value = innerDate.value.add(1, 'year')\n }\n handlePanelChange('year')\n }\n\n const currentView = ref('date')\n\n const yearLabel = computed(() => {\n const yearTranslation = t('el.datepicker.year')\n if (currentView.value === 'year') {\n const startYear = Math.floor(year.value / 10) * 10\n if (yearTranslation) {\n return `${startYear} ${yearTranslation} - ${\n startYear + 9\n } ${yearTranslation}`\n }\n return `${startYear} - ${startYear + 9}`\n }\n return `${year.value} ${yearTranslation}`\n })\n\n const handleShortcutClick = (shortcut) => {\n const shortcutValue =\n typeof shortcut.value === 'function' ? shortcut.value() : shortcut.value\n if (shortcutValue) {\n emit(dayjs(shortcutValue).locale(lang.value))\n return\n }\n if (shortcut.onClick) {\n shortcut.onClick(ctx)\n }\n }\n\n const selectionMode = computed(() => {\n if (['week', 'month', 'year', 'dates'].includes(props.type)) {\n return props.type\n }\n return 'day'\n })\n\n watch(\n () => selectionMode.value,\n (val) => {\n if (['month', 'year'].includes(val)) {\n currentView.value = val\n return\n }\n currentView.value = 'date'\n },\n { immediate: true }\n )\n\n watch(\n () => currentView.value,\n () => {\n popper?.updatePopper()\n }\n )\n\n const hasShortcuts = computed(() => !!shortcuts.length)\n\n const handleMonthPick = (month) => {\n innerDate.value = innerDate.value.startOf('month').month(month)\n if (selectionMode.value === 'month') {\n emit(innerDate.value)\n } else {\n currentView.value = 'date'\n }\n handlePanelChange('month')\n }\n\n const handleYearPick = (year) => {\n if (selectionMode.value === 'year') {\n innerDate.value = innerDate.value.startOf('year').year(year)\n emit(innerDate.value)\n } else {\n innerDate.value = innerDate.value.year(year)\n currentView.value = 'month'\n }\n handlePanelChange('year')\n }\n\n const showMonthPicker = () => {\n currentView.value = 'month'\n }\n\n const showYearPicker = () => {\n currentView.value = 'year'\n }\n\n const showTime = computed(\n () => props.type === 'datetime' || props.type === 'datetimerange'\n )\n\n const footerVisible = computed(() => {\n return showTime.value || selectionMode.value === 'dates'\n })\n\n const onConfirm = () => {\n if (selectionMode.value === 'dates') {\n emit(props.parsedValue)\n } else {\n // deal with the scenario where: user opens the date time picker, then confirm without doing anything\n let result = props.parsedValue as Dayjs\n if (!result) {\n const defaultTimeD = dayjs(defaultTime).locale(lang.value)\n const defaultValueD = getDefaultValue()\n result = defaultTimeD\n .year(defaultValueD.year())\n .month(defaultValueD.month())\n .date(defaultValueD.date())\n }\n innerDate.value = result\n emit(result)\n }\n }\n\n const changeToNow = () => {\n // NOTE: not a permanent solution\n // consider disable \"now\" button in the future\n const now = dayjs().locale(lang.value)\n const nowDate = now.toDate()\n if (\n (!disabledDate || !disabledDate(nowDate)) &&\n checkDateWithinRange(nowDate)\n ) {\n innerDate.value = dayjs().locale(lang.value)\n emit(innerDate.value)\n }\n }\n\n const timeFormat = computed(() => {\n return extractTimeFormat(props.format)\n })\n\n const dateFormat = computed(() => {\n return extractDateFormat(props.format)\n })\n\n const visibleTime = computed(() => {\n if (userInputTime.value) return userInputTime.value\n if (!props.parsedValue && !defaultValue.value) return\n return ((props.parsedValue || innerDate.value) as Dayjs).format(\n timeFormat.value\n )\n })\n\n const visibleDate = computed(() => {\n if (userInputDate.value) return userInputDate.value\n if (!props.parsedValue && !defaultValue.value) return\n return ((props.parsedValue || innerDate.value) as Dayjs).format(\n dateFormat.value\n )\n })\n\n const timePickerVisible = ref(false)\n const onTimePickerInputFocus = () => {\n timePickerVisible.value = true\n }\n const handleTimePickClose = () => {\n timePickerVisible.value = false\n }\n\n const handleTimePick = (value, visible, first) => {\n const newDate = props.parsedValue\n ? (props.parsedValue as Dayjs)\n .hour(value.hour())\n .minute(value.minute())\n .second(value.second())\n : value\n innerDate.value = newDate\n emit(innerDate.value, true)\n if (!first) {\n timePickerVisible.value = visible\n }\n }\n\n const handleVisibleTimeChange = (value) => {\n const newDate = dayjs(value, timeFormat.value).locale(lang.value)\n if (newDate.isValid() && checkDateWithinRange(newDate)) {\n innerDate.value = newDate\n .year(innerDate.value.year())\n .month(innerDate.value.month())\n .date(innerDate.value.date())\n userInputTime.value = null\n timePickerVisible.value = false\n emit(innerDate.value, true)\n }\n }\n\n const handleVisibleDateChange = (value) => {\n const newDate = dayjs(value, dateFormat.value).locale(lang.value)\n if (newDate.isValid()) {\n if (disabledDate && disabledDate(newDate.toDate())) {\n return\n }\n innerDate.value = newDate\n .hour(innerDate.value.hour())\n .minute(innerDate.value.minute())\n .second(innerDate.value.second())\n userInputDate.value = null\n emit(innerDate.value, true)\n }\n }\n\n const isValidValue = (date: unknown) => {\n return (\n dayjs.isDayjs(date) &&\n date.isValid() &&\n (disabledDate ? !disabledDate(date.toDate()) : true)\n )\n }\n\n const formatToString = (value) => {\n if (selectionMode.value === 'dates') {\n return value.map((_) => _.format(props.format))\n }\n return value.format(props.format)\n }\n\n const parseUserInput = (value) => {\n return dayjs(value, props.format).locale(lang.value)\n }\n\n const getDefaultValue = () => {\n const parseDate = dayjs(defaultValue.value).locale(lang.value)\n if (!defaultValue.value) {\n const defaultTimeDValue = defaultTimeD.value\n return dayjs()\n .hour(defaultTimeDValue.hour())\n .minute(defaultTimeDValue.minute())\n .second(defaultTimeDValue.second())\n .locale(lang.value)\n }\n return parseDate\n }\n\n const handleKeydown = (event) => {\n const { code, keyCode } = event\n const list = [\n EVENT_CODE.up,\n EVENT_CODE.down,\n EVENT_CODE.left,\n EVENT_CODE.right,\n ]\n if (props.visible && !timePickerVisible.value) {\n if (list.includes(code)) {\n handleKeyControl(keyCode)\n event.stopPropagation()\n event.preventDefault()\n }\n if (\n code === EVENT_CODE.enter &&\n userInputDate.value === null &&\n userInputTime.value === null\n ) {\n // Enter\n emit(innerDate, false)\n }\n }\n }\n\n const handleKeyControl = (keyCode) => {\n const mapping = {\n year: {\n 38: -4,\n 40: 4,\n 37: -1,\n 39: 1,\n offset: (date, step) => date.setFullYear(date.getFullYear() + step),\n },\n month: {\n 38: -4,\n 40: 4,\n 37: -1,\n 39: 1,\n offset: (date, step) => date.setMonth(date.getMonth() + step),\n },\n week: {\n 38: -1,\n 40: 1,\n 37: -1,\n 39: 1,\n offset: (date, step) => date.setDate(date.getDate() + step * 7),\n },\n day: {\n 38: -7,\n 40: 7,\n 37: -1,\n 39: 1,\n offset: (date, step) => date.setDate(date.getDate() + step),\n },\n }\n\n const newDate = innerDate.value.toDate()\n while (Math.abs(innerDate.value.diff(newDate, 'year', true)) < 1) {\n const map = mapping[selectionMode.value]\n map.offset(newDate, map[keyCode])\n if (disabledDate && disabledDate(newDate)) {\n continue\n }\n const result = dayjs(newDate).locale(lang.value)\n innerDate.value = result\n ctx.emit('pick', result, true)\n break\n }\n }\n\n const handlePanelChange = (mode: 'month' | 'year') => {\n ctx.emit(\n 'panel-change',\n innerDate.value.toDate(),\n mode,\n currentView.value\n )\n }\n\n ctx.emit('set-picker-option', ['isValidValue', isValidValue])\n ctx.emit('set-picker-option', ['formatToString', formatToString])\n ctx.emit('set-picker-option', ['parseUserInput', parseUserInput])\n ctx.emit('set-picker-option', ['handleKeydown', handleKeydown])\n\n watch(\n () => defaultValue.value,\n (val) => {\n if (val) {\n innerDate.value = getDefaultValue()\n }\n },\n { immediate: true }\n )\n\n watch(\n () => props.parsedValue,\n (val) => {\n if (val) {\n if (selectionMode.value === 'dates') return\n if (Array.isArray(val)) return\n innerDate.value = val\n } else {\n innerDate.value = getDefaultValue()\n }\n },\n { immediate: true }\n )\n\n return {\n handleTimePick,\n handleTimePickClose,\n onTimePickerInputFocus,\n timePickerVisible,\n visibleTime,\n visibleDate,\n showTime,\n changeToNow,\n onConfirm,\n footerVisible,\n handleYearPick,\n showMonthPicker,\n showYearPicker,\n handleMonthPick,\n hasShortcuts,\n shortcuts,\n arrowControl,\n disabledDate,\n cellClassName,\n selectionMode,\n handleShortcutClick,\n prevYear_,\n nextYear_,\n prevMonth_,\n nextMonth_,\n innerDate,\n t,\n yearLabel,\n currentView,\n month,\n handleDatePick,\n handleVisibleTimeChange,\n handleVisibleDateChange,\n timeFormat,\n userInputTime,\n userInputDate,\n }\n },\n})\n</script>\n"],"names":["_openBlock","_Fragment","_createElementBlock","_createCommentVNode","_createElementVNode","_withCtx","_normalizeClass","_createVNode"],"mappings":"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"}