@element-plus/nightly 0.0.20220525 → 0.0.20220528
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.
- package/dist/index.css +1 -1
- package/dist/index.full.js +1239 -1170
- package/dist/index.full.min.js +21 -21
- package/dist/index.full.min.js.map +1 -1
- package/dist/index.full.min.mjs +24 -24
- package/dist/index.full.min.mjs.map +1 -1
- package/dist/index.full.mjs +1239 -1171
- package/dist/locale/af.js +1 -1
- package/dist/locale/af.min.js +1 -1
- package/dist/locale/af.min.mjs +1 -1
- package/dist/locale/af.mjs +1 -1
- package/dist/locale/ar.js +1 -1
- package/dist/locale/ar.min.js +1 -1
- package/dist/locale/ar.min.mjs +1 -1
- package/dist/locale/ar.mjs +1 -1
- package/dist/locale/az.js +1 -1
- package/dist/locale/az.min.js +1 -1
- package/dist/locale/az.min.mjs +1 -1
- package/dist/locale/az.mjs +1 -1
- package/dist/locale/bg.js +1 -1
- package/dist/locale/bg.min.js +1 -1
- package/dist/locale/bg.min.mjs +1 -1
- package/dist/locale/bg.mjs +1 -1
- package/dist/locale/bn.js +1 -1
- package/dist/locale/bn.min.js +1 -1
- package/dist/locale/bn.min.mjs +1 -1
- package/dist/locale/bn.mjs +1 -1
- package/dist/locale/ca.js +1 -1
- package/dist/locale/ca.min.js +1 -1
- package/dist/locale/ca.min.mjs +1 -1
- package/dist/locale/ca.mjs +1 -1
- package/dist/locale/cs.js +1 -1
- package/dist/locale/cs.min.js +1 -1
- package/dist/locale/cs.min.mjs +1 -1
- package/dist/locale/cs.mjs +1 -1
- package/dist/locale/da.js +1 -1
- package/dist/locale/da.min.js +1 -1
- package/dist/locale/da.min.mjs +1 -1
- package/dist/locale/da.mjs +1 -1
- package/dist/locale/de.js +1 -1
- package/dist/locale/de.min.js +1 -1
- package/dist/locale/de.min.mjs +1 -1
- package/dist/locale/de.mjs +1 -1
- package/dist/locale/el.js +1 -1
- package/dist/locale/el.min.js +1 -1
- package/dist/locale/el.min.mjs +1 -1
- package/dist/locale/el.mjs +1 -1
- package/dist/locale/en.js +1 -1
- package/dist/locale/en.min.js +1 -1
- package/dist/locale/en.min.mjs +1 -1
- package/dist/locale/en.mjs +1 -1
- package/dist/locale/eo.js +1 -1
- package/dist/locale/eo.min.js +1 -1
- package/dist/locale/eo.min.mjs +1 -1
- package/dist/locale/eo.mjs +1 -1
- package/dist/locale/es.js +1 -1
- package/dist/locale/es.min.js +1 -1
- package/dist/locale/es.min.mjs +1 -1
- package/dist/locale/es.mjs +1 -1
- package/dist/locale/et.js +1 -1
- package/dist/locale/et.min.js +1 -1
- package/dist/locale/et.min.mjs +1 -1
- package/dist/locale/et.mjs +1 -1
- package/dist/locale/eu.js +1 -1
- package/dist/locale/eu.min.js +1 -1
- package/dist/locale/eu.min.mjs +1 -1
- package/dist/locale/eu.mjs +1 -1
- package/dist/locale/fa.js +1 -1
- package/dist/locale/fa.min.js +1 -1
- package/dist/locale/fa.min.mjs +1 -1
- package/dist/locale/fa.mjs +1 -1
- package/dist/locale/fi.js +1 -1
- package/dist/locale/fi.min.js +1 -1
- package/dist/locale/fi.min.mjs +1 -1
- package/dist/locale/fi.mjs +1 -1
- package/dist/locale/fr.js +1 -1
- package/dist/locale/fr.min.js +1 -1
- package/dist/locale/fr.min.mjs +1 -1
- package/dist/locale/fr.mjs +1 -1
- package/dist/locale/he.js +1 -1
- package/dist/locale/he.min.js +1 -1
- package/dist/locale/he.min.mjs +1 -1
- package/dist/locale/he.mjs +1 -1
- package/dist/locale/hr.js +1 -1
- package/dist/locale/hr.min.js +1 -1
- package/dist/locale/hr.min.mjs +1 -1
- package/dist/locale/hr.mjs +1 -1
- package/dist/locale/hu.js +1 -1
- package/dist/locale/hu.min.js +1 -1
- package/dist/locale/hu.min.mjs +1 -1
- package/dist/locale/hu.mjs +1 -1
- package/dist/locale/hy-am.js +1 -1
- package/dist/locale/hy-am.min.js +1 -1
- package/dist/locale/hy-am.min.mjs +1 -1
- package/dist/locale/hy-am.mjs +1 -1
- package/dist/locale/id.js +1 -1
- package/dist/locale/id.min.js +1 -1
- package/dist/locale/id.min.mjs +1 -1
- package/dist/locale/id.mjs +1 -1
- package/dist/locale/it.js +1 -1
- package/dist/locale/it.min.js +1 -1
- package/dist/locale/it.min.mjs +1 -1
- package/dist/locale/it.mjs +1 -1
- package/dist/locale/ja.js +1 -1
- package/dist/locale/ja.min.js +1 -1
- package/dist/locale/ja.min.mjs +1 -1
- package/dist/locale/ja.mjs +1 -1
- package/dist/locale/kk.js +1 -1
- package/dist/locale/kk.min.js +1 -1
- package/dist/locale/kk.min.mjs +1 -1
- package/dist/locale/kk.mjs +1 -1
- package/dist/locale/km.js +1 -1
- package/dist/locale/km.min.js +1 -1
- package/dist/locale/km.min.mjs +1 -1
- package/dist/locale/km.mjs +1 -1
- package/dist/locale/ko.js +1 -1
- package/dist/locale/ko.min.js +1 -1
- package/dist/locale/ko.min.mjs +1 -1
- package/dist/locale/ko.mjs +1 -1
- package/dist/locale/ku.js +1 -1
- package/dist/locale/ku.min.js +1 -1
- package/dist/locale/ku.min.mjs +1 -1
- package/dist/locale/ku.mjs +1 -1
- package/dist/locale/ky.js +1 -1
- package/dist/locale/ky.min.js +1 -1
- package/dist/locale/ky.min.mjs +1 -1
- package/dist/locale/ky.mjs +1 -1
- package/dist/locale/lt.js +1 -1
- package/dist/locale/lt.min.js +1 -1
- package/dist/locale/lt.min.mjs +1 -1
- package/dist/locale/lt.mjs +1 -1
- package/dist/locale/lv.js +1 -1
- package/dist/locale/lv.min.js +1 -1
- package/dist/locale/lv.min.mjs +1 -1
- package/dist/locale/lv.mjs +1 -1
- package/dist/locale/mg.js +1 -1
- package/dist/locale/mg.min.js +1 -1
- package/dist/locale/mg.min.mjs +1 -1
- package/dist/locale/mg.mjs +1 -1
- package/dist/locale/mn.js +1 -1
- package/dist/locale/mn.min.js +1 -1
- package/dist/locale/mn.min.mjs +1 -1
- package/dist/locale/mn.mjs +1 -1
- package/dist/locale/nb-no.js +1 -1
- package/dist/locale/nb-no.min.js +1 -1
- package/dist/locale/nb-no.min.mjs +1 -1
- package/dist/locale/nb-no.mjs +1 -1
- package/dist/locale/nl.js +1 -1
- package/dist/locale/nl.min.js +1 -1
- package/dist/locale/nl.min.mjs +1 -1
- package/dist/locale/nl.mjs +1 -1
- package/dist/locale/pa.js +1 -1
- package/dist/locale/pa.min.js +1 -1
- package/dist/locale/pa.min.mjs +1 -1
- package/dist/locale/pa.mjs +1 -1
- package/dist/locale/pl.js +1 -1
- package/dist/locale/pl.min.js +1 -1
- package/dist/locale/pl.min.mjs +1 -1
- package/dist/locale/pl.mjs +1 -1
- package/dist/locale/pt-br.js +1 -1
- package/dist/locale/pt-br.min.js +1 -1
- package/dist/locale/pt-br.min.mjs +1 -1
- package/dist/locale/pt-br.mjs +1 -1
- package/dist/locale/pt.js +1 -1
- package/dist/locale/pt.min.js +1 -1
- package/dist/locale/pt.min.mjs +1 -1
- package/dist/locale/pt.mjs +1 -1
- package/dist/locale/ro.js +1 -1
- package/dist/locale/ro.min.js +1 -1
- package/dist/locale/ro.min.mjs +1 -1
- package/dist/locale/ro.mjs +1 -1
- package/dist/locale/ru.js +1 -1
- package/dist/locale/ru.min.js +1 -1
- package/dist/locale/ru.min.mjs +1 -1
- package/dist/locale/ru.mjs +1 -1
- package/dist/locale/sk.js +1 -1
- package/dist/locale/sk.min.js +1 -1
- package/dist/locale/sk.min.mjs +1 -1
- package/dist/locale/sk.mjs +1 -1
- package/dist/locale/sl.js +1 -1
- package/dist/locale/sl.min.js +1 -1
- package/dist/locale/sl.min.mjs +1 -1
- package/dist/locale/sl.mjs +1 -1
- package/dist/locale/sr.js +1 -1
- package/dist/locale/sr.min.js +1 -1
- package/dist/locale/sr.min.mjs +1 -1
- package/dist/locale/sr.mjs +1 -1
- package/dist/locale/sv.js +1 -1
- package/dist/locale/sv.min.js +1 -1
- package/dist/locale/sv.min.mjs +1 -1
- package/dist/locale/sv.mjs +1 -1
- package/dist/locale/ta.js +1 -1
- package/dist/locale/ta.min.js +1 -1
- package/dist/locale/ta.min.mjs +1 -1
- package/dist/locale/ta.mjs +1 -1
- package/dist/locale/th.js +1 -1
- package/dist/locale/th.min.js +1 -1
- package/dist/locale/th.min.mjs +1 -1
- package/dist/locale/th.mjs +1 -1
- package/dist/locale/tk.js +1 -1
- package/dist/locale/tk.min.js +1 -1
- package/dist/locale/tk.min.mjs +1 -1
- package/dist/locale/tk.mjs +1 -1
- package/dist/locale/tr.js +1 -1
- package/dist/locale/tr.min.js +1 -1
- package/dist/locale/tr.min.mjs +1 -1
- package/dist/locale/tr.mjs +1 -1
- package/dist/locale/ug-cn.js +1 -1
- package/dist/locale/ug-cn.min.js +1 -1
- package/dist/locale/ug-cn.min.mjs +1 -1
- package/dist/locale/ug-cn.mjs +1 -1
- package/dist/locale/uk.js +1 -1
- package/dist/locale/uk.min.js +1 -1
- package/dist/locale/uk.min.mjs +1 -1
- package/dist/locale/uk.mjs +1 -1
- package/dist/locale/uz-uz.js +1 -1
- package/dist/locale/uz-uz.min.js +1 -1
- package/dist/locale/uz-uz.min.mjs +1 -1
- package/dist/locale/uz-uz.mjs +1 -1
- package/dist/locale/vi.js +1 -1
- package/dist/locale/vi.min.js +1 -1
- package/dist/locale/vi.min.mjs +1 -1
- package/dist/locale/vi.mjs +1 -1
- package/dist/locale/zh-cn.js +1 -1
- package/dist/locale/zh-cn.min.js +1 -1
- package/dist/locale/zh-cn.min.mjs +1 -1
- package/dist/locale/zh-cn.mjs +1 -1
- package/dist/locale/zh-tw.js +1 -1
- package/dist/locale/zh-tw.min.js +1 -1
- package/dist/locale/zh-tw.min.mjs +1 -1
- package/dist/locale/zh-tw.mjs +1 -1
- package/es/components/date-picker/index2.mjs +1 -1
- package/es/components/date-picker/src/composables/use-month-range-header.mjs +2 -0
- package/es/components/date-picker/src/composables/use-month-range-header.mjs.map +1 -0
- package/es/components/date-picker/src/composables/use-month-range-header2.mjs +54 -0
- package/es/components/date-picker/src/composables/use-month-range-header2.mjs.map +1 -0
- package/es/components/date-picker/src/composables/use-range-picker.mjs +2 -0
- package/es/components/date-picker/src/composables/use-range-picker.mjs.map +1 -0
- package/es/components/date-picker/src/composables/use-range-picker2.mjs +74 -0
- package/es/components/date-picker/src/composables/use-range-picker2.mjs.map +1 -0
- package/es/components/date-picker/src/date-picker-com/basic-cell-render.mjs +37 -1
- package/es/components/date-picker/src/date-picker-com/basic-cell-render.mjs.map +1 -1
- package/es/components/date-picker/src/date-picker-com/basic-date-table2.mjs +6 -3
- package/es/components/date-picker/src/date-picker-com/basic-date-table2.mjs.map +1 -1
- package/es/components/date-picker/src/date-picker-com/basic-month-table2.mjs +6 -3
- package/es/components/date-picker/src/date-picker-com/basic-month-table2.mjs.map +1 -1
- package/es/components/date-picker/src/date-picker-com/basic-year-table2.mjs +6 -3
- package/es/components/date-picker/src/date-picker-com/basic-year-table2.mjs.map +1 -1
- package/es/components/date-picker/src/date-picker-com/panel-date-pick2.mjs +83 -82
- package/es/components/date-picker/src/date-picker-com/panel-date-pick2.mjs.map +1 -1
- package/es/components/date-picker/src/date-picker-com/panel-date-range2.mjs +366 -445
- package/es/components/date-picker/src/date-picker-com/panel-date-range2.mjs.map +1 -1
- package/es/components/date-picker/src/date-picker-com/panel-month-range2.mjs +186 -202
- package/es/components/date-picker/src/date-picker-com/panel-month-range2.mjs.map +1 -1
- package/es/components/date-picker/src/date-picker.mjs +78 -1
- package/es/components/date-picker/src/date-picker.mjs.map +1 -1
- package/es/components/date-picker/src/date-picker.type.mjs +1 -1
- package/es/components/date-picker/src/date-picker.type2.mjs +0 -2
- package/es/components/date-picker/src/date-picker.type2.mjs.map +1 -1
- package/es/components/date-picker/src/props/basic-cell.mjs +2 -0
- package/es/components/date-picker/src/props/basic-cell.mjs.map +1 -0
- package/es/components/date-picker/src/props/basic-cell2.mjs +11 -0
- package/es/components/date-picker/src/props/basic-cell2.mjs.map +1 -0
- package/es/components/date-picker/src/props/date-picker.mjs +2 -0
- package/es/components/date-picker/src/props/date-picker.mjs.map +1 -0
- package/es/components/date-picker/src/props/date-picker2.mjs +12 -0
- package/es/components/date-picker/src/props/date-picker2.mjs.map +1 -0
- package/es/components/date-picker/src/props/panel-date-pick.mjs +2 -0
- package/es/components/date-picker/src/props/panel-date-pick.mjs.map +1 -0
- package/es/components/date-picker/src/props/panel-date-pick2.mjs +20 -0
- package/es/components/date-picker/src/props/panel-date-pick2.mjs.map +1 -0
- package/es/components/date-picker/src/props/panel-date-range.mjs +2 -0
- package/es/components/date-picker/src/props/panel-date-range.mjs.map +1 -0
- package/es/components/date-picker/src/props/panel-date-range2.mjs +11 -0
- package/es/components/date-picker/src/props/panel-date-range2.mjs.map +1 -0
- package/es/components/date-picker/src/props/panel-month-range.mjs +2 -0
- package/es/components/date-picker/src/props/panel-month-range.mjs.map +1 -0
- package/es/components/date-picker/src/props/panel-month-range2.mjs +11 -0
- package/es/components/date-picker/src/props/panel-month-range2.mjs.map +1 -0
- package/es/components/date-picker/src/props/shared.mjs +1 -1
- package/es/components/date-picker/src/props/shared2.mjs +22 -4
- package/es/components/date-picker/src/props/shared2.mjs.map +1 -1
- package/es/components/date-picker/src/utils.mjs +2 -0
- package/es/components/date-picker/src/utils.mjs.map +1 -0
- package/es/components/date-picker/src/utils2.mjs +30 -0
- package/es/components/date-picker/src/utils2.mjs.map +1 -0
- package/es/components/focus-trap/src/focus-trap2.mjs +3 -1
- package/es/components/focus-trap/src/focus-trap2.mjs.map +1 -1
- package/es/components/input-number/src/input-number3.mjs +6 -17
- package/es/components/input-number/src/input-number3.mjs.map +1 -1
- package/es/components/result/src/result3.mjs +1 -0
- package/es/components/result/src/result3.mjs.map +1 -1
- package/es/components/result/src/result4.mjs +46 -47
- package/es/components/result/src/result4.mjs.map +1 -1
- package/es/components/time-picker/src/common/constant2.mjs +1 -0
- package/es/components/time-picker/src/common/constant2.mjs.map +1 -1
- package/es/index.mjs +1 -0
- package/es/index.mjs.map +1 -1
- package/es/packages/components/date-picker/index.d.ts +8 -24
- package/es/packages/components/date-picker/src/composables/use-month-range-header.d.ts +16 -0
- package/es/packages/components/date-picker/src/composables/use-range-picker.d.ts +129 -0
- package/es/packages/components/date-picker/src/date-picker-com/basic-cell-render.d.ts +4 -7
- package/es/packages/components/date-picker/src/date-picker-com/basic-date-table.vue.d.ts +24 -14
- package/es/packages/components/date-picker/src/date-picker-com/basic-month-table.vue.d.ts +24 -14
- package/es/packages/components/date-picker/src/date-picker-com/basic-year-table.vue.d.ts +21 -2
- package/es/packages/components/date-picker/src/date-picker-com/panel-date-pick.vue.d.ts +47 -35
- package/es/packages/components/date-picker/src/date-picker-com/panel-date-range.vue.d.ts +1059 -62
- package/es/packages/components/date-picker/src/date-picker-com/panel-month-range.vue.d.ts +268 -31
- package/es/packages/components/date-picker/src/date-picker.d.ts +20 -30
- package/es/packages/components/date-picker/src/date-picker.type.d.ts +0 -5
- package/es/packages/components/date-picker/src/props/basic-cell.d.ts +6 -0
- package/es/packages/components/date-picker/src/props/basic-date-table.d.ts +2 -5
- package/es/packages/components/date-picker/src/props/basic-month-table.d.ts +2 -5
- package/es/packages/components/date-picker/src/props/basic-year-table.d.ts +1 -1
- package/es/packages/components/date-picker/src/props/date-picker.d.ts +6 -0
- package/es/packages/components/date-picker/src/props/panel-date-pick.d.ts +9 -0
- package/es/packages/components/date-picker/src/props/panel-date-range.d.ts +7 -0
- package/es/packages/components/date-picker/src/props/panel-month-range.d.ts +7 -0
- package/es/packages/components/date-picker/src/props/shared.d.ts +13 -2
- package/es/packages/components/date-picker/src/utils.d.ts +1795 -0
- package/es/packages/components/dialog/index.d.ts +2 -2
- package/es/packages/components/dialog/src/dialog-content.vue.d.ts +1 -1
- package/es/packages/components/dialog/src/dialog.vue.d.ts +2 -2
- package/es/packages/components/drawer/index.d.ts +1 -1
- package/es/packages/components/drawer/src/drawer.vue.d.ts +1 -1
- package/es/packages/components/input-number/index.d.ts +11 -12
- package/es/packages/components/input-number/src/input-number.d.ts +9 -4
- package/es/packages/components/input-number/src/input-number.vue.d.ts +11 -12
- package/es/packages/components/message/src/message.vue.d.ts +1 -1
- package/es/packages/components/notification/src/notification.vue.d.ts +1 -1
- package/es/packages/components/result/index.d.ts +10 -3
- package/es/packages/components/result/src/result.d.ts +1 -1
- package/es/packages/components/result/src/result.vue.d.ts +10 -3
- package/es/packages/components/roving-focus-group/src/roving-focus-item.vue.d.ts +1 -1
- package/es/packages/components/time-picker/src/common/constant.d.ts +1 -0
- package/es/packages/components/time-picker/src/common/picker.vue.d.ts +1 -1
- package/es/packages/components/tooltip-v2/index.d.ts +10 -10
- package/es/packages/components/tooltip-v2/src/tooltip.vue.d.ts +10 -10
- package/es/packages/tokens/date-picker.d.ts +8 -0
- package/es/packages/tokens/index.d.ts +1 -0
- package/es/packages/version.d.ts +1 -1
- package/es/tokens/date-picker.mjs +2 -0
- package/es/tokens/date-picker.mjs.map +1 -0
- package/es/tokens/date-picker2.mjs +4 -0
- package/es/tokens/date-picker2.mjs.map +1 -0
- package/es/tokens/index.mjs +1 -0
- package/es/tokens/index.mjs.map +1 -1
- package/es/tokens/index2.mjs +1 -0
- package/es/tokens/index2.mjs.map +1 -1
- package/es/version2.mjs +1 -1
- package/es/version2.mjs.map +1 -1
- package/lib/components/date-picker/index2.js +1 -1
- package/lib/components/date-picker/src/composables/use-month-range-header.js +10 -0
- package/lib/components/date-picker/src/composables/use-month-range-header.js.map +1 -0
- package/lib/components/date-picker/src/composables/use-month-range-header2.js +58 -0
- package/lib/components/date-picker/src/composables/use-month-range-header2.js.map +1 -0
- package/lib/components/date-picker/src/composables/use-range-picker.js +10 -0
- package/lib/components/date-picker/src/composables/use-range-picker.js.map +1 -0
- package/lib/components/date-picker/src/composables/use-range-picker2.js +82 -0
- package/lib/components/date-picker/src/composables/use-range-picker2.js.map +1 -0
- package/lib/components/date-picker/src/date-picker-com/basic-cell-render.js +35 -3
- package/lib/components/date-picker/src/date-picker-com/basic-cell-render.js.map +1 -1
- package/lib/components/date-picker/src/date-picker-com/basic-date-table2.js +8 -5
- package/lib/components/date-picker/src/date-picker-com/basic-date-table2.js.map +1 -1
- package/lib/components/date-picker/src/date-picker-com/basic-month-table2.js +7 -4
- package/lib/components/date-picker/src/date-picker-com/basic-month-table2.js.map +1 -1
- package/lib/components/date-picker/src/date-picker-com/basic-year-table2.js +7 -4
- package/lib/components/date-picker/src/date-picker-com/basic-year-table2.js.map +1 -1
- package/lib/components/date-picker/src/date-picker-com/panel-date-pick2.js +85 -84
- package/lib/components/date-picker/src/date-picker-com/panel-date-pick2.js.map +1 -1
- package/lib/components/date-picker/src/date-picker-com/panel-date-range2.js +366 -445
- package/lib/components/date-picker/src/date-picker-com/panel-date-range2.js.map +1 -1
- package/lib/components/date-picker/src/date-picker-com/panel-month-range2.js +186 -202
- package/lib/components/date-picker/src/date-picker-com/panel-month-range2.js.map +1 -1
- package/lib/components/date-picker/src/date-picker.js +87 -2
- package/lib/components/date-picker/src/date-picker.js.map +1 -1
- package/lib/components/date-picker/src/date-picker.type.js +1 -6
- package/lib/components/date-picker/src/date-picker.type.js.map +1 -1
- package/lib/components/date-picker/src/date-picker.type2.js +0 -5
- package/lib/components/date-picker/src/date-picker.type2.js.map +1 -1
- package/lib/components/date-picker/src/props/basic-cell.js +10 -0
- package/lib/components/date-picker/src/props/basic-cell.js.map +1 -0
- package/lib/components/date-picker/src/props/basic-cell2.js +15 -0
- package/lib/components/date-picker/src/props/basic-cell2.js.map +1 -0
- package/lib/components/date-picker/src/props/date-picker.js +10 -0
- package/lib/components/date-picker/src/props/date-picker.js.map +1 -0
- package/lib/components/date-picker/src/props/date-picker2.js +16 -0
- package/lib/components/date-picker/src/props/date-picker2.js.map +1 -0
- package/lib/components/date-picker/src/props/panel-date-pick.js +10 -0
- package/lib/components/date-picker/src/props/panel-date-pick.js.map +1 -0
- package/lib/components/date-picker/src/props/panel-date-pick2.js +24 -0
- package/lib/components/date-picker/src/props/panel-date-pick2.js.map +1 -0
- package/lib/components/date-picker/src/props/panel-date-range.js +10 -0
- package/lib/components/date-picker/src/props/panel-date-range.js.map +1 -0
- package/lib/components/date-picker/src/props/panel-date-range2.js +15 -0
- package/lib/components/date-picker/src/props/panel-date-range2.js.map +1 -0
- package/lib/components/date-picker/src/props/panel-month-range.js +11 -0
- package/lib/components/date-picker/src/props/panel-month-range.js.map +1 -0
- package/lib/components/date-picker/src/props/panel-month-range2.js +16 -0
- package/lib/components/date-picker/src/props/panel-month-range2.js.map +1 -0
- package/lib/components/date-picker/src/props/shared.js +3 -0
- package/lib/components/date-picker/src/props/shared.js.map +1 -1
- package/lib/components/date-picker/src/props/shared2.js +24 -3
- package/lib/components/date-picker/src/props/shared2.js.map +1 -1
- package/lib/components/date-picker/src/utils.js +11 -0
- package/lib/components/date-picker/src/utils.js.map +1 -0
- package/lib/components/date-picker/src/utils2.js +35 -0
- package/lib/components/date-picker/src/utils2.js.map +1 -0
- package/lib/components/focus-trap/src/focus-trap2.js +3 -1
- package/lib/components/focus-trap/src/focus-trap2.js.map +1 -1
- package/lib/components/input-number/src/input-number3.js +6 -17
- package/lib/components/input-number/src/input-number3.js.map +1 -1
- package/lib/components/result/src/result3.js +1 -0
- package/lib/components/result/src/result3.js.map +1 -1
- package/lib/components/result/src/result4.js +45 -46
- package/lib/components/result/src/result4.js.map +1 -1
- package/lib/components/time-picker/src/common/constant2.js +1 -0
- package/lib/components/time-picker/src/common/constant2.js.map +1 -1
- package/lib/index.js +2 -0
- package/lib/index.js.map +1 -1
- package/lib/packages/components/date-picker/index.d.ts +8 -24
- package/lib/packages/components/date-picker/src/composables/use-month-range-header.d.ts +16 -0
- package/lib/packages/components/date-picker/src/composables/use-range-picker.d.ts +129 -0
- package/lib/packages/components/date-picker/src/date-picker-com/basic-cell-render.d.ts +4 -7
- package/lib/packages/components/date-picker/src/date-picker-com/basic-date-table.vue.d.ts +24 -14
- package/lib/packages/components/date-picker/src/date-picker-com/basic-month-table.vue.d.ts +24 -14
- package/lib/packages/components/date-picker/src/date-picker-com/basic-year-table.vue.d.ts +21 -2
- package/lib/packages/components/date-picker/src/date-picker-com/panel-date-pick.vue.d.ts +47 -35
- package/lib/packages/components/date-picker/src/date-picker-com/panel-date-range.vue.d.ts +1059 -62
- package/lib/packages/components/date-picker/src/date-picker-com/panel-month-range.vue.d.ts +268 -31
- package/lib/packages/components/date-picker/src/date-picker.d.ts +20 -30
- package/lib/packages/components/date-picker/src/date-picker.type.d.ts +0 -5
- package/lib/packages/components/date-picker/src/props/basic-cell.d.ts +6 -0
- package/lib/packages/components/date-picker/src/props/basic-date-table.d.ts +2 -5
- package/lib/packages/components/date-picker/src/props/basic-month-table.d.ts +2 -5
- package/lib/packages/components/date-picker/src/props/basic-year-table.d.ts +1 -1
- package/lib/packages/components/date-picker/src/props/date-picker.d.ts +6 -0
- package/lib/packages/components/date-picker/src/props/panel-date-pick.d.ts +9 -0
- package/lib/packages/components/date-picker/src/props/panel-date-range.d.ts +7 -0
- package/lib/packages/components/date-picker/src/props/panel-month-range.d.ts +7 -0
- package/lib/packages/components/date-picker/src/props/shared.d.ts +13 -2
- package/lib/packages/components/date-picker/src/utils.d.ts +1795 -0
- package/lib/packages/components/dialog/index.d.ts +2 -2
- package/lib/packages/components/dialog/src/dialog-content.vue.d.ts +1 -1
- package/lib/packages/components/dialog/src/dialog.vue.d.ts +2 -2
- package/lib/packages/components/drawer/index.d.ts +1 -1
- package/lib/packages/components/drawer/src/drawer.vue.d.ts +1 -1
- package/lib/packages/components/input-number/index.d.ts +11 -12
- package/lib/packages/components/input-number/src/input-number.d.ts +9 -4
- package/lib/packages/components/input-number/src/input-number.vue.d.ts +11 -12
- package/lib/packages/components/message/src/message.vue.d.ts +1 -1
- package/lib/packages/components/notification/src/notification.vue.d.ts +1 -1
- package/lib/packages/components/result/index.d.ts +10 -3
- package/lib/packages/components/result/src/result.d.ts +1 -1
- package/lib/packages/components/result/src/result.vue.d.ts +10 -3
- package/lib/packages/components/roving-focus-group/src/roving-focus-item.vue.d.ts +1 -1
- package/lib/packages/components/time-picker/src/common/constant.d.ts +1 -0
- package/lib/packages/components/time-picker/src/common/picker.vue.d.ts +1 -1
- package/lib/packages/components/tooltip-v2/index.d.ts +10 -10
- package/lib/packages/components/tooltip-v2/src/tooltip.vue.d.ts +10 -10
- package/lib/packages/tokens/date-picker.d.ts +8 -0
- package/lib/packages/tokens/index.d.ts +1 -0
- package/lib/packages/version.d.ts +1 -1
- package/lib/tokens/date-picker.js +10 -0
- package/lib/tokens/date-picker.js.map +1 -0
- package/lib/tokens/date-picker2.js +8 -0
- package/lib/tokens/date-picker2.js.map +1 -0
- package/lib/tokens/index.js +2 -0
- package/lib/tokens/index.js.map +1 -1
- package/lib/tokens/index2.js +2 -0
- package/lib/tokens/index2.js.map +1 -1
- package/lib/version2.js +1 -1
- package/lib/version2.js.map +1 -1
- package/package.json +4 -4
- package/theme-chalk/el-button.css +1 -1
- package/theme-chalk/index.css +1 -1
- package/theme-chalk/src/button.scss +1 -1
- package/web-types.json +1 -1
- package/es/components/date-picker/src/date-picker-com/basic-cell-render2.mjs +0 -40
- package/es/components/date-picker/src/date-picker-com/basic-cell-render2.mjs.map +0 -1
- package/es/components/date-picker/src/date-picker2.mjs +0 -79
- package/es/components/date-picker/src/date-picker2.mjs.map +0 -1
- package/lib/components/date-picker/src/date-picker-com/basic-cell-render2.js +0 -44
- package/lib/components/date-picker/src/date-picker-com/basic-cell-render2.js.map +0 -1
- package/lib/components/date-picker/src/date-picker2.js +0 -95
- package/lib/components/date-picker/src/date-picker2.js.map +0 -1
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { getCurrentInstance, useAttrs, useSlots, inject, ref, unref } from 'vue';
|
|
2
|
+
import dayjs from 'dayjs';
|
|
3
|
+
import '../../../../utils/index2.mjs';
|
|
4
|
+
import '../../../../tokens/index2.mjs';
|
|
5
|
+
import '../../../../hooks/index2.mjs';
|
|
6
|
+
import { isValidRange } from '../utils2.mjs';
|
|
7
|
+
import { ROOT_PICKER_INJECTION_KEY } from '../../../../tokens/date-picker2.mjs';
|
|
8
|
+
import { useNamespace } from '../../../../hooks/use-namespace/index2.mjs';
|
|
9
|
+
import { useLocale } from '../../../../hooks/use-locale/index2.mjs';
|
|
10
|
+
import { isFunction } from '@vue/shared';
|
|
11
|
+
|
|
12
|
+
const useRangePicker = () => {
|
|
13
|
+
const { emit } = getCurrentInstance();
|
|
14
|
+
const attrs = useAttrs();
|
|
15
|
+
const slots = useSlots();
|
|
16
|
+
const { pickerNs } = inject(ROOT_PICKER_INJECTION_KEY);
|
|
17
|
+
const drpNs = useNamespace("date-range-picker");
|
|
18
|
+
const { t, lang } = useLocale();
|
|
19
|
+
const minDate = ref();
|
|
20
|
+
const maxDate = ref();
|
|
21
|
+
const rangeState = ref({
|
|
22
|
+
endDate: null,
|
|
23
|
+
selecting: false
|
|
24
|
+
});
|
|
25
|
+
const handleChangeRange = (val) => {
|
|
26
|
+
rangeState.value = val;
|
|
27
|
+
};
|
|
28
|
+
const handleRangeConfirm = (visible = false) => {
|
|
29
|
+
const _minDate = unref(minDate);
|
|
30
|
+
const _maxDate = unref(maxDate);
|
|
31
|
+
if (isValidRange([_minDate, _maxDate])) {
|
|
32
|
+
emit("pick", [_minDate, _maxDate], visible);
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
const onSelect = (selecting) => {
|
|
36
|
+
rangeState.value.selecting = selecting;
|
|
37
|
+
if (!selecting) {
|
|
38
|
+
rangeState.value.endDate = null;
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
const handleShortcutClick = (shortcut) => {
|
|
42
|
+
const shortcutValues = isFunction(shortcut.value) ? shortcut.value() : shortcut.value;
|
|
43
|
+
if (shortcutValues) {
|
|
44
|
+
emit("pick", [
|
|
45
|
+
dayjs(shortcutValues[0]).locale(lang.value),
|
|
46
|
+
dayjs(shortcutValues[1]).locale(lang.value)
|
|
47
|
+
]);
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
if (shortcut.onClick) {
|
|
51
|
+
shortcut.onClick({
|
|
52
|
+
attrs,
|
|
53
|
+
slots,
|
|
54
|
+
emit
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
return {
|
|
59
|
+
minDate,
|
|
60
|
+
maxDate,
|
|
61
|
+
rangeState,
|
|
62
|
+
lang,
|
|
63
|
+
ppNs: pickerNs,
|
|
64
|
+
drpNs,
|
|
65
|
+
handleChangeRange,
|
|
66
|
+
handleRangeConfirm,
|
|
67
|
+
handleShortcutClick,
|
|
68
|
+
onSelect,
|
|
69
|
+
t
|
|
70
|
+
};
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
export { useRangePicker };
|
|
74
|
+
//# sourceMappingURL=use-range-picker2.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-range-picker2.mjs","sources":["../../../../../../../packages/components/date-picker/src/composables/use-range-picker.ts"],"sourcesContent":["import { getCurrentInstance, inject, ref, unref, useAttrs, useSlots } from 'vue'\nimport dayjs from 'dayjs'\nimport { isFunction } from '@element-plus/utils'\nimport { ROOT_PICKER_INJECTION_KEY } from '@element-plus/tokens'\nimport { useLocale, useNamespace } from '@element-plus/hooks'\n\nimport { isValidRange } from '../utils'\n\nimport type { SetupContext } from 'vue'\nimport type { Dayjs } from 'dayjs'\nimport type { RangePickerSharedEmits, RangeState } from '../props/shared'\n\n// FIXME: extract this to `date-picker.ts`\ntype Shortcut = {\n text: string\n value: [Date, Date] | (() => [Date, Date])\n onClick?: (ctx: Omit<SetupContext<RangePickerSharedEmits>, 'expose'>) => void\n}\n\nexport const useRangePicker = () => {\n const { emit } = getCurrentInstance()!\n const attrs = useAttrs()\n const slots = useSlots()\n\n const { pickerNs } = inject(ROOT_PICKER_INJECTION_KEY)!\n const drpNs = useNamespace('date-range-picker')\n const { t, lang } = useLocale()\n const minDate = ref<Dayjs>()\n const maxDate = ref<Dayjs>()\n const rangeState = ref<RangeState>({\n endDate: null,\n selecting: false,\n })\n\n const handleChangeRange = (val: RangeState) => {\n rangeState.value = val\n }\n\n const handleRangeConfirm = (visible = false) => {\n const _minDate = unref(minDate)\n const _maxDate = unref(maxDate)\n\n if (isValidRange([_minDate, _maxDate])) {\n emit('pick', [_minDate, _maxDate], visible)\n }\n }\n\n const onSelect = (selecting: boolean) => {\n rangeState.value.selecting = selecting\n if (!selecting) {\n rangeState.value.endDate = null\n }\n }\n\n const handleShortcutClick = (shortcut: Shortcut) => {\n const shortcutValues = isFunction(shortcut.value)\n ? shortcut.value()\n : shortcut.value\n\n if (shortcutValues) {\n emit('pick', [\n dayjs(shortcutValues[0]).locale(lang.value),\n dayjs(shortcutValues[1]).locale(lang.value),\n ])\n return\n }\n if (shortcut.onClick) {\n shortcut.onClick({\n attrs,\n slots,\n emit,\n })\n }\n }\n\n return {\n minDate,\n maxDate,\n rangeState,\n lang,\n ppNs: pickerNs,\n drpNs,\n\n handleChangeRange,\n handleRangeConfirm,\n handleShortcutClick,\n onSelect,\n t,\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;AAMY,MAAC,cAAc,GAAG,MAAM;AACpC,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,kBAAkB,EAAE,CAAC;AACxC,EAAE,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;AAC3B,EAAE,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;AAC3B,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC,yBAAyB,CAAC,CAAC;AACzD,EAAE,MAAM,KAAK,GAAG,YAAY,CAAC,mBAAmB,CAAC,CAAC;AAClD,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,SAAS,EAAE,CAAC;AAClC,EAAE,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC;AACxB,EAAE,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC;AACxB,EAAE,MAAM,UAAU,GAAG,GAAG,CAAC;AACzB,IAAI,OAAO,EAAE,IAAI;AACjB,IAAI,SAAS,EAAE,KAAK;AACpB,GAAG,CAAC,CAAC;AACL,EAAE,MAAM,iBAAiB,GAAG,CAAC,GAAG,KAAK;AACrC,IAAI,UAAU,CAAC,KAAK,GAAG,GAAG,CAAC;AAC3B,GAAG,CAAC;AACJ,EAAE,MAAM,kBAAkB,GAAG,CAAC,OAAO,GAAG,KAAK,KAAK;AAClD,IAAI,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;AACpC,IAAI,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;AACpC,IAAI,IAAI,YAAY,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,EAAE;AAC5C,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC;AAClD,KAAK;AACL,GAAG,CAAC;AACJ,EAAE,MAAM,QAAQ,GAAG,CAAC,SAAS,KAAK;AAClC,IAAI,UAAU,CAAC,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;AAC3C,IAAI,IAAI,CAAC,SAAS,EAAE;AACpB,MAAM,UAAU,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;AACtC,KAAK;AACL,GAAG,CAAC;AACJ,EAAE,MAAM,mBAAmB,GAAG,CAAC,QAAQ,KAAK;AAC5C,IAAI,MAAM,cAAc,GAAG,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,KAAK,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC;AAC1F,IAAI,IAAI,cAAc,EAAE;AACxB,MAAM,IAAI,CAAC,MAAM,EAAE;AACnB,QAAQ,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;AACnD,QAAQ,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;AACnD,OAAO,CAAC,CAAC;AACT,MAAM,OAAO;AACb,KAAK;AACL,IAAI,IAAI,QAAQ,CAAC,OAAO,EAAE;AAC1B,MAAM,QAAQ,CAAC,OAAO,CAAC;AACvB,QAAQ,KAAK;AACb,QAAQ,KAAK;AACb,QAAQ,IAAI;AACZ,OAAO,CAAC,CAAC;AACT,KAAK;AACL,GAAG,CAAC;AACJ,EAAE,OAAO;AACT,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,UAAU;AACd,IAAI,IAAI;AACR,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,KAAK;AACT,IAAI,iBAAiB;AACrB,IAAI,kBAAkB;AACtB,IAAI,mBAAmB;AACvB,IAAI,QAAQ;AACZ,IAAI,CAAC;AACL,GAAG,CAAC;AACJ;;;;"}
|
|
@@ -1,2 +1,38 @@
|
|
|
1
|
-
|
|
1
|
+
import { defineComponent, inject, createVNode } from 'vue';
|
|
2
|
+
import '../../../../tokens/index2.mjs';
|
|
3
|
+
import '../../../../hooks/index2.mjs';
|
|
4
|
+
import { basicCellProps } from '../props/basic-cell2.mjs';
|
|
5
|
+
import { useNamespace } from '../../../../hooks/use-namespace/index2.mjs';
|
|
6
|
+
import { ROOT_PICKER_INJECTION_KEY } from '../../../../tokens/date-picker2.mjs';
|
|
7
|
+
|
|
8
|
+
var ElDatePickerCell = defineComponent({
|
|
9
|
+
name: "ElDatePickerCell",
|
|
10
|
+
props: basicCellProps,
|
|
11
|
+
setup(props) {
|
|
12
|
+
const ns = useNamespace("date-table-cell");
|
|
13
|
+
const {
|
|
14
|
+
slots
|
|
15
|
+
} = inject(ROOT_PICKER_INJECTION_KEY);
|
|
16
|
+
return () => {
|
|
17
|
+
const {
|
|
18
|
+
cell
|
|
19
|
+
} = props;
|
|
20
|
+
if (slots.default) {
|
|
21
|
+
const list = slots.default(cell).filter((item) => {
|
|
22
|
+
return item.patchFlag !== -2 && item.type.toString() !== "Symbol(Comment)";
|
|
23
|
+
});
|
|
24
|
+
if (list.length) {
|
|
25
|
+
return list;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return createVNode("div", {
|
|
29
|
+
"class": ns.b()
|
|
30
|
+
}, [createVNode("span", {
|
|
31
|
+
"class": ns.e("text")
|
|
32
|
+
}, [cell == null ? void 0 : cell.text])]);
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
export { ElDatePickerCell as default };
|
|
2
38
|
//# sourceMappingURL=basic-cell-render.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"basic-cell-render.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"basic-cell-render.mjs","sources":["../../../../../../../packages/components/date-picker/src/date-picker-com/basic-cell-render.tsx"],"sourcesContent":["import { defineComponent, inject } from 'vue'\nimport { ROOT_PICKER_INJECTION_KEY } from '@element-plus/tokens'\nimport { useNamespace } from '@element-plus/hooks'\nimport { basicCellProps } from '../props/basic-cell'\n\nexport default defineComponent({\n name: 'ElDatePickerCell',\n props: basicCellProps,\n setup(props) {\n const ns = useNamespace('date-table-cell')\n const { slots } = inject(ROOT_PICKER_INJECTION_KEY)!\n return () => {\n const { cell } = props\n if (slots.default) {\n const list = slots.default(cell).filter((item) => {\n return (\n item.patchFlag !== -2 && item.type.toString() !== 'Symbol(Comment)'\n )\n })\n if (list.length) {\n return list\n }\n }\n\n return (\n <div class={ns.b()}>\n <span class={ns.e('text')}>{cell?.text}</span>\n </div>\n )\n }\n },\n})\n"],"names":["defineComponent","name","props","basicCellProps","ns","slots","inject","ROOT_PICKER_INJECTION_KEY","cell","default","list","item","_createVNode"],"mappings":";;;;;;;AAKA,uBAAeA,eAAe,CAAC;AAC7BC,EAAAA,IAAI,EAAE,kBADuB;AAE7BC,EAAAA,KAAK,EAAEC,cAFsB;;IAGxB,WAAQ,YAAA,CAAA,iBAAA,CAAA,CAAA;AACX,IAAA,MAAMC;MACA,KAAA;AAAEC,KAAAA,GAAAA,MAAAA,CAAAA,yBAAAA,CAAAA,CAAAA;IAAF,OAAYC,MAAOC;AACzB,MAAA,MAAa;QACL,IAAA;AAAEC,OAAAA,GAAAA,KAAAA,CAAAA;AAAF,MAAA,IAAWN,KAAjB,CAAA,OAAA,EAAA;;UACIG,OAAMI,IAAAA,CAAAA,SAAS,KAAA,CAAA,CAAA,IAAA,IAAA,CAAA,IAAA,CAAA,QAAA,EAAA,KAAA,iBAAA,CAAA;SACXC,CAAAA,CAAAA;AACJ,QAAA,IAAA,IAAA,CACEC,MAAA,EAAA;AAEH,UAJD,OAAA,IAAA,CAAA;;;AAME,MAAA,OAAAC,WAAA,CAAA,KAAA,EAAA;AACD,QAAA,OAAA,EAAA,EAAA,CAAA,CAAA,EAAA;AACF,OAAA,EAAA,CAAAA,WAAA,CAAA,MAAA,EAAA;;AAED,OAAA,EAAA,CAAA,IAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,IAAA,CAAA,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;AAAA,GAAA;AAAA,CAAA,CAAA;;;;"}
|
|
@@ -3,8 +3,9 @@ import dayjs from 'dayjs';
|
|
|
3
3
|
import '../../../../hooks/index2.mjs';
|
|
4
4
|
import '../../../../utils/index2.mjs';
|
|
5
5
|
import { basicDateTableProps } from '../props/basic-date-table2.mjs';
|
|
6
|
-
import ElDatePickerCell from './basic-cell-
|
|
6
|
+
import ElDatePickerCell from './basic-cell-render.mjs';
|
|
7
7
|
import _export_sfc from '../../../../_virtual/plugin-vue_export-helper.mjs';
|
|
8
|
+
import { useNamespace } from '../../../../hooks/use-namespace/index2.mjs';
|
|
8
9
|
import { useLocale } from '../../../../hooks/use-locale/index2.mjs';
|
|
9
10
|
import { castArray } from '../../../../utils/arrays2.mjs';
|
|
10
11
|
|
|
@@ -16,6 +17,7 @@ const _sfc_main = defineComponent({
|
|
|
16
17
|
emits: ["changerange", "pick", "select"],
|
|
17
18
|
expose: ["focus"],
|
|
18
19
|
setup(props, ctx) {
|
|
20
|
+
const ns = useNamespace("date-table");
|
|
19
21
|
const { t, lang } = useLocale();
|
|
20
22
|
const tbodyRef = ref();
|
|
21
23
|
const currentCellRef = ref();
|
|
@@ -274,6 +276,7 @@ const _sfc_main = defineComponent({
|
|
|
274
276
|
return false;
|
|
275
277
|
};
|
|
276
278
|
return {
|
|
279
|
+
ns,
|
|
277
280
|
tbodyRef,
|
|
278
281
|
currentCellRef,
|
|
279
282
|
handleMouseMove,
|
|
@@ -305,7 +308,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
305
308
|
"aria-label": _ctx.t("el.datepicker.dateTablePrompt"),
|
|
306
309
|
cellspacing: "0",
|
|
307
310
|
cellpadding: "0",
|
|
308
|
-
class: normalizeClass([
|
|
311
|
+
class: normalizeClass([_ctx.ns.b(), { "is-week-mode": _ctx.selectionMode === "week" }]),
|
|
309
312
|
onClick: _cache[1] || (_cache[1] = (...args) => _ctx.handlePickDate && _ctx.handlePickDate(...args)),
|
|
310
313
|
onMousemove: _cache[2] || (_cache[2] = (...args) => _ctx.handleMouseMove && _ctx.handleMouseMove(...args))
|
|
311
314
|
}, [
|
|
@@ -323,7 +326,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
323
326
|
(openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.rows, (row, key) => {
|
|
324
327
|
return openBlock(), createElementBlock("tr", {
|
|
325
328
|
key,
|
|
326
|
-
class: normalizeClass(["
|
|
329
|
+
class: normalizeClass([_ctx.ns.e("row"), { current: _ctx.isWeekActive(row[1]) }])
|
|
327
330
|
}, [
|
|
328
331
|
(openBlock(true), createElementBlock(Fragment, null, renderList(row, (cell, key_) => {
|
|
329
332
|
return openBlock(), createElementBlock("td", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"basic-date-table2.mjs","sources":["../../../../../../../packages/components/date-picker/src/date-picker-com/basic-date-table.vue"],"sourcesContent":["<template>\n <table\n role=\"grid\"\n :aria-label=\"t('el.datepicker.dateTablePrompt')\"\n cellspacing=\"0\"\n cellpadding=\"0\"\n class=\"el-date-table\"\n :class=\"{ 'is-week-mode': selectionMode === 'week' }\"\n @click=\"handlePickDate\"\n @mousemove=\"handleMouseMove\"\n >\n <tbody ref=\"tbodyRef\">\n <tr>\n <th v-if=\"showWeekNumber\" scope=\"col\">{{ t('el.datepicker.week') }}</th>\n <th\n v-for=\"(week, key) in WEEKS\"\n :key=\"key\"\n scope=\"col\"\n :aria-label=\"t('el.datepicker.weeksFull.' + week)\"\n >\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 :ref=\"(el) => isSelectedCell(cell) && (currentCellRef = el)\"\n :class=\"getCellClasses(cell)\"\n :aria-current=\"cell.isCurrent ? 'date' : undefined\"\n :aria-selected=\"`${cell.isCurrent}`\"\n :tabindex=\"isSelectedCell(cell) ? 0 : -1\"\n @focus=\"handleFocus\"\n >\n <el-date-picker-cell :cell=\"cell\" />\n </td>\n </tr>\n </tbody>\n </table>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, nextTick, ref, watch } from 'vue'\nimport dayjs from 'dayjs'\nimport { useLocale } from '@element-plus/hooks'\nimport { castArray } from '@element-plus/utils'\nimport { basicDateTableProps } from '../props/basic-date-table'\nimport ElDatePickerCell from './basic-cell-render'\n\nimport type { Dayjs } from 'dayjs'\nimport type { DateCell } from '../date-picker.type'\n\nexport default defineComponent({\n components: {\n ElDatePickerCell,\n },\n props: basicDateTableProps,\n emits: ['changerange', 'pick', 'select'],\n expose: ['focus'],\n setup(props, ctx) {\n const { t, lang } = useLocale()\n\n const tbodyRef = ref<HTMLElement>()\n const currentCellRef = ref<HTMLElement>()\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 hasCurrent = computed<boolean>(() => {\n return rows.value.flat().some((row) => {\n return row.isCurrent\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' ? castArray(props.parsedValue) : []\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 watch(\n () => props.date,\n async () => {\n if (tbodyRef.value?.contains(document.activeElement)) {\n await nextTick()\n currentCellRef.value?.focus()\n }\n }\n )\n\n const focus = async () => {\n currentCellRef.value?.focus()\n }\n\n const isCurrent = (cell): boolean => {\n return (\n props.selectionMode === 'date' &&\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 isSelectedCell = (cell: DateCell) => {\n return (\n (!hasCurrent.value && cell?.text === 1 && cell.type === 'normal') ||\n cell.isCurrent\n )\n }\n\n const handleFocus = (event: Event) => {\n if (!hasCurrent.value && props.selectionMode === 'date') {\n handlePickDate(event, true)\n }\n }\n\n const handlePickDate = (event: Event, isKeyboardMovement = false) => {\n let target = event.target as HTMLElement\n\n target = target?.closest('td')\n\n if (!target || target.tagName !== 'TD') return\n\n const row = (target.parentNode as HTMLTableRowElement).rowIndex - 1\n const column = (target as HTMLTableCellElement).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 || !props.minDate) {\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 === 'date') {\n ctx.emit('pick', newDate, isKeyboardMovement)\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 ? castArray(props.parsedValue).filter(\n (_) => _.valueOf() !== newDate.valueOf()\n )\n : castArray(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(Number.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 tbodyRef,\n currentCellRef,\n handleMouseMove,\n t,\n hasCurrent,\n rows,\n isSelectedCell,\n isWeekActive,\n getCellClasses,\n WEEKS,\n handleFocus,\n handlePickDate,\n focus,\n }\n },\n})\n</script>\n"],"names":["_resolveComponent","_openBlock","_createElementBlock","_normalizeClass","_createElementVNode","_toDisplayString","_createCommentVNode","_Fragment","_renderList"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"basic-date-table2.mjs","sources":["../../../../../../../packages/components/date-picker/src/date-picker-com/basic-date-table.vue"],"sourcesContent":["<template>\n <table\n role=\"grid\"\n :aria-label=\"t('el.datepicker.dateTablePrompt')\"\n cellspacing=\"0\"\n cellpadding=\"0\"\n :class=\"[ns.b(), { 'is-week-mode': selectionMode === 'week' }]\"\n @click=\"handlePickDate\"\n @mousemove=\"handleMouseMove\"\n >\n <tbody ref=\"tbodyRef\">\n <tr>\n <th v-if=\"showWeekNumber\" scope=\"col\">{{ t('el.datepicker.week') }}</th>\n <th\n v-for=\"(week, key) in WEEKS\"\n :key=\"key\"\n scope=\"col\"\n :aria-label=\"t('el.datepicker.weeksFull.' + week)\"\n >\n {{ t('el.datepicker.weeks.' + week) }}\n </th>\n </tr>\n <tr\n v-for=\"(row, key) in rows\"\n :key=\"key\"\n :class=\"[ns.e('row'), { current: isWeekActive(row[1]) }]\"\n >\n <td\n v-for=\"(cell, key_) in row\"\n :key=\"key_\"\n :ref=\"(el) => isSelectedCell(cell) && (currentCellRef = el)\"\n :class=\"getCellClasses(cell)\"\n :aria-current=\"cell.isCurrent ? 'date' : undefined\"\n :aria-selected=\"`${cell.isCurrent}`\"\n :tabindex=\"isSelectedCell(cell) ? 0 : -1\"\n @focus=\"handleFocus\"\n >\n <el-date-picker-cell :cell=\"cell\" />\n </td>\n </tr>\n </tbody>\n </table>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, nextTick, ref, watch } from 'vue'\nimport dayjs from 'dayjs'\nimport { useLocale, useNamespace } from '@element-plus/hooks'\nimport { castArray } from '@element-plus/utils'\nimport { basicDateTableProps } from '../props/basic-date-table'\nimport ElDatePickerCell from './basic-cell-render'\n\nimport type { Dayjs } from 'dayjs'\nimport type { DateCell } from '../date-picker.type'\n\nexport default defineComponent({\n components: {\n ElDatePickerCell,\n },\n props: basicDateTableProps,\n emits: ['changerange', 'pick', 'select'],\n expose: ['focus'],\n setup(props, ctx) {\n const ns = useNamespace('date-table')\n\n const { t, lang } = useLocale()\n\n const tbodyRef = ref<HTMLElement>()\n const currentCellRef = ref<HTMLElement>()\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 hasCurrent = computed<boolean>(() => {\n return rows.value.flat().some((row) => {\n return row.isCurrent\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' ? castArray(props.parsedValue) : []\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 watch(\n () => props.date,\n async () => {\n if (tbodyRef.value?.contains(document.activeElement)) {\n await nextTick()\n currentCellRef.value?.focus()\n }\n }\n )\n\n const focus = async () => {\n currentCellRef.value?.focus()\n }\n\n const isCurrent = (cell): boolean => {\n return (\n props.selectionMode === 'date' &&\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 isSelectedCell = (cell: DateCell) => {\n return (\n (!hasCurrent.value && cell?.text === 1 && cell.type === 'normal') ||\n cell.isCurrent\n )\n }\n\n const handleFocus = (event: Event) => {\n if (!hasCurrent.value && props.selectionMode === 'date') {\n handlePickDate(event, true)\n }\n }\n\n const handlePickDate = (event: Event, isKeyboardMovement = false) => {\n let target = event.target as HTMLElement\n\n target = target?.closest('td')\n\n if (!target || target.tagName !== 'TD') return\n\n const row = (target.parentNode as HTMLTableRowElement).rowIndex - 1\n const column = (target as HTMLTableCellElement).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 || !props.minDate) {\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 === 'date') {\n ctx.emit('pick', newDate, isKeyboardMovement)\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 ? castArray(props.parsedValue).filter(\n (_) => _.valueOf() !== newDate.valueOf()\n )\n : castArray(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(Number.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 ns,\n tbodyRef,\n currentCellRef,\n handleMouseMove,\n t,\n hasCurrent,\n rows,\n isSelectedCell,\n isWeekActive,\n getCellClasses,\n WEEKS,\n handleFocus,\n handlePickDate,\n focus,\n }\n },\n})\n</script>\n"],"names":["_resolveComponent","_openBlock","_createElementBlock","_normalizeClass","_createElementVNode","_toDisplayString","_createCommentVNode","_Fragment","_renderList"],"mappings":";;;;;;;;;;;AAuDA,MAAK,YAAa,eAAa,CAAA;AAAA,EAC7B,UAAY,EAAA;AAAA,IACV,gBAAA;AAAA,GACF;AAAA,EACA,KAAO,EAAA,mBAAA;AAAA,EACP,KAAO,EAAA,CAAC,aAAe,EAAA,MAAA,EAAQ,QAAQ,CAAA;AAAA,EACvC,MAAA,EAAQ,CAAC,OAAO,CAAA;AAAA,EAChB,KAAA,CAAM,OAAO,GAAK,EAAA;AAChB,IAAM,MAAA,EAAA,GAAK,aAAa,YAAY,CAAA,CAAA;AAEpC,IAAM,MAAA,EAAE,CAAG,EAAA,IAAA,EAAA,GAAS,SAAU,EAAA,CAAA;AAE9B,IAAA,MAAM,WAAW,GAAiB,EAAA,CAAA;AAClC,IAAA,MAAM,iBAAiB,GAAiB,EAAA,CAAA;AAExC,IAAM,MAAA,OAAA,GAAU,IAAI,IAAI,CAAA,CAAA;AACxB,IAAM,MAAA,UAAA,GAAa,IAAI,IAAI,CAAA,CAAA;AAC3B,IAAA,MAAM,SAAY,GAAA,GAAA,CAAkB,CAAC,IAAI,EAAC,EAAG,EAAC,EAAG,EAAI,EAAA,EAAI,EAAA,EAAE,CAAC,CAAA,CAAA;AAG5D,IAAA,MAAM,cAAkB,GAAA,KAAA,CAAM,IAAa,CAAA,OAAA,GAAU,SAAa,IAAA,CAAA,CAAA;AAClE,IAAA,MAAM,cAAiB,GAAA,KAAA,CAAM,IAC1B,CAAA,MAAA,CAAO,IAAI,CACX,CAAA,UAAA,EACA,CAAA,aAAA,GACA,GAAI,CAAA,CAAC,CAAM,KAAA,CAAA,CAAE,aAAa,CAAA,CAAA;AAE7B,IAAM,MAAA,SAAA,GAAY,SAAS,MAAM;AAE/B,MAAA,OAAO,cAAiB,GAAA,CAAA,GAAI,CAAI,GAAA,cAAA,GAAiB,CAAC,cAAA,CAAA;AAAA,KACnD,CAAA,CAAA;AAED,IAAM,MAAA,SAAA,GAAY,SAAS,MAAM;AAC/B,MAAA,MAAM,eAAkB,GAAA,KAAA,CAAM,IAAK,CAAA,OAAA,CAAQ,OAAO,CAAA,CAAA;AAClD,MAAA,OAAO,gBAAgB,QAAS,CAAA,eAAA,CAAgB,GAAI,EAAA,IAAK,GAAG,KAAK,CAAA,CAAA;AAAA,KAClE,CAAA,CAAA;AAED,IAAM,MAAA,KAAA,GAAQ,SAAS,MAAM;AAC3B,MAAA,OAAO,eAAe,MAAO,CAAA,cAAc,EAAE,KAC3C,CAAA,cAAA,EACA,iBAAiB,CACnB,CAAA,CAAA;AAAA,KACD,CAAA,CAAA;AAED,IAAM,MAAA,UAAA,GAAa,SAAkB,MAAM;AACzC,MAAA,OAAO,KAAK,KAAM,CAAA,IAAA,EAAO,CAAA,IAAA,CAAK,CAAC,GAAQ,KAAA;AACrC,QAAA,OAAO,GAAI,CAAA,SAAA,CAAA;AAAA,OACZ,CAAA,CAAA;AAAA,KACF,CAAA,CAAA;AAED,IAAM,MAAA,IAAA,GAAO,SAAS,MAAM;AAE1B,MAAA,IAAA,EAAM,CAAe;AACrB,MAAM,MAAA,YAAA,GAAA,KAA+B,CAAA,IAAA,CAAA,OAAA,CAAA,OAAS,CAAA,CAAA;AAC9C,MAAM,MAAA,eAAA,GAAA,gBAA4C,EAAA,IAAA,CAAA,CAAA;AAClD,MAAA,MAAM,+BACH,CAAA,WAAA,EAAS,CAAG;AAGf,MAAA,MAAM,oBAAmB,GAAA,YAAA,CAAA,QAAA,CAAA,CAAA,EAAA,OAAA,CAAA,CAAA,WAAA,EAAA,CAAA;AACzB,MAAA,MAAM,SAAkB,SAAA,CAAA,KAAA,CAAA;AACxB,MAAA,MAAY,KAAA,GAAA,SAAA,CAAA,KAAA,CAAA;AAEZ,MAAM,IAAA,KAAA,GAAA,CAAA,CAAA;AAGN,MAAM,MAAA,eAAe,KAAE,CAAA,aAAiB,YAAe,GAAA,SAAA,CAAA,KAAA,CAAA,WAAA,CAAA,GAAA,EAAA,CAAA;AAEvD,MAAA,MAAA,MAAa,GAAA,KAAO,EAAA,CAAG,MAAK,CAAA,IAAA,CAAA,KAAA,CAAA,CAAA,OAAA,CAAA,KAAA,CAAA,CAAA;AAC1B,MAAA,KAAA,SAAY,EAAM,CAAA,GAAA,CAAA,EAAA,CAAA,EAAA,EAAA;AAElB,QAAA,YAA0B,KAAA,CAAA,CAAA,CAAA,CAAA;AACxB,QAAI,IAAA,oBAAS,EAAA;AACX,UAAA,IAAA,CAAA,GAAS,CAAA,CAAA,CAAA,EAAA;AAAA,YAAA,GACD,CAAA,CAAA,CAAA,GAAA;AAAA,cACN,IAAA,EAAM;AAA2C,cACnD,IAAA,EAAA,SAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,GAAA,CAAA,GAAA,CAAA,EAAA,KAAA,CAAA,CAAA,IAAA,EAAA;AAAA,aACF,CAAA;AAAA,WACF;AAEA,SAAA;AACE,QAAA,KAAA,IAAW,CAAA,GAAA,CAAA,EAAA,CAAI,GAAM,CAAA,EAAA,CAAA,EAAA,EAAA;AACrB,UAAA,IAAI,IAAO,GAAA,GAAA,CAAA,KAAA,CAAA,cAAA,GAAA,CAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAAA;AACT,UAAO,IAAA,CAAA,IAAA,EAAA;AAAA,YAAA,IACA,GAAA;AAAA,cACL,GAAQ,EAAA,CAAA;AAAA,cACR,MAAM,EAAA,CAAA;AAAA,cACN,IAAS,EAAA,QAAA;AAAA,cACT,OAAO,EAAA,KAAA;AAAA,cACP,KAAK,EAAA,KAAA;AAAA,cACP,GAAA,EAAA,KAAA;AAAA,aACF,CAAA;AACA,WAAM;AACN,UAAA,MAAM,YAAoB,CAAA,GAAA,CAAA,CAAA;AAC1B,UAAA,MAAa,OAAA,GAAA,SAAA,CAAA,KAAA,CAAA,GAAA,CAAA,KAAA,GAAA,MAAA,EAAA,KAAA,CAAA,CAAA;AACb,UAAK,IAAA,CAAA,KAAA,UAAe,CAAO;AAC3B,UAAK,IAAA,CAAA,IAAA,GAAA,cAA4B,EAAA,CAAA;AACjC,UAAA,IAAA,CAAK,SAAO,GAAA,OAAA,CAAA,OAAA,EAAA,CAAA;AAEZ,UAAM,IAAA,CAAA,IAAA,GAAA;AAKN,UAAK,MAAA,UACI,GAAA,KAAA,CAAA,UACG,CAAA,OAAA,IAAA,KAAA,CAAA,OAAoB,IAAA,KAAS,CAAK,UAE1C,CAAA,SAAA,IAAA,KAAA,CAAA,OAAuB,CAAA;AAM3B,UAAA,IAAI,CAAM,OAAA,GAAA,KAAuB,CAAA,OAAA,IAAA,OAAA,CAAA,aAAa,CAAA,KAAA,CAAA,OAAA,EAAA,KAAA,CAAA,IAAA,UAAA,IAAA,OAAA,CAAA,cAAA,CAAA,UAAA,EAAA,KAAA,CAAA,IAAA,KAAA,CAAA,OAAA,IAAA,OAAA,CAAA,cAAA,CAAA,KAAA,CAAA,OAAA,EAAA,KAAA,CAAA,IAAA,UAAA,IAAA,OAAA,CAAA,aAAA,CAAA,UAAA,EAAA,KAAA,CAAA,CAAA;AAC5C,UAAA,IAAA,CAAA,EAAK,GAAQ,KAAA,CAAA,OAAA,KAAA,IAAsB,GAAA,KAAA,CAAA,GAAO,gBAAiB,CAAA,UAAA,CAAA,EAAA;AAC3D,YAAA,IAAA,CAAK,QAAY,UAAA,IAAA,cAA0B,CAAA,iBAAoB,CAAA,CAAA;AAAA,YAC1D,IAAA,CAAA,GAAA,GAAA,KAAA,CAAA,OAAA,IAAA,OAAA,CAAA,MAAA,CAAA,KAAA,CAAA,OAAA,EAAA,KAAA,CAAA,CAAA;AACL,WAAA,MAAK;AACL,YAAA,IAAA,CAAK,KAAM,GAAA,KAAA,CAAA,OAAsB,IAAA,OAAA,CAAA,oBAAwB,EAAA,KAAA,CAAA,CAAA;AAAA,YAC3D,IAAA,CAAA,GAAA,GAAA,UAAA,IAAA,OAAA,CAAA,MAAA,CAAA,UAAA,EAAA,KAAA,CAAA,CAAA;AAEA,WAAA;AAEA,UAAA,MAAa,OAAA,GAAA,OAAA,CAAA,MAAA,CAAA,MAAA,EAAA,KAAA,CAAA,CAAA;AACX,UAAA,IAAA,OAAY,EAAA;AAAA,YACd,IAAA,CAAA,IAAA,GAAA,OAAA,CAAA;AAEA,WAAI;AACF,UAAA,IAAA,CAAA;AAKA,YAAI,MAAA,6BAA4C,GAAA,eAAA,GAAA,MAAA,GAAA,CAAA,GAAA,CAAA,GAAA,eAAA,GAAA,MAAA,GAAA,eAAA,GAAA,MAAA,CAAA;AAC9C,YAAA,IAAA,CAAA,GAAY,CAAA,GAAA,CAAA,IAAA,6BAAA,EAAA;AAAA,cACP,IAAA,CAAA,IAAA,GAAA,KAAA,EAAA,CAAA;AACL,aAAA,MAAK;AAKL,cAAA,IAAA,CAAK,IAAO,GAAA,oBAAA,IAAA,6BAAA,GAAA,CAAA,GAAA,CAAA,CAAA,GAAA,CAAA,GAAA,CAAA,GAAA,CAAA,CAAA;AAAA,cACd,IAAA,CAAA,IAAA,GAAA,YAAA,CAAA;AAAA,aACK;AACL,WAAA;AACE,YAAA,IAAA,KAAY,IAAA,gBAAA,EAAA;AAAA,cACP,IAAA,CAAA,IAAA,GAAA,KAAA,EAAA,CAAA;AACL,aAAA,MAAK;AACL,cAAA,IAAA,CAAK,IAAO,GAAA,KAAA,EAAA,GAAA,gBAAA,CAAA;AAAA,cACd,IAAA,CAAA,IAAA,GAAA,YAAA,CAAA;AAAA,aACF;AAEA,WAAM;AACN,UAAK,MAAA,QAAA,GAAwB,OAAA,CAAA,MAAA,EAAA,CAC3B;AAEF,UAAK,IAAA,CAAA,QAAA,GAAA,YAAoB,CAAA,IAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,OAAA,EAAA,KAAA,OAAA,CAAA,OAAA,EAAA,CAAA,CAAA;AACzB,UAAK,IAAA,CAAA,UAAA,kBAA0B,CAAA;AAC/B,UAAA,IAAA,CAAK,SAAW,GAAA,SAAsB,CAAA,IAAA,CAAA,CAAA;AACtC,UAAA,IAAA,CAAK,QACH,GAAA,KAAA,CAAA,YAAuB,IAAA,KAAA,CAAA,qBAA4B,CAAA,CAAA;AACrD,UAAA,IAAI,CAAM,WAAA,GAAA,KAAA,CAAA,aAA8B,IAAA,KAAA,CAAA,aAAA,CAAA,QAAA,CAAA,CAAA;AAAA,UAC1C,GAAA,CAAA,KAAA,CAAA,cAAA,GAAA,CAAA,GAAA,CAAA,GAAA,CAAA,CAAA,GAAA,IAAA,CAAA;AAEA,SAAI;AACF,QAAM,IAAA,KAAA,CAAA,aAAc,KAAA,MAAA,EAAA;AACpB,UAAM,MAAA,KAAA,GAAY,KAAA,CAAA,cAAA,GAAqB,CAAA,GAAA,CAAA,CAAA;AACvC,UAAA,MAAM,GAAW,GAAA,KAAA,CAAA,cAAiB,GAAA,CAAA,GAAA,CAAA,CAAA;AAClC,UAAA,cAAqB,GAAA,YAAA,CAAA,GAAA,CAAA,KAAA,GAAA,CAAA,CAAA,CAAA,CAAA;AACrB,UAAA,GAAA,CAAI,OAAO,OAAQ,GAAA,QAAA,CAAA;AACnB,UAAA,GAAA,CAAI,KAAK,CAAU,CAAA,KAAA,GAAA,QAAA,CAAA;AACnB,UAAA,GAAA,CAAI,KAAK,OAAM,GAAA,QAAA,CAAA;AAAA,UACjB,GAAA,CAAA,GAAA,CAAA,CAAA,GAAA,GAAA,QAAA,CAAA;AAAA,SACF;AACA,OAAO;AAAA,MACR,OAAA,KAAA,CAAA;AAED,KACE,CAAA,CAAA;AAEE,IAAA,KAAA,CAAI,MAAS,KAAA,CAAA,IAAO,EAAS,YAAA;AAC3B,MAAA,IAAA,EAAA,EAAM,EAAS,CAAA;AACf,MAAA,IAAA,CAAA,EAAA,GAAA,cAAsB,KAAM,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAA,CAAA,QAAA,CAAA,aAAA,CAAA,EAAA;AAAA,QAC9B,MAAA,QAAA,EAAA,CAAA;AAAA,QAEJ,CAAA,EAAA,GAAA,cAAA,CAAA,KAAA,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,KAAA,EAAA,CAAA;AAEA,OAAA;AACE,KAAA,CAAA,CAAA;AAA4B,IAC9B,MAAA,KAAA,GAAA,YAAA;AAEA,MAAM,IAAA,EAAA,CAAA;AACJ,MAAA,CAAA,EAAA,GAAA,cACQ,CAAA,KAAA,KAAkB,IACvB,GAAA,KAAA,CAAA,GAAK,EAAS,CAAA,KAAA,EAAA,CAAA;AACwB,KAE3C,CAAA;AAEA,IAAM,MAAA,SAAA,GAAA,CAAA,IAAA,KAAmB;AACvB,MAAA,OAAK,KAAA,CAAA,aAAA,KAAA,MAAA,KAAA,IAAA,CAAA,IAAA,KAAA,QAAA,IAAA,IAAA,CAAA,IAAA,KAAA,OAAA,CAAA,IAAA,eAAA,CAAA,IAAA,EAAA,KAAA,CAAA,WAAA,CAAA,CAAA;AAAM,KAAO,CAAA;AAClB,IAAA,MAAA,eACG,GAAO,CAAA,IAAA,EAAA,SACP;AAAgD,MACrD,IAAA,CAAA,IAAA;AAEA,QAAM,OAAA,KAAA,CAAA;AACJ,MAAA,iBAA2B,CAAA,CAAA,MAAA,CAAA,IAAA,CAAA,KAAA,CAAA,CAAA,MAAA,CAAA,KAAA,CAAA,IAAA,CAAA,IAAA,CAAA,MAAA,CAAA,IAAA,CAAA,IAAA,CAAA,CAAA,EAAA,KAAA,CAAA,CAAA;AAC3B,KAAK,CAAA;AACH,IAAA,MAAA,cAAwB,GAAA,CAAA,IAAA,KAAA;AACxB,MAAI,MAAA;AACF,MAAA,IAAA,CAAA,IAAA,CAAA,SAAoB,QAAA,IAAA,IAAA,CAAA,IAAA,KAAA,OAAA,KAAA,CAAA,IAAA,CAAA,QAAA,EAAA;AAAA,QACtB,OAAA,CAAA,IAAA,CAAA,WAAA,CAAA,CAAA;AAAA,QACK,IAAA,IAAA,CAAA,IAAA,KAAA,OAAA,EAAA;AACL,UAAQ,OAAA,CAAA,YAAc,CAAA,CAAA;AAAA,SACxB;AAEA,OAAI,MAAA;AACF,QAAA,OAAA,CAAQ,KAAK,IAAS,CAAA,IAAA,CAAA,CAAA;AAAA,OACxB;AAEA,MACE,IAAA,SACC,CAAA,IAAA,CAAA,EAAA;AAID,QAAA,OAAA,CAAQ,KAAK,SAAU,CAAA,CAAA;AAEvB,OAAA;AACE,MAAA,IAAA,IAAA,CAAA,YAAyB,IAAA,CAAA,IAAA,KAAA,QAAA,IAAA,IAAA,CAAA,IAAA,KAAA,OAAA,IAAA,KAAA,CAAA,aAAA,KAAA,MAAA,CAAA,EAAA;AAAA,QAC3B,OAAA,CAAA,IAAA,CAAA,UAAA,CAAA,CAAA;AAEA,QAAA,IAAI,KAAK,KAAK,EAAA;AACZ,UAAA,OAAA,CAAQ,KAAK,YAAU,CAAA,CAAA;AAAA,SACzB;AAAA,QACF,IAAA,IAAA,CAAA,GAAA,EAAA;AAEA,UAAI,OAAe,CAAA,IAAA,CAAA,UAAA,CAAA,CAAA;AACjB,SAAA;AAAuB,OACzB;AAEA,MAAA,IAAI,KAAK,QAAU,EAAA;AACjB,QAAA,OAAA,CAAQ,KAAK,UAAU,CAAA,CAAA;AAAA,OACzB;AAEA,MAAA,IAAI,KAAK,QAAa,EAAA;AACpB,QAAQ,OAAA,CAAA,IAAA,CAAK,UAAgB,CAAA,CAAA;AAAA,OAC/B;AAEA,MAAO,IAAA,IAAA,CAAA,WAAa,EAAG;AAAA,QACzB,OAAA,CAAA,IAAA,CAAA,IAAA,CAAA,WAAA,CAAA,CAAA;AAEA,OAAM;AACJ,MAAM,OAAA,OAAA,CAAA,IAAA,CAAA,GAAA,CACJ;AACF,KAAA,CAAA;AAAiD,IACnD,MAAA,aAAA,GAAA,CAAA,GAAA,EAAA,MAAA,KAAA;AAEA,MAAM,MAAA,eAAA,GAA6B,GAAA,GAAA,CAAA,IAAA,MAAA,IAAA,KAAA,CAAA,cAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAAA,GAAA,SAAA,CAAA,KAAA,CAAA;AACjC,MAAI,gBAAkB,CAAA,KAAA,CAAA,GAAA,CAAA,eAAA,EAAA,KAAA,CAAA,CAAA;AAAW,KAAA,CAAA;AAEjC,IAAA,MAAI,eAAe,GAAA,CAAA,KAAA,KAAA;AACnB,MAAI,IAAA,CAAA,KAAA,CAAO,oBAAoB;AAC7B,QAAA,OAAA;AAA2B,MAC7B,IAAA,MAAA,GAAA,KAAA,CAAA,MAAA,CAAA;AACA,MAAI,IAAA,MAAA,CAAO,YAAY,MAAO,EAAA;AAC5B,QAAA,MAAA,GAAS,MAAO,CAAA,UAAA,CAAA,UAAA,CAAA;AAAA,OAClB;AACA,MAAA,IAAI,OAAO,OAAY,KAAA,KAAA,EAAA;AAAM,QAAA,MAAA,GAAA,MAAA,CAAA,UAAA,CAAA;AAE7B,OAAM;AACN,MAAA,IAAA,cAAsB,KAAA,IAAA;AAGtB,QAAI,OAAK;AAA6B,MAAA,MAAA,GAAA,GAAA,MAAA,CAAA,UAAA,CAAA,QAAA,GAAA,CAAA,CAAA;AAItC,MAAA,MAAY,MAAA,GAAA,MAAiB,CAAA,SAAA,CAAA;AAC3B,MAAA,IAAA,IAAA,CAAA,KAAgB,CAAA,GAAA,CAAA,CAAA,MAAA,CAAA,CAAA,QAAA;AAChB,QAAA,OAAA;AACA,MAAA,IAAA,QAAwB,OAAA,CAAA,KAAA,IAAA,MAAA,KAAA,UAAA,CAAA,KAAA,EAAA;AAAA,QAAA,OACX,CAAA,KAAA,GAAA,GAAA,CAAA;AAAA,QACX,UAAA,CAAS,KAAc,GAAA,MAAA,CAAA;AAAW,QACpC,GAAC,CAAA,IAAA,CAAA,aAAA,EAAA;AAAA,UACH,SAAA,EAAA,IAAA;AAAA,UACF,OAAA,EAAA,aAAA,CAAA,GAAA,EAAA,MAAA,CAAA;AAEA,SAAM,CAAA,CAAA;AACJ,OACG;AACI,KAET,CAAA;AAEA,IAAM,MAAA,cAAc,GAAkB,CAAA,IAAA,KAAA;AACpC,MAAA,OAAK,CAAA,UAAoB,CAAA,KAAA,IAAA,CAAA,oBAAwB,CAAQ,GAAA,IAAA,CAAA,IAAA,MAAA,CAAA,IAAA,IAAA,CAAA,IAAA,KAAA,QAAA,IAAA,IAAA,CAAA,SAAA,CAAA;AACvD,KAAA,CAAA;AAA0B,IAC5B,MAAA,WAAA,GAAA,CAAA,KAAA,KAAA;AAAA,MACF,IAAA,CAAA,UAAA,CAAA,KAAA,IAAA,KAAA,CAAA,aAAA,KAAA,MAAA,EAAA;AAEA,QAAA,cAAuB,CAAA,KAAC,EAAc,IAAA,CAAA,CAAA;AACpC,OAAA;AAEA,KAAS,CAAA;AAET,IAAI,MAAA,cAAW,GAAA,CAAO,KAAY,EAAA,kBAAA,GAAA,KAAA,KAAA;AAAM,MAAA,IAAA,MAAA,GAAA,KAAA,CAAA,MAAA,CAAA;AAExC,MAAM,MAAA,GAAA,MAAc,IAAA,IAAA,GAAA,KAA8C,CAAA,GAAA,MAAA,CAAA,OAAA,CAAA,IAAA,CAAA,CAAA;AAClE,MAAA,IAAA,CAAA,UAAgB,MAAgC,CAAA,OAAA,KAAA,IAAA;AAChD,QAAM,OAAA;AAEN,MAAI,MAAA,GAAK,GAAY,MAAA,CAAA,UAAc,CAAA,QAAA,GAAA,CAAA,CAAA;AAAQ,MAAA,MAAA,MAAA,GAAA,MAAA,CAAA,SAAA,CAAA;AAE3C,MAAM,MAAA,IAAA,GAAA,IAAwB,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,MAAK,CAAM,CAAA;AAEzC,MAAI,IAAA,IAAA,CAAA,qBAAiC,KAAA,MAAA;AACnC,QAAA,OAAW;AACT,MAAA,MAAA,OAAS,GAAQ,iBAAoB,EAAA,MAAA,CAAA,CAAA;AACrC,MAAI,IAAA,KAAA,CAAA,aAAe,KAAI,OAAA,EAAA;AAAA,QACzB,IAAO,CAAA,KAAA,CAAA,UAAA,CAAA,SAAA,IAAA,CAAA,KAAA,CAAA,OAAA,EAAA;AACL,UAAI,GAAA,CAAA,IAAA,CAAA,MAAW,WAAe,EAAA,OAAA,EAAA,OAAA,EAAA,IAAA,EAAA,CAAA,CAAA;AAC5B,UAAI,GAAA,CAAA,IAAA,CAAA,UAAa,IAAE,CAAA,CAAA;AAA0C,SAAA,MACxD;AACL,UAAI,IAAA,OAAK,SAAU,CAAA,OAAA,EAAS;AAAiC,YAC/D,GAAA,CAAA,IAAA,CAAA,MAAA,EAAA,EAAA,OAAA,EAAA,KAAA,CAAA,OAAA,EAAA,OAAA,EAAA,OAAA,EAAA,CAAA,CAAA;AACA,WAAI,MAAA;AAAoB,YAC1B,GAAA,CAAA,IAAA,CAAA,MAAA,EAAA,EAAA,OAAA,EAAA,OAAA,EAAA,OAAA,EAAA,KAAA,CAAA,OAAA,EAAA,CAAA,CAAA;AAAA,WACF;AACE,UAAI,GAAA,CAAA,IAAa,CAAA,QAAA,EAAA,KAAS,CAAkB,CAAA;AAAA,SAC9C;AACE,OAAM,MAAA,IAAA,KAAA,CAAA,aAA0B,KAAA,MAAA,EAAA;AAChC,QAAA,GAAA,CAAA,IAAc,CAAA,MAAA,EAAG,OAAQ,EAAA,kBAAU,CAAA,CAAA;AACnC,OAAA,UAAS,KAAQ,CAAA,aAAA,KAAA,MAAA,EAAA;AAAA,QACf,MAAA,UAAc,GAAK,OAAA,CAAA,IAAA,EAAA,CAAA;AAAA,QAAA,MACb,KAAA,GAAA,CAAA,EAAA,OAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA,UAAA,CAAA,CAAA,CAAA;AAAA,QACN,GAAA,CAAA,IAAA,CAAA,MAAA,EAAA;AAAA,UACA,IAAA,EAAM,OAAQ,CAAA,IAAA,EAAA;AAAc,UAC7B,IAAA,EAAA,UAAA;AAAA,UACH,KAAA;AACE,UAAM,IAAA,EAAA,OAAA,CAAA,OAAgB,CAAA,MAAA,CAAA;AAKtB,SAAI,CAAA,CAAA;AAAqB,OAC3B,MAAA,IAAA,KAAA,CAAA,aAAA,KAAA,OAAA,EAAA;AAAA,QACF,MAAA,QAAA,GAAA,IAAA,CAAA,QAAA,GAAA,SAAA,CAAA,KAAA,CAAA,WAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,OAAA,EAAA,KAAA,OAAA,CAAA,OAAA,EAAA,CAAA,GAAA,SAAA,CAAA,KAAA,CAAA,WAAA,CAAA,CAAA,MAAA,CAAA,CAAA,OAAA,CAAA,CAAA,CAAA;AAEA,QAAM,GAAA,CAAA,IAAA,CAAA,MAAA,EAAe,QAAU,CAAA,CAAA;AAC7B,OAAA;AAAoC,KAAO,CAAA;AAC3C,IAAA,MAAI,YAAU,GAAA,CAAM,IAAK,KAAA;AAEzB,MAAI,IAAA,KAAK,cAAuB,KAAA,MAAA;AAC9B,QAAU,OAAA,KAAA,CAAA;AAA2B,MACvC,IAAA,OAAA,GAAA,KAAA,CAAA,IAAA,CAAA,OAAA,CAAA,KAAA,CAAA,CAAA;AAEA,MAAI,IAAA,IAAA,CAAK,SAAS,YAAc,EAAA;AAC9B,QAAU,OAAA,GAAA,OAAA,CAAQ,QAAc,CAAA,CAAA,EAAA,OAAA,CAAA,CAAA;AAAA,OAClC;AAEA,MAAA,IAAA,IAAA,CAAA,SAAkB,YAAY;AAE9B,QAAA,UAAyB,OAAA,CAAA,GAAA,CAAA,CAAA,SAAe,CAAA,CAAA;AACtC,OAAA;AAEA,MAAA,OAAA,GAAiB,OAAA,CAAA,IAAA,CAAA,MAAkB,CAAA,QAAA,CAAA,IAAA,CAAA;AACnC,MAAO,IAAA,KAAA,CAAA,WAAgB,IAAA,CAAA,KAAA,CAAA,OAAc,CAAA,KAAA,CAAA,WAAA,CAAA,EAAA;AAAA,QACvC,MAAA,SAAA,GAAA,CAAA,KAAA,CAAA,WAAA,CAAA,GAAA,EAAA,GAAA,cAAA,GAAA,CAAA,IAAA,CAAA,GAAA,CAAA,CAAA;AACA,QAAO,MAAA,QAAA,GAAA,KAAA,CAAA,WAAA,CAAA,QAAA,CAAA,SAAA,EAAA,KAAA,CAAA,CAAA;AAAA,QACT,OAAA,QAAA,CAAA,MAAA,CAAA,OAAA,EAAA,KAAA,CAAA,CAAA;AAEA,OAAO;AAAA,MACL,OAAA,KAAA,CAAA;AAAA,KACA,CAAA;AAAA,IACA,OAAA;AAAA,MACA,EAAA;AAAA,MACA,QAAA;AAAA,MACA,cAAA;AAAA,MACA,eAAA;AAAA,MACA,CAAA;AAAA,MACA,UAAA;AAAA,MACA,IAAA;AAAA,MACA,cAAA;AAAA,MACA,YAAA;AAAA,MACA,cAAA;AAAA,MACA,KAAA;AAAA,MACF,WAAA;AAAA,MACF,cAAA;AACF,MAAC,KAAA;;;AApbU,CAAA,CAAA,CAAA;;MAE6B,UAAA,GAAA,EAAA,GAAA,EAAA,UAAA,EAAA,CAAA;;;;;;kCA6B9B,EAAA,eAAA,EAAA,UAAA,CAAA,CAAA;AAAA,SAvCD,WAAA,CAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,KAAA,EAAA,QAAA,EAAA;AAAA,EAAA,oCACS,GAAAA,gBAAA,CAAA,qBAAA,CAAA,CAAA;AAAA,EAAA,OACFC,SAAA,EAAA,EAAAC,kBAAA,CAAA,OAAA,EAAA;AAAA,IACZ,IAAY,EAAA,MAAA;AAAA,IACX,YAAK,EAAA,IAAA,CAAA,CAAA,CAAA;AAA0C,IAC/C,WAAO,EAAA,GAAA;AAAA,IACP,aAAS,GAAE;AAAA,IAAA,KAAA,EAAAC,cAAA,CAAA,CAAA,IAAA,CAAA,EAAA,CAAA,CAAA,EAAA,EAAA,EAAA,cAAA,EAAA,IAAA,CAAA,aAAA,KAAA,MAAA,EAAA,CAAA,CAAA;AAEZ,IAAA,OAAA,EAAA,MAAA,CAAA,CAAA,CAAA,WAAA,CA8BQ,CAAA,CAAA,GAAA,CAAA,GAAA,IAAA,KAAA,IAAA,CAAA,cAAA,IAAA,IAAA,CAAA,cAAA,CAAA,GAAA,IAAA,CAAA,CAAA;AAAA,IAAA,WAnBD,EAAA,MAAA,CAAA,CAAA,CAAA,KAAA,MAAA,CAAA,CAAA,CAAA,GAAA,CAAA,GAAA,IAAA,KAAA,IAAA,CAAA,eAAA,IAAA,IAAA,CAAA,eAAA,CAAA,GAAA,IAAA,CAAA,CAAA;AAAA,GAAA,EAAA;AARH,IAAAC,kBAAA,CAAA,OAAA,EAAA,UAAA,EAAA;+BAOK,IAAA,EAAA;AAAA,QALF,IAAA,CAAA,cAAA,IAAAH,SAAA,EAAA,EAAAC,kBAAA,CAAA,IAAA,EAAA,UAAA,EAAAG,eAAA,CAAA,IAAA,CAAA,CAAA,CAAA,oBAAA,CAAA,CAAA,EAAA,CAAA,CAAA,IAAAC,kBAAA,CAAA,MAAA,EAAA,IAAA,CAAA;AAAA,SAAAL,SACK,CAAA,IAAA,CAAA,EAAAC,kBAAA,CAAAK,QAAA,EAAA,IAAA,EAAAC,UAAA,CAAA,IAAA,CAAA,KAAA,EAAA,CAAA,IAAA,EAAA,GAAA,KAAA;AAAA,UACL,OAAAP,SAAa,EAAA,EAAAC,kBAAA,CAAA,IAAA,EAAA;AAAkC,YAE7C,GAAA;AAA+B,YAAA,KAAA,EAAA,KAAA;;AAGtC,WAAA,EAAAG,eAAA,CAAA,IAAA,CAAA,CAAA,CAAA,sBACuB,GAAA,IAAA,CAAA,CAAA,EAAA,CAAA,EAAA,UAAA,CAAA,CAAI;;AAgBtB,OAfF,CAAA;AAAA,OAAAJ,SACK,CAAG,IAAA,CAAA,EAAAC,kBAAI,CAAAK,QAAA,EAAA,IAAA,EAAAC,oBAAoC,EAAA,CAAA,GAAA,EAAA,GAAA,KAAA;AAAA,QAAA,OAAAP,SAAA,EAAA,EAAAC,kBAAA,CAAA,IAAA,EAAA;AAEjD,UAAA,GAAA;gCAAA,CAWK,IAAA,CAAA,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,EAAA,EAAA,OAAA,EAAA,IAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA;AAAA,SAAA,EAAA;AATG,WAAAD,SAAA,CAAA,IAAA,CAAA,EAAAC,kBAAA,CAAAK,QAAA,EAAA,IAAA,EAAAC,UAAA,CAAA,GAAA,EAAA,CAAA,IAAA,EAAA,IAAA,KAAA;AACL,YAAA,OAAGP,SAAyB,EAAA,EAAAC,uBAA2B,EAAA;AAAA,cACvD,GAAA,EAAA,IAAO;AAAmB,cAC1B,OAAA,EAAA,IAAA;AAAwC,cACxC,GAAA,EAAA,CAAA,EAAA,KAAA,IAAa,eAAU,CAAA,IAAA,CAAA,KAAA,IAAA,CAAA,cAAA,GAAA,EAAA,CAAA;AAAA,cACvB,KAAA,EAAAC,kCAA6B,CAAA,IAAA,CAAA,CAAA;AAAA,cAC7B,cAAO,EAAA,IAAA,CAAA,SAAA,GAAA,MAAA,GAAA,KAAA,CAAA;AAAA,cAAA,eAAA,EAAA,CAAA,EAAA,IAAA,CAAA,SAAA,CAAA,CAAA;AAER,cAAA,QAAA,EAAA;AAAgC,cAAA,OAAA,EAAA,MAAA,CAAA,CAAA,CAAA,KAAA,MAAA,CAAA,CAAA,CAAA,GAAA,CAAA,GAAA,IAAA,KAAA,IAAA,CAAA,WAAA,IAAA,IAAA,CAAA,WAAA,CAAA,GAAA,IAAA,CAAA,CAAA;;;;;;;;;;;;;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { defineComponent, ref, computed, watch, nextTick, openBlock, createElementBlock, createElementVNode, Fragment, renderList,
|
|
1
|
+
import { defineComponent, ref, computed, watch, nextTick, openBlock, createElementBlock, normalizeClass, createElementVNode, Fragment, renderList, withKeys, withModifiers, toDisplayString } from 'vue';
|
|
2
2
|
import dayjs from 'dayjs';
|
|
3
3
|
import '../../../../hooks/index2.mjs';
|
|
4
4
|
import '../../../time-picker/index2.mjs';
|
|
@@ -6,6 +6,7 @@ import '../../../../utils/index2.mjs';
|
|
|
6
6
|
import { basicMonthTableProps } from '../props/basic-month-table2.mjs';
|
|
7
7
|
import _export_sfc from '../../../../_virtual/plugin-vue_export-helper.mjs';
|
|
8
8
|
import { rangeArr } from '../../../time-picker/src/common/date-utils2.mjs';
|
|
9
|
+
import { useNamespace } from '../../../../hooks/use-namespace/index2.mjs';
|
|
9
10
|
import { useLocale } from '../../../../hooks/use-locale/index2.mjs';
|
|
10
11
|
import { castArray } from '../../../../utils/arrays2.mjs';
|
|
11
12
|
import { hasClass } from '../../../../utils/dom/style2.mjs';
|
|
@@ -20,6 +21,7 @@ const _sfc_main = defineComponent({
|
|
|
20
21
|
emits: ["changerange", "pick", "select"],
|
|
21
22
|
expose: ["focus"],
|
|
22
23
|
setup(props, ctx) {
|
|
24
|
+
const ns = useNamespace("month-table");
|
|
23
25
|
const { t, lang } = useLocale();
|
|
24
26
|
const tbodyRef = ref();
|
|
25
27
|
const currentCellRef = ref();
|
|
@@ -157,6 +159,7 @@ const _sfc_main = defineComponent({
|
|
|
157
159
|
}
|
|
158
160
|
};
|
|
159
161
|
return {
|
|
162
|
+
ns,
|
|
160
163
|
tbodyRef,
|
|
161
164
|
currentCellRef,
|
|
162
165
|
handleMouseMove,
|
|
@@ -178,7 +181,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
178
181
|
return openBlock(), createElementBlock("table", {
|
|
179
182
|
role: "grid",
|
|
180
183
|
"aria-label": _ctx.t("el.datepicker.monthTablePrompt"),
|
|
181
|
-
class:
|
|
184
|
+
class: normalizeClass(_ctx.ns.b()),
|
|
182
185
|
onClick: _cache[2] || (_cache[2] = (...args) => _ctx.handleMonthTableClick && _ctx.handleMonthTableClick(...args)),
|
|
183
186
|
onMousemove: _cache[3] || (_cache[3] = (...args) => _ctx.handleMouseMove && _ctx.handleMouseMove(...args))
|
|
184
187
|
}, [
|
|
@@ -207,7 +210,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
207
210
|
]);
|
|
208
211
|
}), 128))
|
|
209
212
|
], 512)
|
|
210
|
-
],
|
|
213
|
+
], 42, _hoisted_1);
|
|
211
214
|
}
|
|
212
215
|
var MonthTable = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__file", "/home/runner/work/element-plus/element-plus/packages/components/date-picker/src/date-picker-com/basic-month-table.vue"]]);
|
|
213
216
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"basic-month-table2.mjs","sources":["../../../../../../../packages/components/date-picker/src/date-picker-com/basic-month-table.vue"],"sourcesContent":["<template>\n <table\n role=\"grid\"\n :aria-label=\"t('el.datepicker.monthTablePrompt')\"\n class=\"el-month-table\"\n @click=\"handleMonthTableClick\"\n @mousemove=\"handleMouseMove\"\n >\n <tbody ref=\"tbodyRef\">\n <tr v-for=\"(row, key) in rows\" :key=\"key\">\n <td\n v-for=\"(cell, key_) in row\"\n :key=\"key_\"\n :ref=\"(el) => isSelectedCell(cell) && (currentCellRef = el)\"\n :class=\"getCellStyle(cell)\"\n :aria-selected=\"`${isSelectedCell(cell)}`\"\n :aria-label=\"t(`el.datepicker.month${+cell.text + 1}`)\"\n :tabindex=\"isSelectedCell(cell) ? 0 : -1\"\n @keydown.space.prevent.stop=\"handleMonthTableClick\"\n @keydown.enter.prevent.stop=\"handleMonthTableClick\"\n >\n <div>\n <span class=\"cell\">\n {{ t('el.datepicker.months.' + months[cell.text]) }}\n </span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, nextTick, ref, watch } from 'vue'\nimport dayjs from 'dayjs'\nimport { useLocale } from '@element-plus/hooks'\nimport { rangeArr } from '@element-plus/components/time-picker'\nimport { castArray, hasClass } from '@element-plus/utils'\nimport { basicMonthTableProps } from '../props/basic-month-table'\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: basicMonthTableProps,\n\n emits: ['changerange', 'pick', 'select'],\n expose: ['focus'],\n\n setup(props, ctx) {\n const { t, lang } = useLocale()\n const tbodyRef = ref<HTMLElement>()\n const currentCellRef = ref<HTMLElement>()\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 if (isToday) {\n cell.type = 'today'\n }\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\n watch(\n () => props.date,\n async () => {\n if (tbodyRef.value?.contains(document.activeElement)) {\n await nextTick()\n currentCellRef.value?.focus()\n }\n }\n )\n\n const focus = () => {\n currentCellRef.value?.focus()\n }\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 castArray(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 isSelectedCell = (cell) => {\n const year = props.date.year()\n const month = cell.text\n return (\n castArray(props.date).findIndex(\n (date) => date.year() === year && date.month() === month\n ) >= 0\n )\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 target = target?.closest('td')\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 tbodyRef,\n currentCellRef,\n handleMouseMove,\n handleMonthTableClick,\n focus,\n isSelectedCell,\n rows,\n getCellStyle,\n t,\n months,\n }\n },\n})\n</script>\n"],"names":["_openBlock","_createElementBlock","_createElementVNode","_Fragment","_renderList","_normalizeClass","_withKeys","_withModifiers"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"basic-month-table2.mjs","sources":["../../../../../../../packages/components/date-picker/src/date-picker-com/basic-month-table.vue"],"sourcesContent":["<template>\n <table\n role=\"grid\"\n :aria-label=\"t('el.datepicker.monthTablePrompt')\"\n :class=\"ns.b()\"\n @click=\"handleMonthTableClick\"\n @mousemove=\"handleMouseMove\"\n >\n <tbody ref=\"tbodyRef\">\n <tr v-for=\"(row, key) in rows\" :key=\"key\">\n <td\n v-for=\"(cell, key_) in row\"\n :key=\"key_\"\n :ref=\"(el) => isSelectedCell(cell) && (currentCellRef = el)\"\n :class=\"getCellStyle(cell)\"\n :aria-selected=\"`${isSelectedCell(cell)}`\"\n :aria-label=\"t(`el.datepicker.month${+cell.text + 1}`)\"\n :tabindex=\"isSelectedCell(cell) ? 0 : -1\"\n @keydown.space.prevent.stop=\"handleMonthTableClick\"\n @keydown.enter.prevent.stop=\"handleMonthTableClick\"\n >\n <div>\n <span class=\"cell\">\n {{ t('el.datepicker.months.' + months[cell.text]) }}\n </span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, nextTick, ref, watch } from 'vue'\nimport dayjs from 'dayjs'\nimport { useLocale, useNamespace } from '@element-plus/hooks'\nimport { rangeArr } from '@element-plus/components/time-picker'\nimport { castArray, hasClass } from '@element-plus/utils'\nimport { basicMonthTableProps } from '../props/basic-month-table'\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: basicMonthTableProps,\n\n emits: ['changerange', 'pick', 'select'],\n expose: ['focus'],\n\n setup(props, ctx) {\n const ns = useNamespace('month-table')\n\n const { t, lang } = useLocale()\n const tbodyRef = ref<HTMLElement>()\n const currentCellRef = ref<HTMLElement>()\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 if (isToday) {\n cell.type = 'today'\n }\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\n watch(\n () => props.date,\n async () => {\n if (tbodyRef.value?.contains(document.activeElement)) {\n await nextTick()\n currentCellRef.value?.focus()\n }\n }\n )\n\n const focus = () => {\n currentCellRef.value?.focus()\n }\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 castArray(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 isSelectedCell = (cell) => {\n const year = props.date.year()\n const month = cell.text\n return (\n castArray(props.date).findIndex(\n (date) => date.year() === year && date.month() === month\n ) >= 0\n )\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 target = target?.closest('td')\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 ns,\n tbodyRef,\n currentCellRef,\n handleMouseMove,\n handleMonthTableClick,\n focus,\n isSelectedCell,\n rows,\n getCellStyle,\n t,\n months,\n }\n },\n})\n</script>\n"],"names":["_openBlock","_createElementBlock","_normalizeClass","_createElementVNode","_Fragment","_renderList","_withKeys","_withModifiers"],"mappings":";;;;;;;;;;;;;AAwCA,MAAM,YAAe,GAAA,CAAC,IAAc,EAAA,KAAA,EAAe,IAAiB,KAAA;AAClE,EAAA,MAAM,QAAW,GAAA,KAAA,EAAQ,CAAA,MAAA,CAAO,IAAI,CAAA,CAAE,OAAQ,CAAA,OAAO,CAAE,CAAA,KAAA,CAAM,KAAK,CAAA,CAAE,KAAK,IAAI,CAAA,CAAA;AAC7E,EAAM,MAAA,SAAA,GAAY,SAAS,WAAY,EAAA,CAAA;AACvC,EAAA,OAAO,QAAS,CAAA,SAAS,CAAE,CAAA,GAAA,CAAI,CAAC,CAAA,KAAM,QAAS,CAAA,GAAA,CAAI,CAAG,EAAA,KAAK,CAAE,CAAA,MAAA,EAAQ,CAAA,CAAA;AACvE,CAAA,CAAA;AAEA,MAAK,YAAa,eAAa,CAAA;AAAA,EAC7B,KAAO,EAAA,oBAAA;AAAA,EAEP,KAAO,EAAA,CAAC,aAAe,EAAA,MAAA,EAAQ,QAAQ,CAAA;AAAA,EACvC,MAAA,EAAQ,CAAC,OAAO,CAAA;AAAA,EAEhB,KAAA,CAAM,OAAO,GAAK,EAAA;AAChB,IAAM,MAAA,EAAA,GAAK,aAAa,aAAa,CAAA,CAAA;AAErC,IAAM,MAAA,EAAE,CAAG,EAAA,IAAA,EAAA,GAAS,SAAU,EAAA,CAAA;AAC9B,IAAA,MAAM,WAAW,GAAiB,EAAA,CAAA;AAClC,IAAA,MAAM,iBAAiB,GAAiB,EAAA,CAAA;AACxC,IAAA,MAAM,SAAS,GACb,CAAA,KAAA,CAAM,IACH,CAAA,MAAA,CAAO,IAAI,CACX,CAAA,UAAA,EACA,CAAA,WAAA,GACA,GAAI,CAAA,CAAC,MAAM,CAAE,CAAA,WAAA,EAAa,CAC/B,CAAA,CAAA;AACA,IAAM,MAAA,SAAA,GAAY,IAAI,CAAC,IAAI,EAAC,EAAG,EAAE,CAAC,CAAA,CAAA;AAClC,IAAM,MAAA,OAAA,GAAU,IAAI,IAAI,CAAA,CAAA;AACxB,IAAM,MAAA,UAAA,GAAa,IAAI,IAAI,CAAA,CAAA;AAC3B,IAAM,MAAA,IAAA,GAAO,SAAS,MAAM;AAE1B,MAAA,IAAA,EAAM;AACN,MAAM,MAAA,KAAA,YAAc,CAAA;AAEpB,MAAA,MAAA,GAAS,GAAI,KAAO,EAAA,CAAA,MAAQ,CAAA,IAAA,CAAA,KAAA,CAAA,CAAA,OAAA,CAAA,OAAA,CAAA,CAAA;AAC1B,MAAA,KAAA,SAAY,EAAK,CAAA,GAAA,CAAA,EAAA,CAAA,EAAA,EAAA;AACjB,QAAA,MAAA,GAAS,GAAI,KAAO,CAAA,CAAA,CAAA,CAAA;AAClB,QAAA,KAAA,QAAW,CAAI,EAAA,CAAA,GAAA,CAAA,EAAA,CAAA,EAAA,EAAA;AACf,UAAA,IAAI,IAAO,GAAA,GAAA,CAAA,CAAA,CAAA,CAAA;AACT,UAAO,IAAA,CAAA,IAAA,EAAA;AAAA,YAAA,IACA,GAAA;AAAA,cACL,GAAQ,EAAA,CAAA;AAAA,cACR,MAAM,EAAA,CAAA;AAAA,cACN,IAAS,EAAA,QAAA;AAAA,cACT,OAAO,EAAA,KAAA;AAAA,cACP,KAAK,EAAA,KAAA;AAAA,cACP,GAAA,EAAA,KAAA;AAAA,aACF,CAAA;AAEA,WAAA;AAEA,UAAM,IAAA,CAAA,IAAA,GAAA,QAAgB,CAAA;AACtB,UAAA,MAAM,YAAgB,CAAA,GAAA,CAAA,CAAA;AAEtB,UAAM,MAAA,OAAA,GAAA,UACa,CAAA,OAAA,CAAA,MAAA,CAAA,CAAA,WAEhB,CAAA,CAAA;AAEH,UAAK,MAAA,UACI,GAAA,KAAA,CAAA,UACG,CAAA,OAAA,IAAA,KAAA,CAAA,OAAoB,IAAA,KAAS,CAAO,UAAA,CAC5C,SACA,IAAA,KAAA,CAAA,OAAuB,CAAA;AAM3B,UAAA,IAAI,CAAM,OAAA,GAAA,KAAuB,CAAA,OAAA,IAAA,OAAA,CAAA,aAAa,CAAA,KAAA,CAAA,OAAA,EAAA,OAAA,CAAA,IAAA,UAAA,IAAA,OAAA,CAAA,cAAA,CAAA,UAAA,EAAA,OAAA,CAAA,IAAA,KAAA,CAAA,OAAA,IAAA,OAAA,CAAA,cAAA,CAAA,KAAA,CAAA,OAAA,EAAA,OAAA,CAAA,IAAA,UAAA,IAAA,OAAA,CAAA,aAAA,CAAA,UAAA,EAAA,OAAA,CAAA,CAAA;AAC5C,UAAA,IAAA,CAAA,EAAK,GAAQ,KAAA,CAAA,OAAA,KAAA,IAAsB,GAAA,KAAA,CAAA,GAAO,gBAAmB,CAAA,UAAA,CAAA,EAAA;AAC7D,YAAA,IAAA,CAAK,QAAY,UAAA,IAAA,cAA0B,CAAA,mBAAsB,CAAA,CAAA;AAAA,YAC5D,IAAA,CAAA,GAAA,GAAA,KAAA,CAAA,OAAA,IAAA,OAAA,CAAA,MAAA,CAAA,KAAA,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA;AACL,WAAA,MAAK;AACL,YAAA,IAAA,CAAK,KAAM,GAAA,KAAA,CAAA,OAAsB,IAAA,OAAA,CAAA,oBAA0B,EAAA,OAAA,CAAA,CAAA;AAAA,YAC7D,IAAA,CAAA,GAAA,GAAA,UAAA,IAAA,OAAA,CAAA,MAAA,CAAA,UAAA,EAAA,OAAA,CAAA,CAAA;AAEA,WAAM;AACN,UAAA,MAAa,OAAA,GAAA,GAAA,CAAA,MAAA,CAAA,OAAA,CAAA,CAAA;AACX,UAAA,IAAA,OAAY,EAAA;AAAA,YACd,IAAA,CAAA,IAAA,GAAA,OAAA,CAAA;AAEA,WAAA;AACA,UAAM,IAAA,CAAA,IAAA,GAAA,KAAW;AACjB,UAAA,MAAgB,QAAA,GAAA,OAAsB,CAAA,MAAA,EAAA,CAAA;AACtC,UAAA,IAAI,CAAK,QAAA,GAAA,KAAA,CAAA,YAAA,IAAA,KAAA,CAAA,YAAA,CAAA,QAAA,CAAA,CAAA;AAAA,UACX,GAAA,CAAA,CAAA,CAAA,GAAA,IAAA,CAAA;AAAA,SACF;AACA,OAAO;AAAA,MACR,OAAA,KAAA,CAAA;AAED,KACE,CAAA,CAAA;AAEE,IAAA,KAAA,CAAI,MAAS,KAAA,CAAA,IAAO,EAAS,YAAA;AAC3B,MAAA,IAAA,EAAA,EAAM,EAAS,CAAA;AACf,MAAA,IAAA,CAAA,EAAA,GAAA,cAAsB,KAAM,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAA,CAAA,QAAA,CAAA,aAAA,CAAA,EAAA;AAAA,QAC9B,MAAA,QAAA,EAAA,CAAA;AAAA,QAEJ,CAAA,EAAA,GAAA,cAAA,CAAA,KAAA,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,KAAA,EAAA,CAAA;AAEA,OAAA;AACE,KAAA,CAAA,CAAA;AAA4B,IAC9B,MAAA,KAAA,GAAA,MAAA;AAEA,MAAM,IAAA,EAAA,CAAA;AACJ,MAAA,CAAA,EAAA,GAAM,cAAS,CAAA,KAAA,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,KAAA,EAAA,CAAA;AACf,KAAM,CAAA;AACN,IAAM,MAAA,eAAiB,CAAA,IAAA,KAAA;AACvB,MAAA,MAAM,QAAQ,EAAK,CAAA;AAEnB,MAAA,MAAM,IAAW,GAAA,KAAA,CAAA,IAAM,CACnB,IAAA,EAAA,CAAA;AAEJ,MAAA,MAAM,YACM,IAAA,EAAA,CAAA;AAGZ,MAAA,MAAM,QAAQ,IAAM,CAAA,IAAA,CAAA;AAEpB,MAAA,cAAkB,GAAA,KAAA,CAAA,YAAA,GAAA,YAAA,CAAA,IAAA,EAAA,KAAA,EAAA,IAAA,CAAA,KAAA,CAAA,CAAA,KAAA,CAAA,KAAA,CAAA,YAAA,CAAA,GAAA,KAAA,CAAA;AAChB,MAAA,KAAA,CAAA,OAAoB,GAAA,SAAA,CAAA,KAAA,CAAA,WAAA,CAAA,CAAA,SAAA,CAAA,CAAA,IAAA,KAAA,IAAA,CAAA,IAAA,EAAA,KAAA,IAAA,IAAA,IAAA,CAAA,KAAA,EAAA,KAAA,KAAA,CAAA,IAAA,CAAA,CAAA;AAEpB,MAAA,KAAA,CAAI,KAAK,GAAO,KAAA,CAAA,WAAA,EAAA,KAAA,IAAA,IAAA,KAAA,CAAA,QAAA,EAAA,KAAA,KAAA,CAAA;AACd,MAAA,IAAA,IAAA,CAAA,OAAsB,EAAA;AAAA,QACxB,KAAA,CAAA,UAAA,CAAA,GAAA,IAAA,CAAA;AAEA,QAAA,IAAI,KAAK,KAAK,EAAA;AACZ,UAAA,KAAA,CAAM,YAAc,CAAA,GAAA,IAAA,CAAA;AAAA,SACtB;AAAA,QACF,IAAA,IAAA,CAAA,GAAA,EAAA;AACA,UAAO,KAAA,CAAA,UAAA,CAAA,GAAA,IAAA,CAAA;AAAA,SACT;AAEA,OAAM;AACJ,MAAM,OAAA,KAAA,CAAO;AACb,KAAA,CAAA;AACA,IAAA,MAAA,cACY,GAAA,CAAA,IAAU;AAEf,MAET,MAAA,IAAA,GAAA,KAAA,CAAA,IAAA,CAAA,IAAA,EAAA,CAAA;AAEA,MAAM,MAAA,KAAA,GAAA,IAAA,CAAA,IAAmB,CAAU;AACjC,MAAI,gBAAkB,CAAA,KAAA,CAAA,IAAA,CAAA,CAAA,SAAA,CAAA,CAAA,IAAA,KAAA,IAAA,CAAA,IAAA,EAAA,KAAA,IAAA,IAAA,IAAA,CAAA,KAAA,EAAA,KAAA,KAAA,CAAA,IAAA,CAAA,CAAA;AAAW,KAAA,CAAA;AAEjC,IAAA,MAAI,eAAe,GAAA,CAAA,KAAA,KAAA;AACnB,MAAI,IAAA,CAAA,KAAA,CAAO,oBAAiB;AAC1B,QAAA,OAAA;AAA2B,MAC7B,IAAA,MAAA,GAAA,KAAA,CAAA,MAAA,CAAA;AACA,MAAI,IAAA,MAAA,CAAO,YAAY,GAAO,EAAA;AAC5B,QAAA,MAAA,GAAS,MAAO,CAAA,UAAA,CAAA,UAAA,CAAA;AAAA,OAClB;AACA,MAAA,IAAI,OAAO,OAAY,KAAA,KAAA,EAAA;AAAM,QAAA,MAAA,GAAA,MAAA,CAAA,UAAA,CAAA;AAE7B,OAAM;AACN,MAAA,IAAA,cAAsB,KAAA,IAAA;AAEtB,QAAI,OAAK;AAA6B,MAAA,MAAA,GAAA,GAAA,MAAA,CAAA,UAAA,CAAA,QAAA,CAAA;AAItC,MAAA,MAAY,MAAA,GAAA,MAAiB,CAAA,SAAA,CAAA;AAC3B,MAAA,IAAA,IAAA,CAAA,KAAgB,CAAA,GAAA,CAAA,CAAA,MAAA,CAAA,CAAA,QAAA;AAChB,QAAA,OAAA;AACA,MAAA,IAAA,QAAwB,OAAA,CAAA,KAAA,IAAA,MAAA,KAAA,UAAA,CAAA,KAAA,EAAA;AAAA,QAAA,OACX,CAAA,KAAA,GAAA,GAAA,CAAA;AAAA,QACX,UAAA,CAAS,QAAW,MAAA,CAAA;AAAsC,QAC5D,GAAC,CAAA,IAAA,CAAA,aAAA,EAAA;AAAA,UACH,SAAA,EAAA,IAAA;AAAA,UACF,OAAA,EAAA,KAAA,CAAA,IAAA,CAAA,OAAA,CAAA,MAAA,CAAA,CAAA,KAAA,CAAA,GAAA,GAAA,CAAA,GAAA,MAAA,CAAA;AACA,SAAM,CAAA,CAAA;AACJ,OAAA;AACA,KAAS,CAAA;AACT,IAAA,MAAI,qBAAoB,GAAA,CAAA,KAAA,KAAA;AAAM,MAAA,IAAA,MAAA,GAAA,KAAA,CAAA,MAAA,CAAA;AAC9B,MAAI,MAAA,GAAA,cAA2B,GAAA,KAAA,CAAA,GAAA,MAAA,CAAA,OAAA,CAAA,IAAA,CAAA,CAAA;AAAG,MAAA,IAAA,CAAA,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,MAAA,CAAA,OAAA,MAAA,IAAA;AAClC,QAAA;AACA,MAAM,IAAA,QAAM,OAAO,EAAW,UAAA,CAAA;AAC9B,QAAM,OAAA;AACN,MAAA,MAAM,eAAgB,CAAA;AACtB,MAAI,MAAA,GAAA,oBAAiC,CAAA,QAAA,CAAA;AACnC,MAAI,MAAA,KAAO,GAAA,GAAA,GAAA,CAAA,GAAW,MAAW,CAAA;AAC/B,MAAA,MAAA,OAAS,GAAQ,KAAA,CAAA,YAAoB,CAAA,MAAA,CAAA,CAAA,KAAA,CAAA,MAAc,CAAC;AACpD,MAAI,IAAA,KAAA,CAAA,aAAe,KAAI,OAAA,EAAA;AAAA,QACzB,IAAO,CAAA,KAAA,CAAA,UAAA,CAAA,SAAA,EAAA;AACL,UAAI,GAAA,CAAA,IAAA,CAAA,MAAW,WAAe,EAAA,OAAA,EAAA,OAAA,EAAA,IAAA,EAAA,CAAA,CAAA;AAC5B,UAAI,GAAA,CAAA,IAAA,CAAA,UAAa,IAAE,CAAA,CAAA;AAA0C,SAAA,MACxD;AACL,UAAI,IAAA,OAAK,SAAU,CAAA,OAAA,EAAS;AAAiC,YAC/D,GAAA,CAAA,IAAA,CAAA,MAAA,EAAA,EAAA,OAAA,EAAA,KAAA,CAAA,OAAA,EAAA,OAAA,EAAA,OAAA,EAAA,CAAA,CAAA;AACA,WAAI,MAAA;AAAoB,YAC1B,GAAA,CAAA,IAAA,CAAA,MAAA,EAAA,EAAA,OAAA,EAAA,OAAA,EAAA,OAAA,EAAA,KAAA,CAAA,OAAA,EAAA,CAAA,CAAA;AAAA,WACK;AACL,UAAI,GAAA,CAAA,aAAkB,EAAA,KAAA,CAAA,CAAA;AAAA,SACxB;AAAA,OACF,MAAA;AAEA,QAAO,GAAA,CAAA,IAAA,CAAA,MAAA,EAAA,KAAA,CAAA,CAAA;AAAA,OACL;AAAA,KACA,CAAA;AAAA,IACA,OAAA;AAAA,MACA,EAAA;AAAA,MACA,QAAA;AAAA,MACA,cAAA;AAAA,MACA,eAAA;AAAA,MACA,qBAAA;AAAA,MACA,KAAA;AAAA,MACA,cAAA;AAAA,MACA,IAAA;AAAA,MACF,YAAA;AAAA,MACF,CAAA;AACF,MAAC,MAAA;;;AAnPU,CAAA,CAAA,CAAA;AAcO,MAAA,UAAA,GAAA,CAAA,YAAY,CAAA,CAAA;;mCAOpB,EAAA,YAAA,EAAA,UAAA,CAAA,CAAA;AAAA,MA3BD,UAAA,GAAA,EAAA,KAAA,EAAA,MAAA,EAAA,CAAA;AAAA,oBACS,CAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,KAAA,EAAA,QAAA,EAAA;AAAA,EACb,OAAAA,SAAO,EAAA,EAAAC,kBAAI,CAAA,OAAA,EAAA;AAAA,IACX,YAAO;AAAA,IACP,cAAW,IAAA,CAAA,CAAA,CAAA,gCAAA,CAAA;AAAA,IAAA,KAAA,EAAAC,cAAA,CAAA,IAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA;AAEZ,IAAA,OAAA,EAAA,MAAA,CAAA,CAAA,CAAA,WAAA,CAoBQ,CAAA,CAAA,GAAA,CAAA,GAAA,IAAA,KAAA,IAAA,CAAA,qBAAA,IAAA,IAAA,CAAA,qBAAA,CAAA,GAAA,IAAA,CAAA,CAAA;AAAA,IAAA,WAAA,EAAA,MAAA,CAAA,CAnBN,CAkBK,KAAA,MAAA,CAAA,CAAA,CAAA,GAAA,CAAA,GAAA,IAAA,KAAA,IAAA,CAAA,eAlBwB,IAAA,IAAA,CAAA,eAAT,CAAA,GAAA,IAAA,CAAA,CAAA;AAApB,GAAA,EAAA;AAAwC,IAAAC,kBAAA,CAAA,OAiBjC,EAAA,UAAA,EAAA;0CAAA,CAAAC,QAAA,EAAA,IAAA,EAAAC,UAAA,CAAA,IAAA,CAAA,IAAA,EAAA,CAAA,GAAA,EAAA,GAAA,KAAA;AAAA,QAAA,OAdGL,SAAA,EAAA,EAAAC,kBAAA,CAAA,IAAA,EAAA,EAAA,GAAA,EAAA,EAAA;AAAA,WAAAD,SAAA,CAAA,IAAA,CAAA,EAAAC,kBAAA,CAAAG,QAAA,EAAA,IAAA,EAAAC,UAAA,CAAA,GAAA,EAAA,CAAA,IAAA,EAAA,IAAA,KAAA;AACL,YAAA,OAAGL,SAAyB,EAAA,EAAAC,uBAA2B,EAAA;AAAA,cACvD,GAAA,EAAA,IAAO;AAAiB,cACxB,OAAA,EAAA,IAAA;AAAqC,cACrC,GAAY,EAAA,CAAA,EAAA,KAAA,IAAA,CAAA,cAAyB,CAAA,IAAA,CAAA,KAAA,IAAA,CAAA,cAAS,GAAA,EAAA,CAAA;AAAA,cAC9C,KAAA,EAAAC,gCAA6B,CAAA,IAAA,CAAA,CAAA;AAAA,cAC7B,eAAO,EAAA,CAAA,EAAA,IAAA,CAAA,cAAA,CAAA,IAAA,CAAA,CAAA,CAAA;AAAA,cAAA,YAAA,EAAA,IAAA,CAAA,CAAA,CAAA,CAAA,mBAAA,EAAA,CAAA,IAAA,CAAA,IAAA,GAAA,CAAA,CAAA,CAAA,CAAA;AAA0C,cAAA,QAAA,EAAA,IAAA,CAAA,cAAA,CAAA,IAAA,CAAA,GAAA,CAAA,GAAA,CAAA,CAAA;AACA,cAAA,SAAA,EAAA;;gBAM5C,MAAA,CAAA,CAAA,CAAA,KAAA,MAAA,CAAA,CAAA,CAAA,GAAAI,QAAA,CAAAC,aAAA,CAAA,CAAA,GAAA,IAAA,KAAA,IAAA,CAAA,qBAAA,IAAA,IAAA,CAAA,qBAAA,CAAA,GAAA,IAAA,CAAA,EAAA,CAAA,SAAA,EAAA,MAAA,CAAA,CAAA,EAAA,CAAA,OAAA,CAAA,CAAA,CAAA;AAAA,eAHJ;AACiD,aAAA,EAAA;;;;;;;;;;;;;;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { defineComponent, ref, computed, watch, nextTick, openBlock, createElementBlock, createElementVNode, Fragment, renderList,
|
|
1
|
+
import { defineComponent, ref, computed, watch, nextTick, openBlock, createElementBlock, normalizeClass, createElementVNode, Fragment, renderList, withKeys, withModifiers, toDisplayString } from 'vue';
|
|
2
2
|
import dayjs from 'dayjs';
|
|
3
3
|
import '../../../../hooks/index2.mjs';
|
|
4
4
|
import '../../../time-picker/index2.mjs';
|
|
@@ -6,6 +6,7 @@ import '../../../../utils/index2.mjs';
|
|
|
6
6
|
import { basicYearTableProps } from '../props/basic-year-table2.mjs';
|
|
7
7
|
import _export_sfc from '../../../../_virtual/plugin-vue_export-helper.mjs';
|
|
8
8
|
import { rangeArr } from '../../../time-picker/src/common/date-utils2.mjs';
|
|
9
|
+
import { useNamespace } from '../../../../hooks/use-namespace/index2.mjs';
|
|
9
10
|
import { useLocale } from '../../../../hooks/use-locale/index2.mjs';
|
|
10
11
|
import { castArray } from '../../../../utils/arrays2.mjs';
|
|
11
12
|
import { hasClass } from '../../../../utils/dom/style2.mjs';
|
|
@@ -21,6 +22,7 @@ const _sfc_main = defineComponent({
|
|
|
21
22
|
emits: ["pick"],
|
|
22
23
|
expose: ["focus"],
|
|
23
24
|
setup(props, ctx) {
|
|
25
|
+
const ns = useNamespace("year-table");
|
|
24
26
|
const { t, lang } = useLocale();
|
|
25
27
|
const tbodyRef = ref();
|
|
26
28
|
const currentCellRef = ref();
|
|
@@ -60,6 +62,7 @@ const _sfc_main = defineComponent({
|
|
|
60
62
|
}
|
|
61
63
|
};
|
|
62
64
|
return {
|
|
65
|
+
ns,
|
|
63
66
|
t,
|
|
64
67
|
tbodyRef,
|
|
65
68
|
currentCellRef,
|
|
@@ -80,7 +83,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
80
83
|
return openBlock(), createElementBlock("table", {
|
|
81
84
|
role: "grid",
|
|
82
85
|
"aria-label": _ctx.t("el.datepicker.yearTablePrompt"),
|
|
83
|
-
class:
|
|
86
|
+
class: normalizeClass(_ctx.ns.b()),
|
|
84
87
|
onClick: _cache[2] || (_cache[2] = (...args) => _ctx.handleYearTableClick && _ctx.handleYearTableClick(...args))
|
|
85
88
|
}, [
|
|
86
89
|
createElementVNode("tbody", _hoisted_2, [
|
|
@@ -109,7 +112,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
109
112
|
]);
|
|
110
113
|
}), 64))
|
|
111
114
|
], 512)
|
|
112
|
-
],
|
|
115
|
+
], 10, _hoisted_1);
|
|
113
116
|
}
|
|
114
117
|
var YearTable = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__file", "/home/runner/work/element-plus/element-plus/packages/components/date-picker/src/date-picker-com/basic-year-table.vue"]]);
|
|
115
118
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"basic-year-table2.mjs","sources":["../../../../../../../packages/components/date-picker/src/date-picker-com/basic-year-table.vue"],"sourcesContent":["<template>\n <table\n role=\"grid\"\n :aria-label=\"t('el.datepicker.yearTablePrompt')\"\n class=\"
|
|
1
|
+
{"version":3,"file":"basic-year-table2.mjs","sources":["../../../../../../../packages/components/date-picker/src/date-picker-com/basic-year-table.vue"],"sourcesContent":["<template>\n <table\n role=\"grid\"\n :aria-label=\"t('el.datepicker.yearTablePrompt')\"\n :class=\"ns.b()\"\n @click=\"handleYearTableClick\"\n >\n <tbody ref=\"tbodyRef\">\n <tr v-for=\"(_, i) in 3\" :key=\"i\">\n <template v-for=\"(__, j) in 4\" :key=\"i + '_' + j\">\n <td\n v-if=\"i * 4 + j < 10\"\n :ref=\"\n (el) =>\n isSelectedCell(startYear + i * 4 + j) && (currentCellRef = el as HTMLElement)\n \"\n class=\"available\"\n :class=\"getCellStyle(startYear + i * 4 + j)\"\n :aria-selected=\"`${isSelectedCell(startYear + i * 4 + j)}`\"\n :tabindex=\"isSelectedCell(startYear + i * 4 + j) ? 0 : -1\"\n @keydown.space.prevent.stop=\"handleYearTableClick\"\n @keydown.enter.prevent.stop=\"handleYearTableClick\"\n >\n <span class=\"cell\">{{ startYear + i * 4 + j }}</span>\n </td>\n <td v-else />\n </template>\n </tr>\n </tbody>\n </table>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, nextTick, ref, watch } from 'vue'\nimport dayjs from 'dayjs'\nimport { useLocale, useNamespace } from '@element-plus/hooks'\nimport { rangeArr } from '@element-plus/components/time-picker'\nimport { castArray, hasClass } from '@element-plus/utils'\nimport { basicYearTableProps } from '../props/basic-year-table'\n\nconst datesInYear = (year: number, lang: string) => {\n const firstDay = dayjs(String(year)).locale(lang).startOf('year')\n const lastDay = firstDay.endOf('year')\n const numOfDays = lastDay.dayOfYear()\n return rangeArr(numOfDays).map((n) => firstDay.add(n, 'day').toDate())\n}\n\nexport default defineComponent({\n props: basicYearTableProps,\n\n emits: ['pick'],\n expose: ['focus'],\n\n setup(props, ctx) {\n const ns = useNamespace('year-table')\n\n const { t, lang } = useLocale()\n const tbodyRef = ref<HTMLElement>()\n const currentCellRef = ref<HTMLElement>()\n const startYear = computed(() => {\n return Math.floor(props.date.year() / 10) * 10\n })\n\n watch(\n () => props.date,\n async () => {\n if (tbodyRef.value?.contains(document.activeElement)) {\n await nextTick()\n currentCellRef.value?.focus()\n }\n }\n )\n\n const focus = () => {\n currentCellRef.value?.focus()\n }\n\n const getCellStyle = (year: number) => {\n const style: Record<string, boolean> = {}\n const today = dayjs().locale(lang.value)\n\n style.disabled = props.disabledDate\n ? datesInYear(year, lang.value).every(props.disabledDate)\n : false\n\n style.current =\n castArray(props.parsedValue).findIndex((_) => _.year() === year) >= 0\n\n style.today = today.year() === year\n\n return style\n }\n\n const isSelectedCell = (year: number) => {\n return (\n (year === startYear.value &&\n props.date.year() < startYear.value &&\n props.date.year() > startYear.value + 9) ||\n castArray(props.date).findIndex((date) => date.year() === year) >= 0\n )\n }\n\n const handleYearTableClick = (event: MouseEvent | KeyboardEvent) => {\n const clickTarget = event.target as HTMLDivElement\n const target = clickTarget.closest('td')\n if (target) {\n if (hasClass((target as any).parentNode, 'disabled')) return\n const year = target.textContent || target.innerText\n ctx.emit('pick', Number(year))\n }\n }\n return {\n ns,\n t,\n tbodyRef,\n currentCellRef,\n startYear,\n focus,\n isSelectedCell,\n getCellStyle,\n handleYearTableClick,\n }\n },\n})\n</script>\n"],"names":["_createElementBlock","_normalizeClass","_openBlock","_Fragment","_renderList","_withKeys","_withModifiers","_createElementVNode","_toDisplayString"],"mappings":"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"}
|