@element-plus/nightly 0.0.20220719 → 0.0.20220722
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 +69 -106
- package/dist/index.full.min.js +13 -13
- package/dist/index.full.min.js.map +1 -1
- package/dist/index.full.min.mjs +13 -13
- package/dist/index.full.min.mjs.map +1 -1
- package/dist/index.full.mjs +69 -105
- 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/calendar/index.mjs +2 -2
- package/es/components/calendar/src/calendar.mjs +230 -16
- package/es/components/calendar/src/calendar.mjs.map +1 -1
- package/es/components/calendar/src/calendar2.mjs +16 -230
- package/es/components/calendar/src/calendar2.mjs.map +1 -1
- package/es/components/date-picker/src/date-picker-com/basic-date-table.mjs +21 -8
- package/es/components/date-picker/src/date-picker-com/basic-date-table.mjs.map +1 -1
- package/es/components/date-picker/src/date-picker-com/basic-date-table.vue.d.ts +5 -2
- package/es/components/date-picker/src/date-picker-com/panel-date-pick.vue.d.ts +5 -2
- package/es/components/date-picker/src/date-picker-com/panel-date-range.vue.d.ts +5 -2
- package/es/components/date-picker/src/panel-utils.d.ts +10 -4
- package/es/components/dialog/src/use-dialog.mjs.map +1 -1
- package/es/components/index.mjs +3 -3
- package/es/components/input-number/src/input-number2.mjs +3 -3
- package/es/components/menu/src/menu.mjs +16 -8
- package/es/components/menu/src/menu.mjs.map +1 -1
- package/es/components/popper/index.mjs +2 -2
- package/es/components/popper/src/content.mjs +207 -87
- package/es/components/popper/src/content.mjs.map +1 -1
- package/es/components/popper/src/content2.mjs +87 -207
- package/es/components/popper/src/content2.mjs.map +1 -1
- package/es/components/rate/src/rate2.mjs +2 -1
- package/es/components/rate/src/rate2.mjs.map +1 -1
- package/es/components/select/src/option.mjs +4 -4
- package/es/components/select/src/option.mjs.map +1 -1
- package/es/components/table/src/table-header/event-helper.mjs +5 -9
- package/es/components/table/src/table-header/event-helper.mjs.map +1 -1
- package/es/components/table/src/util.d.ts +1 -1
- package/es/components/table/src/util.mjs +2 -8
- package/es/components/table/src/util.mjs.map +1 -1
- package/es/components/time-picker/src/time-picker-com/basic-time-spinner.mjs +3 -3
- package/es/components/tooltip/src/content.mjs +1 -1
- package/es/components/tooltip/src/tooltip.mjs +1 -1
- package/es/directives/index.d.ts +0 -1
- package/es/directives/index.mjs +0 -1
- package/es/directives/index.mjs.map +1 -1
- package/es/directives/repeat-click/index.d.ts +2 -2
- package/es/directives/repeat-click/index.mjs +13 -13
- package/es/directives/repeat-click/index.mjs.map +1 -1
- package/es/index.mjs +3 -4
- package/es/index.mjs.map +1 -1
- package/es/version.d.ts +1 -1
- package/es/version.mjs +1 -1
- package/es/version.mjs.map +1 -1
- package/lib/components/calendar/index.js +2 -2
- package/lib/components/calendar/src/calendar.js +233 -16
- package/lib/components/calendar/src/calendar.js.map +1 -1
- package/lib/components/calendar/src/calendar2.js +16 -233
- package/lib/components/calendar/src/calendar2.js.map +1 -1
- package/lib/components/date-picker/src/date-picker-com/basic-date-table.js +21 -8
- package/lib/components/date-picker/src/date-picker-com/basic-date-table.js.map +1 -1
- package/lib/components/date-picker/src/date-picker-com/basic-date-table.vue.d.ts +5 -2
- package/lib/components/date-picker/src/date-picker-com/panel-date-pick.vue.d.ts +5 -2
- package/lib/components/date-picker/src/date-picker-com/panel-date-range.vue.d.ts +5 -2
- package/lib/components/date-picker/src/panel-utils.d.ts +10 -4
- package/lib/components/dialog/src/use-dialog.js.map +1 -1
- package/lib/components/index.js +3 -3
- package/lib/components/menu/src/menu.js +17 -9
- package/lib/components/menu/src/menu.js.map +1 -1
- package/lib/components/popper/index.js +2 -2
- package/lib/components/popper/src/content.js +206 -88
- package/lib/components/popper/src/content.js.map +1 -1
- package/lib/components/popper/src/content2.js +88 -206
- package/lib/components/popper/src/content2.js.map +1 -1
- package/lib/components/rate/src/rate2.js +2 -1
- package/lib/components/rate/src/rate2.js.map +1 -1
- package/lib/components/select/src/option.js +4 -4
- package/lib/components/select/src/option.js.map +1 -1
- package/lib/components/table/src/table-header/event-helper.js +5 -9
- package/lib/components/table/src/table-header/event-helper.js.map +1 -1
- package/lib/components/table/src/util.d.ts +1 -1
- package/lib/components/table/src/util.js +2 -8
- package/lib/components/table/src/util.js.map +1 -1
- package/lib/components/tooltip/src/content.js +1 -1
- package/lib/components/tooltip/src/tooltip.js +1 -1
- package/lib/directives/index.d.ts +0 -1
- package/lib/directives/index.js +0 -2
- package/lib/directives/index.js.map +1 -1
- package/lib/directives/repeat-click/index.d.ts +2 -2
- package/lib/directives/repeat-click/index.js +13 -13
- package/lib/directives/repeat-click/index.js.map +1 -1
- package/lib/index.js +82 -84
- package/lib/index.js.map +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/lib/version.js.map +1 -1
- package/package.json +2 -2
- package/theme-chalk/el-message.css +1 -1
- package/theme-chalk/index.css +1 -1
- package/theme-chalk/src/common/var.scss +1 -1
- package/theme-chalk/src/message.scss +2 -1
- package/web-types.json +1 -1
- package/es/directives/resize/index.d.ts +0 -3
- package/es/directives/resize/index.mjs +0 -18
- package/es/directives/resize/index.mjs.map +0 -1
- package/lib/directives/resize/index.d.ts +0 -3
- package/lib/directives/resize/index.js +0 -22
- package/lib/directives/resize/index.js.map +0 -1
|
@@ -1,237 +1,23 @@
|
|
|
1
|
-
import { defineComponent, ref, computed, openBlock, createElementBlock, normalizeClass, unref, createElementVNode, renderSlot, toDisplayString, createVNode, withCtx, createTextVNode, createCommentVNode, createSlots, normalizeProps, guardReactiveProps, Fragment, renderList, createBlock } from 'vue';
|
|
2
|
-
import dayjs from 'dayjs';
|
|
3
|
-
import { ElButtonGroup, ElButton } from '../../button/index.mjs';
|
|
4
|
-
import '../../../hooks/index.mjs';
|
|
5
1
|
import '../../../utils/index.mjs';
|
|
6
2
|
import '../../../constants/index.mjs';
|
|
7
|
-
import
|
|
8
|
-
import {
|
|
9
|
-
import
|
|
10
|
-
import { useNamespace } from '../../../hooks/use-namespace/index.mjs';
|
|
11
|
-
import { useLocale } from '../../../hooks/use-locale/index.mjs';
|
|
12
|
-
import { INPUT_EVENT, UPDATE_MODEL_EVENT } from '../../../constants/event.mjs';
|
|
13
|
-
import { debugWarn } from '../../../utils/error.mjs';
|
|
3
|
+
import { isArray, isDate } from '@vue/shared';
|
|
4
|
+
import { buildProps, definePropType } from '../../../utils/vue/props/runtime.mjs';
|
|
5
|
+
import { UPDATE_MODEL_EVENT, INPUT_EVENT } from '../../../constants/event.mjs';
|
|
14
6
|
|
|
15
|
-
const
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
const props = __props;
|
|
24
|
-
const COMPONENT_NAME = "ElCalendar";
|
|
25
|
-
const ns = useNamespace("calendar");
|
|
26
|
-
const { t, lang } = useLocale();
|
|
27
|
-
const selectedDay = ref();
|
|
28
|
-
const now = dayjs().locale(lang.value);
|
|
29
|
-
const realSelectedDay = computed({
|
|
30
|
-
get() {
|
|
31
|
-
if (!props.modelValue)
|
|
32
|
-
return selectedDay.value;
|
|
33
|
-
return date.value;
|
|
34
|
-
},
|
|
35
|
-
set(val) {
|
|
36
|
-
if (!val)
|
|
37
|
-
return;
|
|
38
|
-
selectedDay.value = val;
|
|
39
|
-
const result = val.toDate();
|
|
40
|
-
emit(INPUT_EVENT, result);
|
|
41
|
-
emit(UPDATE_MODEL_EVENT, result);
|
|
42
|
-
}
|
|
43
|
-
});
|
|
44
|
-
const validatedRange = computed(() => {
|
|
45
|
-
if (!props.range)
|
|
46
|
-
return [];
|
|
47
|
-
const rangeArrDayjs = props.range.map((_) => dayjs(_).locale(lang.value));
|
|
48
|
-
const [startDayjs, endDayjs] = rangeArrDayjs;
|
|
49
|
-
if (startDayjs.isAfter(endDayjs)) {
|
|
50
|
-
debugWarn(COMPONENT_NAME, "end time should be greater than start time");
|
|
51
|
-
return [];
|
|
52
|
-
}
|
|
53
|
-
if (startDayjs.isSame(endDayjs, "month")) {
|
|
54
|
-
return calculateValidatedDateRange(startDayjs, endDayjs);
|
|
55
|
-
} else {
|
|
56
|
-
if (startDayjs.add(1, "month").month() !== endDayjs.month()) {
|
|
57
|
-
debugWarn(COMPONENT_NAME, "start time and end time interval must not exceed two months");
|
|
58
|
-
return [];
|
|
59
|
-
}
|
|
60
|
-
return calculateValidatedDateRange(startDayjs, endDayjs);
|
|
61
|
-
}
|
|
62
|
-
});
|
|
63
|
-
const date = computed(() => {
|
|
64
|
-
if (!props.modelValue) {
|
|
65
|
-
if (realSelectedDay.value) {
|
|
66
|
-
return realSelectedDay.value;
|
|
67
|
-
} else if (validatedRange.value.length) {
|
|
68
|
-
return validatedRange.value[0][0];
|
|
69
|
-
}
|
|
70
|
-
return now;
|
|
71
|
-
} else {
|
|
72
|
-
return dayjs(props.modelValue).locale(lang.value);
|
|
73
|
-
}
|
|
74
|
-
});
|
|
75
|
-
const prevMonthDayjs = computed(() => date.value.subtract(1, "month").date(1));
|
|
76
|
-
const nextMonthDayjs = computed(() => date.value.add(1, "month").date(1));
|
|
77
|
-
const prevYearDayjs = computed(() => date.value.subtract(1, "year").date(1));
|
|
78
|
-
const nextYearDayjs = computed(() => date.value.add(1, "year").date(1));
|
|
79
|
-
const i18nDate = computed(() => {
|
|
80
|
-
const pickedMonth = `el.datepicker.month${date.value.format("M")}`;
|
|
81
|
-
return `${date.value.year()} ${t("el.datepicker.year")} ${t(pickedMonth)}`;
|
|
82
|
-
});
|
|
83
|
-
const calculateValidatedDateRange = (startDayjs, endDayjs) => {
|
|
84
|
-
const firstDay = startDayjs.startOf("week");
|
|
85
|
-
const lastDay = endDayjs.endOf("week");
|
|
86
|
-
const firstMonth = firstDay.get("month");
|
|
87
|
-
const lastMonth = lastDay.get("month");
|
|
88
|
-
if (firstMonth === lastMonth) {
|
|
89
|
-
return [[firstDay, lastDay]];
|
|
90
|
-
} else if (firstMonth + 1 === lastMonth) {
|
|
91
|
-
const firstMonthLastDay = firstDay.endOf("month");
|
|
92
|
-
const lastMonthFirstDay = lastDay.startOf("month");
|
|
93
|
-
const isSameWeek = firstMonthLastDay.isSame(lastMonthFirstDay, "week");
|
|
94
|
-
const lastMonthStartDay = isSameWeek ? lastMonthFirstDay.add(1, "week") : lastMonthFirstDay;
|
|
95
|
-
return [
|
|
96
|
-
[firstDay, firstMonthLastDay],
|
|
97
|
-
[lastMonthStartDay.startOf("week"), lastDay]
|
|
98
|
-
];
|
|
99
|
-
} else if (firstMonth + 2 === lastMonth || (firstMonth + 1) % 11 === lastMonth) {
|
|
100
|
-
const firstMonthLastDay = firstDay.endOf("month");
|
|
101
|
-
const secondMonthFirstDay = firstDay.add(1, "month").startOf("month");
|
|
102
|
-
const secondMonthStartDay = firstMonthLastDay.isSame(secondMonthFirstDay, "week") ? secondMonthFirstDay.add(1, "week") : secondMonthFirstDay;
|
|
103
|
-
const secondMonthLastDay = secondMonthStartDay.endOf("month");
|
|
104
|
-
const lastMonthFirstDay = lastDay.startOf("month");
|
|
105
|
-
const lastMonthStartDay = secondMonthLastDay.isSame(lastMonthFirstDay, "week") ? lastMonthFirstDay.add(1, "week") : lastMonthFirstDay;
|
|
106
|
-
return [
|
|
107
|
-
[firstDay, firstMonthLastDay],
|
|
108
|
-
[secondMonthStartDay.startOf("week"), secondMonthLastDay],
|
|
109
|
-
[lastMonthStartDay.startOf("week"), lastDay]
|
|
110
|
-
];
|
|
111
|
-
} else {
|
|
112
|
-
debugWarn(COMPONENT_NAME, "start time and end time interval must not exceed two months");
|
|
113
|
-
return [];
|
|
114
|
-
}
|
|
115
|
-
};
|
|
116
|
-
const pickDay = (day) => {
|
|
117
|
-
realSelectedDay.value = day;
|
|
118
|
-
};
|
|
119
|
-
const selectDate = (type) => {
|
|
120
|
-
let day;
|
|
121
|
-
if (type === "prev-month") {
|
|
122
|
-
day = prevMonthDayjs.value;
|
|
123
|
-
} else if (type === "next-month") {
|
|
124
|
-
day = nextMonthDayjs.value;
|
|
125
|
-
} else if (type === "prev-year") {
|
|
126
|
-
day = prevYearDayjs.value;
|
|
127
|
-
} else if (type === "next-year") {
|
|
128
|
-
day = nextYearDayjs.value;
|
|
129
|
-
} else {
|
|
130
|
-
day = now;
|
|
131
|
-
}
|
|
132
|
-
if (day.isSame(date.value, "day"))
|
|
133
|
-
return;
|
|
134
|
-
pickDay(day);
|
|
135
|
-
};
|
|
136
|
-
expose({
|
|
137
|
-
selectedDay: realSelectedDay,
|
|
138
|
-
pickDay,
|
|
139
|
-
selectDate,
|
|
140
|
-
calculateValidatedDateRange
|
|
141
|
-
});
|
|
142
|
-
return (_ctx, _cache) => {
|
|
143
|
-
return openBlock(), createElementBlock("div", {
|
|
144
|
-
class: normalizeClass(unref(ns).b())
|
|
145
|
-
}, [
|
|
146
|
-
createElementVNode("div", {
|
|
147
|
-
class: normalizeClass(unref(ns).e("header"))
|
|
148
|
-
}, [
|
|
149
|
-
renderSlot(_ctx.$slots, "header", { date: unref(i18nDate) }, () => [
|
|
150
|
-
createElementVNode("div", {
|
|
151
|
-
class: normalizeClass(unref(ns).e("title"))
|
|
152
|
-
}, toDisplayString(unref(i18nDate)), 3),
|
|
153
|
-
unref(validatedRange).length === 0 ? (openBlock(), createElementBlock("div", {
|
|
154
|
-
key: 0,
|
|
155
|
-
class: normalizeClass(unref(ns).e("button-group"))
|
|
156
|
-
}, [
|
|
157
|
-
createVNode(unref(ElButtonGroup), null, {
|
|
158
|
-
default: withCtx(() => [
|
|
159
|
-
createVNode(unref(ElButton), {
|
|
160
|
-
size: "small",
|
|
161
|
-
onClick: _cache[0] || (_cache[0] = ($event) => selectDate("prev-month"))
|
|
162
|
-
}, {
|
|
163
|
-
default: withCtx(() => [
|
|
164
|
-
createTextVNode(toDisplayString(unref(t)("el.datepicker.prevMonth")), 1)
|
|
165
|
-
]),
|
|
166
|
-
_: 1
|
|
167
|
-
}),
|
|
168
|
-
createVNode(unref(ElButton), {
|
|
169
|
-
size: "small",
|
|
170
|
-
onClick: _cache[1] || (_cache[1] = ($event) => selectDate("today"))
|
|
171
|
-
}, {
|
|
172
|
-
default: withCtx(() => [
|
|
173
|
-
createTextVNode(toDisplayString(unref(t)("el.datepicker.today")), 1)
|
|
174
|
-
]),
|
|
175
|
-
_: 1
|
|
176
|
-
}),
|
|
177
|
-
createVNode(unref(ElButton), {
|
|
178
|
-
size: "small",
|
|
179
|
-
onClick: _cache[2] || (_cache[2] = ($event) => selectDate("next-month"))
|
|
180
|
-
}, {
|
|
181
|
-
default: withCtx(() => [
|
|
182
|
-
createTextVNode(toDisplayString(unref(t)("el.datepicker.nextMonth")), 1)
|
|
183
|
-
]),
|
|
184
|
-
_: 1
|
|
185
|
-
})
|
|
186
|
-
]),
|
|
187
|
-
_: 1
|
|
188
|
-
})
|
|
189
|
-
], 2)) : createCommentVNode("v-if", true)
|
|
190
|
-
])
|
|
191
|
-
], 2),
|
|
192
|
-
unref(validatedRange).length === 0 ? (openBlock(), createElementBlock("div", {
|
|
193
|
-
key: 0,
|
|
194
|
-
class: normalizeClass(unref(ns).e("body"))
|
|
195
|
-
}, [
|
|
196
|
-
createVNode(DateTable, {
|
|
197
|
-
date: unref(date),
|
|
198
|
-
"selected-day": unref(realSelectedDay),
|
|
199
|
-
onPick: pickDay
|
|
200
|
-
}, createSlots({ _: 2 }, [
|
|
201
|
-
_ctx.$slots.dateCell ? {
|
|
202
|
-
name: "dateCell",
|
|
203
|
-
fn: withCtx((data) => [
|
|
204
|
-
renderSlot(_ctx.$slots, "dateCell", normalizeProps(guardReactiveProps(data)))
|
|
205
|
-
])
|
|
206
|
-
} : void 0
|
|
207
|
-
]), 1032, ["date", "selected-day"])
|
|
208
|
-
], 2)) : (openBlock(), createElementBlock("div", {
|
|
209
|
-
key: 1,
|
|
210
|
-
class: normalizeClass(unref(ns).e("body"))
|
|
211
|
-
}, [
|
|
212
|
-
(openBlock(true), createElementBlock(Fragment, null, renderList(unref(validatedRange), (range_, index) => {
|
|
213
|
-
return openBlock(), createBlock(DateTable, {
|
|
214
|
-
key: index,
|
|
215
|
-
date: range_[0],
|
|
216
|
-
"selected-day": unref(realSelectedDay),
|
|
217
|
-
range: range_,
|
|
218
|
-
"hide-header": index !== 0,
|
|
219
|
-
onPick: pickDay
|
|
220
|
-
}, createSlots({ _: 2 }, [
|
|
221
|
-
_ctx.$slots.dateCell ? {
|
|
222
|
-
name: "dateCell",
|
|
223
|
-
fn: withCtx((data) => [
|
|
224
|
-
renderSlot(_ctx.$slots, "dateCell", normalizeProps(guardReactiveProps(data)))
|
|
225
|
-
])
|
|
226
|
-
} : void 0
|
|
227
|
-
]), 1032, ["date", "selected-day", "range", "hide-header"]);
|
|
228
|
-
}), 128))
|
|
229
|
-
], 2))
|
|
230
|
-
], 2);
|
|
231
|
-
};
|
|
7
|
+
const isValidRange = (range) => isArray(range) && range.length === 2 && range.every((item) => isDate(item));
|
|
8
|
+
const calendarProps = buildProps({
|
|
9
|
+
modelValue: {
|
|
10
|
+
type: Date
|
|
11
|
+
},
|
|
12
|
+
range: {
|
|
13
|
+
type: definePropType(Array),
|
|
14
|
+
validator: isValidRange
|
|
232
15
|
}
|
|
233
16
|
});
|
|
234
|
-
|
|
17
|
+
const calendarEmits = {
|
|
18
|
+
[UPDATE_MODEL_EVENT]: (value) => isDate(value),
|
|
19
|
+
[INPUT_EVENT]: (value) => isDate(value)
|
|
20
|
+
};
|
|
235
21
|
|
|
236
|
-
export {
|
|
22
|
+
export { calendarEmits, calendarProps };
|
|
237
23
|
//# sourceMappingURL=calendar2.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calendar2.mjs","sources":["../../../../../../packages/components/calendar/src/calendar.vue"],"sourcesContent":["<template>\n <div :class=\"ns.b()\">\n <div :class=\"ns.e('header')\">\n <slot name=\"header\" :date=\"i18nDate\">\n <div :class=\"ns.e('title')\">{{ i18nDate }}</div>\n <div v-if=\"validatedRange.length === 0\" :class=\"ns.e('button-group')\">\n <el-button-group>\n <el-button size=\"small\" @click=\"selectDate('prev-month')\">\n {{ t('el.datepicker.prevMonth') }}\n </el-button>\n <el-button size=\"small\" @click=\"selectDate('today')\">\n {{ t('el.datepicker.today') }}\n </el-button>\n <el-button size=\"small\" @click=\"selectDate('next-month')\">\n {{ t('el.datepicker.nextMonth') }}\n </el-button>\n </el-button-group>\n </div>\n </slot>\n </div>\n <div v-if=\"validatedRange.length === 0\" :class=\"ns.e('body')\">\n <date-table :date=\"date\" :selected-day=\"realSelectedDay\" @pick=\"pickDay\">\n <template v-if=\"$slots.dateCell\" #dateCell=\"data\">\n <slot name=\"dateCell\" v-bind=\"data\" />\n </template>\n </date-table>\n </div>\n <div v-else :class=\"ns.e('body')\">\n <date-table\n v-for=\"(range_, index) in validatedRange\"\n :key=\"index\"\n :date=\"range_[0]\"\n :selected-day=\"realSelectedDay\"\n :range=\"range_\"\n :hide-header=\"index !== 0\"\n @pick=\"pickDay\"\n >\n <template v-if=\"$slots.dateCell\" #dateCell=\"data\">\n <slot name=\"dateCell\" v-bind=\"data\" />\n </template>\n </date-table>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, ref } from 'vue'\nimport dayjs from 'dayjs'\nimport { ElButton, ElButtonGroup } from '@element-plus/components/button'\nimport { useLocale, useNamespace } from '@element-plus/hooks'\nimport { debugWarn } from '@element-plus/utils'\nimport { INPUT_EVENT, UPDATE_MODEL_EVENT } from '@element-plus/constants'\nimport DateTable from './date-table.vue'\nimport { calendarEmits, calendarProps } from './calendar'\n\nimport type { CalendarDateType } from './calendar'\nimport type { ComputedRef } from 'vue'\nimport type { Dayjs } from 'dayjs'\n\nconst COMPONENT_NAME = 'ElCalendar'\n\ndefineOptions({\n name: 'ElCalendar',\n})\n\nconst props = defineProps(calendarProps)\nconst emit = defineEmits(calendarEmits)\n\nconst ns = useNamespace('calendar')\nconst { t, lang } = useLocale()\n\nconst selectedDay = ref<Dayjs>()\nconst now = dayjs().locale(lang.value)\n\nconst realSelectedDay = computed<Dayjs | undefined>({\n get() {\n if (!props.modelValue) return selectedDay.value\n return date.value\n },\n set(val) {\n if (!val) return\n selectedDay.value = val\n const result = val.toDate()\n\n emit(INPUT_EVENT, result)\n emit(UPDATE_MODEL_EVENT, result)\n },\n})\n\n// if range is valid, we get a two-digit array\nconst validatedRange = computed(() => {\n if (!props.range) return []\n const rangeArrDayjs = props.range.map((_) => dayjs(_).locale(lang.value))\n const [startDayjs, endDayjs] = rangeArrDayjs\n if (startDayjs.isAfter(endDayjs)) {\n debugWarn(COMPONENT_NAME, 'end time should be greater than start time')\n return []\n }\n if (startDayjs.isSame(endDayjs, 'month')) {\n // same month\n return calculateValidatedDateRange(startDayjs, endDayjs)\n } else {\n // two months\n if (startDayjs.add(1, 'month').month() !== endDayjs.month()) {\n debugWarn(\n COMPONENT_NAME,\n 'start time and end time interval must not exceed two months'\n )\n return []\n }\n return calculateValidatedDateRange(startDayjs, endDayjs)\n }\n})\n\nconst date: ComputedRef<Dayjs> = computed(() => {\n if (!props.modelValue) {\n if (realSelectedDay.value) {\n return realSelectedDay.value\n } else if (validatedRange.value.length) {\n return validatedRange.value[0][0]\n }\n return now\n } else {\n return dayjs(props.modelValue).locale(lang.value)\n }\n})\nconst prevMonthDayjs = computed(() => date.value.subtract(1, 'month').date(1))\nconst nextMonthDayjs = computed(() => date.value.add(1, 'month').date(1))\nconst prevYearDayjs = computed(() => date.value.subtract(1, 'year').date(1))\nconst nextYearDayjs = computed(() => date.value.add(1, 'year').date(1))\n\nconst i18nDate = computed(() => {\n const pickedMonth = `el.datepicker.month${date.value.format('M')}`\n return `${date.value.year()} ${t('el.datepicker.year')} ${t(pickedMonth)}`\n})\n\n// https://github.com/element-plus/element-plus/issues/3155\n// Calculate the validate date range according to the start and end dates\nconst calculateValidatedDateRange = (\n startDayjs: Dayjs,\n endDayjs: Dayjs\n): [Dayjs, Dayjs][] => {\n const firstDay = startDayjs.startOf('week')\n const lastDay = endDayjs.endOf('week')\n const firstMonth = firstDay.get('month')\n const lastMonth = lastDay.get('month')\n\n // Current mouth\n if (firstMonth === lastMonth) {\n return [[firstDay, lastDay]]\n }\n // Two adjacent months\n else if (firstMonth + 1 === lastMonth) {\n const firstMonthLastDay = firstDay.endOf('month')\n const lastMonthFirstDay = lastDay.startOf('month')\n\n // Whether the last day of the first month and the first day of the last month is in the same week\n const isSameWeek = firstMonthLastDay.isSame(lastMonthFirstDay, 'week')\n const lastMonthStartDay = isSameWeek\n ? lastMonthFirstDay.add(1, 'week')\n : lastMonthFirstDay\n\n return [\n [firstDay, firstMonthLastDay],\n [lastMonthStartDay.startOf('week'), lastDay],\n ]\n }\n // Three consecutive months (compatible: 2021-01-30 to 2021-02-28)\n else if (\n firstMonth + 2 === lastMonth ||\n (firstMonth + 1) % 11 === lastMonth\n ) {\n const firstMonthLastDay = firstDay.endOf('month')\n const secondMonthFirstDay = firstDay.add(1, 'month').startOf('month')\n\n // Whether the last day of the first month and the second month is in the same week\n const secondMonthStartDay = firstMonthLastDay.isSame(\n secondMonthFirstDay,\n 'week'\n )\n ? secondMonthFirstDay.add(1, 'week')\n : secondMonthFirstDay\n\n const secondMonthLastDay = secondMonthStartDay.endOf('month')\n const lastMonthFirstDay = lastDay.startOf('month')\n\n // Whether the last day of the second month and the last day of the last month is in the same week\n const lastMonthStartDay = secondMonthLastDay.isSame(\n lastMonthFirstDay,\n 'week'\n )\n ? lastMonthFirstDay.add(1, 'week')\n : lastMonthFirstDay\n\n return [\n [firstDay, firstMonthLastDay],\n [secondMonthStartDay.startOf('week'), secondMonthLastDay],\n [lastMonthStartDay.startOf('week'), lastDay],\n ]\n }\n // Other cases\n else {\n debugWarn(\n COMPONENT_NAME,\n 'start time and end time interval must not exceed two months'\n )\n return []\n }\n}\n\nconst pickDay = (day: Dayjs) => {\n realSelectedDay.value = day\n}\n\nconst selectDate = (type: CalendarDateType) => {\n let day: Dayjs\n if (type === 'prev-month') {\n day = prevMonthDayjs.value\n } else if (type === 'next-month') {\n day = nextMonthDayjs.value\n } else if (type === 'prev-year') {\n day = prevYearDayjs.value\n } else if (type === 'next-year') {\n day = nextYearDayjs.value\n } else {\n day = now\n }\n\n if (day.isSame(date.value, 'day')) return\n pickDay(day)\n}\n\ndefineExpose({\n /** @description currently selected date */\n selectedDay: realSelectedDay,\n /** @description select a specific date */\n pickDay,\n /** @description select date */\n selectDate,\n /** @description Calculate the validate date range according to the start and end dates */\n calculateValidatedDateRange,\n})\n</script>\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"calendar2.mjs","sources":["../../../../../../packages/components/calendar/src/calendar.ts"],"sourcesContent":["import {\n buildProps,\n definePropType,\n isArray,\n isDate,\n} from '@element-plus/utils'\nimport { INPUT_EVENT, UPDATE_MODEL_EVENT } from '@element-plus/constants'\nimport type { ExtractPropTypes } from 'vue'\nimport type Calendar from './calendar.vue'\n\nexport type CalendarDateType =\n | 'prev-month'\n | 'next-month'\n | 'prev-year'\n | 'next-year'\n | 'today'\n\nconst isValidRange = (range: unknown): range is [Date, Date] =>\n isArray(range) && range.length === 2 && range.every((item) => isDate(item))\n\nexport const calendarProps = buildProps({\n modelValue: {\n type: Date,\n },\n range: {\n type: definePropType<[Date, Date]>(Array),\n validator: isValidRange,\n },\n} as const)\nexport type CalendarProps = ExtractPropTypes<typeof calendarProps>\n\nexport const calendarEmits = {\n [UPDATE_MODEL_EVENT]: (value: Date) => isDate(value),\n [INPUT_EVENT]: (value: Date) => isDate(value),\n}\nexport type CalendarEmits = typeof calendarEmits\n\nexport type CalendarInstance = InstanceType<typeof Calendar>\n"],"names":[],"mappings":";;;;;;AAOA,MAAM,YAAY,GAAG,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AAChG,MAAC,aAAa,GAAG,UAAU,CAAC;AACxC,EAAE,UAAU,EAAE;AACd,IAAI,IAAI,EAAE,IAAI;AACd,GAAG;AACH,EAAE,KAAK,EAAE;AACT,IAAI,IAAI,EAAE,cAAc,CAAC,KAAK,CAAC;AAC/B,IAAI,SAAS,EAAE,YAAY;AAC3B,GAAG;AACH,CAAC,EAAE;AACS,MAAC,aAAa,GAAG;AAC7B,EAAE,CAAC,kBAAkB,GAAG,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,CAAC;AAChD,EAAE,CAAC,WAAW,GAAG,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,CAAC;AACzC;;;;"}
|
|
@@ -30,6 +30,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
30
30
|
const lastRow = ref();
|
|
31
31
|
const lastColumn = ref();
|
|
32
32
|
const tableRows = ref([[], [], [], [], [], []]);
|
|
33
|
+
let focusWithClick = false;
|
|
33
34
|
const firstDayOfWeek = props.date.$locale().weekStart || 7;
|
|
34
35
|
const WEEKS_CONSTANT = props.date.locale("en").localeData().weekdaysShort().map((_) => _.toLowerCase());
|
|
35
36
|
const offsetDay = computed(() => {
|
|
@@ -234,13 +235,25 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
234
235
|
return !hasCurrent.value && (cell == null ? void 0 : cell.text) === 1 && cell.type === "normal" || cell.isCurrent;
|
|
235
236
|
};
|
|
236
237
|
const handleFocus = (event) => {
|
|
237
|
-
if (
|
|
238
|
-
|
|
239
|
-
|
|
238
|
+
if (focusWithClick || hasCurrent.value || props.selectionMode !== "date")
|
|
239
|
+
return;
|
|
240
|
+
handlePickDate(event, true);
|
|
241
|
+
};
|
|
242
|
+
const handleMouseDown = (event) => {
|
|
243
|
+
const target = event.target.closest("td");
|
|
244
|
+
if (!target)
|
|
245
|
+
return;
|
|
246
|
+
focusWithClick = true;
|
|
247
|
+
};
|
|
248
|
+
const handleMouseUp = (event) => {
|
|
249
|
+
const target = event.target.closest("td");
|
|
250
|
+
if (!target)
|
|
251
|
+
return;
|
|
252
|
+
focusWithClick = false;
|
|
240
253
|
};
|
|
241
254
|
const handlePickDate = (event, isKeyboardMovement = false) => {
|
|
242
255
|
const target = event.target.closest("td");
|
|
243
|
-
if (!target
|
|
256
|
+
if (!target)
|
|
244
257
|
return;
|
|
245
258
|
const row = target.parentNode.rowIndex - 1;
|
|
246
259
|
const column = target.cellIndex;
|
|
@@ -305,7 +318,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
305
318
|
cellpadding: "0",
|
|
306
319
|
class: normalizeClass([unref(ns).b(), { "is-week-mode": _ctx.selectionMode === "week" }]),
|
|
307
320
|
onClick: handlePickDate,
|
|
308
|
-
onMousemove: handleMouseMove
|
|
321
|
+
onMousemove: handleMouseMove,
|
|
322
|
+
onMousedown: handleMouseDown,
|
|
323
|
+
onMouseup: handleMouseUp
|
|
309
324
|
}, [
|
|
310
325
|
createElementVNode("tbody", {
|
|
311
326
|
ref_key: "tbodyRef",
|
|
@@ -330,9 +345,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
330
345
|
return openBlock(), createElementBlock("td", {
|
|
331
346
|
key: `${rowKey}.${columnKey}`,
|
|
332
347
|
ref_for: true,
|
|
333
|
-
ref: (el) =>
|
|
334
|
-
isSelectedCell(cell) && (currentCellRef.value = el);
|
|
335
|
-
},
|
|
348
|
+
ref: (el) => isSelectedCell(cell) && (currentCellRef.value = el),
|
|
336
349
|
class: normalizeClass(getCellClasses(cell)),
|
|
337
350
|
"aria-current": cell.isCurrent ? "date" : void 0,
|
|
338
351
|
"aria-selected": cell.isCurrent,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"basic-date-table.mjs","sources":["../../../../../../../packages/components/date-picker/src/date-picker-com/basic-date-table.vue"],"sourcesContent":["<template>\n <table\n 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, rowKey) in rows\"\n :key=\"rowKey\"\n :class=\"[ns.e('row'), { current: isWeekActive(row[1]) }]\"\n >\n <td\n v-for=\"(cell, columnKey) in row\"\n :key=\"`${rowKey}.${columnKey}`\"\n :ref=\"(el) => { isSelectedCell(cell) && (currentCellRef = el as HTMLElement) }\"\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\" setup>\nimport { computed, nextTick, ref, unref, 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 { buildPickerTable } from '../utils'\nimport ElDatePickerCell from './basic-cell-render'\n\nimport type { Dayjs } from 'dayjs'\nimport type { DateCell } from '../date-picker.type'\n\nconst props = defineProps(basicDateTableProps)\nconst emit = defineEmits(['changerange', 'pick', 'select'])\n\nconst ns = useNamespace('date-table')\n\nconst { t, lang } = useLocale()\n\nconst tbodyRef = ref<HTMLElement>()\nconst currentCellRef = ref<HTMLElement>()\n// data\nconst lastRow = ref<number>()\nconst lastColumn = ref<number>()\nconst tableRows = ref<DateCell[][]>([[], [], [], [], [], []])\n\n// todo better way to get Day.js locale object\nconst firstDayOfWeek = (props.date as any).$locale().weekStart || 7\nconst WEEKS_CONSTANT = props.date\n .locale('en')\n .localeData()\n .weekdaysShort()\n .map((_) => _.toLowerCase())\n\nconst 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\nconst startDate = computed(() => {\n const startDayOfMonth = props.date.startOf('month')\n return startDayOfMonth.subtract(startDayOfMonth.day() || 7, 'day')\n})\n\nconst WEEKS = computed(() => {\n return WEEKS_CONSTANT.concat(WEEKS_CONSTANT).slice(\n firstDayOfWeek,\n firstDayOfWeek + 7\n )\n})\n\nconst hasCurrent = computed<boolean>(() => {\n return rows.value.flat().some((row) => {\n return row.isCurrent\n })\n})\n\nconst days = computed(() => {\n const startOfMonth = props.date.startOf('month')\n const startOfMonthDay = startOfMonth.day() || 7 // day of first day\n const dateCountOfMonth = startOfMonth.daysInMonth()\n\n const dateCountOfLastMonth = startOfMonth.subtract(1, 'month').daysInMonth()\n\n return {\n startOfMonthDay,\n dateCountOfMonth,\n dateCountOfLastMonth,\n }\n})\n\nconst selectedDate = computed(() => {\n return props.selectionMode === 'dates'\n ? (castArray(props.parsedValue) as Dayjs[])\n : ([] as Dayjs[])\n})\n\n// Return value indicates should the counter be incremented\nconst setDateText = (\n cell: DateCell,\n {\n count,\n rowIndex,\n columnIndex,\n }: {\n count: number\n rowIndex: number\n columnIndex: number\n }\n): boolean => {\n const { startOfMonthDay, dateCountOfMonth, dateCountOfLastMonth } =\n unref(days)\n const offset = unref(offsetDay)\n if (rowIndex >= 0 && rowIndex <= 1) {\n const numberOfDaysFromPreviousMonth =\n startOfMonthDay + offset < 0\n ? 7 + startOfMonthDay + offset\n : startOfMonthDay + offset\n\n if (columnIndex + rowIndex * 7 >= numberOfDaysFromPreviousMonth) {\n cell.text = count\n return true\n } else {\n cell.text =\n dateCountOfLastMonth -\n (numberOfDaysFromPreviousMonth - (columnIndex % 7)) +\n 1 +\n rowIndex * 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 return true\n }\n return false\n}\n\nconst setCellMetadata = (\n cell: DateCell,\n {\n columnIndex,\n rowIndex,\n }: {\n columnIndex: number\n rowIndex: number\n },\n count: number\n) => {\n const { disabledDate, cellClassName } = props\n const _selectedDate = unref(selectedDate)\n const shouldIncrement = setDateText(cell, { count, rowIndex, columnIndex })\n\n const cellDate = cell.dayjs!.toDate()\n cell.selected = _selectedDate.find(\n (d) => d.valueOf() === cell.dayjs!.valueOf()\n )\n cell.isSelected = !!cell.selected\n cell.isCurrent = isCurrent(cell)\n cell.disabled = disabledDate?.(cellDate)\n cell.customClass = cellClassName?.(cellDate)\n return shouldIncrement\n}\n\nconst setRowMetadata = (row: DateCell[]) => {\n if (props.selectionMode === 'week') {\n const [start, end] = props.showWeekNumber ? [1, 7] : [0, 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\nconst rows = computed(() => {\n const { minDate, maxDate, rangeState, showWeekNumber } = props\n\n const offset = offsetDay.value\n const rows_ = tableRows.value\n const dateUnit = 'day'\n let count = 1\n\n if (showWeekNumber) {\n for (let rowIndex = 0; rowIndex < 6; rowIndex++) {\n if (!rows_[rowIndex][0]) {\n rows_[rowIndex][0] = {\n type: 'week',\n text: startDate.value.add(rowIndex * 7 + 1, dateUnit).week(),\n }\n }\n }\n }\n\n buildPickerTable({ row: 6, column: 7 }, rows_, {\n startDate: minDate,\n columnIndexOffset: showWeekNumber ? 1 : 0,\n nextEndDate:\n rangeState.endDate ||\n maxDate ||\n (rangeState.selecting && minDate) ||\n null,\n now: dayjs().locale(unref(lang)).startOf(dateUnit),\n unit: dateUnit,\n relativeDateGetter: (idx: number) =>\n startDate.value.add(idx - offset, dateUnit),\n setCellMetadata: (...args) => {\n if (setCellMetadata(...args, count)) {\n count += 1\n }\n },\n\n setRowMetadata,\n })\n\n return rows_\n})\n\nwatch(\n () => props.date,\n async () => {\n if (tbodyRef.value?.contains(document.activeElement)) {\n await nextTick()\n currentCellRef.value?.focus()\n }\n }\n)\n\nconst focus = async () => {\n currentCellRef.value?.focus()\n}\n\nconst isNormalDay = (type = '') => {\n return ['normal', 'today'].includes(type)\n}\n\nconst isCurrent = (cell: DateCell): boolean => {\n return (\n props.selectionMode === 'date' &&\n isNormalDay(cell.type) &&\n cellMatchesDate(cell, props.parsedValue as Dayjs)\n )\n}\n\nconst cellMatchesDate = (cell: DateCell, date: Dayjs) => {\n if (!date) return false\n return dayjs(date)\n .locale(lang.value)\n .isSame(props.date.date(Number(cell.text)), 'day')\n}\n\nconst getCellClasses = (cell: DateCell) => {\n const classes: string[] = []\n if (isNormalDay(cell.type) && !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 (isNormalDay(cell.type) || 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\nconst getDateOfCell = (row: number, column: number) => {\n const offsetFromStart =\n row * 7 + (column - (props.showWeekNumber ? 1 : 0)) - offsetDay.value\n return startDate.value.add(offsetFromStart, 'day')\n}\n\nconst handleMouseMove = (event: MouseEvent) => {\n if (!props.rangeState.selecting) return\n\n let target = event.target as HTMLElement\n if (target.tagName === 'SPAN') {\n target = target.parentNode?.parentNode as HTMLElement\n }\n if (target.tagName === 'DIV') {\n target = target.parentNode as HTMLElement\n }\n if (target.tagName !== 'TD') return\n\n const row = (target.parentNode as HTMLTableRowElement).rowIndex - 1\n const column = (target as HTMLTableCellElement).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 emit('changerange', {\n selecting: true,\n endDate: getDateOfCell(row, column),\n })\n }\n}\n\nconst isSelectedCell = (cell: DateCell) => {\n return (\n (!hasCurrent.value && cell?.text === 1 && cell.type === 'normal') ||\n cell.isCurrent\n )\n}\n\nconst handleFocus = (event: Event) => {\n if (!hasCurrent.value && props.selectionMode === 'date') {\n handlePickDate(event, true)\n }\n}\n\nconst handlePickDate = (event: Event, isKeyboardMovement = false) => {\n const target = (event.target as HTMLElement).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 emit('pick', { minDate: newDate, maxDate: null })\n emit('select', true)\n } else {\n if (newDate >= props.minDate) {\n emit('pick', { minDate: props.minDate, maxDate: newDate })\n } else {\n emit('pick', { minDate: newDate, maxDate: props.minDate })\n }\n emit('select', false)\n }\n } else if (props.selectionMode === 'date') {\n emit('pick', newDate, isKeyboardMovement)\n } else if (props.selectionMode === 'week') {\n const weekNumber = newDate.week()\n const value = `${newDate.year()}w${weekNumber}`\n 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 (d) => d?.valueOf() !== newDate.valueOf()\n )\n : castArray(props.parsedValue).concat([newDate])\n emit('pick', newValue)\n }\n}\n\nconst isWeekActive = (cell: DateCell) => {\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 as any, 10))\n\n if (props.parsedValue && !Array.isArray(props.parsedValue)) {\n const dayOffset = ((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\ndefineExpose({\n /**\n * @description focus on current cell\n */\n focus,\n})\n</script>\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"basic-date-table.mjs","sources":["../../../../../../../packages/components/date-picker/src/date-picker-com/basic-date-table.vue"],"sourcesContent":["<template>\n <table\n 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 @mousedown=\"handleMouseDown\"\n @mouseup=\"handleMouseUp\"\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, rowKey) in rows\"\n :key=\"rowKey\"\n :class=\"[ns.e('row'), { current: isWeekActive(row[1]) }]\"\n >\n <td\n v-for=\"(cell, columnKey) in row\"\n :key=\"`${rowKey}.${columnKey}`\"\n :ref=\"(el) => isSelectedCell(cell) && (currentCellRef = el as HTMLElement)\"\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\" setup>\nimport { computed, nextTick, ref, unref, 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 { buildPickerTable } from '../utils'\nimport ElDatePickerCell from './basic-cell-render'\n\nimport type { Dayjs } from 'dayjs'\nimport type { DateCell } from '../date-picker.type'\n\nconst props = defineProps(basicDateTableProps)\nconst emit = defineEmits(['changerange', 'pick', 'select'])\n\nconst ns = useNamespace('date-table')\n\nconst { t, lang } = useLocale()\n\nconst tbodyRef = ref<HTMLElement>()\nconst currentCellRef = ref<HTMLElement>()\n// data\nconst lastRow = ref<number>()\nconst lastColumn = ref<number>()\nconst tableRows = ref<DateCell[][]>([[], [], [], [], [], []])\n\nlet focusWithClick = false\n\n// todo better way to get Day.js locale object\nconst firstDayOfWeek = (props.date as any).$locale().weekStart || 7\nconst WEEKS_CONSTANT = props.date\n .locale('en')\n .localeData()\n .weekdaysShort()\n .map((_) => _.toLowerCase())\n\nconst 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\nconst startDate = computed(() => {\n const startDayOfMonth = props.date.startOf('month')\n return startDayOfMonth.subtract(startDayOfMonth.day() || 7, 'day')\n})\n\nconst WEEKS = computed(() => {\n return WEEKS_CONSTANT.concat(WEEKS_CONSTANT).slice(\n firstDayOfWeek,\n firstDayOfWeek + 7\n )\n})\n\nconst hasCurrent = computed<boolean>(() => {\n return rows.value.flat().some((row) => {\n return row.isCurrent\n })\n})\n\nconst days = computed(() => {\n const startOfMonth = props.date.startOf('month')\n const startOfMonthDay = startOfMonth.day() || 7 // day of first day\n const dateCountOfMonth = startOfMonth.daysInMonth()\n\n const dateCountOfLastMonth = startOfMonth.subtract(1, 'month').daysInMonth()\n\n return {\n startOfMonthDay,\n dateCountOfMonth,\n dateCountOfLastMonth,\n }\n})\n\nconst selectedDate = computed(() => {\n return props.selectionMode === 'dates'\n ? (castArray(props.parsedValue) as Dayjs[])\n : ([] as Dayjs[])\n})\n\n// Return value indicates should the counter be incremented\nconst setDateText = (\n cell: DateCell,\n {\n count,\n rowIndex,\n columnIndex,\n }: {\n count: number\n rowIndex: number\n columnIndex: number\n }\n): boolean => {\n const { startOfMonthDay, dateCountOfMonth, dateCountOfLastMonth } =\n unref(days)\n const offset = unref(offsetDay)\n if (rowIndex >= 0 && rowIndex <= 1) {\n const numberOfDaysFromPreviousMonth =\n startOfMonthDay + offset < 0\n ? 7 + startOfMonthDay + offset\n : startOfMonthDay + offset\n\n if (columnIndex + rowIndex * 7 >= numberOfDaysFromPreviousMonth) {\n cell.text = count\n return true\n } else {\n cell.text =\n dateCountOfLastMonth -\n (numberOfDaysFromPreviousMonth - (columnIndex % 7)) +\n 1 +\n rowIndex * 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 return true\n }\n return false\n}\n\nconst setCellMetadata = (\n cell: DateCell,\n {\n columnIndex,\n rowIndex,\n }: {\n columnIndex: number\n rowIndex: number\n },\n count: number\n) => {\n const { disabledDate, cellClassName } = props\n const _selectedDate = unref(selectedDate)\n const shouldIncrement = setDateText(cell, { count, rowIndex, columnIndex })\n\n const cellDate = cell.dayjs!.toDate()\n cell.selected = _selectedDate.find(\n (d) => d.valueOf() === cell.dayjs!.valueOf()\n )\n cell.isSelected = !!cell.selected\n cell.isCurrent = isCurrent(cell)\n cell.disabled = disabledDate?.(cellDate)\n cell.customClass = cellClassName?.(cellDate)\n return shouldIncrement\n}\n\nconst setRowMetadata = (row: DateCell[]) => {\n if (props.selectionMode === 'week') {\n const [start, end] = props.showWeekNumber ? [1, 7] : [0, 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\nconst rows = computed(() => {\n const { minDate, maxDate, rangeState, showWeekNumber } = props\n\n const offset = offsetDay.value\n const rows_ = tableRows.value\n const dateUnit = 'day'\n let count = 1\n\n if (showWeekNumber) {\n for (let rowIndex = 0; rowIndex < 6; rowIndex++) {\n if (!rows_[rowIndex][0]) {\n rows_[rowIndex][0] = {\n type: 'week',\n text: startDate.value.add(rowIndex * 7 + 1, dateUnit).week(),\n }\n }\n }\n }\n\n buildPickerTable({ row: 6, column: 7 }, rows_, {\n startDate: minDate,\n columnIndexOffset: showWeekNumber ? 1 : 0,\n nextEndDate:\n rangeState.endDate ||\n maxDate ||\n (rangeState.selecting && minDate) ||\n null,\n now: dayjs().locale(unref(lang)).startOf(dateUnit),\n unit: dateUnit,\n relativeDateGetter: (idx: number) =>\n startDate.value.add(idx - offset, dateUnit),\n setCellMetadata: (...args) => {\n if (setCellMetadata(...args, count)) {\n count += 1\n }\n },\n\n setRowMetadata,\n })\n\n return rows_\n})\n\nwatch(\n () => props.date,\n async () => {\n if (tbodyRef.value?.contains(document.activeElement)) {\n await nextTick()\n currentCellRef.value?.focus()\n }\n }\n)\n\nconst focus = async () => {\n currentCellRef.value?.focus()\n}\n\nconst isNormalDay = (type = '') => {\n return ['normal', 'today'].includes(type)\n}\n\nconst isCurrent = (cell: DateCell): boolean => {\n return (\n props.selectionMode === 'date' &&\n isNormalDay(cell.type) &&\n cellMatchesDate(cell, props.parsedValue as Dayjs)\n )\n}\n\nconst cellMatchesDate = (cell: DateCell, date: Dayjs) => {\n if (!date) return false\n return dayjs(date)\n .locale(lang.value)\n .isSame(props.date.date(Number(cell.text)), 'day')\n}\n\nconst getCellClasses = (cell: DateCell) => {\n const classes: string[] = []\n if (isNormalDay(cell.type) && !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 (isNormalDay(cell.type) || 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\nconst getDateOfCell = (row: number, column: number) => {\n const offsetFromStart =\n row * 7 + (column - (props.showWeekNumber ? 1 : 0)) - offsetDay.value\n return startDate.value.add(offsetFromStart, 'day')\n}\n\nconst handleMouseMove = (event: MouseEvent) => {\n if (!props.rangeState.selecting) return\n\n let target = event.target as HTMLElement\n if (target.tagName === 'SPAN') {\n target = target.parentNode?.parentNode as HTMLElement\n }\n if (target.tagName === 'DIV') {\n target = target.parentNode as HTMLElement\n }\n if (target.tagName !== 'TD') return\n\n const row = (target.parentNode as HTMLTableRowElement).rowIndex - 1\n const column = (target as HTMLTableCellElement).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 emit('changerange', {\n selecting: true,\n endDate: getDateOfCell(row, column),\n })\n }\n}\n\nconst isSelectedCell = (cell: DateCell) => {\n return (\n (!hasCurrent.value && cell?.text === 1 && cell.type === 'normal') ||\n cell.isCurrent\n )\n}\n\nconst handleFocus = (event: FocusEvent) => {\n if (focusWithClick || hasCurrent.value || props.selectionMode !== 'date')\n return\n handlePickDate(event, true)\n}\n\nconst handleMouseDown = (event: MouseEvent) => {\n const target = (event.target as HTMLElement).closest('td')\n if (!target) return\n focusWithClick = true\n}\n\nconst handleMouseUp = (event: MouseEvent) => {\n const target = (event.target as HTMLElement).closest('td')\n if (!target) return\n focusWithClick = false\n}\n\nconst handlePickDate = (\n event: FocusEvent | MouseEvent,\n isKeyboardMovement = false\n) => {\n const target = (event.target as HTMLElement).closest('td')\n\n if (!target) 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 emit('pick', { minDate: newDate, maxDate: null })\n emit('select', true)\n } else {\n if (newDate >= props.minDate) {\n emit('pick', { minDate: props.minDate, maxDate: newDate })\n } else {\n emit('pick', { minDate: newDate, maxDate: props.minDate })\n }\n emit('select', false)\n }\n } else if (props.selectionMode === 'date') {\n emit('pick', newDate, isKeyboardMovement)\n } else if (props.selectionMode === 'week') {\n const weekNumber = newDate.week()\n const value = `${newDate.year()}w${weekNumber}`\n 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 (d) => d?.valueOf() !== newDate.valueOf()\n )\n : castArray(props.parsedValue).concat([newDate])\n emit('pick', newValue)\n }\n}\n\nconst isWeekActive = (cell: DateCell) => {\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 as any, 10))\n\n if (props.parsedValue && !Array.isArray(props.parsedValue)) {\n const dayOffset = ((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\ndefineExpose({\n /**\n * @description focus on current cell\n */\n focus,\n})\n</script>\n"],"names":[],"mappings":"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"}
|
|
@@ -334,6 +334,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
334
334
|
} | undefined;
|
|
335
335
|
type?: ("week" | "normal" | "today" | "prev-month" | "next-month") | undefined;
|
|
336
336
|
}[][]>;
|
|
337
|
+
focusWithClick: boolean;
|
|
337
338
|
firstDayOfWeek: any;
|
|
338
339
|
WEEKS_CONSTANT: string[];
|
|
339
340
|
offsetDay: import("vue").ComputedRef<number>;
|
|
@@ -580,8 +581,10 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
580
581
|
getDateOfCell: (row: number, column: number) => dayjs.Dayjs;
|
|
581
582
|
handleMouseMove: (event: MouseEvent) => void;
|
|
582
583
|
isSelectedCell: (cell: DateCell) => boolean | undefined;
|
|
583
|
-
handleFocus: (event:
|
|
584
|
-
|
|
584
|
+
handleFocus: (event: FocusEvent) => void;
|
|
585
|
+
handleMouseDown: (event: MouseEvent) => void;
|
|
586
|
+
handleMouseUp: (event: MouseEvent) => void;
|
|
587
|
+
handlePickDate: (event: FocusEvent | MouseEvent, isKeyboardMovement?: boolean) => void;
|
|
585
588
|
isWeekActive: (cell: DateCell) => boolean;
|
|
586
589
|
ElDatePickerCell: import("vue").DefineComponent<{
|
|
587
590
|
readonly cell: {
|
|
@@ -7614,6 +7614,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
7614
7614
|
} | undefined;
|
|
7615
7615
|
type?: ("week" | "normal" | "today" | "prev-month" | "next-month") | undefined;
|
|
7616
7616
|
}[][]>;
|
|
7617
|
+
focusWithClick: boolean;
|
|
7617
7618
|
firstDayOfWeek: any;
|
|
7618
7619
|
WEEKS_CONSTANT: string[];
|
|
7619
7620
|
offsetDay: import("vue").ComputedRef<number>;
|
|
@@ -7860,8 +7861,10 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
7860
7861
|
getDateOfCell: (row: number, column: number) => dayjs.Dayjs;
|
|
7861
7862
|
handleMouseMove: (event: MouseEvent) => void;
|
|
7862
7863
|
isSelectedCell: (cell: import("../date-picker.type").DateCell) => boolean | undefined;
|
|
7863
|
-
handleFocus: (event:
|
|
7864
|
-
|
|
7864
|
+
handleFocus: (event: FocusEvent) => void;
|
|
7865
|
+
handleMouseDown: (event: MouseEvent) => void;
|
|
7866
|
+
handleMouseUp: (event: MouseEvent) => void;
|
|
7867
|
+
handlePickDate: (event: MouseEvent | FocusEvent, isKeyboardMovement?: boolean) => void;
|
|
7865
7868
|
isWeekActive: (cell: import("../date-picker.type").DateCell) => boolean;
|
|
7866
7869
|
ElDatePickerCell: import("vue").DefineComponent<{
|
|
7867
7870
|
readonly cell: {
|
|
@@ -7742,6 +7742,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
7742
7742
|
} | undefined;
|
|
7743
7743
|
type?: ("week" | "normal" | "today" | "prev-month" | "next-month") | undefined;
|
|
7744
7744
|
}[][]>;
|
|
7745
|
+
focusWithClick: boolean;
|
|
7745
7746
|
firstDayOfWeek: any;
|
|
7746
7747
|
WEEKS_CONSTANT: string[];
|
|
7747
7748
|
offsetDay: import("vue").ComputedRef<number>;
|
|
@@ -7988,8 +7989,10 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
7988
7989
|
getDateOfCell: (row: number, column: number) => dayjs.Dayjs;
|
|
7989
7990
|
handleMouseMove: (event: MouseEvent) => void;
|
|
7990
7991
|
isSelectedCell: (cell: import("../date-picker.type").DateCell) => boolean | undefined;
|
|
7991
|
-
handleFocus: (event:
|
|
7992
|
-
|
|
7992
|
+
handleFocus: (event: FocusEvent) => void;
|
|
7993
|
+
handleMouseDown: (event: MouseEvent) => void;
|
|
7994
|
+
handleMouseUp: (event: MouseEvent) => void;
|
|
7995
|
+
handlePickDate: (event: MouseEvent | FocusEvent, isKeyboardMovement?: boolean) => void;
|
|
7993
7996
|
isWeekActive: (cell: import("../date-picker.type").DateCell) => boolean;
|
|
7994
7997
|
ElDatePickerCell: import("vue").DefineComponent<{
|
|
7995
7998
|
readonly cell: {
|
|
@@ -7740,6 +7740,7 @@ export declare const getPanel: (type: IDatePickerType) => import("vue").DefineCo
|
|
|
7740
7740
|
} | undefined;
|
|
7741
7741
|
type?: ("week" | "normal" | "today" | "prev-month" | "next-month") | undefined;
|
|
7742
7742
|
}[][]>;
|
|
7743
|
+
focusWithClick: boolean;
|
|
7743
7744
|
firstDayOfWeek: any;
|
|
7744
7745
|
WEEKS_CONSTANT: string[];
|
|
7745
7746
|
offsetDay: import("vue").ComputedRef<number>;
|
|
@@ -7986,8 +7987,10 @@ export declare const getPanel: (type: IDatePickerType) => import("vue").DefineCo
|
|
|
7986
7987
|
getDateOfCell: (row: number, column: number) => import("dayjs").Dayjs;
|
|
7987
7988
|
handleMouseMove: (event: MouseEvent) => void;
|
|
7988
7989
|
isSelectedCell: (cell: import("./date-picker.type").DateCell) => boolean | undefined;
|
|
7989
|
-
handleFocus: (event:
|
|
7990
|
-
|
|
7990
|
+
handleFocus: (event: FocusEvent) => void;
|
|
7991
|
+
handleMouseDown: (event: MouseEvent) => void;
|
|
7992
|
+
handleMouseUp: (event: MouseEvent) => void;
|
|
7993
|
+
handlePickDate: (event: MouseEvent | FocusEvent, isKeyboardMovement?: boolean) => void;
|
|
7991
7994
|
isWeekActive: (cell: import("./date-picker.type").DateCell) => boolean;
|
|
7992
7995
|
ElDatePickerCell: import("vue").DefineComponent<{
|
|
7993
7996
|
readonly cell: {
|
|
@@ -16260,6 +16263,7 @@ export declare const getPanel: (type: IDatePickerType) => import("vue").DefineCo
|
|
|
16260
16263
|
} | undefined;
|
|
16261
16264
|
type?: ("week" | "normal" | "today" | "prev-month" | "next-month") | undefined;
|
|
16262
16265
|
}[][]>;
|
|
16266
|
+
focusWithClick: boolean;
|
|
16263
16267
|
firstDayOfWeek: any;
|
|
16264
16268
|
WEEKS_CONSTANT: string[];
|
|
16265
16269
|
offsetDay: import("vue").ComputedRef<number>;
|
|
@@ -16506,8 +16510,10 @@ export declare const getPanel: (type: IDatePickerType) => import("vue").DefineCo
|
|
|
16506
16510
|
getDateOfCell: (row: number, column: number) => import("dayjs").Dayjs;
|
|
16507
16511
|
handleMouseMove: (event: MouseEvent) => void;
|
|
16508
16512
|
isSelectedCell: (cell: import("./date-picker.type").DateCell) => boolean | undefined;
|
|
16509
|
-
handleFocus: (event:
|
|
16510
|
-
|
|
16513
|
+
handleFocus: (event: FocusEvent) => void;
|
|
16514
|
+
handleMouseDown: (event: MouseEvent) => void;
|
|
16515
|
+
handleMouseUp: (event: MouseEvent) => void;
|
|
16516
|
+
handlePickDate: (event: MouseEvent | FocusEvent, isKeyboardMovement?: boolean) => void;
|
|
16511
16517
|
isWeekActive: (cell: import("./date-picker.type").DateCell) => boolean;
|
|
16512
16518
|
ElDatePickerCell: import("vue").DefineComponent<{
|
|
16513
16519
|
readonly cell: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-dialog.mjs","sources":["../../../../../../packages/components/dialog/src/use-dialog.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"use-dialog.mjs","sources":["../../../../../../packages/components/dialog/src/use-dialog.ts"],"sourcesContent":["import {\n computed,\n getCurrentInstance,\n nextTick,\n onMounted,\n ref,\n watch,\n} from 'vue'\nimport { isClient, useTimeoutFn } from '@vueuse/core'\n\nimport {\n defaultNamespace,\n useGlobalConfig,\n useId,\n useLockscreen,\n useZIndex,\n} from '@element-plus/hooks'\nimport { UPDATE_MODEL_EVENT } from '@element-plus/constants'\nimport { addUnit } from '@element-plus/utils'\n\nimport type { CSSProperties, Ref, SetupContext } from 'vue'\nimport type { DialogEmits, DialogProps } from './dialog'\n\nexport const useDialog = (\n props: DialogProps,\n targetRef: Ref<HTMLElement | undefined>\n) => {\n const instance = getCurrentInstance()!\n const emit = instance.emit as SetupContext<DialogEmits>['emit']\n const { nextZIndex } = useZIndex()\n\n let lastPosition = ''\n const titleId = useId()\n const bodyId = useId()\n const visible = ref(false)\n const closed = ref(false)\n const rendered = ref(false) // when desctroyOnClose is true, we initialize it as false vise versa\n const zIndex = ref(props.zIndex || nextZIndex())\n\n let openTimer: (() => void) | undefined = undefined\n let closeTimer: (() => void) | undefined = undefined\n\n const namespace = useGlobalConfig('namespace', defaultNamespace)\n\n const style = computed<CSSProperties>(() => {\n const style: CSSProperties = {}\n const varPrefix = `--${namespace.value}-dialog` as const\n if (!props.fullscreen) {\n if (props.top) {\n style[`${varPrefix}-margin-top`] = props.top\n }\n if (props.width) {\n style[`${varPrefix}-width`] = addUnit(props.width)\n }\n }\n return style\n })\n\n function afterEnter() {\n emit('opened')\n }\n\n function afterLeave() {\n emit('closed')\n emit(UPDATE_MODEL_EVENT, false)\n if (props.destroyOnClose) {\n rendered.value = false\n }\n }\n\n function beforeLeave() {\n emit('close')\n }\n\n function open() {\n closeTimer?.()\n openTimer?.()\n\n if (props.openDelay && props.openDelay > 0) {\n ;({ stop: openTimer } = useTimeoutFn(() => doOpen(), props.openDelay))\n } else {\n doOpen()\n }\n }\n\n function close() {\n openTimer?.()\n closeTimer?.()\n\n if (props.closeDelay && props.closeDelay > 0) {\n ;({ stop: closeTimer } = useTimeoutFn(() => doClose(), props.closeDelay))\n } else {\n doClose()\n }\n }\n\n function handleClose() {\n function hide(shouldCancel?: boolean) {\n if (shouldCancel) return\n closed.value = true\n visible.value = false\n }\n\n if (props.beforeClose) {\n props.beforeClose(hide)\n } else {\n close()\n }\n }\n\n function onModalClick() {\n if (props.closeOnClickModal) {\n handleClose()\n }\n }\n\n function doOpen() {\n if (!isClient) return\n visible.value = true\n }\n\n function doClose() {\n visible.value = false\n }\n\n function onOpenAutoFocus() {\n emit('openAutoFocus')\n }\n\n function onCloseAutoFocus() {\n emit('closeAutoFocus')\n }\n\n if (props.lockScroll) {\n useLockscreen(visible)\n }\n\n function onCloseRequested() {\n if (props.closeOnPressEscape) {\n handleClose()\n }\n }\n\n watch(\n () => props.modelValue,\n (val) => {\n if (val) {\n closed.value = false\n open()\n rendered.value = true // enables lazy rendering\n emit('open')\n zIndex.value = props.zIndex ? zIndex.value++ : nextZIndex()\n // this.$el.addEventListener('scroll', this.updatePopper)\n nextTick(() => {\n if (targetRef.value) {\n targetRef.value.scrollTop = 0\n }\n })\n } else {\n // this.$el.removeEventListener('scroll', this.updatePopper\n if (visible.value) {\n close()\n }\n }\n }\n )\n\n watch(\n () => props.fullscreen,\n (val) => {\n if (!targetRef.value) return\n if (val) {\n lastPosition = targetRef.value.style.transform\n targetRef.value.style.transform = ''\n } else {\n targetRef.value.style.transform = lastPosition\n }\n }\n )\n\n onMounted(() => {\n if (props.modelValue) {\n visible.value = true\n rendered.value = true // enables lazy rendering\n open()\n }\n })\n\n return {\n afterEnter,\n afterLeave,\n beforeLeave,\n handleClose,\n onModalClick,\n close,\n doClose,\n onOpenAutoFocus,\n onCloseAutoFocus,\n onCloseRequested,\n titleId,\n bodyId,\n closed,\n style,\n rendered,\n visible,\n zIndex,\n }\n}\n"],"names":[],"mappings":"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"}
|