vue-cal 5.0.1-rc.24 → 5.0.1-rc.27

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/README.md +1 -0
  2. package/dist/i18n/ar.js +26 -26
  3. package/dist/i18n/bg.js +18 -18
  4. package/dist/i18n/bn.js +27 -27
  5. package/dist/i18n/bs.js +19 -19
  6. package/dist/i18n/ca.js +24 -24
  7. package/dist/i18n/cs.js +24 -24
  8. package/dist/i18n/da.js +24 -24
  9. package/dist/i18n/de.js +17 -17
  10. package/dist/i18n/el.js +28 -28
  11. package/dist/i18n/en-gb.js +16 -16
  12. package/dist/i18n/es.js +24 -24
  13. package/dist/i18n/et.js +22 -22
  14. package/dist/i18n/fa.js +26 -26
  15. package/dist/i18n/fi.js +1 -1
  16. package/dist/i18n/fr.js +1 -1
  17. package/dist/i18n/he.js +24 -24
  18. package/dist/i18n/hr.js +21 -21
  19. package/dist/i18n/hu.js +25 -25
  20. package/dist/i18n/id.js +1 -1
  21. package/dist/i18n/is.js +27 -27
  22. package/dist/i18n/it.js +1 -1
  23. package/dist/i18n/ja.js +28 -28
  24. package/dist/i18n/ka.js +23 -23
  25. package/dist/i18n/ko.js +28 -28
  26. package/dist/i18n/lt.js +1 -1
  27. package/dist/i18n/mn.js +25 -25
  28. package/dist/i18n/nl.js +19 -19
  29. package/dist/i18n/no.js +28 -28
  30. package/dist/i18n/pl.js +24 -24
  31. package/dist/i18n/pt-br.js +25 -25
  32. package/dist/i18n/pt-pt.js +25 -25
  33. package/dist/i18n/ro.js +27 -27
  34. package/dist/i18n/ru.js +28 -28
  35. package/dist/i18n/sk.js +22 -22
  36. package/dist/i18n/sl.js +16 -16
  37. package/dist/i18n/sq.js +25 -25
  38. package/dist/i18n/sr.js +15 -15
  39. package/dist/i18n/sv.js +31 -31
  40. package/dist/i18n/tr.js +27 -27
  41. package/dist/i18n/uk.js +28 -28
  42. package/dist/i18n/vi.js +29 -29
  43. package/dist/i18n/zh-cn.js +31 -31
  44. package/dist/i18n/zh-hk.js +31 -31
  45. package/dist/vue-cal.css +1 -1
  46. package/dist/vue-cal.es.js +1355 -1323
  47. package/dist/vue-cal.umd.js +3 -3
  48. package/package.json +11 -11
@@ -1,6 +1,6 @@
1
- import { computed as E, reactive as Te, watch as me, toRefs as bt, ref as ie, onBeforeUnmount as Be, inject as ze, createElementBlock as L, openBlock as C, renderSlot as O, createCommentVNode as U, unref as b, Fragment as ue, renderList as pe, normalizeClass as ye, createElementVNode as ve, createVNode as je, Transition as Ge, withCtx as W, createBlock as Se, resolveDynamicComponent as xe, mergeProps as le, toHandlers as Re, normalizeProps as te, onMounted as Ze, toDisplayString as ce, withModifiers as et, nextTick as Je, normalizeStyle as _e, createTextVNode as Ue, TransitionGroup as tt, createSlots as Ce, useTemplateRef as Tt, useId as Mt, useAttrs as Yt, provide as at, guardReactiveProps as ne } from "vue";
1
+ import { computed as E, reactive as Te, watch as me, toRefs as bt, ref as ie, onBeforeUnmount as Ne, nextTick as Ie, inject as ze, createElementBlock as H, openBlock as V, renderSlot as j, createCommentVNode as U, unref as Y, Fragment as ue, renderList as we, normalizeClass as he, createElementVNode as ve, createVNode as je, Transition as qe, withCtx as I, createBlock as Se, resolveDynamicComponent as xe, mergeProps as re, toHandlers as Xe, normalizeProps as te, onMounted as Ze, toDisplayString as ce, withModifiers as et, normalizeStyle as $e, createTextVNode as Ue, TransitionGroup as tt, createSlots as Ce, useTemplateRef as Tt, useId as Mt, useAttrs as Yt, provide as at, guardReactiveProps as se } from "vue";
2
2
  /**
3
- * vue-cal v5.0.1-rc.24
3
+ * vue-cal v5.0.1-rc.27
4
4
  * (c) 2024-2025 Antoni Andre <antoniandre.web@gmail.com>
5
5
  * @license MIT
6
6
  */
@@ -33,373 +33,373 @@ const ge = {
33
33
  years: { cols: 5, rows: 5 }
34
34
  // Arbitrary range of quarters of century (25y).
35
35
  }
36
- }, Et = ["jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec"], Xe = ["sun", "mon", "tue", "wed", "thu", "fri", "sat"], St = Xe.reduce((p, t, u) => (p[t] = u || 7, p), {}), Ct = (p, t, u) => {
37
- const { dateUtils: o } = p, w = !1, _ = E(() => {
38
- if (P.value[t.view]) return t.view;
39
- const f = t.datePicker ? "month" : "week", T = t.view || f;
40
- return P.value[T] ? T : (console.warn(
41
- `Vue Cal: the provided or default view \`${T}\` is either invalid or not in the list of available views. The first available view will be chosen: \`${Object.keys(P.value)[0]}\`.`
42
- ), Object.keys(P.value)[0]);
43
- }), N = E(() => t.sm && !t.xs), d = E(() => t.xs || t.datePicker), H = E(() => t.clickToNavigate || t.datePicker && t.clickToNavigate !== !1), v = E(() => {
36
+ }, Et = ["jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec"], Ge = ["sun", "mon", "tue", "wed", "thu", "fri", "sat"], St = Ge.reduce((p, e, c) => (p[e] = c || 7, p), {}), Ct = (p, e, c) => {
37
+ const { dateUtils: o } = p, w = !1, $ = E(() => {
38
+ if (F.value[e.view]) return e.view;
39
+ const f = e.datePicker ? "month" : "week", k = e.view || f;
40
+ return F.value[k] ? k : (console.warn(
41
+ `Vue Cal: the provided or default view \`${k}\` is either invalid or not in the list of available views. The first available view will be chosen: \`${Object.keys(F.value)[0]}\`.`
42
+ ), Object.keys(F.value)[0]);
43
+ }), N = E(() => e.sm && !e.xs), m = E(() => e.xs || e.datePicker), P = E(() => e.clickToNavigate || e.datePicker && e.clickToNavigate !== !1), g = E(() => {
44
44
  const f = {
45
45
  cell: {},
46
46
  // All possible event listeners to attach to cells.
47
47
  event: {}
48
48
  // All possible event listeners to attach to calendar events.
49
- }, T = (S) => S.replace(/([a-z])([A-Z])/g, "$1-$2").toLowerCase();
50
- for (const [S, l] of Object.entries(u)) {
51
- const [X, J, ae] = S.match(/^on(Cell|Event)(.+)$/) || [];
52
- X && (f[J.toLowerCase()][T(ae).replace(/^-+|-+$/g, "")] = l);
49
+ }, k = (O) => O.replace(/([a-z])([A-Z])/g, "$1-$2").toLowerCase();
50
+ for (const [O, l] of Object.entries(c)) {
51
+ const [B, G, ae] = O.match(/^on(Cell|Event)(.+)$/) || [];
52
+ B && (f[G.toLowerCase()][k(ae).replace(/^-+|-+$/g, "")] = l);
53
53
  }
54
54
  return f;
55
- }), c = E(() => {
56
- var T;
55
+ }), u = E(() => {
56
+ var k;
57
57
  const f = {};
58
- return t.hideWeekends && (f[6] = !0) && (f[7] = !0), (T = t.hideWeekdays) != null && T.length && t.hideWeekdays.forEach((S) => f[St[S]] = !0), f;
59
- }), y = E(() => t.hideWeekends || c.value[6] && c.value[7]), P = E(() => {
60
- const f = t.datePicker;
61
- let T = 0, S = {};
62
- const l = t.views;
58
+ return e.hideWeekends && (f[6] = !0) && (f[7] = !0), (k = e.hideWeekdays) != null && k.length && e.hideWeekdays.forEach((O) => f[St[O]] = !0), f;
59
+ }), D = E(() => e.hideWeekends || u.value[6] && u.value[7]), F = E(() => {
60
+ const f = e.datePicker;
61
+ let k = 0, O = {};
62
+ const l = e.views;
63
63
  return f && !l ? {
64
64
  month: { ...ge.availableViews.month },
65
65
  year: { ...ge.availableViews.year },
66
66
  years: { ...ge.availableViews.years }
67
- } : (l ? (Array.isArray(l) ? S = l.reduce((X, J) => (typeof J == "string" && ge.availableViews[J] ? X[J] = ge.availableViews[J] : T++, X), {}) : typeof l == "object" && (S = Object.entries(l).reduce((X, [J, ae]) => {
68
- const { cols: se, rows: de } = ge.availableViews[J];
69
- return X[J] = { cols: ae.cols || se, rows: ae.rows || de }, X;
70
- }, {})), T && console.warn("Vue Cal: the provided `views` prop contains invalid views that will be ignored."), Object.keys(S).length || (console.warn("Vue Cal: No valid view in the provided `views` prop. Falling back to default views."), S = { ...ge.availableViews })) : S = { ...ge.availableViews }, S);
71
- }), I = E(() => t.datePicker ? "month" : P.value.week ? "week" : Object.keys(P.value)[0]), a = E(() => {
72
- if (typeof t.selectedDate == "string") return o.stringToDate(t.selectedDate);
73
- if (t.selectedDate instanceof Date) return t.selectedDate;
74
- t.selectedDate ? console.warn("Vue Cal: The provided selected date is invalid:", t.selectedDate) : console.log("Vue Cal: Info - The provided selected date is undefined.");
75
- }), s = E(() => {
76
- if (!t.disableDays) return [];
67
+ } : (l ? (Array.isArray(l) ? O = l.reduce((B, G) => (typeof G == "string" && ge.availableViews[G] ? B[G] = ge.availableViews[G] : k++, B), {}) : typeof l == "object" && (O = Object.entries(l).reduce((B, [G, ae]) => {
68
+ const { cols: ne, rows: de } = ge.availableViews[G];
69
+ return B[G] = { cols: ae.cols || ne, rows: ae.rows || de }, B;
70
+ }, {})), k && console.warn("Vue Cal: the provided `views` prop contains invalid views that will be ignored."), Object.keys(O).length || (console.warn("Vue Cal: No valid view in the provided `views` prop. Falling back to default views."), O = { ...ge.availableViews })) : O = { ...ge.availableViews }, O);
71
+ }), X = E(() => e.datePicker ? "month" : F.value.week ? "week" : Object.keys(F.value)[0]), t = E(() => {
72
+ if (typeof e.selectedDate == "string") return o.stringToDate(e.selectedDate);
73
+ if (e.selectedDate instanceof Date) return e.selectedDate;
74
+ e.selectedDate ? console.warn("Vue Cal: The provided selected date is invalid:", e.selectedDate) : console.log("Vue Cal: Info - The provided selected date is undefined.");
75
+ }), r = E(() => {
76
+ if (!e.disableDays) return [];
77
77
  const f = [];
78
- if (Array.isArray(t.disableDays))
79
- for (let T of t.disableDays) {
80
- let S = T;
81
- typeof T == "string" ? S = o.stringToDate(T) : T instanceof Date && (T = o.formatDate(T, "YYYY-MM-DD")), S instanceof Date && !isNaN(S.getTime()) ? f.push(T) : console.warn("Vue Cal: The provided `disableDays` prop contains an invalid date:", T);
78
+ if (Array.isArray(e.disableDays))
79
+ for (let k of e.disableDays) {
80
+ let O = k;
81
+ typeof k == "string" ? O = o.stringToDate(k) : k instanceof Date && (k = o.formatDate(k, "YYYY-MM-DD")), O instanceof Date && !isNaN(O.getTime()) ? f.push(k) : console.warn("Vue Cal: The provided `disableDays` prop contains an invalid date:", k);
82
82
  }
83
- else console.warn("Vue Cal: The provided `disableDays` prop is invalid:", t.disableDays);
83
+ else console.warn("Vue Cal: The provided `disableDays` prop is invalid:", e.disableDays);
84
84
  return f;
85
- }), e = E(() => {
85
+ }), _ = E(() => {
86
86
  let f = null;
87
- return t.minDate && typeof t.minDate == "string" ? f = o.stringToDate(t.minDate) : t.minDate && t.minDate instanceof Date && (f = t.minDate), (f == null ? void 0 : f.getTime()) || null;
88
- }), k = E(() => {
87
+ return e.minDate && typeof e.minDate == "string" ? f = o.stringToDate(e.minDate) : e.minDate && e.minDate instanceof Date && (f = e.minDate), (f == null ? void 0 : f.getTime()) || null;
88
+ }), a = E(() => {
89
89
  let f = null;
90
- return t.maxDate && typeof t.maxDate == "string" ? f = o.stringToDate(t.maxDate) : t.maxDate && t.maxDate instanceof Date && (f = t.maxDate), (f == null ? void 0 : f.getTime()) || null;
91
- }), i = E(() => {
92
- var S;
90
+ return e.maxDate && typeof e.maxDate == "string" ? f = o.stringToDate(e.maxDate) : e.maxDate && e.maxDate instanceof Date && (f = e.maxDate), (f == null ? void 0 : f.getTime()) || null;
91
+ }), z = E(() => {
92
+ var O;
93
93
  const { view: f } = p;
94
- return t.schedules.length && (f.isDay || f.isDays || f.isWeek) && ((S = t.schedules) == null ? void 0 : S.map((l, X) => ({ ...l, id: l.id ?? X + 1 }))) || void 0;
95
- }), V = E(() => {
94
+ return e.schedules.length && (f.isDay || f.isDays || f.isWeek) && ((O = e.schedules) == null ? void 0 : O.map((l, B) => ({ ...l, id: l.id ?? B + 1 }))) || void 0;
95
+ }), s = E(() => {
96
96
  const f = {
97
97
  drag: !0,
98
98
  resize: !0,
99
99
  delete: !0,
100
100
  create: !0
101
101
  };
102
- return t.editableEvents === !0 ? f : t.editableEvents === !1 ? Object.keys(f).map((T) => f[T] = !1) : { ...f, ...t.editableEvents };
103
- }), F = E(() => {
104
- const { view: f } = p, { eventCount: T } = t;
105
- return (Array.isArray(T) ? T.includes(f.id) : T) && (f.isMonth && !t.eventsOnMonthView || f.isYear);
106
- }), A = E(() => t.allDayEvents && t.time !== !1 && !_.isMonth), m = E(() => t.timeAtCursor && t.time !== !1), h = async (f) => {
107
- var S;
108
- let T = /* @__PURE__ */ Object.assign({ "../i18n/ar.json": () => import("./i18n/ar.js").then((l) => l.default), "../i18n/bg.json": () => import("./i18n/bg.js").then((l) => l.default), "../i18n/bn.json": () => import("./i18n/bn.js").then((l) => l.default), "../i18n/bs.json": () => import("./i18n/bs.js").then((l) => l.default), "../i18n/ca.json": () => import("./i18n/ca.js").then((l) => l.default), "../i18n/cs.json": () => import("./i18n/cs.js").then((l) => l.default), "../i18n/da.json": () => import("./i18n/da.js").then((l) => l.default), "../i18n/de.json": () => import("./i18n/de.js").then((l) => l.default), "../i18n/el.json": () => import("./i18n/el.js").then((l) => l.default), "../i18n/en-gb.json": () => import("./i18n/en-gb.js").then((l) => l.default), "../i18n/en-us.json": () => Promise.resolve().then(() => Lt).then((l) => l.default), "../i18n/es.json": () => import("./i18n/es.js").then((l) => l.default), "../i18n/et.json": () => import("./i18n/et.js").then((l) => l.default), "../i18n/fa.json": () => import("./i18n/fa.js").then((l) => l.default), "../i18n/fi.json": () => import("./i18n/fi.js").then((l) => l.default), "../i18n/fr.json": () => import("./i18n/fr.js").then((l) => l.default), "../i18n/he.json": () => import("./i18n/he.js").then((l) => l.default), "../i18n/hr.json": () => import("./i18n/hr.js").then((l) => l.default), "../i18n/hu.json": () => import("./i18n/hu.js").then((l) => l.default), "../i18n/id.json": () => import("./i18n/id.js").then((l) => l.default), "../i18n/is.json": () => import("./i18n/is.js").then((l) => l.default), "../i18n/it.json": () => import("./i18n/it.js").then((l) => l.default), "../i18n/ja.json": () => import("./i18n/ja.js").then((l) => l.default), "../i18n/ka.json": () => import("./i18n/ka.js").then((l) => l.default), "../i18n/ko.json": () => import("./i18n/ko.js").then((l) => l.default), "../i18n/lt.json": () => import("./i18n/lt.js").then((l) => l.default), "../i18n/mn.json": () => import("./i18n/mn.js").then((l) => l.default), "../i18n/nl.json": () => import("./i18n/nl.js").then((l) => l.default), "../i18n/no.json": () => import("./i18n/no.js").then((l) => l.default), "../i18n/pl.json": () => import("./i18n/pl.js").then((l) => l.default), "../i18n/pt-br.json": () => import("./i18n/pt-br.js").then((l) => l.default), "../i18n/pt-pt.json": () => import("./i18n/pt-pt.js").then((l) => l.default), "../i18n/ro.json": () => import("./i18n/ro.js").then((l) => l.default), "../i18n/ru.json": () => import("./i18n/ru.js").then((l) => l.default), "../i18n/sk.json": () => import("./i18n/sk.js").then((l) => l.default), "../i18n/sl.json": () => import("./i18n/sl.js").then((l) => l.default), "../i18n/sq.json": () => import("./i18n/sq.js").then((l) => l.default), "../i18n/sr.json": () => import("./i18n/sr.js").then((l) => l.default), "../i18n/sv.json": () => import("./i18n/sv.js").then((l) => l.default), "../i18n/tr.json": () => import("./i18n/tr.js").then((l) => l.default), "../i18n/uk.json": () => import("./i18n/uk.js").then((l) => l.default), "../i18n/vi.json": () => import("./i18n/vi.js").then((l) => l.default), "../i18n/zh-cn.json": () => import("./i18n/zh-cn.js").then((l) => l.default), "../i18n/zh-hk.json": () => import("./i18n/zh-hk.js").then((l) => l.default) });
102
+ return e.editableEvents === !0 ? f : e.editableEvents === !1 ? Object.keys(f).map((k) => f[k] = !1) : { ...f, ...e.editableEvents };
103
+ }), A = E(() => {
104
+ const { view: f } = p, { eventCount: k } = e;
105
+ return (Array.isArray(k) ? k.includes(f.id) : k) && (f.isMonth && !e.eventsOnMonthView || f.isYear);
106
+ }), M = E(() => e.allDayEvents && e.time !== !1 && !$.isMonth), d = E(() => e.timeAtCursor && e.time !== !1), v = async (f) => {
107
+ var O;
108
+ let k = /* @__PURE__ */ Object.assign({ "../i18n/ar.json": () => import("./i18n/ar.js").then((l) => l.default), "../i18n/bg.json": () => import("./i18n/bg.js").then((l) => l.default), "../i18n/bn.json": () => import("./i18n/bn.js").then((l) => l.default), "../i18n/bs.json": () => import("./i18n/bs.js").then((l) => l.default), "../i18n/ca.json": () => import("./i18n/ca.js").then((l) => l.default), "../i18n/cs.json": () => import("./i18n/cs.js").then((l) => l.default), "../i18n/da.json": () => import("./i18n/da.js").then((l) => l.default), "../i18n/de.json": () => import("./i18n/de.js").then((l) => l.default), "../i18n/el.json": () => import("./i18n/el.js").then((l) => l.default), "../i18n/en-gb.json": () => import("./i18n/en-gb.js").then((l) => l.default), "../i18n/en-us.json": () => Promise.resolve().then(() => Lt).then((l) => l.default), "../i18n/es.json": () => import("./i18n/es.js").then((l) => l.default), "../i18n/et.json": () => import("./i18n/et.js").then((l) => l.default), "../i18n/fa.json": () => import("./i18n/fa.js").then((l) => l.default), "../i18n/fi.json": () => import("./i18n/fi.js").then((l) => l.default), "../i18n/fr.json": () => import("./i18n/fr.js").then((l) => l.default), "../i18n/he.json": () => import("./i18n/he.js").then((l) => l.default), "../i18n/hr.json": () => import("./i18n/hr.js").then((l) => l.default), "../i18n/hu.json": () => import("./i18n/hu.js").then((l) => l.default), "../i18n/id.json": () => import("./i18n/id.js").then((l) => l.default), "../i18n/is.json": () => import("./i18n/is.js").then((l) => l.default), "../i18n/it.json": () => import("./i18n/it.js").then((l) => l.default), "../i18n/ja.json": () => import("./i18n/ja.js").then((l) => l.default), "../i18n/ka.json": () => import("./i18n/ka.js").then((l) => l.default), "../i18n/ko.json": () => import("./i18n/ko.js").then((l) => l.default), "../i18n/lt.json": () => import("./i18n/lt.js").then((l) => l.default), "../i18n/mn.json": () => import("./i18n/mn.js").then((l) => l.default), "../i18n/nl.json": () => import("./i18n/nl.js").then((l) => l.default), "../i18n/no.json": () => import("./i18n/no.js").then((l) => l.default), "../i18n/pl.json": () => import("./i18n/pl.js").then((l) => l.default), "../i18n/pt-br.json": () => import("./i18n/pt-br.js").then((l) => l.default), "../i18n/pt-pt.json": () => import("./i18n/pt-pt.js").then((l) => l.default), "../i18n/ro.json": () => import("./i18n/ro.js").then((l) => l.default), "../i18n/ru.json": () => import("./i18n/ru.js").then((l) => l.default), "../i18n/sk.json": () => import("./i18n/sk.js").then((l) => l.default), "../i18n/sl.json": () => import("./i18n/sl.js").then((l) => l.default), "../i18n/sq.json": () => import("./i18n/sq.js").then((l) => l.default), "../i18n/sr.json": () => import("./i18n/sr.js").then((l) => l.default), "../i18n/sv.json": () => import("./i18n/sv.js").then((l) => l.default), "../i18n/tr.json": () => import("./i18n/tr.js").then((l) => l.default), "../i18n/uk.json": () => import("./i18n/uk.js").then((l) => l.default), "../i18n/vi.json": () => import("./i18n/vi.js").then((l) => l.default), "../i18n/zh-cn.json": () => import("./i18n/zh-cn.js").then((l) => l.default), "../i18n/zh-hk.json": () => import("./i18n/zh-hk.js").then((l) => l.default) });
109
109
  {
110
- if (!T[`../i18n/${f}.json`]) {
110
+ if (!k[`../i18n/${f}.json`]) {
111
111
  console.warn(`Vue Cal: the locale \`${f}\` does not exist. Falling back to \`en-us\`.`), f = "en-us";
112
112
  return;
113
113
  }
114
- T = await ((S = T[`../i18n/${f}.json`]) == null ? void 0 : S.call(T));
114
+ k = await ((O = k[`../i18n/${f}.json`]) == null ? void 0 : O.call(k));
115
115
  }
116
- p.texts = Object.assign(p.texts, Object.assign({ ...ge.texts }, T)), o.updateTexts(p.texts);
117
- }, z = Te(t.events || []);
118
- return me(() => t.events, (f) => z.splice(0, z.length, ...f)), me(() => t.locale, (f) => h(f || "en-us")), (t.locale || !p.texts.today) && h(t.locale || "en-us"), {
119
- ...bt(t),
120
- events: z,
116
+ p.texts = Object.assign(p.texts, Object.assign({ ...ge.texts }, k)), o.updateTexts(p.texts);
117
+ }, L = Te(e.events || []);
118
+ return me(() => e.events, (f) => L.splice(0, L.length, ...f)), me(() => e.locale, (f) => v(f || "en-us")), (e.locale || !p.texts.today) && v(e.locale || "en-us"), {
119
+ ...bt(e),
120
+ events: L,
121
121
  // All the events listeners for cells and events that the end user may have attached to vue-cal.
122
- eventListeners: v,
123
- defaultView: I,
124
- availableViews: P,
125
- disableDays: s,
122
+ eventListeners: g,
123
+ defaultView: X,
124
+ availableViews: F,
125
+ disableDays: r,
126
126
  ready: w,
127
127
  sm: N,
128
- xs: d,
129
- clickToNavigate: H,
130
- hideWeekdays: c,
131
- hideWeekends: y,
132
- minTimestamp: e,
133
- maxTimestamp: k,
134
- schedules: i,
135
- selectedDate: a,
136
- editableEvents: V,
137
- showCellEventCount: F,
138
- allDayEvents: A,
139
- timeAtCursor: m,
140
- view: _,
128
+ xs: m,
129
+ clickToNavigate: P,
130
+ hideWeekdays: u,
131
+ hideWeekends: D,
132
+ minTimestamp: _,
133
+ maxTimestamp: a,
134
+ schedules: z,
135
+ selectedDate: t,
136
+ editableEvents: s,
137
+ showCellEventCount: A,
138
+ allDayEvents: M,
139
+ timeAtCursor: d,
140
+ view: $,
141
141
  // Getters.
142
142
  get hasHiddenDays() {
143
- return Object.keys(c.value).length;
143
+ return Object.keys(u.value).length;
144
144
  },
145
145
  get size() {
146
- return d.value ? "xs" : N.value ? "sm" : "lg";
146
+ return m.value ? "xs" : N.value ? "sm" : "lg";
147
147
  },
148
- loadTexts: h
148
+ loadTexts: v
149
149
  };
150
- }, Oe = (p, t) => {
151
- const u = t.timeTo - t.timeFrom;
152
- return (p - t.timeFrom) * 100 / u;
153
- }, Le = (p, t) => {
154
- const u = t.timeTo - t.timeFrom;
155
- return ~~(p * u / 100 + t.timeFrom);
156
- }, Ke = (p, t) => {
157
- const u = t.clientHeight;
158
- return p * 100 / u;
159
- }, Ie = Te({ id: null, date: null });
160
- let nt = !1, qe = !0;
161
- const ke = Te({ el: null, cell: null, timeout: null }), $e = Te({
150
+ }, Oe = (p, e) => {
151
+ const c = e.timeTo - e.timeFrom;
152
+ return (p - e.timeFrom) * 100 / c;
153
+ }, Le = (p, e) => {
154
+ const c = e.timeTo - e.timeFrom;
155
+ return ~~(p * c / 100 + e.timeFrom);
156
+ }, Ke = (p, e) => {
157
+ const c = e.clientHeight;
158
+ return p * 100 / c;
159
+ }, Re = Te({ id: null, date: null });
160
+ let nt = !1, Je = !0;
161
+ const ke = Te({ el: null, cell: null, timeout: null }), _e = Te({
162
162
  eventId: null,
163
163
  fromVueCal: null,
164
164
  toVueCal: null
165
165
  });
166
166
  function Vt(p) {
167
- const { config: t, view: u, eventsManager: o, emit: w, uid: _, dateUtils: N } = p, d = (e) => {
168
- var h;
169
- const { timeStep: k, timeCellHeight: i, timeFrom: V } = t, F = (((h = e.touches) == null ? void 0 : h[0]) || e).clientY, { top: A } = e.currentTarget.getBoundingClientRect(), m = F - A - ~~e.dataTransfer.getData("cursor-grab-at");
170
- return Le(Ke(m, e.currentTarget), t);
171
- }, H = (e, k, i) => {
172
- const V = k.duration || v(k.start, k.end) || t.timeStep;
173
- let F = Math.max(d(e), 0);
174
- if (t.snapToInterval) {
175
- const z = F + t.snapToInterval / 2;
176
- F = z - z % t.snapToInterval;
167
+ const { config: e, view: c, eventsManager: o, emit: w, uid: $, dateUtils: N } = p, m = (_) => {
168
+ var v;
169
+ const { timeStep: a, timeCellHeight: z, timeFrom: s } = e, A = (((v = _.touches) == null ? void 0 : v[0]) || _).clientY, { top: M } = _.currentTarget.getBoundingClientRect(), d = A - M - ~~_.dataTransfer.getData("cursor-grab-at");
170
+ return Le(Ke(d, _.currentTarget), e);
171
+ }, P = (_, a, z) => {
172
+ const s = a.duration || g(a.start, a.end) || e.timeStep;
173
+ let A = Math.max(m(_), 0);
174
+ if (e.snapToInterval) {
175
+ const L = A + e.snapToInterval / 2;
176
+ A = L - L % e.snapToInterval;
177
177
  }
178
- const A = new Date(new Date(i).setMinutes(F)), m = Math.min(F + V, 24 * 60), h = new Date(new Date(i).setMinutes(m));
179
- return { start: A, end: h };
180
- }, v = (e, k) => Math.round((k - e) / 6e4);
178
+ const M = new Date(new Date(z).setMinutes(A)), d = Math.min(A + s, 1440), v = new Date(new Date(z).setMinutes(d));
179
+ return { start: M, end: v };
180
+ }, g = (_, a) => Math.round((a - _) / 6e4);
181
181
  return {
182
- eventDragStart: (e, k) => {
183
- if (e.target.nodeType === 3 || p.touch.isResizingEvent) return e.preventDefault();
184
- e.dataTransfer.effectAllowed = "move", e.dataTransfer.dropEffect = "move";
185
- const i = { ...k, _: { id: k._.id, duration: v(k.start, k.end) } };
182
+ eventDragStart: (_, a) => {
183
+ if (_.target.nodeType === 3 || p.touch.isResizingEvent) return _.preventDefault();
184
+ _.dataTransfer.effectAllowed = "move", _.dataTransfer.dropEffect = "move";
185
+ const z = { ...a, _: { id: a._.id, duration: g(a.start, a.end) } };
186
186
  try {
187
- e.dataTransfer.setData("text/plain", ""), e.dataTransfer.setData("event", JSON.stringify(i)), e.dataTransfer.setData("cursor-grab-at", e.offsetY);
188
- } catch (F) {
189
- return console.warn("Vue Cal: Failed to set drag data:", F), e.preventDefault();
187
+ _.dataTransfer.setData("text/plain", ""), _.dataTransfer.setData("event", JSON.stringify(z)), _.dataTransfer.setData("cursor-grab-at", _.offsetY);
188
+ } catch (A) {
189
+ return console.warn("Vue Cal: Failed to set drag data:", A), _.preventDefault();
190
190
  }
191
- $e.eventId = k._.id, $e.fromVueCal = _, w("event-drag-start", {
192
- e,
193
- event: k
191
+ _e.eventId = a._.id, _e.fromVueCal = $, w("event-drag-start", {
192
+ e: _,
193
+ event: a
194
194
  });
195
- const V = e.target.closest(".vuecal__event");
196
- V.classList.add("vuecal__event--dragging-ghost"), setTimeout(() => {
197
- V.classList.add("vuecal__event--dragging-original"), V.classList.remove("vuecal__event--dragging-ghost");
198
- }, 0), nt = !1, Object.assign(Ie, { id: u.id, date: u.firstCellDate }), qe = !0, p.touch.isDraggingEvent = !0;
195
+ const s = _.target.closest(".vuecal__event");
196
+ s.classList.add("vuecal__event--dragging-ghost"), setTimeout(() => {
197
+ s.classList.add("vuecal__event--dragging-original"), s.classList.remove("vuecal__event--dragging-ghost");
198
+ }, 0), nt = !1, Object.assign(Re, { id: c.id, date: c.firstCellDate }), Je = !0, p.touch.isDraggingEvent = !0;
199
199
  },
200
- eventDragEnd: (e, k) => {
201
- $e.eventId = null, e.target.closest(".vuecal__event").classList.remove("vuecal__event--dragging-original");
202
- const { fromVueCal: i, toVueCal: V } = $e;
203
- V && i !== V && o.deleteEvent(k._.id, 3), nt && qe && Ie.id && u.switchView(Ie.id, Ie.date, !0), w("event-drag-end", {
204
- e,
205
- event: k,
206
- external: $e.fromVueCal !== _
207
- }), $e.fromVueCal = null, $e.toVueCal = null, p.touch.isDraggingEvent = !1;
200
+ eventDragEnd: (_, a) => {
201
+ _e.eventId = null, _.target.closest(".vuecal__event").classList.remove("vuecal__event--dragging-original");
202
+ const { fromVueCal: z, toVueCal: s } = _e;
203
+ s && z !== s && o.deleteEvent(a._.id, 3), nt && Je && Re.id && c.switchView(Re.id, Re.date, !0), w("event-drag-end", {
204
+ e: _,
205
+ event: a,
206
+ external: _e.fromVueCal !== $
207
+ }), _e.fromVueCal = null, _e.toVueCal = null, p.touch.isDraggingEvent = !1;
208
208
  },
209
- cellDragEnter: (e, k) => {
210
- const { start: i } = k, V = e.currentTarget;
211
- if (!e.currentTarget.contains(e.relatedTarget)) {
212
- if (V === ke.el || !V.className.includes("vuecal__cell-content")) return !1;
213
- ke.el && (ke.cell.highlighted = !1), Object.assign(ke, { el: V, cell: k, timeout: clearTimeout(ke.timeout) }), k.highlighted = !0, ["years", "year", "month"].includes(u.id) && (ke.timeout = setTimeout(() => p.switchToNarrowerView(i), 2e3));
209
+ cellDragEnter: (_, a) => {
210
+ const { start: z } = a, s = _.currentTarget;
211
+ if (!_.currentTarget.contains(_.relatedTarget)) {
212
+ if (s === ke.el || !s.className.includes("vuecal__cell-content")) return !1;
213
+ ke.el && (ke.cell.highlighted = !1), Object.assign(ke, { el: s, cell: a, timeout: clearTimeout(ke.timeout) }), a.highlighted = !0, ["years", "year", "month"].includes(c.id) && (ke.timeout = setTimeout(() => p.switchToNarrowerView(z), 2e3));
214
214
  }
215
215
  },
216
- cellDragOver: (e, k) => {
217
- const { start: i, schedule: V } = k;
218
- e.preventDefault(), k.highlighted = !0, (V || V === 0) && (k.highlightedSchedule = V);
216
+ cellDragOver: (_, a) => {
217
+ const { start: z, schedule: s } = a;
218
+ _.preventDefault(), a.highlighted = !0, (s || s === 0) && (a.highlightedSchedule = s);
219
219
  },
220
- cellDragLeave: (e, k) => {
221
- e.preventDefault(), !e.currentTarget.contains(e.relatedTarget) && (k.highlightedSchedule = !1, ke.cell === k && (clearTimeout(ke.timeout), Object.assign(ke, { el: null, cell: null, timeout: null }), k.highlighted = !1));
220
+ cellDragLeave: (_, a) => {
221
+ _.preventDefault(), !_.currentTarget.contains(_.relatedTarget) && (a.highlightedSchedule = !1, ke.cell === a && (clearTimeout(ke.timeout), Object.assign(ke, { el: null, cell: null, timeout: null }), a.highlighted = !1));
222
222
  },
223
- cellDragDrop: async (e, k, i = !1) => {
224
- var S, l, X;
225
- e.preventDefault(), clearTimeout(ke.timeout), Object.assign(ke, { el: null, cell: null, timeout: null });
226
- const V = JSON.parse(e.dataTransfer.getData("event") || "{}");
227
- V.start && (V.start = new Date(V.start)), V.end && (V.end = new Date(V.end));
228
- let F, A, m;
229
- i ? (A = new Date(k.start), m = new Date(k.end)) : { start: A, end: m } = H(e, V, k.start);
230
- const { schedule: h } = ((S = e.target.closest("[data-schedule]")) == null ? void 0 : S.dataset) || {};
231
- let z = () => {
223
+ cellDragDrop: async (_, a, z = !1) => {
224
+ var O, l, B;
225
+ _.preventDefault(), clearTimeout(ke.timeout), Object.assign(ke, { el: null, cell: null, timeout: null });
226
+ const s = JSON.parse(_.dataTransfer.getData("event") || "{}");
227
+ s.start && (s.start = new Date(s.start)), s.end && (s.end = new Date(s.end));
228
+ let A, M, d;
229
+ z ? (M = new Date(a.start), d = new Date(a.end)) : { start: M, end: d } = P(_, s, a.start);
230
+ const { schedule: v } = ((O = _.target.closest("[data-schedule]")) == null ? void 0 : O.dataset) || {};
231
+ let L = () => {
232
232
  };
233
- $e.fromVueCal === _ ? (F = o.getEvent(V._.id), F && (F._.dragging = !1, z = (J) => {
234
- if (F.start = A, F.end = m, F.allDay = i, h !== void 0 && (F.schedule = ~~h), J && typeof J == "object") {
235
- const { _: ae, ...se } = J;
236
- Object.assign(F, se);
233
+ _e.fromVueCal === $ ? (A = o.getEvent(s._.id), A && (A._.dragging = !1, L = (G) => {
234
+ if (A.start = M, A.end = d, A.allDay = z, v !== void 0 && (A.schedule = ~~v), G && typeof G == "object") {
235
+ const { _: ae, ...ne } = G;
236
+ Object.assign(A, ne);
237
237
  }
238
- })) : (F = {
239
- ...V,
240
- start: A,
241
- end: m,
242
- ...h !== void 0 && { schedule: ~~h },
243
- _: { id: ((l = V._) == null ? void 0 : l.id) || V.id, duration: v(A, m) },
244
- getOverlappingEvents: () => o.getEventsInRange(A, m, { schedule: ~~h })
245
- }, z = (J) => {
246
- if (F = o.createEvent(F), J && typeof J == "object") {
247
- const { _: ae, ...se } = J;
248
- Object.assign(F, se);
238
+ })) : (A = {
239
+ ...s,
240
+ start: M,
241
+ end: d,
242
+ ...v !== void 0 && { schedule: ~~v },
243
+ _: { id: ((l = s._) == null ? void 0 : l.id) || s.id, duration: g(M, d) },
244
+ getOverlappingEvents: () => o.getEventsInRange(M, d, { schedule: ~~v })
245
+ }, L = (G) => {
246
+ if (A = o.createEvent(A), G && typeof G == "object") {
247
+ const { _: ae, ...ne } = G;
248
+ Object.assign(A, ne);
249
249
  }
250
250
  });
251
251
  let f = !0;
252
- const { drop: T } = (X = t.eventListeners) == null ? void 0 : X.event;
253
- T && (f = await T({
254
- e,
255
- event: { ...F, start: A, end: m, schedule: ~~h },
256
- overlaps: F.getOverlappingEvents({ start: A, end: m, schedule: ~~h }),
257
- cell: k,
258
- external: $e.fromVueCal !== _
259
- })), f !== !1 && z(f), k.highlighted = !1, k.highlightedSchedule = null, qe = !1, $e.toVueCal = _, w("event-dropped", {
260
- e,
261
- cell: k,
262
- event: F,
263
- originalEvent: V,
264
- external: $e.fromVueCal !== _
252
+ const { drop: k } = (B = e.eventListeners) == null ? void 0 : B.event;
253
+ k && (f = await k({
254
+ e: _,
255
+ event: { ...A, start: M, end: d, schedule: ~~v },
256
+ overlaps: A.getOverlappingEvents({ start: M, end: d, schedule: ~~v }),
257
+ cell: a,
258
+ external: _e.fromVueCal !== $
259
+ })), f !== !1 && L(f), a.highlighted = !1, a.highlightedSchedule = null, Je = !1, _e.toVueCal = $, w("event-dropped", {
260
+ e: _,
261
+ cell: a,
262
+ event: A,
263
+ originalEvent: s,
264
+ external: _e.fromVueCal !== $
265
265
  });
266
266
  }
267
267
  };
268
268
  }
269
- const lt = (p, t) => {
270
- let u, o, w, _ = {}, N = {};
271
- const d = ie(p), H = () => {
272
- d.value.today || (d.value = t), Date.prototype.addDays = function(n) {
273
- return P(this, n || 0);
269
+ const lt = (p, e) => {
270
+ let c, o, w, $ = {}, N = {};
271
+ const m = ie(p), P = () => {
272
+ m.value.today || (m.value = e), Date.prototype.addDays = function(n) {
273
+ return F(this, n || 0);
274
274
  }, Date.prototype.subtractDays = function(n) {
275
- return I(this, n || 0);
275
+ return X(this, n || 0);
276
276
  }, Date.prototype.addHours = function(n) {
277
- return a(this, n || 0);
277
+ return t(this, n || 0);
278
278
  }, Date.prototype.subtractHours = function(n) {
279
- return s(this, n || 0);
279
+ return r(this, n || 0);
280
280
  }, Date.prototype.addMinutes = function(n) {
281
- return e(this, n || 0);
281
+ return _(this, n || 0);
282
282
  }, Date.prototype.subtractMinutes = function(n) {
283
- return k(this, n || 0);
283
+ return a(this, n || 0);
284
284
  }, Date.prototype.getWeek = function() {
285
- return V(this);
285
+ return s(this);
286
286
  }, Date.prototype.isToday = function() {
287
- return F(this);
287
+ return A(this);
288
288
  }, Date.prototype.isLeapYear = function() {
289
- return h(this);
289
+ return v(this);
290
290
  }, Date.prototype.format = function(n = "YYYY-MM-DD") {
291
- return J(this, n);
291
+ return G(this, n);
292
292
  }, Date.prototype.formatTime = function(n = "HH:mm") {
293
- return se(this, n);
293
+ return ne(this, n);
294
294
  };
295
- }, v = () => {
295
+ }, g = () => {
296
296
  delete Date.prototype.addDays, delete Date.prototype.subtractDays, delete Date.prototype.addHours, delete Date.prototype.subtractHours, delete Date.prototype.addMinutes, delete Date.prototype.subtractMinutes, delete Date.prototype.getWeek, delete Date.prototype.isToday, delete Date.prototype.isLeapYear, delete Date.prototype.format, delete Date.prototype.formatTime;
297
- }, c = (n) => {
298
- d.value = n, Date.prototype.subtractDays && H();
299
- }, y = () => (o !== (/* @__PURE__ */ new Date()).getDate() && (u = /* @__PURE__ */ new Date(), o = u.getDate(), w = `${u.getFullYear()}-${u.getMonth()}-${u.getDate()}`), w), P = (n, $) => {
300
- const D = new Date(n.valueOf());
301
- return D.setDate(D.getDate() + $), D;
302
- }, I = (n, $) => {
303
- const D = new Date(n.valueOf());
304
- return D.setDate(D.getDate() - $), D;
305
- }, a = (n, $) => {
306
- const D = new Date(n.valueOf());
307
- return D.setHours(D.getHours() + $), D;
308
- }, s = (n, $) => {
309
- const D = new Date(n.valueOf());
310
- return D.setHours(D.getHours() - $), D;
311
- }, e = (n, $) => {
312
- const D = new Date(n.valueOf());
313
- return D.setMinutes(D.getMinutes() + $), D;
314
- }, k = (n, $) => {
315
- const D = new Date(n.valueOf());
316
- return D.setMinutes(D.getMinutes() - $), D;
317
- }, i = (n, $) => {
318
- const D = (G) => {
319
- const K = G % $;
320
- return K !== 0 && (G += K >= $ / 2 ? $ - K : -K), G;
297
+ }, u = (n) => {
298
+ m.value = n, Date.prototype.subtractDays && P();
299
+ }, D = () => (o !== (/* @__PURE__ */ new Date()).getDate() && (c = /* @__PURE__ */ new Date(), o = c.getDate(), w = `${c.getFullYear()}-${c.getMonth()}-${c.getDate()}`), w), F = (n, b) => {
300
+ const y = new Date(n.valueOf());
301
+ return y.setDate(y.getDate() + b), y;
302
+ }, X = (n, b) => {
303
+ const y = new Date(n.valueOf());
304
+ return y.setDate(y.getDate() - b), y;
305
+ }, t = (n, b) => {
306
+ const y = new Date(n.valueOf());
307
+ return y.setHours(y.getHours() + b), y;
308
+ }, r = (n, b) => {
309
+ const y = new Date(n.valueOf());
310
+ return y.setHours(y.getHours() - b), y;
311
+ }, _ = (n, b) => {
312
+ const y = new Date(n.valueOf());
313
+ return y.setMinutes(y.getMinutes() + b), y;
314
+ }, a = (n, b) => {
315
+ const y = new Date(n.valueOf());
316
+ return y.setMinutes(y.getMinutes() - b), y;
317
+ }, z = (n, b) => {
318
+ const y = (q) => {
319
+ const K = q % b;
320
+ return K !== 0 && (q += K >= b / 2 ? b - K : -K), q;
321
321
  };
322
- if (typeof n == "number") return D(n);
322
+ if (typeof n == "number") return y(n);
323
323
  if (n instanceof Date) {
324
- let G = D(n.getMinutes());
325
- G >= 60 && (n.setHours(n.getHours() + 1), G = 0), n.setMinutes(G, 0, 0);
324
+ let q = y(n.getMinutes());
325
+ q >= 60 && (n.setHours(n.getHours() + 1), q = 0), n.setMinutes(q, 0, 0);
326
326
  }
327
- }, V = (n, $ = !1) => {
328
- const D = new Date(Date.UTC(n.getFullYear(), n.getMonth(), n.getDate())), G = D.getUTCDay() || 7;
329
- D.setUTCDate(D.getUTCDate() + 4 - G);
330
- const K = new Date(Date.UTC(D.getUTCFullYear(), 0, 1));
331
- return Math.ceil(((D - K) / 864e5 + 1) / 7) + ($ ? 1 : 0);
332
- }, F = (n) => `${n.getFullYear()}-${n.getMonth()}-${n.getDate()}` === y(), A = (n, $) => {
333
- if (!n || !$) return console.warn(`Vue Cal: missing date${n ? "2" : "1"} parameter for comparison with \`isSameDate(date1, date2)\`.`);
334
- if (X(n)) {
335
- if (!X($)) return console.warn(`Vue Cal: invalid date2 provided for comparison with \`isSameDate(date1, date2)\`: \`${$}\`.`);
327
+ }, s = (n, b = !1) => {
328
+ const y = new Date(Date.UTC(n.getFullYear(), n.getMonth(), n.getDate())), q = y.getUTCDay() || 7;
329
+ y.setUTCDate(y.getUTCDate() + 4 - q);
330
+ const K = new Date(Date.UTC(y.getUTCFullYear(), 0, 1));
331
+ return Math.ceil(((y - K) / 864e5 + 1) / 7) + (b ? 1 : 0);
332
+ }, A = (n) => `${n.getFullYear()}-${n.getMonth()}-${n.getDate()}` === D(), M = (n, b) => {
333
+ if (!n || !b) return console.warn(`Vue Cal: missing date${n ? "2" : "1"} parameter for comparison with \`isSameDate(date1, date2)\`.`);
334
+ if (B(n)) {
335
+ if (!B(b)) return console.warn(`Vue Cal: invalid date2 provided for comparison with \`isSameDate(date1, date2)\`: \`${b}\`.`);
336
336
  } else return console.warn(`Vue Cal: invalid date1 provided for comparison with \`isSameDate(date1, date2)\`: \`${n}\`.`);
337
- return n.getFullYear() === $.getFullYear() && n.getMonth() === $.getMonth() && n.getDate() === $.getDate();
338
- }, m = (n, $, D) => X(n) ? n.getTime() >= $ && n.getTime() <= D : console.warn(`Vue Cal: invalid date provided to \`isInRange(date, rangeStart, rangeEnd)\`: \`${n}\`.`), h = (n) => {
339
- const $ = n.getFullYear();
340
- return !($ % 400) || $ % 100 && !($ % 4);
341
- }, z = (n = null, $) => {
342
- const D = n && new Date(n.valueOf()) || /* @__PURE__ */ new Date(), G = $ ? 7 : 6;
343
- return D.setDate(D.getDate() - (D.getDay() + G) % 7), D;
344
- }, f = (n) => n instanceof Date ? n : (n.length === 10 && (n += " 00:00"), new Date(n.replace(/-/g, "/"))), T = (n) => n.getHours() * 60 + n.getMinutes(), S = (n, $) => {
345
- typeof n == "string" && (n = n.replace(/-/g, "/")), typeof $ == "string" && ($ = $.replace(/-/g, "/")), n = new Date(n).setHours(0, 0, 0, 0), $ = new Date($).setHours(0, 0, 1, 0);
346
- const D = (new Date($).getTimezoneOffset() - new Date(n).getTimezoneOffset()) * 60 * 1e3;
347
- return Math.ceil(($ - n - D) / (24 * 3600 * 1e3));
348
- }, l = (n, $, D) => Math.abs(n.getTime() - $.getTime()) <= D * 60 * 1e3, X = (n) => n && n instanceof Date && !isNaN(n), J = (n, $ = "YYYY-MM-DD", D = null) => {
349
- if (D || (D = d.value), $ || ($ = "YYYY-MM-DD"), $ === "YYYY-MM-DD") return ae(n);
350
- _ = {}, N = {};
351
- const G = {
352
- YYYY: () => ee(n, D).YYYY,
353
- YY: () => ee(n, D).YY(),
354
- M: () => ee(n, D).M,
355
- MM: () => ee(n, D).MM(),
356
- MMM: () => ee(n, D).MMM(),
357
- MMMM: () => ee(n, D).MMMM(),
358
- MMMMG: () => ee(n, D).MMMMG(),
359
- D: () => ee(n, D).D,
360
- DD: () => ee(n, D).DD(),
361
- S: () => ee(n, D).S(),
362
- d: () => ee(n, D).d,
363
- dd: () => ee(n, D).dd(),
364
- ddd: () => ee(n, D).ddd(),
365
- dddd: () => ee(n, D).dddd(),
366
- HH: () => oe(n, D).HH,
367
- H: () => oe(n, D).H,
368
- hh: () => oe(n, D).hh,
369
- h: () => oe(n, D).h,
370
- am: () => oe(n, D).am,
371
- AM: () => oe(n, D).AM,
372
- mm: () => oe(n, D).mm,
373
- m: () => oe(n, D).m,
374
- s: () => oe(n, D).s
337
+ return n.getFullYear() === b.getFullYear() && n.getMonth() === b.getMonth() && n.getDate() === b.getDate();
338
+ }, d = (n, b, y) => B(n) ? n.getTime() >= b && n.getTime() <= y : console.warn(`Vue Cal: invalid date provided to \`isInRange(date, rangeStart, rangeEnd)\`: \`${n}\`.`), v = (n) => {
339
+ const b = n.getFullYear();
340
+ return !(b % 400) || b % 100 && !(b % 4);
341
+ }, L = (n = null, b) => {
342
+ const y = n && new Date(n.valueOf()) || /* @__PURE__ */ new Date(), q = b ? 7 : 6;
343
+ return y.setDate(y.getDate() - (y.getDay() + q) % 7), y;
344
+ }, f = (n) => n instanceof Date ? n : (n.length === 10 && (n += " 00:00"), new Date(n.replace(/-/g, "/"))), k = (n) => n.getHours() * 60 + n.getMinutes(), O = (n, b) => {
345
+ typeof n == "string" && (n = n.replace(/-/g, "/")), typeof b == "string" && (b = b.replace(/-/g, "/")), n = new Date(n).setHours(0, 0, 0, 0), b = new Date(b).setHours(0, 0, 1, 0);
346
+ const y = (new Date(b).getTimezoneOffset() - new Date(n).getTimezoneOffset()) * 60 * 1e3;
347
+ return Math.ceil((b - n - y) / (24 * 3600 * 1e3));
348
+ }, l = (n, b, y) => Math.abs(n.getTime() - b.getTime()) <= y * 60 * 1e3, B = (n) => n && n instanceof Date && !isNaN(n), G = (n, b = "YYYY-MM-DD", y = null) => {
349
+ if (y || (y = m.value), b || (b = "YYYY-MM-DD"), b === "YYYY-MM-DD") return ae(n);
350
+ $ = {}, N = {};
351
+ const q = {
352
+ YYYY: () => ee(n, y).YYYY,
353
+ YY: () => ee(n, y).YY(),
354
+ M: () => ee(n, y).M,
355
+ MM: () => ee(n, y).MM(),
356
+ MMM: () => ee(n, y).MMM(),
357
+ MMMM: () => ee(n, y).MMMM(),
358
+ MMMMG: () => ee(n, y).MMMMG(),
359
+ D: () => ee(n, y).D,
360
+ DD: () => ee(n, y).DD(),
361
+ S: () => ee(n, y).S(),
362
+ d: () => ee(n, y).d,
363
+ dd: () => ee(n, y).dd(),
364
+ ddd: () => ee(n, y).ddd(),
365
+ dddd: () => ee(n, y).dddd(),
366
+ HH: () => oe(n, y).HH,
367
+ H: () => oe(n, y).H,
368
+ hh: () => oe(n, y).hh,
369
+ h: () => oe(n, y).h,
370
+ am: () => oe(n, y).am,
371
+ AM: () => oe(n, y).AM,
372
+ mm: () => oe(n, y).mm,
373
+ m: () => oe(n, y).m,
374
+ s: () => oe(n, y).s
375
375
  };
376
- return $.replace(/(\{[a-zA-Z]+\}|[a-zA-Z]+)/g, (K, De) => {
377
- const r = G[De.replace(/\{|\}/g, "")];
378
- return r !== void 0 ? r() : De;
376
+ return b.replace(/(\{[a-zA-Z]+\}|[a-zA-Z]+)/g, (K, De) => {
377
+ const i = q[De.replace(/\{|\}/g, "")];
378
+ return i !== void 0 ? i() : De;
379
379
  });
380
380
  }, ae = (n) => {
381
- const $ = n.getMonth() + 1, D = n.getDate();
382
- return `${n.getFullYear()}-${$ < 10 ? "0" : ""}${$}-${D < 10 ? "0" : ""}${D}`;
383
- }, se = (n, $ = "HH:mm", D = null, G = !1) => {
381
+ const b = n.getMonth() + 1, y = n.getDate();
382
+ return `${n.getFullYear()}-${b < 10 ? "0" : ""}${b}-${y < 10 ? "0" : ""}${y}`;
383
+ }, ne = (n, b = "HH:mm", y = null, q = !1) => {
384
384
  let K = !1;
385
- if (G) {
386
- const [Y, j, M] = [n.getHours(), n.getMinutes(), n.getSeconds()];
387
- Y + j + M === 141 && (K = !0);
385
+ if (q) {
386
+ const [S, C, T] = [n.getHours(), n.getMinutes(), n.getSeconds()];
387
+ S + C + T === 141 && (K = !0);
388
388
  }
389
- if (n instanceof Date && $ === "HH:mm") return K ? "24:00" : de(n);
390
- N = {}, D || (D = d.value);
391
- const De = oe(n, D), r = $.replace(/(\{[a-zA-Z]+\}|[a-zA-Z]+)/g, (Y, j) => {
392
- const M = De[j.replace(/\{|\}/g, "")];
393
- return M !== void 0 ? M : j;
389
+ if (n instanceof Date && b === "HH:mm") return K ? "24:00" : de(n);
390
+ N = {}, y || (y = m.value);
391
+ const De = oe(n, y), i = b.replace(/(\{[a-zA-Z]+\}|[a-zA-Z]+)/g, (S, C) => {
392
+ const T = De[C.replace(/\{|\}/g, "")];
393
+ return T !== void 0 ? T : C;
394
394
  });
395
- return K ? r.replace("23:59", "24:00") : r;
395
+ return K ? i.replace("23:59", "24:00") : i;
396
396
  }, de = (n) => {
397
- const $ = n.getHours(), D = n.getMinutes();
398
- return `${($ < 10 ? "0" : "") + $}:${(D < 10 ? "0" : "") + D}`;
397
+ const b = n.getHours(), y = n.getMinutes();
398
+ return `${(b < 10 ? "0" : "") + b}:${(y < 10 ? "0" : "") + y}`;
399
399
  }, Z = (n) => {
400
- const $ = Math.floor(n / 60).toString().padStart(2, 0), D = (n % 60).toString().padStart(2, 0);
401
- return `${$}:${D}`;
402
- }, he = (n) => {
400
+ const b = Math.floor(n / 60).toString().padStart(2, 0), y = (n % 60).toString().padStart(2, 0);
401
+ return `${b}:${y}`;
402
+ }, ye = (n) => {
403
403
  if (n > 3 && n < 21) return "th";
404
404
  switch (n % 10) {
405
405
  case 1:
@@ -411,94 +411,95 @@ const lt = (p, t) => {
411
411
  default:
412
412
  return "th";
413
413
  }
414
- }, ee = (n, $) => {
415
- if (_.D) return _;
416
- const D = n.getFullYear(), G = n.getMonth() + 1, K = n.getDate(), r = (n.getDay() - 1 + 7) % 7;
417
- return _ = {
414
+ }, ee = (n, b) => {
415
+ if ($.D) return $;
416
+ const y = n.getFullYear(), q = n.getMonth() + 1, K = n.getDate(), i = (n.getDay() - 1 + 7) % 7;
417
+ return $ = {
418
418
  // Year.
419
- YYYY: D,
419
+ YYYY: y,
420
420
  // 2024.
421
- YY: () => D.toString().substring(2),
421
+ YY: () => y.toString().substring(2),
422
422
  // 24.
423
423
  // Month.
424
- M: G,
424
+ M: q,
425
425
  // 1 to 12.
426
- MM: () => G.toString().padStart(2, 0),
426
+ MM: () => q.toString().padStart(2, 0),
427
427
  // 01 to 12.
428
- MMM: () => $.months[G - 1].substring(0, 3),
428
+ MMM: () => b.months[q - 1].substring(0, 3),
429
429
  // Jan to Dec.
430
- MMMM: () => $.months[G - 1],
430
+ MMMM: () => b.months[q - 1],
431
431
  // January to December.
432
- MMMMG: () => ($.monthsGenitive || $.months)[G - 1],
432
+ MMMMG: () => (b.monthsGenitive || b.months)[q - 1],
433
433
  // January to December in genitive form (Greek...)
434
434
  // Day.
435
435
  D: K,
436
436
  // 1 to 31.
437
437
  DD: () => K.toString().padStart(2, 0),
438
438
  // 01 to 31.
439
- S: () => he(K),
439
+ S: () => ye(K),
440
440
  // st, nd, rd, th.
441
441
  // Day of the week.
442
- d: r + 1,
442
+ d: i + 1,
443
443
  // 1 to 7 with 7 = Sunday.
444
444
  // Some locales have same start for all the days, so they have specific abbrev in weekDaysShort.
445
- dd: () => $.weekDaysShort.length ? $.weekDaysShort[r] : $.weekDays[r][0],
445
+ dd: () => b.weekDaysShort.length ? b.weekDaysShort[i] : b.weekDays[i][0],
446
446
  // M to S.
447
- ddd: () => $.weekDaysShort.length ? $.weekDaysShort[r] : $.weekDays[r].substr(0, 3),
447
+ ddd: () => b.weekDaysShort.length ? b.weekDaysShort[i] : b.weekDays[i].substr(0, 3),
448
448
  // Mon to Sun.
449
- dddd: () => $.weekDays[r]
449
+ dddd: () => b.weekDays[i]
450
450
  // Monday to Sunday.
451
- }, _;
452
- }, oe = (n, $) => {
451
+ }, $;
452
+ }, oe = (n, b) => {
453
453
  if (N.am) return N;
454
- let D, G, K;
455
- n instanceof Date ? (D = n.getHours(), G = n.getMinutes(), K = n.getSeconds()) : (D = Math.floor(n / 60), G = Math.floor(n % 60));
456
- const De = D % 12 ? D % 12 : 12, r = ($ || { am: "am", pm: "pm" })[D === 24 || D < 12 ? "am" : "pm"];
454
+ let y, q, K;
455
+ n instanceof Date ? (y = n.getHours(), q = n.getMinutes(), K = n.getSeconds()) : (y = Math.floor(n / 60), q = Math.floor(n % 60));
456
+ const De = y % 12 ? y % 12 : 12, i = (b || { am: "am", pm: "pm" })[y === 24 || y < 12 ? "am" : "pm"];
457
457
  return N = {
458
- H: D,
458
+ H: y,
459
459
  h: De,
460
- HH: D.toString().padStart(2, 0),
460
+ HH: y.toString().padStart(2, 0),
461
461
  hh: De.toString().padStart(2, 0),
462
- am: r,
463
- AM: r.toUpperCase(),
464
- m: G,
465
- mm: G.toString().padStart(2, 0),
462
+ am: i,
463
+ AM: i.toUpperCase(),
464
+ m: q,
465
+ mm: q.toString().padStart(2, 0),
466
466
  s: K
467
467
  }, N;
468
468
  };
469
469
  return {
470
- addDatePrototypes: H,
471
- removeDatePrototypes: v,
472
- updateTexts: c,
473
- addDays: P,
474
- subtractDays: I,
475
- addHours: a,
476
- subtractHours: s,
477
- addMinutes: e,
478
- subtractMinutes: k,
479
- snapToInterval: i,
480
- getWeek: V,
481
- isToday: F,
482
- isSameDate: A,
483
- isInRange: m,
484
- isLeapYear: h,
485
- getPreviousFirstDayOfWeek: z,
470
+ addDatePrototypes: P,
471
+ removeDatePrototypes: g,
472
+ updateTexts: u,
473
+ addDays: F,
474
+ subtractDays: X,
475
+ addHours: t,
476
+ subtractHours: r,
477
+ addMinutes: _,
478
+ subtractMinutes: a,
479
+ snapToInterval: z,
480
+ getWeek: s,
481
+ isToday: A,
482
+ isSameDate: M,
483
+ isInRange: d,
484
+ isLeapYear: v,
485
+ getPreviousFirstDayOfWeek: L,
486
486
  stringToDate: f,
487
- dateToMinutes: T,
488
- countDays: S,
487
+ dateToMinutes: k,
488
+ countDays: O,
489
489
  datesInSameTimeStep: l,
490
- isValid: X,
491
- formatDate: J,
490
+ isValid: B,
491
+ formatDate: G,
492
492
  formatDateLite: ae,
493
- formatTime: se,
493
+ formatTime: ne,
494
494
  formatTimeLite: de,
495
495
  formatMinutes: Z
496
496
  };
497
497
  }, Ot = (p) => {
498
- const { dateUtils: t, config: u } = p;
498
+ const { dateUtils: e, config: c } = p;
499
499
  let o = 0;
500
500
  const w = E(() => {
501
- const a = {
501
+ var _, a, z, s, A;
502
+ const t = {
502
503
  // A map of events indexed by { YYYY: { MM: { DD: [] } } }.
503
504
  // Each year contains a map of 12 months starting from 1, each containing a map of days starting from 1, each containing an array of event IDs.
504
505
  byYear: {},
@@ -510,135 +511,139 @@ const lt = (p, t) => {
510
511
  // An array of events IDs that are multiday.
511
512
  byId: {}
512
513
  // A map of all the events indexed by ID for fast lookup. Each event is the original full event object.
513
- }, s = u.events.sort((e, k) => e.start - k.start < 0 ? -1 : 1);
514
- for (const e of s)
515
- if (_(e), N(e), a.byId[e._.id] = e, e.recurring)
516
- a.recurring.push(e._.id);
517
- else if (e._.multiday)
518
- a.multiday.push(e._.id), a.byDate[e._.startFormatted] || (a.byDate[e._.startFormatted] = []), a.byDate[e._.startFormatted].push(e._.id);
514
+ }, r = c.events.slice().sort((M, d) => M.start - d.start < 0 ? -1 : 1);
515
+ for (const M of r) {
516
+ const d = typeof M.start == "string" || typeof M.end == "string", v = !((_ = M._) != null && _.register) || !M.isOverlapping || !M.delete;
517
+ let L = !1;
518
+ if (!d && ((a = M._) != null && a.cachedStart) && ((z = M._) != null && z.cachedEnd) && (L = M.start.getTime() !== ((s = M._) == null ? void 0 : s.cachedStart) || M.end.getTime() !== ((A = M._) == null ? void 0 : A.cachedEnd)), d || v || L) {
519
+ if (!$(M)) continue;
520
+ N(M), M._.cachedStart = M.start.getTime(), M._.cachedEnd = M.end.getTime();
521
+ }
522
+ if (t.byId[M._.id] = M, M.recurring)
523
+ t.recurring.push(M._.id);
524
+ else if (M._.multiday)
525
+ t.multiday.push(M._.id), t.byDate[M._.startFormatted] || (t.byDate[M._.startFormatted] = []), t.byDate[M._.startFormatted].push(M._.id);
519
526
  else {
520
- a.byDate[e._.startFormatted] || (a.byDate[e._.startFormatted] = []), a.byDate[e._.startFormatted].push(e._.id);
521
- const k = e._.startFormatted.substring(0, 4), i = e._.startFormatted.substring(5, 7), V = e._.startFormatted.substring(8, 10);
522
- a.byYear[k] || (a.byYear[k] = {}), a.byYear[k][i] || (a.byYear[k][i] = {}), a.byYear[k][i][V] || (a.byYear[k][i][V] = []), a.byYear[k][i][V].push(e._.id);
527
+ t.byDate[M._.startFormatted] || (t.byDate[M._.startFormatted] = []), t.byDate[M._.startFormatted].push(M._.id);
528
+ const f = M._.startFormatted.substring(0, 4), k = M._.startFormatted.substring(5, 7), O = M._.startFormatted.substring(8, 10);
529
+ t.byYear[f] || (t.byYear[f] = {}), t.byYear[f][k] || (t.byYear[f][k] = {}), t.byYear[f][k][O] || (t.byYear[f][k][O] = []), t.byYear[f][k][O].push(M._.id);
523
530
  }
524
- return a;
525
- }), _ = (a) => {
526
- if (typeof a.start == "string" && (a.start = t.stringToDate(a.start)), typeof a.end == "string" && (a.end = t.stringToDate(a.end)), a.start.setSeconds(0, 0), a.end.getSeconds() >= 59 ? a.end.setMinutes(60, 0, 0) : a.end.setSeconds(0, 0), isNaN(a.start) || isNaN(a.end) || a.end.getTime() < a.start.getTime()) {
527
- isNaN(a.start) ? console.error(`Vue Cal: invalid start date for event "${a.title}".`, a.start) : isNaN(a.end) ? console.error(`Vue Cal: invalid end date for event "${a.title}".`, a.end) : console.error(`Vue Cal: invalid event dates for event "${a.title}". The event ends before it starts.`, a.start, a.end);
528
- return;
529
531
  }
530
- a._ || (a._ = {}), a._.multiday = !t.isSameDate(a.start, new Date(a.end.getTime() - 1)), a._.startFormatted = t.formatDate(a.start), a._.startMinutes = ~~t.dateToMinutes(a.start), a._.endMinutes = ~~t.dateToMinutes(a.end);
531
- const s = a.start.getHours(), e = a.start.getMinutes().toString().padStart(2, 0), k = a.end.getHours(), i = a.end.getMinutes().toString().padStart(2, 0);
532
- a._.startTimeFormatted24 = `${s.toString().padStart(2, 0)}:${e}`, a._.startTimeFormatted12 = `${s % 12 || 12}${e ? `:${e}` : ""} ${s < 12 ? "AM" : "PM"}`, a._.endTimeFormatted24 = `${k.toString().padStart(2, 0)}:${i}`, a._.endTimeFormatted12 = `${k % 12 || 12}${i ? `:${i}` : ""} ${k < 12 ? "AM" : "PM"}`, a._.duration = Math.abs(~~((a.end - a.start) / 6e4));
533
- }, N = (a) => {
534
- a._ || (a._ = {}), a._.id = a._.id || ++o, a.delete || (a.delete = (s) => c(a._.id, s)), a._.deleting = !1, a._.deleted = !1, a.isOverlapping = (s = null) => a.getOverlappingEvents(s).length, a.getOverlappingEvents = (s = null) => {
535
- var e;
536
- return P(
537
- (s == null ? void 0 : s.start) || a.start,
538
- (s == null ? void 0 : s.end) || a.end,
539
- { excludeIds: [a._.id], schedule: (e = u.schedules) != null && e.length ? ~~((s == null ? void 0 : s.schedule) || a.schedule) : null }
540
- );
541
- }, a._.register = (s) => {
542
- a._.$el = s, a._.fireCreated && (p.emit("event-created", a), delete a._.fireCreated);
543
- }, a._.unregister = () => {
544
- a._.$el = null, a._.register = null, a.isOverlapping = null, a.getOverlappingEvents = null, a.delete = null;
545
- };
546
- }, d = (a) => w.value.byId[a], H = (a) => {
547
- const s = [];
548
- for (const { start: e, end: k } of a) {
549
- const i = P(e, k);
550
- i.length && s.push(...i);
532
+ return t;
533
+ }), $ = (t) => !t.start || !t.end ? (console.error("Vue Cal: Event is missing start or end date", t), !1) : (typeof t.start == "string" && (t.start = e.stringToDate(t.start)), typeof t.end == "string" && (t.end = e.stringToDate(t.end)), t.start.setSeconds(0, 0), t.end.getSeconds() >= 59 ? t.end.setMinutes(t.end.getMinutes() + 1, 0, 0) : t.end.setSeconds(0, 0), isNaN(t.start) || isNaN(t.end) || t.end.getTime() < t.start.getTime() ? (isNaN(t.start) ? console.error(`Vue Cal: invalid start date for event "${t.title}".`, t.start) : isNaN(t.end) ? console.error(`Vue Cal: invalid end date for event "${t.title}".`, t.end) : console.error(`Vue Cal: invalid event dates for event "${t.title}". The event ends before it starts.`, t.start, t.end), !1) : !0), N = (t) => {
534
+ t._ || (t._ = {}), t._.id = t._.id || ++o, t._.multiday = !e.isSameDate(t.start, new Date(t.end.getTime() - 1)), t._.startFormatted = e.formatDate(t.start), t._.startMinutes = ~~e.dateToMinutes(t.start), t._.endMinutes = ~~e.dateToMinutes(t.end);
535
+ const r = t.start.getHours(), _ = t.start.getMinutes().toString().padStart(2, 0), a = t.end.getHours(), z = t.end.getMinutes().toString().padStart(2, 0);
536
+ t._.startTimeFormatted24 = `${r.toString().padStart(2, 0)}:${_}`, t._.startTimeFormatted12 = `${r % 12 || 12}${_ ? `:${_}` : ""} ${r < 12 ? "AM" : "PM"}`, t._.endTimeFormatted24 = `${a.toString().padStart(2, 0)}:${z}`, t._.endTimeFormatted12 = `${a % 12 || 12}${z ? `:${z}` : ""} ${a < 12 ? "AM" : "PM"}`, t._.duration = Math.abs(~~((t.end - t.start) / 6e4)), t.delete || (t.delete = function(s) {
537
+ return u(this._.id, s);
538
+ }), t._.deleting === void 0 && (t._.deleting = !1), t._.deleted === void 0 && (t._.deleted = !1), t.isOverlapping || (t.isOverlapping = function(s = null) {
539
+ return this.getOverlappingEvents(s).length;
540
+ }), t.getOverlappingEvents || (t.getOverlappingEvents = function(s = null) {
541
+ var v;
542
+ const A = (s == null ? void 0 : s.start) || this.start, M = (s == null ? void 0 : s.end) || this.end, d = (v = c.schedules) != null && v.length ? ~~((s == null ? void 0 : s.schedule) || this.schedule) : null;
543
+ return F(A, M, { excludeIds: [this._.id], schedule: d });
544
+ }), t._.register || (t._.register = (s) => {
545
+ t._.$el = s, t._.fireCreated && (p.emit("event-created", t), delete t._.fireCreated);
546
+ }), t._.unregister || (t._.unregister = () => {
547
+ t._.$el = null, t._.register = null, t.isOverlapping = null, t.getOverlappingEvents = null, t.delete = null;
548
+ });
549
+ }, m = (t) => w.value.byId[t], P = (t) => {
550
+ const r = [];
551
+ for (const { start: _, end: a } of t) {
552
+ const z = F(_, a);
553
+ z.length && r.push(...z);
551
554
  }
552
- return s;
553
- }, v = (a) => {
554
- if (!a.start || !a.end) {
555
+ return r;
556
+ }, g = (t) => {
557
+ if (!t.start || !t.end) {
555
558
  console.error("Vue Cal: Cannot create an event without valid start and end dates.");
556
559
  return;
557
560
  }
558
- return u.snapToInterval && (t.snapToInterval(a.start, u.snapToInterval), t.snapToInterval(a.end, u.snapToInterval)), a = { ...a }, a._ || (a._ = {}), a._.id = ++o, a._.fireCreated = !0, u.events.push(a), a;
559
- }, c = async (a, s = 0) => {
560
- var F, A;
561
- if (!a) return console.warn("Vue Cal: Cannot delete event without its ID or criteria.");
562
- let e = typeof a == "string" || !isNaN(a) ? a : null;
563
- const k = typeof a == "object" ? Object.entries(a) : null;
564
- if (k) {
565
- const [m, h] = k[0];
566
- e = (F = u.events.find((z) => z[m] === h)) == null ? void 0 : F._.id;
561
+ return c.snapToInterval && (e.snapToInterval(t.start, c.snapToInterval), e.snapToInterval(t.end, c.snapToInterval)), t = { ...t }, t._ || (t._ = {}), t._.id = ++o, t._.fireCreated = !0, c.events.push(t), t;
562
+ }, u = async (t, r = 0) => {
563
+ var A, M;
564
+ if (!t) return console.warn("Vue Cal: Cannot delete event without its ID or criteria.");
565
+ let _ = typeof t == "string" || !isNaN(t) ? t : null;
566
+ const a = typeof t == "object" ? Object.entries(t) : null;
567
+ if (a) {
568
+ const [d, v] = a[0];
569
+ _ = (A = c.events.find((L) => L[d] === v)) == null ? void 0 : A._.id;
567
570
  }
568
- if (!u.editableEvents.delete)
571
+ if (!c.editableEvents.delete)
569
572
  return console.info("Vue Cal: Event deletion is disabled. Enable it with the `editable-events` props.");
570
- if (!e) return console.warn("Vue Cal: Cannot delete event without its ID.");
571
- const i = u.events.findIndex((m) => m._.id === e);
572
- if (i === -1) return console.warn(`Vue Cal: Cannot delete unknown event \`${e}\`.`);
573
- const V = u.events[i];
574
- if (V.deletable === !1) return console.warn(`Vue Cal: Can't delete event \`${e}\` since it was explicitely set to \`delete: false\`.`);
575
- switch (s) {
573
+ if (!_) return console.warn("Vue Cal: Cannot delete event without its ID.");
574
+ const z = c.events.findIndex((d) => d._.id === _);
575
+ if (z === -1) return console.warn(`Vue Cal: Cannot delete unknown event \`${_}\`.`);
576
+ const s = c.events[z];
577
+ if (s.deletable === !1) return console.warn(`Vue Cal: Can't delete event \`${_}\` since it was explicitely set to \`delete: false\`.`);
578
+ switch (r) {
576
579
  case 0:
577
- V._.deleting ? u.events.splice(i, 1) : V._.deleting = !0;
580
+ s._.deleting ? c.events.splice(z, 1) : s._.deleting = !0;
578
581
  break;
579
582
  // Display the delete button.
580
583
  case 1:
581
- V._.deleting = !0;
584
+ s._.deleting = !0;
582
585
  break;
583
586
  // Visual deletion + external DOM event firing.
584
587
  // When explicitly using this stage, the event will be visually deleted but still present in the
585
588
  // source of truth until the cell is unmounted (by navigating away).
586
589
  case 2:
587
- V._.deleted = !0, u.events[i]._.deleted = !0, (A = V._.$el) == null || A.dispatchEvent(new CustomEvent("event-deleted", { detail: V._.id }));
590
+ s._.deleted = !0, c.events[z]._.deleted = !0, (M = s._.$el) == null || M.dispatchEvent(new CustomEvent("event-deleted", { detail: s._.id }));
588
591
  break;
589
592
  // Effective deletion from the source of truth (by default, when unmounting the cell).
590
593
  case 3:
591
- u.events.splice(i, 1), p.emit("update:events", u.events), p.emit("event-delete", V);
594
+ c.events.splice(z, 1), p.emit("update:events", c.events), p.emit("event-delete", s);
592
595
  break;
593
596
  }
594
597
  return !0;
595
- }, y = (a, s) => {
596
- const e = u.allDayEvents ? { allDay: !0 } : {}, k = P(a, s, { background: !1, ...e });
597
- if (!k.length) return { cellOverlaps: {}, longestStreak: 0 };
598
- const i = {};
599
- let V = [], F = 0;
600
- k.sort((A, m) => A.start - m.start || A.end - A.start - (m.end - m.start));
601
- for (const A of k) {
602
- const m = A._.id;
603
- i[m] || (i[m] = { overlaps: /* @__PURE__ */ new Set(), maxConcurrent: 1, position: 0 }), V = V.filter((S) => S.end > A.start);
604
- const h = V.filter((S) => {
605
- var X;
606
- return (!((X = u.schedules) != null && X.length) || A.schedule === S.schedule) && S.start < A.end;
607
- }), z = new Set(h.map((S) => {
608
- var l;
609
- return ((l = i[S._.id]) == null ? void 0 : l.position) ?? 0;
598
+ }, D = (t, r, _) => {
599
+ const a = c.allDayEvents ? { allDay: _ } : {}, z = F(t, r, { background: !1, ...a });
600
+ if (!z.length) return { cellOverlaps: {}, longestStreak: 0 };
601
+ const s = {};
602
+ let A = [], M = 0;
603
+ z.sort((d, v) => d.start - v.start || d.end - d.start - (v.end - v.start));
604
+ for (const d of z) {
605
+ const v = d._.id;
606
+ s[v] || (s[v] = { overlaps: /* @__PURE__ */ new Set(), maxConcurrent: 1, position: 0 }), A = A.filter((l) => l.end > d.start);
607
+ const L = A.filter((l) => {
608
+ var G;
609
+ return (!((G = c.schedules) != null && G.length) || d.schedule === l.schedule) && l.start < d.end;
610
+ }), f = new Set(L.map((l) => {
611
+ var B;
612
+ return ((B = s[l._.id]) == null ? void 0 : B.position) ?? 0;
610
613
  }));
611
- let f = 0;
612
- for (; z.has(f); ) f++;
613
- i[m].position = f, V.push(A);
614
- const T = Math.max(1, ...h.map((S) => {
615
- var l;
616
- return ((l = i[S._.id]) == null ? void 0 : l.maxConcurrent) ?? 1;
614
+ let k = 0;
615
+ for (; f.has(k); ) k++;
616
+ s[v].position = k, A.push(d);
617
+ const O = Math.max(1, ...L.map((l) => {
618
+ var B;
619
+ return ((B = s[l._.id]) == null ? void 0 : B.maxConcurrent) ?? 1;
617
620
  }));
618
- i[m].maxConcurrent = Math.max(h.length + 1, T);
619
- for (const S of h)
620
- i[S._.id].overlaps.add(m), i[m].overlaps.add(S._.id), i[S._.id].maxConcurrent = i[m].maxConcurrent;
621
- F = Math.max(F, i[m].maxConcurrent);
621
+ s[v].maxConcurrent = Math.max(L.length + 1, O);
622
+ for (const l of L)
623
+ s[l._.id].overlaps.add(v), s[v].overlaps.add(l._.id), s[l._.id].maxConcurrent = s[v].maxConcurrent;
624
+ M = Math.max(M, s[v].maxConcurrent);
622
625
  }
623
- for (const A in i) i[A].overlaps = [...i[A].overlaps];
624
- return { cellOverlaps: i, longestStreak: F };
625
- }, P = (a, s, { excludeIds: e = [], schedule: k = null, background: i = !0, allDay: V = !1 } = {}) => {
626
- const F = a.getFullYear(), A = s.getFullYear(), m = a.getMonth() + 1, h = s.getMonth() + 1, z = a.getDate(), f = s.getDate(), T = a.getTime(), S = s.getTime(), l = [], X = new Set(e);
627
- for (let J = F; J <= A; J++) {
628
- const ae = `${J}`, se = w.value.byYear[ae];
629
- if (!se) continue;
630
- const de = J === F ? m : 1, Z = J === A ? h : 12;
631
- for (let he = de; he <= Z; he++) {
632
- const ee = String(he).padStart(2, "0"), oe = se[ee];
626
+ for (const d in s) s[d].overlaps = [...s[d].overlaps];
627
+ return { cellOverlaps: s, longestStreak: M };
628
+ }, F = (t, r, { excludeIds: _ = [], schedule: a = null, background: z = !0, allDay: s = !1 } = {}) => {
629
+ if (!Object.keys(w.value.byId).length) return [];
630
+ const A = t.getFullYear(), M = r.getFullYear(), d = t.getMonth() + 1, v = r.getMonth() + 1, L = t.getDate(), f = r.getDate(), k = t.getTime(), O = r.getTime(), l = [], B = new Set(_);
631
+ for (let G = A; G <= M; G++) {
632
+ const ae = `${G}`, ne = w.value.byYear[ae];
633
+ if (!ne) continue;
634
+ const de = G === A ? d : 1, Z = G === M ? v : 12;
635
+ for (let ye = de; ye <= Z; ye++) {
636
+ const ee = String(ye).padStart(2, "0"), oe = ne[ee];
633
637
  if (oe)
634
638
  for (const n in oe) {
635
- const $ = +n;
636
- if (J === F && he === m && $ < z || J === A && he === h && $ > f) continue;
637
- const D = oe[n];
638
- for (let G = 0; G < D.length; G++) {
639
- const K = w.value.byId[D[G]];
640
- !K || X.has(K._.id) || k !== null && k !== K.schedule || i === !1 && K.background || u.allDayEvents && (V && !K.allDay || !V && K.allDay) || K.end.getTime() > T && K.start.getTime() < S && l.push(K);
641
- }
639
+ const b = +n;
640
+ if (G === A && ye === d && b < L || G === M && ye === v && b > f) continue;
641
+ const y = oe[n];
642
+ if (y != null && y.length)
643
+ for (let q = 0; q < y.length; q++) {
644
+ const K = w.value.byId[y[q]];
645
+ !K || B.has(K._.id) || a !== null && a !== K.schedule || z === !1 && K.background || c.allDayEvents && (s && !K.allDay || !s && K.allDay) || K.end.getTime() > k && K.start.getTime() < O && l.push(K);
646
+ }
642
647
  }
643
648
  }
644
649
  }
@@ -646,112 +651,112 @@ const lt = (p, t) => {
646
651
  };
647
652
  return {
648
653
  events: w,
649
- getEvent: d,
650
- getViewEvents: H,
651
- getCellOverlappingEvents: y,
652
- getEventsInRange: P,
653
- createEvent: v,
654
- deleteEvent: c,
655
- isEventInRange: (a, s, e) => {
656
- const k = a.allDay || !u.time, i = k ? new Date(a.start).setHours(0, 0, 0, 0) : a.start.getTime(), V = k ? new Date(a.end).setHours(23, 59, 59, 999) : a.end.getTime(), F = k ? new Date(s).setHours(0, 0, 0, 0) : s.getTime(), A = k ? new Date(e).setHours(23, 59, 59, 999) : e.getTime();
657
- return V > F && i < A;
654
+ getEvent: m,
655
+ getViewEvents: P,
656
+ getCellOverlappingEvents: D,
657
+ getEventsInRange: F,
658
+ createEvent: g,
659
+ deleteEvent: u,
660
+ isEventInRange: (t, r, _) => {
661
+ const a = t.allDay || !c.time, z = a ? new Date(t.start).setHours(0, 0, 0, 0) : t.start.getTime(), s = a ? new Date(t.end).setHours(23, 59, 59, 999) : t.end.getTime(), A = a ? new Date(r).setHours(0, 0, 0, 0) : r.getTime(), M = a ? new Date(_).setHours(23, 59, 59, 999) : _.getTime();
662
+ return s > A && z < M;
658
663
  }
659
664
  };
660
- }, jt = ({ config: p, dateUtils: t, emit: u, texts: o, eventsManager: w }, _) => {
661
- const { availableViews: N } = p, d = ie(p.view && N[p.view] ? p.view : p.defaultView), H = ie(p.selectedDate || null), v = ie(/* @__PURE__ */ new Date()), c = ie(new Date(p.viewDate || v.value));
662
- c.value.setHours(0, 0, 0, 0);
663
- const y = ie(new Date(c));
664
- let P = null;
665
- const I = E(() => d.value === "month" ? y.value : h.value), a = E(() => d.value === "month" ? new Date(y.value.getFullYear(), y.value.getMonth() + 1, 0, 23, 59, 59, 999) : f.value), s = E(() => d.value === "week" ? t.getPreviousFirstDayOfWeek(h.value, p.startWeekOnSunday) : d.value === "month" ? h.value : I.value), e = E(() => {
666
- if (d.value === "week") {
667
- const g = t.addDays(s.value, 7);
668
- return g.setMilliseconds(-1), g;
665
+ }, jt = ({ config: p, dateUtils: e, emit: c, texts: o, eventsManager: w }, $) => {
666
+ const { availableViews: N } = p, m = ie(p.view && N[p.view] ? p.view : p.defaultView), P = ie(p.selectedDate || null), g = ie(/* @__PURE__ */ new Date()), u = ie(new Date(p.viewDate || g.value));
667
+ u.value.setHours(0, 0, 0, 0);
668
+ const D = ie(new Date(u));
669
+ let F = null;
670
+ const X = E(() => m.value === "month" ? D.value : v.value), t = E(() => m.value === "month" ? new Date(D.value.getFullYear(), D.value.getMonth() + 1, 0, 23, 59, 59, 999) : f.value), r = E(() => m.value === "week" ? e.getPreviousFirstDayOfWeek(v.value, p.startWeekOnSunday) : m.value === "month" ? v.value : X.value), _ = E(() => {
671
+ if (m.value === "week") {
672
+ const h = e.addDays(r.value, 7);
673
+ return h.setMilliseconds(-1), h;
669
674
  }
670
- return d.value === "month" ? f.value : a.value;
671
- }), k = E(() => {
672
- const g = v.value.getTime();
673
- if (d.value === "week")
674
- return s.value.getTime() <= g && g <= e.value.getTime();
675
- const R = h.value.getTime(), x = f.value.getTime();
676
- return R <= g && g <= x;
675
+ return m.value === "month" ? f.value : t.value;
676
+ }), a = E(() => {
677
+ const h = g.value.getTime();
678
+ if (m.value === "week")
679
+ return r.value.getTime() <= h && h <= _.value.getTime();
680
+ const R = v.value.getTime(), x = f.value.getTime();
681
+ return R <= h && h <= x;
677
682
  });
678
- function i() {
679
- v.value = /* @__PURE__ */ new Date(), P = setTimeout(i, 60 * 1e3);
683
+ function z() {
684
+ g.value = /* @__PURE__ */ new Date(), F = setTimeout(z, 60 * 1e3);
680
685
  }
681
- function V() {
682
- P = setTimeout(i, (60 - (/* @__PURE__ */ new Date()).getSeconds()) * 1e3), i();
686
+ function s() {
687
+ F = setTimeout(z, (60 - (/* @__PURE__ */ new Date()).getSeconds()) * 1e3), z();
683
688
  }
684
- const F = E(() => {
685
- if (!p.availableViews[d.value]) return 1;
686
- let g = p.availableViews[d.value].cols;
687
- return p.hasHiddenDays && ["week", "month"].includes(d.value) && (g -= p.hasHiddenDays), g;
688
- }), A = E(() => {
689
- var g;
690
- return ((g = p.availableViews[d.value]) == null ? void 0 : g.rows) || 1;
691
- }), m = E(() => F.value * A.value), h = E(() => {
692
- if (d.value === "month") {
693
- let g = y.value.getDay() || 7;
694
- return p.startWeekOnSunday && !p.hideWeekdays[7] && (g += 1), p.viewDayOffset && (g -= p.viewDayOffset), t.subtractDays(y.value, g - 1);
689
+ const A = E(() => {
690
+ if (!p.availableViews[m.value]) return 1;
691
+ let h = p.availableViews[m.value].cols;
692
+ return p.hasHiddenDays && ["week", "month"].includes(m.value) && (h -= p.hasHiddenDays), h;
693
+ }), M = E(() => {
694
+ var h;
695
+ return ((h = p.availableViews[m.value]) == null ? void 0 : h.rows) || 1;
696
+ }), d = E(() => A.value * M.value), v = E(() => {
697
+ if (m.value === "month") {
698
+ let h = D.value.getDay() || 7;
699
+ return p.startWeekOnSunday && !p.hideWeekdays[7] && (h += 1), p.viewDayOffset && (h -= p.viewDayOffset), e.subtractDays(D.value, h - 1);
695
700
  }
696
- if (d.value === "week") {
697
- const g = "1234567".split("").filter((x) => !Object.keys(p.hideWeekdays).includes(x));
698
- let R = Math.min(...g);
699
- return p.startWeekOnSunday && !p.hideWeekdays[7] && (R = 1), p.viewDayOffset && (R += p.viewDayOffset), t.addDays(y.value, R - 1);
701
+ if (m.value === "week") {
702
+ const h = "1234567".split("").filter((x) => !Object.keys(p.hideWeekdays).includes(x));
703
+ let R = Math.min(...h);
704
+ return p.startWeekOnSunday && !p.hideWeekdays[7] && (R = 1), p.viewDayOffset && (R += p.viewDayOffset), e.addDays(D.value, R - 1);
700
705
  }
701
- return y.value;
702
- }), z = E(() => {
703
- const g = [], R = ["days", "week", "month"].includes(d.value);
706
+ return D.value;
707
+ }), L = E(() => {
708
+ const h = [], R = ["days", "week", "month"].includes(m.value);
704
709
  let x = 0;
705
- for (let Q = 0; Q < m.value + x; Q++)
706
- switch (d.value) {
710
+ for (let Q = 0; Q < d.value + x; Q++)
711
+ switch (m.value) {
707
712
  case "day":
708
713
  case "days":
709
714
  case "week":
710
715
  case "month": {
711
- const fe = t.addDays(h.value, Q), Ae = fe.getDay() || 7;
712
- if (R && p.hasHiddenDays && p.hideWeekdays[Ae]) {
716
+ const fe = e.addDays(v.value, Q), Be = fe.getDay() || 7;
717
+ if (R && p.hasHiddenDays && p.hideWeekdays[Be]) {
713
718
  x++;
714
719
  continue;
715
720
  }
716
721
  const Ve = new Date(fe);
717
- Ve.setHours(23, 59, 59, 999), g.push({ start: fe, startFormatted: t.formatDate(fe), end: Ve });
722
+ Ve.setHours(23, 59, 59, 999), h.push({ start: fe, startFormatted: e.formatDate(fe), end: Ve });
718
723
  break;
719
724
  }
720
725
  case "year":
721
- g.push({
722
- start: new Date(h.value.getFullYear(), Q, 1, 0, 0, 0, 0),
723
- end: new Date(h.value.getFullYear(), Q + 1, 0, 23, 59, 59, 999)
726
+ h.push({
727
+ start: new Date(v.value.getFullYear(), Q, 1, 0, 0, 0, 0),
728
+ end: new Date(v.value.getFullYear(), Q + 1, 0, 23, 59, 59, 999)
724
729
  });
725
730
  break;
726
731
  case "years":
727
- g.push({
728
- start: new Date(h.value.getFullYear() + Q, 0, 1, 0, 0, 0, 0),
729
- end: new Date(h.value.getFullYear() + Q + 1, 0, 0, 23, 59, 59, 999)
732
+ h.push({
733
+ start: new Date(v.value.getFullYear() + Q, 0, 1, 0, 0, 0, 0),
734
+ end: new Date(v.value.getFullYear() + Q + 1, 0, 0, 23, 59, 59, 999)
730
735
  });
731
736
  break;
732
737
  }
733
- return g;
734
- }), f = E(() => z.value[z.value.length - 1].end), T = ie("right"), S = E(() => {
735
- const g = Object.keys(p.availableViews);
736
- return g[g.indexOf(d.value) + 1];
738
+ return h;
739
+ }), f = E(() => L.value[L.value.length - 1].end), k = ie("right"), O = E(() => {
740
+ const h = Object.keys(p.availableViews);
741
+ return h[h.indexOf(m.value) + 1];
737
742
  }), l = E(() => {
738
- const g = Object.keys(p.availableViews);
739
- return g[g.indexOf(d.value) - 1];
743
+ const h = Object.keys(p.availableViews);
744
+ return h[h.indexOf(m.value) - 1];
740
745
  });
741
- function X(g, R, x = !1) {
742
- if (!R || !R[g]) return g + 1;
743
- const Q = R[g];
746
+ function B(h, R, x = !1) {
747
+ if (!R || !R[h]) return h + 1;
748
+ const Q = R[h];
744
749
  return x && typeof Q == "string" ? Q.substring(0, 3) : Q;
745
750
  }
746
- function J(g, R, x) {
747
- const { monthsArray: Q, monthBeforeDay: fe, canTruncate: Ae, xs: Ve } = x, Me = g.getMonth(), Ye = g.getFullYear(), Ee = R.getMonth(), He = R.getFullYear(), We = Me !== Ee, _t = Ye !== He, be = Ae && (Ve || We), Pe = g.getDate(), Fe = R.getDate();
748
- return _t ? fe ? `${X(Me, Q, be)} ${Pe}, ${Ye} - ${X(Ee, Q, be)} ${Fe}, ${He}` : `${Pe} ${X(Me, Q, be)} ${Ye} - ${Fe} ${X(Ee, Q, be)} ${He}` : We ? fe ? `${X(Me, Q, be)} ${Pe} - ${X(Ee, Q, be)} ${Fe}, ${Ye}` : `${Pe} ${X(Me, Q, be)} - ${Fe} ${X(Ee, Q, be)} ${Ye}` : fe ? `${X(Me, Q, be)} ${Pe}-${Fe}, ${Ye}` : `${Pe}-${Fe} ${X(Me, Q, be)} ${Ye}`;
751
+ function G(h, R, x) {
752
+ const { monthsArray: Q, monthBeforeDay: fe, canTruncate: Be, xs: Ve } = x, Me = h.getMonth(), Ye = h.getFullYear(), Ee = R.getMonth(), He = R.getFullYear(), We = Me !== Ee, $t = Ye !== He, be = Be && (Ve || We), Pe = h.getDate(), Fe = R.getDate();
753
+ return $t ? fe ? `${B(Me, Q, be)} ${Pe}, ${Ye} - ${B(Ee, Q, be)} ${Fe}, ${He}` : `${Pe} ${B(Me, Q, be)} ${Ye} - ${Fe} ${B(Ee, Q, be)} ${He}` : We ? fe ? `${B(Me, Q, be)} ${Pe} - ${B(Ee, Q, be)} ${Fe}, ${Ye}` : `${Pe} ${B(Me, Q, be)} - ${Fe} ${B(Ee, Q, be)} ${Ye}` : fe ? `${B(Me, Q, be)} ${Pe}-${Fe}, ${Ye}` : `${Pe}-${Fe} ${B(Me, Q, be)} ${Ye}`;
749
754
  }
750
755
  const ae = E(() => {
751
- const { dateFormat: g, months: R, monthsGenitive: x, week: Q, truncations: fe } = o, Ae = p.locale, Ve = fe !== !1, Me = g.indexOf("M") < g.indexOf("D"), Ye = x && Ae === "el" ? x : R;
752
- switch (d.value) {
756
+ const { dateFormat: h, months: R, monthsGenitive: x, week: Q, truncations: fe } = o, Be = p.locale, Ve = fe !== !1, Me = h.indexOf("M") < h.indexOf("D"), Ye = x && Be === "el" ? x : R;
757
+ switch (m.value) {
753
758
  case "day":
754
- return t.formatDate(h.value, g);
759
+ return e.formatDate(v.value, h);
755
760
  case "days":
756
761
  case "week": {
757
762
  const Ee = {
@@ -760,10 +765,10 @@ const lt = (p, t) => {
760
765
  canTruncate: Ve,
761
766
  xs: p.xs
762
767
  };
763
- let He = J(h.value, f.value, Ee);
764
- if (d.value === "week") {
765
- const We = t.getWeek(
766
- h.value,
768
+ let He = G(v.value, f.value, Ee);
769
+ if (m.value === "week") {
770
+ const We = e.getWeek(
771
+ v.value,
767
772
  p.startWeekOnSunday && !p.hideWeekdays[7]
768
773
  );
769
774
  He += ` <small>${Q} ${We}</small>`;
@@ -772,194 +777,194 @@ const lt = (p, t) => {
772
777
  }
773
778
  case "month": {
774
779
  const Ee = `${p.xs && Ve ? "MMM" : "MMMM"} YYYY`;
775
- return t.formatDate(I.value, Ee);
780
+ return e.formatDate(X.value, Ee);
776
781
  }
777
782
  case "year":
778
- return h.value.getFullYear();
783
+ return v.value.getFullYear();
779
784
  case "years":
780
- return `${h.value.getFullYear()} - ${a.value.getFullYear()}`;
785
+ return `${v.value.getFullYear()} - ${t.value.getFullYear()}`;
781
786
  }
782
787
  });
783
- function se() {
784
- switch (y.value = new Date(c.value || v.value), y.value.setHours(0, 0, 0, 0), d.value) {
788
+ async function ne() {
789
+ switch (D.value = new Date(u.value || g.value), D.value.setHours(0, 0, 0, 0), m.value) {
785
790
  case "day":
786
791
  break;
787
792
  case "days":
788
793
  break;
789
794
  case "week":
790
- y.value = t.getPreviousFirstDayOfWeek(y.value, p.startWeekOnSunday && !p.hideWeekdays[7]);
795
+ D.value = e.getPreviousFirstDayOfWeek(D.value, p.startWeekOnSunday && !p.hideWeekdays[7]);
791
796
  break;
792
797
  case "month":
793
- y.value = new Date(y.value.getFullYear(), y.value.getMonth(), 1, 0, 0, 0, 0);
798
+ D.value = new Date(D.value.getFullYear(), D.value.getMonth(), 1, 0, 0, 0, 0);
794
799
  break;
795
800
  case "year":
796
- y.value = new Date(y.value.getFullYear(), 0, 1, 0, 0, 0, 0);
801
+ D.value = new Date(D.value.getFullYear(), 0, 1, 0, 0, 0, 0);
797
802
  break;
798
803
  case "years":
799
- y.value = new Date(y.value.getFullYear() - y.value.getFullYear() % m.value, 0, 1, 0, 0, 0, 0);
804
+ D.value = new Date(D.value.getFullYear() - D.value.getFullYear() % d.value, 0, 1, 0, 0, 0, 0);
800
805
  break;
801
806
  }
802
- p.ready && u("view-change", {
803
- id: d.value,
807
+ g.value = /* @__PURE__ */ new Date(), p.ready && (await Ie(), c("view-change", {
808
+ id: m.value,
804
809
  title: ae.value,
805
- start: I.value,
806
- end: a.value,
807
- extendedStart: s.value,
808
- extendedEnd: e.value,
809
- cellDates: z.value,
810
- containsToday: k.value,
811
- events: q.value
812
- }), v.value = /* @__PURE__ */ new Date();
810
+ start: X.value,
811
+ end: t.value,
812
+ extendedStart: r.value,
813
+ extendedEnd: _.value,
814
+ cellDates: L.value,
815
+ containsToday: a.value,
816
+ events: J.value
817
+ }));
813
818
  }
814
- function de(g) {
815
- const R = d.value, x = p.availableViews[R];
816
- g[R] && JSON.stringify(g[R]) === JSON.stringify(x) || se();
819
+ function de(h) {
820
+ const R = m.value, x = p.availableViews[R];
821
+ h[R] && JSON.stringify(h[R]) === JSON.stringify(x) || ne();
817
822
  }
818
- function Z(g, R = !0) {
823
+ function Z(h, R = !0) {
819
824
  const x = Object.keys(p.availableViews);
820
- d.value !== g && (x.includes(g) ? (T.value = x.indexOf(g) < x.indexOf(d.value) ? "left" : "right", d.value = g, u("update:view", g), se()) : console.warn(`Vue Cal: the \`${g}\` view is not available.`));
825
+ m.value !== h && (x.includes(h) ? (k.value = x.indexOf(h) < x.indexOf(m.value) ? "left" : "right", m.value = h, R && c("update:view", h), ne()) : console.warn(`Vue Cal: the \`${h}\` view is not available.`));
821
826
  }
822
- function he() {
823
- S.value ? Z(S.value) : console.warn("Vue Cal: no broader view is available.");
827
+ function ye() {
828
+ O.value ? Z(O.value) : console.warn("Vue Cal: no broader view is available.");
824
829
  }
825
830
  function ee() {
826
831
  l.value ? Z(l.value) : console.warn("Vue Cal: no narrower view is available.");
827
832
  }
828
833
  function oe() {
829
- $(!1);
834
+ b(!1);
830
835
  }
831
836
  function n() {
832
- $(!0);
837
+ b(!0);
833
838
  }
834
- function $(g = !0) {
835
- let R = new Date(c.value);
836
- switch (d.value) {
839
+ function b(h = !0) {
840
+ let R = new Date(u.value);
841
+ switch (m.value) {
837
842
  case "day":
838
843
  case "days":
839
- g ? R = t.addDays(f.value, 1) : R = t.subtractDays(h.value, m.value);
844
+ h ? R = e.addDays(f.value, 1) : R = e.subtractDays(v.value, d.value);
840
845
  break;
841
846
  case "week": {
842
- g ? (R = t.addDays(e.value, 1), R.setHours(0, 0, 0, 0)) : R = t.subtractDays(s.value, m.value);
847
+ h ? (R = e.addDays(_.value, 1), R.setHours(0, 0, 0, 0)) : R = e.subtractDays(r.value, d.value);
843
848
  break;
844
849
  }
845
850
  case "month": {
846
- const x = g ? 1 : -1;
851
+ const x = h ? 1 : -1;
847
852
  R = new Date(R.getFullYear(), R.getMonth() + x, 1, 0, 0, 0, 0);
848
853
  break;
849
854
  }
850
855
  case "year": {
851
- const x = g ? 1 : -1;
856
+ const x = h ? 1 : -1;
852
857
  R = new Date(R.getFullYear() + x, 1, 1, 0, 0, 0, 0);
853
858
  break;
854
859
  }
855
860
  case "years": {
856
- const x = g ? m.value : -m.value;
861
+ const x = h ? d.value : -d.value;
857
862
  R = new Date(R.getFullYear() + x, 1, 1, 0, 0, 0, 0);
858
863
  break;
859
864
  }
860
865
  }
861
- G(R);
866
+ q(R);
862
867
  }
863
- function D() {
864
- const g = /* @__PURE__ */ new Date();
865
- g.setHours(0, 0, 0, 0), G(g);
868
+ function y() {
869
+ const h = /* @__PURE__ */ new Date();
870
+ h.setHours(0, 0, 0, 0), q(h);
866
871
  }
867
- function G(g, R = !0, x = !1) {
868
- if (!t.isValid(g)) return console.warn("Vue Cal: can't navigate to the given date: invalid date provided to `updateViewDate(date)`.");
869
- let [Q, fe] = [h.value, f.value];
870
- d.value === "month" && ([Q, fe] = [I.value, a.value]), (!t.isInRange(g, Q, fe) || x) && (g.setHours(0, 0, 0, 0), T.value = g.getTime() < Q.getTime() ? "left" : "right", c.value = g, R && u("update:viewDate", g), se());
872
+ function q(h, R = !0, x = !1) {
873
+ if (!e.isValid(h)) return console.warn("Vue Cal: can't navigate to the given date: invalid date provided to `updateViewDate(date)`.");
874
+ let [Q, fe] = [v.value, f.value];
875
+ m.value === "month" && ([Q, fe] = [X.value, t.value]), (!e.isInRange(h, Q, fe) || x) && (h.setHours(0, 0, 0, 0), k.value = h.getTime() < Q.getTime() ? "left" : "right", u.value = h, R && c("update:viewDate", h), ne());
871
876
  }
872
- function K(g, R = !0) {
873
- if (!t.isValid(g)) return console.warn("Vue Cal: can't update the selected date: invalid date provided to `updateSelectedDate(date)`.");
874
- const { isValid: x, isSameDate: Q } = t;
875
- (!H.value || !x(H.value) || !Q(g, H.value)) && (g.setHours(0, 0, 0, 0), H.value = g, R && u("update:selectedDate", g));
877
+ function K(h, R = !0) {
878
+ if (!e.isValid(h)) return console.warn("Vue Cal: can't update the selected date: invalid date provided to `updateSelectedDate(date)`.");
879
+ const { isValid: x, isSameDate: Q } = e;
880
+ (!P.value || !x(P.value) || !Q(h, P.value)) && (h.setHours(0, 0, 0, 0), P.value = h, R && c("update:selectedDate", h));
876
881
  }
877
- function De(g) {
878
- !g && !y.value.getDay() ? G(t.addDays(y.value, 1), !0, !0) : (T.value = "left", se());
882
+ function De(h) {
883
+ !h && !D.value.getDay() ? q(e.addDays(D.value, 1), !0, !0) : (k.value = "left", ne());
879
884
  }
880
- function r(g) {
881
- g && p.startWeekOnSunday && !y.value.getDay() ? G(t.addDays(y.value, 1), !0, !0) : !g && p.startWeekOnSunday && y.value.getDay() === 1 && G(t.subtractDays(y.value, 1), !0, !0);
885
+ function i(h) {
886
+ h && p.startWeekOnSunday && !D.value.getDay() ? q(e.addDays(D.value, 1), !0, !0) : !h && p.startWeekOnSunday && D.value.getDay() === 1 && q(e.subtractDays(D.value, 1), !0, !0);
882
887
  }
883
- function Y() {
884
- console.log("toggling weekdays", p.hideWeekdays);
888
+ function S() {
889
+ console.log("toggling weekdays", p.hideWeekdays), ne();
885
890
  }
886
- function j(g) {
891
+ function C(h) {
887
892
  var Q;
888
- const R = (Q = _.value) == null ? void 0 : Q.querySelector(".vuecal__scrollable"), x = g ? g * p.timeCellHeight / p.timeStep : 0;
893
+ const R = (Q = $.value) == null ? void 0 : Q.querySelector(".vuecal__scrollable"), x = h ? h * p.timeCellHeight / p.timeStep : 0;
889
894
  R == null || R.scrollTo({ top: x, behavior: "smooth" });
890
895
  }
891
- function M() {
892
- const g = /* @__PURE__ */ new Date();
893
- j(g.getHours() * 60 + g.getMinutes());
896
+ function T() {
897
+ const h = /* @__PURE__ */ new Date();
898
+ C(h.getHours() * 60 + h.getMinutes());
894
899
  }
895
- function B() {
896
- j(0);
900
+ function W() {
901
+ C(0);
897
902
  }
898
- const q = E(() => w.getViewEvents(z.value)), re = w.createEvent, we = w.deleteEvent;
899
- return me(() => p.view, (g) => Z(g, !1)), me(() => p.availableViews, de), me(() => p.datePicker, () => Z("month", !1)), me(() => p.viewDate, (g) => G(g, !1)), me(() => p.selectedDate, (g) => K(g, !1)), me(() => p.startWeekOnSunday, (g) => De(g)), me(() => p.hideWeekends, (g) => r(g)), me(() => p.hideWeekdays, Y), me(() => m.value, () => {
900
- m.value > 90 && console.warn("Vue Cal: high cell count detected. Performance may degrade when interactions are enabled.");
901
- }), me(() => p.watchRealTime, (g) => {
902
- g && p.time ? V() : P = clearTimeout(P);
903
- }), se(), p.time && p.watchRealTime && V(), Be(() => P = clearTimeout(P)), {
904
- now: v,
905
- id: d,
906
- broaderView: S,
903
+ const J = E(() => w.getViewEvents(L.value)), le = w.createEvent, pe = w.deleteEvent;
904
+ return me(() => p.view, (h) => Z(h, !1)), me(() => p.availableViews, de), me(() => p.datePicker, () => Z("month")), me(() => p.viewDate, (h) => q(h, !1)), me(() => p.selectedDate, (h) => K(h, !1)), me(() => p.startWeekOnSunday, (h) => De(h)), me(() => p.hideWeekends, (h) => i(h)), me(() => p.hideWeekdays, S), me(() => d.value, () => {
905
+ d.value > 90 && console.warn("Vue Cal: high cell count detected. Performance may degrade when interactions are enabled.");
906
+ }), me(() => p.watchRealTime, (h) => {
907
+ h && p.time ? s() : F = clearTimeout(F);
908
+ }), ne(), p.time && p.watchRealTime && s(), Ne(() => F = clearTimeout(F)), {
909
+ now: g,
910
+ id: m,
911
+ broaderView: O,
907
912
  narrowerView: l,
908
913
  title: ae,
909
- viewDate: c,
910
- start: I,
911
- end: a,
912
- extendedStart: s,
914
+ viewDate: u,
915
+ start: X,
916
+ end: t,
917
+ extendedStart: r,
913
918
  // Full range, including out of scope month days, and hidden leading/trailing days.
914
- extendedEnd: e,
919
+ extendedEnd: _,
915
920
  // Full range, including out of scope month days, and hidden leading/trailing days.
916
- firstCellDate: h,
921
+ firstCellDate: v,
917
922
  lastCellDate: f,
918
- containsToday: k,
919
- selectedDate: H,
920
- cellDates: z,
921
- cols: F,
922
- rows: A,
923
+ containsToday: a,
924
+ selectedDate: P,
925
+ cellDates: L,
926
+ cols: A,
927
+ rows: M,
923
928
  // All the events are stored and indexed in the events object of the eventsManager.
924
929
  // The following events array is only a subset of visible ones, plus any potential recurring
925
930
  // and multi-day events.
926
- events: q,
927
- transitionDirection: T,
931
+ events: J,
932
+ transitionDirection: k,
928
933
  switch: Z,
929
- broader: he,
934
+ broader: ye,
930
935
  narrower: ee,
931
936
  previous: oe,
932
937
  next: n,
933
- navigate: $,
934
- goToToday: D,
935
- updateViewDate: G,
938
+ navigate: b,
939
+ goToToday: y,
940
+ updateViewDate: q,
936
941
  updateSelectedDate: K,
937
- scrollToCurrentTime: M,
938
- scrollToTime: j,
939
- scrollTop: B,
940
- createEvent: re,
941
- deleteEvent: we,
942
+ scrollToCurrentTime: T,
943
+ scrollToTime: C,
944
+ scrollTop: W,
945
+ createEvent: le,
946
+ deleteEvent: pe,
942
947
  // Getters.
943
948
  get isDay() {
944
- return d.value === "day";
949
+ return m.value === "day";
945
950
  },
946
951
  get isDays() {
947
- return d.value === "days";
952
+ return m.value === "days";
948
953
  },
949
954
  get isWeek() {
950
- return d.value === "week";
955
+ return m.value === "week";
951
956
  },
952
957
  get isMonth() {
953
- return d.value === "month";
958
+ return m.value === "month";
954
959
  },
955
960
  get isYear() {
956
- return d.value === "year";
961
+ return m.value === "year";
957
962
  },
958
963
  get isYears() {
959
- return d.value === "years";
964
+ return m.value === "years";
960
965
  }
961
966
  };
962
- }, rt = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"], ot = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], it = "Years", ut = "Year", ct = "Month", dt = "Week", vt = "Days", ft = "Day", mt = "Today", gt = "No Event", yt = "All-day", ht = "Delete", Dt = "Create an event", pt = "dddd, MMMM D, YYYY", wt = "am", kt = "pm", Qe = {
967
+ }, rt = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"], ot = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], it = "Years", ut = "Year", ct = "Month", dt = "Week", vt = "Days", ft = "Day", mt = "Today", gt = "No Event", ht = "All-day", yt = "Delete", Dt = "Create an event", pt = "dddd, MMMM D, YYYY", wt = "am", kt = "pm", Qe = {
963
968
  weekDays: rt,
964
969
  months: ot,
965
970
  years: it,
@@ -970,22 +975,22 @@ const lt = (p, t) => {
970
975
  day: ft,
971
976
  today: mt,
972
977
  noEvent: gt,
973
- allDay: yt,
974
- deleteEvent: ht,
978
+ allDay: ht,
979
+ deleteEvent: yt,
975
980
  createEvent: Dt,
976
981
  dateFormat: pt,
977
982
  am: wt,
978
983
  pm: kt
979
984
  }, Lt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
980
985
  __proto__: null,
981
- allDay: yt,
986
+ allDay: ht,
982
987
  am: wt,
983
988
  createEvent: Dt,
984
989
  dateFormat: pt,
985
990
  day: ft,
986
991
  days: vt,
987
992
  default: Qe,
988
- deleteEvent: ht,
993
+ deleteEvent: yt,
989
994
  month: ct,
990
995
  months: ot,
991
996
  noEvent: gt,
@@ -995,22 +1000,22 @@ const lt = (p, t) => {
995
1000
  weekDays: rt,
996
1001
  year: ut,
997
1002
  years: it
998
- }, Symbol.toStringTag, { value: "Module" })), Ne = Te({
1003
+ }, Symbol.toStringTag, { value: "Module" })), Ae = Te({
999
1004
  texts: { ...ge.texts },
1000
1005
  // Make texts reactive before a locale is loaded.
1001
1006
  dateUtils: lt(ge.texts, Qe)
1002
1007
  // Some Date utils functions need localized texts.
1003
- }), zt = ({ props: p, emit: t, attrs: u, vuecalEl: o, uid: w }) => {
1004
- const _ = Te({
1008
+ }), zt = ({ props: p, emit: e, attrs: c, vuecalEl: o, uid: w }) => {
1009
+ const $ = Te({
1005
1010
  uid: w,
1006
1011
  // The Vuecal instance unique ID, used for dnd source-target identification.
1007
- emit: t,
1008
- texts: { ...Ne.texts },
1012
+ emit: e,
1013
+ texts: { ...Ae.texts },
1009
1014
  // Make texts reactive before a locale is loaded.
1010
1015
  // The date utils composable.
1011
1016
  // A class/composable is needed in order to access the user locale in all the methods, and
1012
1017
  // independently of other potential Vue Cal instances on the same page.
1013
- dateUtils: { ...Ne.dateUtils },
1018
+ dateUtils: { ...Ae.dateUtils },
1014
1019
  now: /* @__PURE__ */ new Date(),
1015
1020
  config: {},
1016
1021
  eventsManager: {},
@@ -1025,8 +1030,8 @@ const lt = (p, t) => {
1025
1030
  isResizingEvent: !1
1026
1031
  }
1027
1032
  });
1028
- return _.dateUtils = lt(Object.assign(ge.texts, _.texts), Qe), _.config = Ct(_, p, u), _.eventsManager = Ot(_), _.view = jt(_, o), _.dnd = Vt(_), _;
1029
- }, Ht = 24 * 60, Pt = {
1033
+ return $.dateUtils = lt(Object.assign(ge.texts, $.texts), Qe), $.config = Ct($, p, c), $.eventsManager = Ot($), $.view = jt($, o), $.dnd = Vt($), $;
1034
+ }, Ht = 1440, Pt = {
1030
1035
  allDayEvents: { type: Boolean, default: !1 },
1031
1036
  // Display all-day events in a fixed top bar on the day, days & week views.
1032
1037
  stackEvents: { type: Boolean, default: !1 },
@@ -1123,88 +1128,88 @@ const lt = (p, t) => {
1123
1128
  // minScheduleWidth: { type: Number, default: 0 },
1124
1129
  // overlapsPerTimeStep: { type: Boolean, default: false },
1125
1130
  // resizeX: { type: Boolean, default: false },
1126
- }, Ft = { class: "vuecal__header" }, Nt = {
1131
+ }, Ft = { class: "vuecal__header" }, At = {
1127
1132
  key: 0,
1128
1133
  class: "vuecal__views-bar"
1129
- }, At = ["onClick", "innerHTML"], Bt = {
1134
+ }, Nt = ["onClick", "innerHTML"], Bt = {
1130
1135
  key: 1,
1131
1136
  class: "vuecal__title-bar"
1132
- }, Wt = { class: "vuecal__transition-wrap" }, It = ["disabled", "innerHTML"], Rt = {
1137
+ }, Wt = { class: "vuecal__transition-wrap" }, Rt = ["disabled", "innerHTML"], It = {
1133
1138
  __name: "header",
1134
1139
  setup(p) {
1135
- const t = ze("vuecal"), { view: u, config: o } = t, w = () => {
1136
- o.clickToNavigate && u.broader();
1137
- }, _ = E(() => o.clickToNavigate ? { click: w } : {});
1138
- return (N, d) => (C(), L("div", Ft, [
1139
- O(N.$slots, "header", {
1140
- view: b(u),
1141
- availableViews: b(o).availableViews,
1142
- vuecal: b(t)
1140
+ const e = ze("vuecal"), { view: c, config: o } = e, w = () => {
1141
+ o.clickToNavigate && c.broader();
1142
+ }, $ = E(() => o.clickToNavigate ? { click: w } : {});
1143
+ return (N, m) => (V(), H("div", Ft, [
1144
+ j(N.$slots, "header", {
1145
+ view: Y(c),
1146
+ availableViews: Y(o).availableViews,
1147
+ vuecal: Y(e)
1143
1148
  }),
1144
- N.$slots.header ? U("", !0) : (C(), L(ue, { key: 0 }, [
1145
- b(o).viewsBar ? (C(), L("div", Nt, [
1146
- (C(!0), L(ue, null, pe(b(o).availableViews, (H, v) => (C(), L("button", {
1147
- class: ye(["vuecal__view-button", { "vuecal__view-button--active": b(u).id === v }]),
1148
- onClick: (c) => b(u).switch(v),
1149
- innerHTML: b(t).texts[v],
1149
+ N.$slots.header ? U("", !0) : (V(), H(ue, { key: 0 }, [
1150
+ Y(o).viewsBar ? (V(), H("div", At, [
1151
+ (V(!0), H(ue, null, we(Y(o).availableViews, (P, g) => (V(), H("button", {
1152
+ class: he(["vuecal__view-button", { "vuecal__view-button--active": Y(c).id === g }]),
1153
+ onClick: (u) => Y(c).switch(g),
1154
+ innerHTML: Y(e).texts[g],
1150
1155
  type: "button"
1151
- }, null, 10, At))), 256))
1156
+ }, null, 10, Nt))), 256))
1152
1157
  ])) : U("", !0),
1153
- b(o).titleBar ? (C(), L("nav", Bt, [
1158
+ Y(o).titleBar ? (V(), H("nav", Bt, [
1154
1159
  ve("button", {
1155
- class: ye(["vuecal__nav vuecal__nav--prev", { "vuecal__nav--default": !N.$slots["previous-button"] }]),
1156
- onClick: d[0] || (d[0] = (...H) => b(u).previous && b(u).previous(...H)),
1160
+ class: he(["vuecal__nav vuecal__nav--prev", { "vuecal__nav--default": !N.$slots["previous-button"] }]),
1161
+ onClick: m[0] || (m[0] = (...P) => Y(c).previous && Y(c).previous(...P)),
1157
1162
  type: "button"
1158
1163
  }, [
1159
- O(N.$slots, "previous-button")
1164
+ j(N.$slots, "previous-button")
1160
1165
  ], 2),
1161
1166
  ve("div", Wt, [
1162
- je(Ge, {
1163
- name: `vuecal-slide-fade--${b(u).transitionDirection}`
1167
+ je(qe, {
1168
+ name: `vuecal-slide-fade--${Y(c).transitionDirection}`
1164
1169
  }, {
1165
- default: W(() => [
1166
- (C(), L("div", {
1167
- key: b(u).id + b(u).start.getTime()
1170
+ default: I(() => [
1171
+ (V(), H("div", {
1172
+ key: Y(c).id + Y(c).start.getTime()
1168
1173
  }, [
1169
- N.$slots.title || N.$slots[`title.${b(u).id}`] ? (C(), Se(xe(b(o).clickToNavigate && b(u).broaderView ? "button" : "div"), le({
1174
+ N.$slots.title || N.$slots[`title.${Y(c).id}`] ? (V(), Se(xe(Y(o).clickToNavigate && Y(c).broaderView ? "button" : "div"), re({
1170
1175
  key: 0,
1171
1176
  class: "vuecal__title"
1172
- }, Re(_.value)), {
1173
- default: W(() => [
1174
- N.$slots[`title.${b(u).id}`] ? O(N.$slots, `title.${b(u).id}`, te(le({ key: 0 }, b(u)))) : O(N.$slots, "title", te(le({ key: 1 }, b(u))))
1177
+ }, Xe($.value)), {
1178
+ default: I(() => [
1179
+ N.$slots[`title.${Y(c).id}`] ? j(N.$slots, `title.${Y(c).id}`, te(re({ key: 0 }, Y(c)))) : j(N.$slots, "title", te(re({ key: 1 }, Y(c))))
1175
1180
  ]),
1176
1181
  _: 3
1177
- }, 16)) : (C(), Se(xe(b(o).clickToNavigate && b(u).broaderView ? "button" : "div"), le({
1182
+ }, 16)) : (V(), Se(xe(Y(o).clickToNavigate && Y(c).broaderView ? "button" : "div"), re({
1178
1183
  key: 1,
1179
1184
  class: "vuecal__title"
1180
- }, Re(_.value), {
1181
- innerHTML: b(u).title
1185
+ }, Xe($.value), {
1186
+ innerHTML: Y(c).title
1182
1187
  }), null, 16, ["innerHTML"]))
1183
1188
  ]))
1184
1189
  ]),
1185
1190
  _: 3
1186
1191
  }, 8, ["name"])
1187
1192
  ]),
1188
- b(o).todayButton ? (C(), L(ue, { key: 0 }, [
1189
- N.$slots["today-button"] ? O(N.$slots, "today-button", {
1193
+ Y(o).todayButton ? (V(), H(ue, { key: 0 }, [
1194
+ N.$slots["today-button"] ? j(N.$slots, "today-button", {
1190
1195
  key: 0,
1191
- navigate: () => !b(u).containsToday && b(u).goToToday(),
1192
- active: b(u).containsToday
1193
- }) : (C(), L("button", {
1196
+ navigate: () => !Y(c).containsToday && Y(c).goToToday(),
1197
+ active: Y(c).containsToday
1198
+ }) : (V(), H("button", {
1194
1199
  key: 1,
1195
- class: ye(["vuecal__nav vuecal__nav--today vuecal__nav--default", { "vuecal__nav--active": b(u).containsToday }]),
1196
- onClick: d[1] || (d[1] = (H) => !b(u).containsToday && b(u).goToToday()),
1197
- disabled: !!b(u).containsToday,
1200
+ class: he(["vuecal__nav vuecal__nav--today vuecal__nav--default", { "vuecal__nav--active": Y(c).containsToday }]),
1201
+ onClick: m[1] || (m[1] = (P) => !Y(c).containsToday && Y(c).goToToday()),
1202
+ disabled: !!Y(c).containsToday,
1198
1203
  type: "button",
1199
- innerHTML: b(t).texts.today
1200
- }, null, 10, It))
1204
+ innerHTML: Y(e).texts.today
1205
+ }, null, 10, Rt))
1201
1206
  ], 64)) : U("", !0),
1202
1207
  ve("button", {
1203
- class: ye(["vuecal__nav vuecal__nav--next", { "vuecal__nav--default": !N.$slots["next-button"] }]),
1204
- onClick: d[2] || (d[2] = (...H) => b(u).next && b(u).next(...H)),
1208
+ class: he(["vuecal__nav vuecal__nav--next", { "vuecal__nav--default": !N.$slots["next-button"] }]),
1209
+ onClick: m[2] || (m[2] = (...P) => Y(c).next && Y(c).next(...P)),
1205
1210
  type: "button"
1206
1211
  }, [
1207
- O(N.$slots, "next-button")
1212
+ j(N.$slots, "next-button")
1208
1213
  ], 2)
1209
1214
  ])) : U("", !0)
1210
1215
  ], 64))
@@ -1226,8 +1231,8 @@ const lt = (p, t) => {
1226
1231
  inAllDayBar: { type: Boolean, default: !1 }
1227
1232
  },
1228
1233
  emits: ["event-drag-start", "event-drag-end", "event-resize-start", "event-resize-end"],
1229
- setup(p, { emit: t }) {
1230
- const { config: u, view: o, dnd: w, touch: _, dateUtils: N } = ze("vuecal"), d = p, H = ie(null), v = Te(d.event), c = Te({
1234
+ setup(p, { emit: e }) {
1235
+ const { config: c, view: o, dnd: w, touch: $, dateUtils: N } = ze("vuecal"), m = p, P = ie(null), g = Te(m.event), u = Te({
1231
1236
  dragging: !1,
1232
1237
  resizing: !1,
1233
1238
  fromResizer: !1,
@@ -1236,6 +1241,10 @@ const lt = (p, t) => {
1236
1241
  // When the event is clicked and hold for a certain amount of time.
1237
1242
  holdTimer: null,
1238
1243
  // event click and hold detection.
1244
+ canTouchAndDrag: null,
1245
+ // Wait for 500ms before allowing an event to be dragged after touchstart.
1246
+ touchAndDragTimer: null,
1247
+ // Timer for canTouchAndDrag.
1239
1248
  startX: 0,
1240
1249
  // The X coords at the start of the drag.
1241
1250
  startY: 0,
@@ -1261,169 +1270,171 @@ const lt = (p, t) => {
1261
1270
  cellEl: null,
1262
1271
  // Store the cell DOM node for a more efficient resizing calc in mousemove/touchmove.
1263
1272
  schedule: null
1264
- }), y = E(() => u.editableEvents.drag && v.draggable !== !1 && !v.background), P = E(() => o.isMonth || o.isYear || o.isYears || d.inAllDayBar ? !1 : u.time && u.editableEvents.resize && v.resizable !== !1 && !v.background);
1265
- E(() => u.editableEvents.delete && v.deletable !== !1 && !v.background);
1266
- const I = E(() => {
1267
- var m, h, z, f, T;
1273
+ }), D = E(() => c.editableEvents.drag && g.draggable !== !1 && !g.background && u.canTouchAndDrag !== !1), F = E(() => o.isMonth || o.isYear || o.isYears || m.inAllDayBar ? !1 : c.time && c.editableEvents.resize && g.resizable !== !1 && !g.background);
1274
+ E(() => c.editableEvents.delete && g.deletable !== !1 && !g.background);
1275
+ const X = E(() => {
1276
+ var d, v, L, f, k;
1268
1277
  return {
1269
- [`vuecal__event--${v._.id}`]: !0,
1270
- [v.class]: !!v.class,
1271
- "vuecal__event--recurring": !!v.recurring,
1272
- "vuecal__event--background": !!v.background,
1273
- "vuecal__event--all-day": v.allDay || ((m = v._) == null ? void 0 : m.startMinutes) === 0 && ((h = v._) == null ? void 0 : h.duration) === 24 * 60,
1274
- "vuecal__event--multiday": !!((z = v._) != null && z.multiday),
1275
- "vuecal__event--cut-top": !d.inAllDayBar && ((f = v._) == null ? void 0 : f.startMinutes) < u.timeFrom,
1276
- "vuecal__event--cut-bottom": !d.inAllDayBar && ((T = v._) == null ? void 0 : T.endMinutes) > u.timeTo || v._.multiday,
1278
+ [`vuecal__event--${g._.id}`]: !0,
1279
+ [g.class]: !!g.class,
1280
+ "vuecal__event--recurring": !!g.recurring,
1281
+ "vuecal__event--background": !!g.background,
1282
+ "vuecal__event--all-day": g.allDay || ((d = g._) == null ? void 0 : d.startMinutes) === 0 && ((v = g._) == null ? void 0 : v.duration) === 1440,
1283
+ "vuecal__event--multiday": !!((L = g._) != null && L.multiday),
1284
+ "vuecal__event--cut-top": !m.inAllDayBar && ((f = g._) == null ? void 0 : f.startMinutes) < c.timeFrom,
1285
+ "vuecal__event--cut-bottom": !m.inAllDayBar && ((k = g._) == null ? void 0 : k.endMinutes) > c.timeTo || g._.multiday,
1277
1286
  // Only apply the dragging class on the event copy that is being dragged.
1278
- "vuecal__event--dragging": !v._.draggingGhost && v._.dragging,
1287
+ "vuecal__event--dragging": !g._.draggingGhost && g._.dragging,
1279
1288
  // Only apply the dragging-ghost class on the event original that remains fixed while a copy is being
1280
1289
  // dragged. Sometimes when dragging fast the dragging-ghost class would get stuck and events stays
1281
1290
  // invisible, so if dragging is false, disable the dragging-ghost class as well.
1282
1291
  // On event drop, if the new position of the event is approved, only remove the dragging-ghost class
1283
1292
  // after event deletion (event._.dragging is already false) so the event ghost does not flash in before
1284
1293
  // deletion.
1285
- "vuecal__event--dragging-ghost": v._.draggingGhost,
1286
- "vuecal__event--resizing": c.resizing
1294
+ "vuecal__event--dragging-ghost": g._.draggingGhost,
1295
+ "vuecal__event--resizing": u.resizing
1287
1296
  };
1288
- }), a = E(() => {
1289
- const m = (o.isDay || o.isDays || o.isWeek) && u.time && !d.inAllDayBar;
1290
- if (!m && !v.backgroundColor && !v.color) return !1;
1291
- const h = {
1292
- backgroundColor: v.backgroundColor || null,
1293
- color: v.color || null
1297
+ }), t = E(() => {
1298
+ const d = (o.isDay || o.isDays || o.isWeek) && c.time && !m.inAllDayBar;
1299
+ if (!d && !g.backgroundColor && !g.color) return !1;
1300
+ const v = {
1301
+ backgroundColor: g.backgroundColor || null,
1302
+ color: g.color || null
1294
1303
  };
1295
- if (m) {
1296
- const z = Math.max(u.timeFrom, v._.startMinutes), f = Math.min(u.timeTo, v._.endMinutes) + (v._.duration && !v._.endMinutes ? 24 * 60 : 0), T = Oe(z, u), S = Oe(f, u) - T;
1297
- h.top = `${T}%`, h.height = `${S}%`;
1304
+ if (d) {
1305
+ const L = Math.max(c.timeFrom, g._.startMinutes), f = Math.min(c.timeTo, g._.endMinutes) + (g._.duration && !g._.endMinutes ? 1440 : 0), k = Oe(L, c), O = Oe(f, c) - k;
1306
+ v.top = `${k}%`, v.height = `${O}%`;
1298
1307
  }
1299
- return h;
1300
- }), s = E(() => {
1301
- const m = { ...u.eventListeners.event };
1302
- for (const [f, T] of Object.entries(m))
1303
- ["resize-end"].includes(f) || (m[f] = (S) => {
1304
- S.type !== "drop" && T(S.type ? { e: S, event: v } : S);
1308
+ return v;
1309
+ }), r = E(() => {
1310
+ const d = { ...c.eventListeners.event };
1311
+ for (const [f, k] of Object.entries(d))
1312
+ ["resize-end"].includes(f) || (d[f] = (O) => {
1313
+ O.type !== "drop" && k(O.type ? { e: O, event: g } : O);
1305
1314
  });
1306
- const h = { ...m };
1307
- m.touchstart = (f) => {
1308
- var T;
1309
- f.stopPropagation(), e(f), (T = h.touchstart) == null || T.call(h, { e: f, event: v });
1310
- }, m.mousedown = (f) => {
1311
- var T;
1312
- f.stopPropagation(), e(f), (T = h.mousedown) == null || T.call(h, { e: f, event: v });
1315
+ const v = { ...d };
1316
+ d.touchstart = (f) => {
1317
+ var k;
1318
+ f.stopPropagation(), u.touchAndDragTimer = setTimeout(() => {
1319
+ u.canTouchAndDrag = !0;
1320
+ }, 500), _(f), (k = v.touchstart) == null || k.call(v, { e: f, event: g });
1321
+ }, d.mousedown = (f) => {
1322
+ var k;
1323
+ f.stopPropagation(), _(f), (k = v.mousedown) == null || k.call(v, { e: f, event: g });
1313
1324
  };
1314
- let z = null;
1315
- return m.click = (f) => {
1316
- var T;
1317
- (T = h.click) == null || T.call(h, { e: f, event: v }), z ? z = clearTimeout(z) : z = setTimeout(() => {
1318
- var S;
1319
- z = null, (S = h["delayed-click"]) == null || S.call(h, { e: f, event: v });
1325
+ let L = null;
1326
+ return d.click = (f) => {
1327
+ var k;
1328
+ (k = v.click) == null || k.call(v, { e: f, event: g }), L ? L = clearTimeout(L) : L = setTimeout(() => {
1329
+ var O;
1330
+ L = null, (O = v["delayed-click"]) == null || O.call(v, { e: f, event: g });
1320
1331
  }, 400);
1321
- }, m.dblclick = (f) => {
1322
- h.dblclick ? h.dblclick({ e: f, event: v }) : v.delete(1);
1323
- }, m;
1324
- }), e = (m) => {
1325
- var f, T, S;
1326
- const h = ((f = m.touches) == null ? void 0 : f[0]) || m;
1327
- c.fromResizer = h.target.matches(".vuecal__event-resizer, .vuecal__event-resizer *");
1328
- const z = H.value.getBoundingClientRect();
1329
- c.startX = (((T = m.touches) == null ? void 0 : T[0]) || m).clientX - z.left, c.startY = (((S = m.touches) == null ? void 0 : S[0]) || m).clientY - z.top, c.startPercentageX = c.startX * 100 / z.width, c.startPercentageY = c.startY * 100 / z.height, c.cellEl = H.value.closest(".vuecal__cell"), c.resizeStartDate = v.start, A(m.type === "touchstart" ? "touchmove" : "mousemove", k), A(m.type === "touchstart" ? "touchend" : "mouseup", i, { once: !0 }), c.holdTimer = setTimeout(() => {
1330
- var l, X;
1331
- c.holding = !0, (X = (l = s.value).hold) == null || X.call(l, { e: m, event: v });
1332
+ }, d.dblclick = (f) => {
1333
+ v.dblclick ? v.dblclick({ e: f, event: g }) : g.delete(1);
1334
+ }, d;
1335
+ }), _ = (d) => {
1336
+ var f, k, O;
1337
+ const v = ((f = d.touches) == null ? void 0 : f[0]) || d;
1338
+ u.fromResizer = v.target.matches(".vuecal__event-resizer, .vuecal__event-resizer *");
1339
+ const L = P.value.getBoundingClientRect();
1340
+ u.startX = (((k = d.touches) == null ? void 0 : k[0]) || d).clientX - L.left, u.startY = (((O = d.touches) == null ? void 0 : O[0]) || d).clientY - L.top, u.startPercentageX = u.startX * 100 / L.width, u.startPercentageY = u.startY * 100 / L.height, u.cellEl = P.value.closest(".vuecal__cell"), u.resizeStartDate = g.start, M(d.type === "touchstart" ? "touchmove" : "mousemove", a, { passive: !u.fromResizer }), M(d.type === "touchstart" ? "touchend" : "mouseup", z, { once: !0 }), u.holdTimer = setTimeout(() => {
1341
+ var l, B;
1342
+ u.holding = !0, (B = (l = r.value).hold) == null || B.call(l, { e: d, event: g });
1332
1343
  }, 1e3);
1333
- }, k = async (m) => {
1334
- var z, f, T, S;
1335
- const h = ((z = m.touches) == null ? void 0 : z[0]) || m;
1336
- if (c.fromResizer && !c.resizing && (c.resizing = !0, c.resizingOriginalEvent = { ...v, _: { ...v._ } }, _.isResizingEvent = !0, (T = (f = s.value)["resize-start"]) == null || T.call(f, { e: m, event: v })), c.holdTimer = clearTimeout(c.holdTimer), c.holding = !1, c.cellEl) {
1337
- const { top: l, left: X, width: J, height: ae } = c.cellEl.getBoundingClientRect();
1338
- c.moveX = h.clientX - X, c.moveY = h.clientY - l, c.movePercentageX = c.moveX * 100 / J, c.movePercentageY = c.moveY * 100 / ae;
1344
+ }, a = async (d) => {
1345
+ var L, f, k, O;
1346
+ const v = ((L = d.touches) == null ? void 0 : L[0]) || d;
1347
+ if (u.fromResizer && !u.resizing && (u.resizing = !0, u.resizingOriginalEvent = { ...g, _: { ...g._ } }, $.isResizingEvent = !0, (k = (f = r.value)["resize-start"]) == null || k.call(f, { e: d, event: g })), u.holdTimer = clearTimeout(u.holdTimer), u.holding = !1, u.cellEl) {
1348
+ const { top: l, left: B, width: G, height: ae } = u.cellEl.getBoundingClientRect();
1349
+ u.moveX = v.clientX - B, u.moveY = v.clientY - l, u.movePercentageX = u.moveX * 100 / G, u.movePercentageY = u.moveY * 100 / ae;
1339
1350
  }
1340
- if (c.fromResizer) {
1341
- const { newStart: l, newEnd: X } = V(v);
1342
- let J = !0;
1343
- const { resize: ae } = (S = u.eventListeners) == null ? void 0 : S.event;
1344
- ae && (J = await ae({
1345
- e: m,
1346
- event: { ...v, start: l, end: X },
1347
- overlaps: v.getOverlappingEvents({ start: l, end: X })
1348
- })), J !== !1 ? (v.start = l, v.end = X, c.resizingLastAcceptedEvent && (c.resizingLastAcceptedEvent = null)) : ae && (c.resizingLastAcceptedEvent = { ...v, _: { ...v._ } });
1351
+ if (u.fromResizer) {
1352
+ const { newStart: l, newEnd: B } = s(g);
1353
+ let G = !0;
1354
+ const { resize: ae } = (O = c.eventListeners) == null ? void 0 : O.event;
1355
+ ae && (G = await ae({
1356
+ e: d,
1357
+ event: { ...g, start: l, end: B },
1358
+ overlaps: g.getOverlappingEvents({ start: l, end: B })
1359
+ })), G !== !1 ? (g.start = l, g.end = B, u.resizingLastAcceptedEvent && (u.resizingLastAcceptedEvent = null), d.preventDefault()) : ae && (u.resizingLastAcceptedEvent = { ...g, _: { ...g._ } });
1349
1360
  }
1350
- }, i = async (m) => {
1351
- var h, z;
1352
- if (c.holdTimer = clearTimeout(c.holdTimer), c.holding = !1, c.resizing) {
1353
- const { newStart: f, newEnd: T } = V(v);
1354
- let S = !0;
1355
- const l = s.value["resize-end"];
1356
- l && (S = await l({
1357
- e: m,
1358
- event: v,
1359
- original: c.resizingOriginalEvent,
1361
+ }, z = async (d) => {
1362
+ var v, L;
1363
+ if (u.holdTimer = clearTimeout(u.holdTimer), u.holding = !1, u.resizing) {
1364
+ const { newStart: f, newEnd: k } = s(g);
1365
+ let O = !0;
1366
+ const l = r.value["resize-end"];
1367
+ l && (O = await l({
1368
+ e: d,
1369
+ event: g,
1370
+ original: u.resizingOriginalEvent,
1360
1371
  // Original event details before resizing.
1361
- overlaps: v.getOverlappingEvents({ start: f, end: T })
1362
- })), v.start = S === !1 ? (c.resizingLastAcceptedEvent || c.resizingOriginalEvent).start : ((h = c.resizingLastAcceptedEvent) == null ? void 0 : h.start) || f, v.end = S === !1 ? (c.resizingLastAcceptedEvent || c.resizingOriginalEvent).end : ((z = c.resizingLastAcceptedEvent) == null ? void 0 : z.end) || T, v._.duration < 1 && (v.start = c.resizingOriginalEvent.start, v.end = c.resizingOriginalEvent.end), _.isResizingEvent = !1;
1372
+ overlaps: g.getOverlappingEvents({ start: f, end: k })
1373
+ })), g.start = O === !1 ? (u.resizingLastAcceptedEvent || u.resizingOriginalEvent).start : ((v = u.resizingLastAcceptedEvent) == null ? void 0 : v.start) || f, g.end = O === !1 ? (u.resizingLastAcceptedEvent || u.resizingOriginalEvent).end : ((L = u.resizingLastAcceptedEvent) == null ? void 0 : L.end) || k, g._.duration < 1 && (g.start = u.resizingOriginalEvent.start, g.end = u.resizingOriginalEvent.end), $.isResizingEvent = !1;
1363
1374
  }
1364
- document.removeEventListener(m.type === "touchend" ? "touchmove" : "mousemove", k), c.resizing = !1, c.fromResizer = !1, c.dragging = !1, c.startX = 0, c.startY = 0, c.moveX = 0, c.moveY = 0, c.startPercentageX = 0, c.startPercentageY = 0, c.movePercentageX = 0, c.movePercentageY = 0, c.cellEl = null, c.resizeStartDate = null, c.resizingOriginalEvent = null, c.resizingLastAcceptedEvent = null, c.schedule = null;
1365
- }, V = (m) => {
1366
- const h = new Date(m.start.getFullYear(), m.start.getMonth(), m.start.getDate());
1367
- new Date(h).setDate(h.getDate() + 1);
1368
- let f = Le(c.movePercentageY, u);
1369
- if (f = Math.max(0, Math.min(f, 24 * 60)), u.snapToInterval) {
1370
- const l = f + u.snapToInterval / 2;
1371
- f = l - l % u.snapToInterval;
1375
+ document.removeEventListener(d.type === "touchend" ? "touchmove" : "mousemove", a, { passive: !u.fromResizer }), u.resizing = !1, u.fromResizer = !1, u.dragging = !1, u.startX = 0, u.startY = 0, u.moveX = 0, u.moveY = 0, u.startPercentageX = 0, u.startPercentageY = 0, u.movePercentageX = 0, u.movePercentageY = 0, u.cellEl = null, u.resizeStartDate = null, u.resizingOriginalEvent = null, u.resizingLastAcceptedEvent = null, u.schedule = null;
1376
+ }, s = (d) => {
1377
+ const v = new Date(d.start.getFullYear(), d.start.getMonth(), d.start.getDate());
1378
+ new Date(v).setDate(v.getDate() + 1);
1379
+ let f = Le(u.movePercentageY, c);
1380
+ if (f = Math.max(0, Math.min(f, 1440)), c.snapToInterval) {
1381
+ const l = f + c.snapToInterval / 2;
1382
+ f = l - l % c.snapToInterval;
1372
1383
  }
1373
- let T = m.start, S = new Date(h.getTime() + f * 6e4);
1374
- return S < c.resizeStartDate && (T = S, S = c.resizeStartDate), { newStart: T, newEnd: S };
1375
- }, F = [], A = (m, h, z) => {
1376
- document.addEventListener(m, h, z), F.push({ event: m, handler: h, options: z });
1384
+ let k = d.start, O = new Date(v.getTime() + f * 6e4);
1385
+ return O < u.resizeStartDate && (k = O, O = u.resizeStartDate), { newStart: k, newEnd: O };
1386
+ }, A = [], M = (d, v, L) => {
1387
+ document.addEventListener(d, v, L), A.push({ event: d, handler: v, options: L });
1377
1388
  };
1378
- return Ze(() => v._.register(H.value)), Be(() => {
1379
- v._.unregister();
1380
- for (const { event: m, handler: h, options: z } of F)
1381
- document.removeEventListener(m, h, z);
1382
- }), (m, h) => (C(), L("div", le({ class: "vuecal__event" }, Re(s.value, !0), {
1389
+ return Ze(() => g._.register(P.value)), Ne(() => {
1390
+ g._.unregister();
1391
+ for (const { event: d, handler: v, options: L } of A)
1392
+ document.removeEventListener(d, v, L);
1393
+ }), (d, v) => (V(), H("div", re({ class: "vuecal__event" }, Xe(r.value, !0), {
1383
1394
  ref_key: "eventEl",
1384
- ref: H,
1385
- class: I.value,
1386
- style: a.value,
1387
- draggable: y.value ? "true" : void 0,
1388
- onDragstart: h[2] || (h[2] = (z) => y.value && b(w).eventDragStart(z, v)),
1389
- onDragend: h[3] || (h[3] = (z) => y.value && b(w).eventDragEnd(z, v))
1395
+ ref: P,
1396
+ class: X.value,
1397
+ style: t.value,
1398
+ draggable: D.value ? "true" : void 0,
1399
+ onDragstart: v[2] || (v[2] = (L) => D.value && Y(w).eventDragStart(L, g)),
1400
+ onDragend: v[3] || (v[3] = (L) => D.value && Y(w).eventDragEnd(L, g))
1390
1401
  }), [
1391
1402
  ve("div", Gt, [
1392
- m.$slots["event.all-day"] ? O(m.$slots, "event.all-day", {
1403
+ d.$slots["event.all-day"] ? j(d.$slots, "event.all-day", {
1393
1404
  key: 0,
1394
- event: v
1395
- }) : m.$slots[`event.${b(o).id}`] ? O(m.$slots, `event.${b(o).id}`, {
1405
+ event: g
1406
+ }) : d.$slots[`event.${Y(o).id}`] ? j(d.$slots, `event.${Y(o).id}`, {
1396
1407
  key: 1,
1397
- event: v
1398
- }) : O(m.$slots, "event", {
1408
+ event: g
1409
+ }) : j(d.$slots, "event", {
1399
1410
  key: 2,
1400
- event: v
1411
+ event: g
1401
1412
  }, () => [
1402
- ve("div", qt, ce(v.title), 1),
1403
- b(u).time && !p.inAllDayBar ? (C(), L("div", Jt, [
1404
- b(o).isMonth ? (C(), L("span", Ut, ",")) : U("", !0),
1405
- ve("span", Zt, ce(v._[`startTimeFormatted${b(u).twelveHour ? 12 : 24}`]), 1),
1406
- b(o).isMonth ? U("", !0) : (C(), L("span", Kt, " - " + ce(v._[`endTimeFormatted${b(u).twelveHour ? 12 : 24}`]), 1))
1413
+ ve("div", qt, ce(g.title), 1),
1414
+ Y(c).time && !p.inAllDayBar ? (V(), H("div", Jt, [
1415
+ Y(o).isMonth ? (V(), H("span", Ut, ",")) : U("", !0),
1416
+ ve("span", Zt, ce(g._[`startTimeFormatted${Y(c).twelveHour ? 12 : 24}`]), 1),
1417
+ Y(o).isMonth ? U("", !0) : (V(), H("span", Kt, " - " + ce(g._[`endTimeFormatted${Y(c).twelveHour ? 12 : 24}`]), 1))
1407
1418
  ])) : U("", !0),
1408
- p.inAllDayBar ? U("", !0) : (C(), L("div", {
1419
+ p.inAllDayBar ? U("", !0) : (V(), H("div", {
1409
1420
  key: 1,
1410
1421
  class: "vuecal__event-content",
1411
- innerHTML: v.content
1422
+ innerHTML: g.content
1412
1423
  }, null, 8, Qt))
1413
1424
  ])
1414
1425
  ]),
1415
- P.value ? (C(), L("div", {
1426
+ F.value ? (V(), H("div", {
1416
1427
  key: 0,
1417
1428
  class: "vuecal__event-resizer",
1418
- onDragstart: h[0] || (h[0] = et(() => {
1429
+ onDragstart: v[0] || (v[0] = et(() => {
1419
1430
  }, ["prevent", "stop"]))
1420
1431
  }, null, 32)) : U("", !0),
1421
- je(Ge, { name: "vuecal-delete-btn" }, {
1422
- default: W(() => [
1423
- v._.deleting ? (C(), L("div", {
1432
+ je(qe, { name: "vuecal-delete-btn" }, {
1433
+ default: I(() => [
1434
+ g._.deleting ? (V(), H("div", {
1424
1435
  key: 0,
1425
1436
  class: "vuecal__event-delete",
1426
- onClick: h[1] || (h[1] = et((z) => v.delete(3), ["stop"]))
1437
+ onClick: v[1] || (v[1] = et((L) => g.delete(3), ["stop"]))
1427
1438
  }, "Delete")) : U("", !0)
1428
1439
  ]),
1429
1440
  _: 1
@@ -1451,7 +1462,7 @@ const lt = (p, t) => {
1451
1462
  }, oa = {
1452
1463
  key: 5,
1453
1464
  class: "vuecal__cell-events-count"
1454
- }, ia = ["title"], $t = {
1465
+ }, ia = ["title"], _t = {
1455
1466
  __name: "cell",
1456
1467
  props: {
1457
1468
  // Even with time=false, the date of the cell will still be provided in order to attach
@@ -1463,9 +1474,9 @@ const lt = (p, t) => {
1463
1474
  // True when the cell is an all-day cell.
1464
1475
  },
1465
1476
  setup(p) {
1466
- const t = p, u = ze("vuecal"), { view: o, config: w, dateUtils: _, eventsManager: N, dnd: d, touch: H } = u, v = E(() => _.isToday(t.start)), c = ie(null), y = ie([]), P = ie(!1), I = (r) => {
1467
- y.value.push(r.detail), P.value = !0;
1468
- }, a = () => setTimeout(() => P.value = !1, 300), s = Te({
1477
+ const e = p, c = ze("vuecal"), { view: o, config: w, dateUtils: $, eventsManager: N, dnd: m, touch: P } = c, g = E(() => $.isToday(e.start)), u = ie(null), D = ie([]), F = ie(!1), X = (i) => {
1478
+ D.value.push(i.detail), F.value = !0;
1479
+ }, t = () => setTimeout(() => F.value = !1, 300), r = Te({
1469
1480
  dragging: !1,
1470
1481
  holding: !1,
1471
1482
  // When the cell is clicked and hold for a certain amount of time.
@@ -1473,6 +1484,10 @@ const lt = (p, t) => {
1473
1484
  // Cell click and hold detection.
1474
1485
  thresholdPassed: !1,
1475
1486
  // If the drag threshold has been passed.
1487
+ canTouchAndDrag: null,
1488
+ // Wait for 500ms before allowing an event to be dragged after touchstart.
1489
+ touchAndDragTimer: null,
1490
+ // Timer for canTouchAndDrag.
1476
1491
  startX: 0,
1477
1492
  // The x position at the start of the drag (mousedown or touchstart).
1478
1493
  startY: 0,
@@ -1486,273 +1501,284 @@ const lt = (p, t) => {
1486
1501
  movePercentageX: 0,
1487
1502
  movePercentageY: 0,
1488
1503
  schedule: null
1489
- }), e = ie(!1), k = ie({ cellOverlaps: {}, longestStreak: 0 }), i = E(() => {
1490
- let r = Math.min(s.startPercentageY, s.movePercentageY), Y = Math.max(s.startPercentageY, s.movePercentageY), j = Le(r, w), M = Le(Y, w);
1491
- return w.snapToInterval && (j = _.snapToInterval(j, w.snapToInterval), M = _.snapToInterval(M, w.snapToInterval), r = Oe(j, w), Y = Oe(M, w)), {
1504
+ }), _ = ie(!1), a = ie({ cellOverlaps: {}, longestStreak: 0 }), z = E(() => {
1505
+ let i = Math.min(r.startPercentageY, r.movePercentageY), S = Math.max(r.startPercentageY, r.movePercentageY), C = Le(i, w), T = Le(S, w);
1506
+ return w.snapToInterval && (C = $.snapToInterval(C, w.snapToInterval), T = $.snapToInterval(T, w.snapToInterval), i = Oe(C, w), S = Oe(T, w)), {
1492
1507
  style: {
1493
- top: `${r}%`,
1494
- height: `${Math.abs(Y - r)}%`
1508
+ top: `${i}%`,
1509
+ height: `${Math.abs(S - i)}%`
1495
1510
  },
1496
- startMinutes: j,
1497
- endMinutes: M,
1498
- start: _.formatMinutes(j),
1499
- end: _.formatMinutes(M),
1500
- ...s.schedule ? { schedule: s.schedule } : {}
1511
+ startMinutes: C,
1512
+ endMinutes: T,
1513
+ start: $.formatMinutes(C),
1514
+ end: $.formatMinutes(T),
1515
+ ...r.schedule ? { schedule: r.schedule } : {}
1501
1516
  };
1502
- }), V = E(() => {
1503
- const r = w.editableEvents.create && (s.dragging || e.value), Y = w.eventCreateMinDrag && s.thresholdPassed || !w.eventCreateMinDrag;
1504
- return r && Y;
1505
- }), F = E(() => {
1506
- var re;
1507
- const r = /* @__PURE__ */ new Date(), Y = o.start.getFullYear(), j = o.start.getMonth(), M = t.start.getFullYear(), B = t.start.getMonth();
1517
+ }), s = E(() => {
1518
+ const i = w.editableEvents.create && (r.dragging || _.value), S = w.eventCreateMinDrag && r.thresholdPassed || !w.eventCreateMinDrag, C = r.canTouchAndDrag !== !1;
1519
+ return i && S && C;
1520
+ }), A = E(() => {
1521
+ var le;
1522
+ const i = /* @__PURE__ */ new Date(), S = o.start.getFullYear(), C = o.start.getMonth(), T = e.start.getFullYear(), W = e.start.getMonth();
1508
1523
  return {
1509
- [`vuecal__cell--${Xe[t.start.getDay()]}`]: o.isDay || o.isDays || o.isWeek || o.isMonth,
1510
- [`vuecal__cell--${Et[B]}`]: o.isYear,
1511
- [`vuecal__cell--${M}`]: o.isYears,
1512
- "vuecal__cell--today": v.value,
1513
- "vuecal__cell--current-month": o.isYear && M === r.getFullYear() && B === r.getMonth(),
1514
- "vuecal__cell--current-year": o.isYears && M === r.getFullYear(),
1515
- "vuecal__cell--out-of-range": o.isMonth && (M !== Y || B !== j),
1516
- "vuecal__cell--before-min": ae.value && X.value,
1517
- "vuecal__cell--after-max": ae.value && J.value,
1524
+ [`vuecal__cell--${Ge[e.start.getDay()]}`]: o.isDay || o.isDays || o.isWeek || o.isMonth,
1525
+ [`vuecal__cell--${Et[W]}`]: o.isYear,
1526
+ [`vuecal__cell--${T}`]: o.isYears,
1527
+ "vuecal__cell--today": g.value,
1528
+ "vuecal__cell--current-month": o.isYear && T === i.getFullYear() && W === i.getMonth(),
1529
+ "vuecal__cell--current-year": o.isYears && T === i.getFullYear(),
1530
+ "vuecal__cell--out-of-range": o.isMonth && (T !== S || W !== C),
1531
+ "vuecal__cell--before-min": ae.value && B.value,
1532
+ "vuecal__cell--after-max": ae.value && G.value,
1518
1533
  "vuecal__cell--disabled": ae.value,
1519
- "vuecal__cell--selected": o.selectedDate && o.selectedDate.getTime() >= t.start.getTime() && o.selectedDate.getTime() <= t.end.getTime(),
1520
- "vuecal__cell--has-schedules": (re = w.schedules) == null ? void 0 : re.length,
1521
- "vuecal__cell--dragging": s.dragging,
1522
- "vuecal__cell--has-events": m.value.length
1534
+ "vuecal__cell--selected": o.selectedDate && o.selectedDate.getTime() >= e.start.getTime() && o.selectedDate.getTime() <= e.end.getTime(),
1535
+ "vuecal__cell--has-schedules": (le = w.schedules) == null ? void 0 : le.length,
1536
+ "vuecal__cell--dragging": r.dragging,
1537
+ "vuecal__cell--has-events": d.value.length
1523
1538
  };
1524
1539
  });
1525
- E(() => _.formatDate(t.start));
1526
- const A = E(() => {
1540
+ E(() => $.formatDate(e.start));
1541
+ const M = E(() => {
1527
1542
  switch (o.id) {
1528
1543
  case "day":
1529
1544
  return "";
1530
1545
  case "days":
1531
- return w.availableViews.days.rows > 1 && _.formatDate(t.start, "D"), "";
1546
+ return w.availableViews.days.rows > 1 && $.formatDate(e.start, "D"), "";
1532
1547
  case "week":
1533
1548
  return "";
1534
1549
  case "month":
1535
- return _.formatDate(t.start, "D");
1550
+ return $.formatDate(e.start, "D");
1536
1551
  case "year":
1537
- return _.formatDate(t.start, w.xs ? "MMM" : "MMMM");
1552
+ return $.formatDate(e.start, w.xs ? "MMM" : "MMMM");
1538
1553
  case "years":
1539
- return _.formatDate(t.start, "YYYY");
1554
+ return $.formatDate(e.start, "YYYY");
1540
1555
  }
1541
- }), m = E(() => w.datePicker ? [] : N.getEventsInRange(
1542
- t.start,
1543
- t.end,
1544
- { excludeIds: y.value, ...w.allDayEvents ? { allDay: t.allDay } : {} }
1545
- )), h = E(() => m.value.filter((r) => !r.background)), z = E(() => {
1546
- var r;
1547
- return (r = w.schedules) == null ? void 0 : r.reduce((Y, j) => (Y[j.id] = m.value.filter((M) => M.schedule === j.id), Y), {});
1556
+ }), d = E(() => w.datePicker ? [] : N.getEventsInRange(
1557
+ e.start,
1558
+ e.end,
1559
+ { excludeIds: D.value, ...w.allDayEvents ? { allDay: e.allDay } : {} }
1560
+ )), v = E(() => d.value.filter((i) => !i.background)), L = E(() => {
1561
+ var i;
1562
+ return (i = w.schedules) == null ? void 0 : i.reduce((S, C) => (S[C.id] = d.value.filter((T) => T.schedule === C.id), S), {});
1548
1563
  }), f = E(() => {
1549
- if (o.isMonth || o.isYear || o.isYears || t.allDay) return {};
1550
- const r = typeof document < "u" && document.documentElement.getAttribute("dir") === "rtl", Y = {};
1551
- for (const j of m.value) {
1552
- const M = j._.id, { maxConcurrent: B = 1, position: q = 0 } = k.value.cellOverlaps[M] || {}, re = r ? "right" : "left";
1553
- Y[M] = { [re]: `${100 / B * q}%` }, w.stackEvents ? Y[M].width = `${100 / B + (q === B - 1 ? 0 : 15)}%` : Y[M].width = `${100 / B}%`;
1564
+ if (o.isMonth || o.isYear || o.isYears || e.allDay) return {};
1565
+ const i = typeof document < "u" && document.documentElement.getAttribute("dir") === "rtl", S = {};
1566
+ for (const C of d.value) {
1567
+ const T = C._.id, { maxConcurrent: W = 1, position: J = 0 } = a.value.cellOverlaps[T] || {}, le = i ? "right" : "left";
1568
+ S[T] = { [le]: `${100 / W * J}%` }, w.stackEvents ? S[T].width = `${100 / W + (J === W - 1 ? 0 : 15)}%` : S[T].width = `${100 / W}%`;
1554
1569
  }
1555
- return Y;
1556
- }), T = E(() => {
1557
- const r = {};
1558
- for (const Y of m.value) {
1559
- const j = Y._.id, { maxConcurrent: M = 1, position: B = 0 } = k.value.cellOverlaps[j] || {};
1560
- r[j] = `vuecal__event--stack-${B + 1}-${M}`;
1570
+ return S;
1571
+ }), k = E(() => {
1572
+ const i = {};
1573
+ for (const S of d.value) {
1574
+ const C = S._.id, { maxConcurrent: T = 1, position: W = 0 } = a.value.cellOverlaps[C] || {};
1575
+ i[C] = `vuecal__event--stack-${W + 1}-${T}`;
1561
1576
  }
1562
- return r;
1563
- }), S = E(() => w.showCellEventCount && h.value.length), l = E(() => {
1564
- var j;
1565
- if (!w.specialHours || o.isMonth || o.isYear || o.isYears || t.allDay) return;
1566
- const r = Xe[t.start.getDay()];
1567
- let Y = (j = w.specialHours) == null ? void 0 : j[r];
1568
- if (Y)
1569
- return Array.isArray(Y) || (Y = [Y]), Y.map((M) => {
1570
- let { from: B, to: q, class: re, label: we } = M;
1571
- if (isNaN(B) || isNaN(q) || w.timeFrom >= q || w.timeTo <= B) return;
1572
- B = Math.max(w.timeFrom, B), q = Math.min(w.timeTo, q);
1573
- const g = Oe(B, w), R = Oe(q, w) - g;
1577
+ return i;
1578
+ }), O = E(() => w.showCellEventCount && v.value.length), l = E(() => {
1579
+ var C;
1580
+ if (!w.specialHours || o.isMonth || o.isYear || o.isYears || e.allDay) return;
1581
+ const i = Ge[e.start.getDay()];
1582
+ let S = (C = w.specialHours) == null ? void 0 : C[i];
1583
+ if (S)
1584
+ return Array.isArray(S) || (S = [S]), S.map((T) => {
1585
+ let { from: W, to: J, class: le, label: pe } = T;
1586
+ if (isNaN(W) || isNaN(J) || w.timeFrom >= J || w.timeTo <= W) return;
1587
+ W = Math.max(w.timeFrom, W), J = Math.min(w.timeTo, J);
1588
+ const h = Oe(W, w), R = Oe(J, w) - h;
1574
1589
  return {
1575
- style: { top: `${g}%`, height: `${R}%` },
1576
- label: we,
1577
- class: re
1590
+ style: { top: `${h}%`, height: `${R}%` },
1591
+ label: pe,
1592
+ class: le
1578
1593
  };
1579
- }).filter((M) => !!M);
1580
- }), X = E(() => w.minTimestamp !== null && w.minTimestamp > t.end.getTime()), J = E(() => w.maxTimestamp && w.maxTimestamp < t.start.getTime()), ae = E(() => {
1581
- const { disableDays: r } = w, Y = o.isYear || o.isYears;
1582
- return r.length && r.includes(_.formatDate(t.start)) && !Y ? !0 : X.value || J.value;
1583
- }), se = Te({
1594
+ }).filter((T) => !!T);
1595
+ }), B = E(() => w.minTimestamp !== null && w.minTimestamp > e.end.getTime()), G = E(() => w.maxTimestamp && w.maxTimestamp < e.start.getTime()), ae = E(() => {
1596
+ const { disableDays: i } = w, S = o.isYear || o.isYears;
1597
+ return i.length && i.includes($.formatDate(e.start)) && !S ? !0 : B.value || G.value;
1598
+ }), ne = Te({
1584
1599
  show: E(() => {
1585
- if (!(!o.isDay && !o.isDays && !o.isWeek) && !(!v.value || !w.time || t.allDay) && !(w.timeFrom > _.dateToMinutes(o.now)) && !(_.dateToMinutes(o.now) > w.timeTo))
1600
+ if (!(!o.isDay && !o.isDays && !o.isWeek) && !(!g.value || !w.time || e.allDay) && !(w.timeFrom > $.dateToMinutes(o.now)) && !($.dateToMinutes(o.now) > w.timeTo))
1586
1601
  return !0;
1587
1602
  }),
1588
- nowInMinutes: E(() => _.dateToMinutes(o.now)),
1589
- todaysTimePosition: E(() => Oe(se.nowInMinutes, w)),
1590
- style: E(() => `top: ${se.todaysTimePosition}%`),
1591
- currentTime: E(() => _.formatTime(o.now))
1603
+ nowInMinutes: E(() => $.dateToMinutes(o.now)),
1604
+ todaysTimePosition: E(() => Oe(ne.nowInMinutes, w)),
1605
+ style: E(() => `top: ${ne.todaysTimePosition}%`),
1606
+ currentTime: E(() => $.formatTime(o.now))
1592
1607
  }), de = E(() => {
1593
1608
  if (ae.value) return {};
1594
- const r = { ...w.eventListeners.cell };
1595
- for (const [M, B] of Object.entries(r))
1596
- r[M] = (q) => {
1597
- var re, we, g;
1598
- (g = (we = q.target || ((re = q.e) == null ? void 0 : re.target)).closest) != null && g.call(we, ".vuecal__event") || B(q.type ? { e: q, cell: Z.value, cursor: ee.value } : q);
1609
+ const i = { ...w.eventListeners.cell };
1610
+ for (const [T, W] of Object.entries(i))
1611
+ i[T] = (J) => {
1612
+ var le, pe, h;
1613
+ (h = (pe = J.target || ((le = J.e) == null ? void 0 : le.target)).closest) != null && h.call(pe, ".vuecal__event") || W(J.type ? { e: J, cell: Z.value, cursor: ee.value } : J);
1599
1614
  };
1600
- const Y = { ...r };
1601
- let j = null;
1602
- return r.click = (M) => {
1603
- var q;
1615
+ const S = { ...i };
1616
+ let C = null;
1617
+ return i.click = (T) => {
1618
+ var J;
1604
1619
  oe();
1605
- const B = he(M);
1606
- (q = Y.click) == null || q.call(Y, { e: M, cell: Z.value, cursor: B }), j ? j = clearTimeout(j) : j = setTimeout(() => {
1607
- var re;
1608
- j = null, (re = Y["delayed-click"]) == null || re.call(Y, { e: M, cell: Z.value, cursor: B });
1620
+ const W = ye(T);
1621
+ (J = S.click) == null || J.call(S, { e: T, cell: Z.value, cursor: W }), C ? C = clearTimeout(C) : C = setTimeout(() => {
1622
+ var le;
1623
+ C = null, (le = S["delayed-click"]) == null || le.call(S, { e: T, cell: Z.value, cursor: W });
1609
1624
  }, 400);
1610
- }, (w.time && o.isDay || o.isDays || o.isWeek) && (r.touchstart = (M) => {
1611
- var B;
1612
- n(M.e || M), (B = Y.touchstart) == null || B.call(Y, { e: M, cell: Z.value, cursor: ee.value });
1613
- }, r.mousedown = (M) => {
1614
- var B;
1615
- n(M.e || M), (B = Y.mousedown) == null || B.call(Y, { e: M, cell: Z.value, cursor: ee.value });
1616
- }), Y.dblclick && (r.dblclick = (M) => {
1617
- var B;
1618
- (B = Y.dblclick) == null || B.call(Y, { e: M, cell: Z.value, cursor: he(M) });
1619
- }), w.editableEvents.drag && (r.dragenter = (M) => d.cellDragEnter(M, Z.value), r.dragover = (M) => {
1620
- M.preventDefault(), d.cellDragOver(M, Z.value);
1621
- }, r.dragleave = (M) => d.cellDragLeave(M, Z.value), r.drop = (M) => d.cellDragDrop(M, Z.value, t.allDay)), r;
1625
+ }, (w.time && o.isDay || o.isDays || o.isWeek) && (i.touchstart = (T) => {
1626
+ var W;
1627
+ n(T.e || T), (W = S.touchstart) == null || W.call(S, { e: T, cell: Z.value, cursor: ee.value });
1628
+ }, i.mousedown = (T) => {
1629
+ var W;
1630
+ n(T.e || T), (W = S.mousedown) == null || W.call(S, { e: T, cell: Z.value, cursor: ee.value });
1631
+ }), S.dblclick && (i.dblclick = (T) => {
1632
+ var W;
1633
+ (W = S.dblclick) == null || W.call(S, { e: T, cell: Z.value, cursor: ye(T) });
1634
+ }), w.editableEvents.drag && (i.dragenter = (T) => m.cellDragEnter(T, Z.value), i.dragover = (T) => {
1635
+ T.preventDefault(), m.cellDragOver(T, Z.value);
1636
+ }, i.dragleave = (T) => m.cellDragLeave(T, Z.value), i.drop = (T) => m.cellDragDrop(T, Z.value, e.allDay)), i;
1622
1637
  }), Z = E(() => ({
1623
- start: t.start,
1624
- end: t.end,
1625
- events: m,
1626
- ...s.schedule ? { schedule: s.schedule } : {},
1638
+ start: e.start,
1639
+ end: e.end,
1640
+ events: d,
1641
+ ...r.schedule ? { schedule: r.schedule } : {},
1627
1642
  goNarrower: () => o.narrower(),
1628
1643
  goBroader: () => o.broader(),
1629
1644
  broader: o.broaderView,
1630
1645
  narrower: o.narrowerView
1631
- })), he = (r) => {
1632
- var q;
1633
- const Y = (((q = r.touches) == null ? void 0 : q[0]) || r).clientY, { top: j } = c.value.getBoundingClientRect(), M = Ke(Y - j, c.value), B = new Date(t.start);
1634
- return B.setMinutes(Le(M, w)), { y: M, date: B };
1646
+ })), ye = (i) => {
1647
+ var J;
1648
+ const S = (((J = i.touches) == null ? void 0 : J[0]) || i).clientY, { top: C } = u.value.getBoundingClientRect(), T = Ke(S - C, u.value), W = new Date(e.start);
1649
+ return W.setMinutes(Le(T, w)), { y: T, date: W };
1635
1650
  }, ee = E(() => {
1636
- const r = Le(s.movePercentageY || s.startPercentageY, w), Y = new Date(t.start);
1637
- return Y.setMinutes(r), {
1638
- x: s.movePercentageX || s.startPercentageX,
1639
- y: s.movePercentageY || s.startPercentageY,
1640
- date: Y
1651
+ const i = Le(r.movePercentageY || r.startPercentageY, w), S = new Date(e.start);
1652
+ return S.setMinutes(i), {
1653
+ x: r.movePercentageX || r.startPercentageX,
1654
+ y: r.movePercentageY || r.startPercentageY,
1655
+ date: S
1641
1656
  };
1642
1657
  }), oe = () => {
1643
- o.updateSelectedDate(t.start), w.clickToNavigate && ((o.isMonth || o.isDays || o.isWeek) && w.availableViews.day ? o.switch("day") : o.isYear && w.availableViews.month ? o.switch("month") : o.isYears && w.availableViews.year && o.switch("year")), o.updateViewDate(t.start);
1644
- }, n = (r) => {
1645
- var j, M;
1646
- s.schedule = ~~r.target.dataset.schedule;
1647
- const Y = c.value.getBoundingClientRect();
1648
- s.startX = (((j = r.touches) == null ? void 0 : j[0]) || r).clientX - Y.left, s.startY = (((M = r.touches) == null ? void 0 : M[0]) || r).clientY - Y.top, s.startPercentageX = s.startX * 100 / Y.width, s.startPercentageY = s.startY * 100 / Y.height, s.thresholdPassed = !1, document.addEventListener(r.type === "touchstart" ? "touchmove" : "mousemove", $), document.addEventListener(r.type === "touchstart" ? "touchend" : "mouseup", D, { once: !0 }), s.holdTimer = setTimeout(() => {
1649
- var B, q;
1650
- s.holding = !0, (q = (B = de.value).hold) == null || q.call(B, { e: r, cell: Z.value, cursor: ee.value });
1658
+ o.updateSelectedDate(e.start), w.clickToNavigate && ((o.isMonth || o.isDays || o.isWeek) && w.availableViews.day ? o.switch("day") : o.isYear && w.availableViews.month ? o.switch("month") : o.isYears && w.availableViews.year && o.switch("year")), o.updateViewDate(e.start);
1659
+ }, n = (i) => {
1660
+ var T, W;
1661
+ const S = i.type === "touchstart";
1662
+ S ? (r.canTouchAndDrag = !1, r.touchAndDragTimer = setTimeout(() => {
1663
+ r.canTouchAndDrag = !0, (r.holding || r.dragging) && i.preventDefault();
1664
+ }, 500)) : r.canTouchAndDrag = !0, r.schedule = ~~i.target.dataset.schedule;
1665
+ const C = u.value.getBoundingClientRect();
1666
+ r.startX = (((T = i.touches) == null ? void 0 : T[0]) || i).clientX - C.left, r.startY = (((W = i.touches) == null ? void 0 : W[0]) || i).clientY - C.top, r.startPercentageX = r.startX * 100 / C.width, r.startPercentageY = r.startY * 100 / C.height, r.thresholdPassed = !1, document.addEventListener(S ? "touchmove" : "mousemove", b, { passive: !S }), document.addEventListener(S ? "touchend" : "mouseup", y, { once: !0 }), r.holdTimer = setTimeout(() => {
1667
+ var J, le;
1668
+ r.holding = !0, (le = (J = de.value).hold) == null || le.call(J, { e: i, cell: Z.value, cursor: ee.value });
1651
1669
  }, 1e3);
1652
- }, $ = (r) => {
1653
- var j, M, B, q, re, we;
1654
- s.dragging || (H.isDraggingCell = !0, (M = (j = de.value)["drag-start"]) == null || M.call(j, { e: r, cell: Z.value, cursor: ee.value })), s.dragging = !0, s.holdTimer = clearTimeout(s.holdTimer), s.holding = !1;
1655
- const Y = c.value.getBoundingClientRect();
1656
- s.moveX = (((B = r.touches) == null ? void 0 : B[0]) || r).clientX - Y.left, s.moveY = (((q = r.touches) == null ? void 0 : q[0]) || r).clientY - Y.top, s.movePercentageX = s.moveX * 100 / Y.width, s.movePercentageY = s.moveY * 100 / Y.height, w.eventCreateMinDrag && Math.abs(s.startY - s.moveY) > w.eventCreateMinDrag && (s.thresholdPassed = !0), (we = (re = de.value).drag) == null || we.call(re, { e: r, cell: Z.value, cursor: ee.value });
1657
- }, D = async (r) => {
1658
- var Y, j;
1659
- document.removeEventListener(r.type === "touchend" ? "touchmove" : "mousemove", $, { passive: !1 }), s.dragging && ((j = (Y = de.value)["drag-end"]) == null || j.call(Y, { e: r, cell: Z.value, cursor: ee.value }), H.isDraggingCell = !1, w.editableEvents.create && (e.value = !0, await G(r), e.value = !1)), s.holdTimer = clearTimeout(s.holdTimer), s.holding = !1, s.dragging = !1, s.startX = 0, s.startY = 0, s.moveX = 0, s.moveY = 0, s.startPercentageX = 0, s.startPercentageY = 0, s.movePercentageX = 0, s.movePercentageY = 0, s.thresholdPassed = !1, s.schedule = null;
1660
- }, G = async (r) => {
1661
- if (!V.value) return;
1662
- let { start: Y, end: j, startMinutes: M, endMinutes: B } = i.value;
1663
- Y = new Date(t.start), Y.setMinutes(M), j = new Date(t.start), j.setMinutes(B);
1664
- let q = { ...i.value, start: Y, end: j };
1665
- const { create: re } = w.eventListeners.event;
1666
- if (typeof re == "function") {
1667
- const we = q;
1668
- q = await new Promise((g) => re({ e: r, event: q, cell: Z.value, resolve: g, cursor: ee.value })), q && typeof q == "object" && o.createEvent(q), q && typeof q == "boolean" && o.createEvent(we);
1669
- } else o.createEvent(q);
1670
+ }, b = (i) => {
1671
+ var T, W, J, le, pe, h;
1672
+ const S = i.type === "touchmove";
1673
+ if (S && !r.canTouchAndDrag) {
1674
+ r.touchAndDragTimer && (clearTimeout(r.touchAndDragTimer), r.touchAndDragTimer = null), y(i);
1675
+ return;
1676
+ }
1677
+ S && i.preventDefault(), r.dragging || (P.isDraggingCell = !0, (W = (T = de.value)["drag-start"]) == null || W.call(T, { e: i, cell: Z.value, cursor: ee.value })), r.dragging = !0, r.holdTimer = clearTimeout(r.holdTimer), r.holding = !1;
1678
+ const C = u.value.getBoundingClientRect();
1679
+ r.moveX = (((J = i.touches) == null ? void 0 : J[0]) || i).clientX - C.left, r.moveY = (((le = i.touches) == null ? void 0 : le[0]) || i).clientY - C.top, r.movePercentageX = r.moveX * 100 / C.width, r.movePercentageY = r.moveY * 100 / C.height, w.eventCreateMinDrag && Math.abs(r.startY - r.moveY) > w.eventCreateMinDrag && (r.thresholdPassed = !0), (h = (pe = de.value).drag) == null || h.call(pe, { e: i, cell: Z.value, cursor: ee.value });
1680
+ }, y = async (i) => {
1681
+ var C, T;
1682
+ const S = i.type === "touchend";
1683
+ document.removeEventListener(S ? "touchmove" : "mousemove", b, { passive: !1 }), r.touchAndDragTimer && (clearTimeout(r.touchAndDragTimer), r.touchAndDragTimer = null), r.dragging && ((T = (C = de.value)["drag-end"]) == null || T.call(C, { e: i, cell: Z.value, cursor: ee.value }), P.isDraggingCell = !1, w.editableEvents.create && r.canTouchAndDrag && (_.value = !0, await q(i), _.value = !1)), r.holdTimer = clearTimeout(r.holdTimer), r.holding = !1, r.dragging = !1, r.startX = 0, r.startY = 0, r.moveX = 0, r.moveY = 0, r.startPercentageX = 0, r.startPercentageY = 0, r.movePercentageX = 0, r.movePercentageY = 0, r.thresholdPassed = !1, r.schedule = null, r.canTouchAndDrag = null;
1684
+ }, q = async (i) => {
1685
+ var pe;
1686
+ if (!s.value) return;
1687
+ let { start: S, end: C, startMinutes: T, endMinutes: W } = z.value;
1688
+ S = new Date(e.start), S.setMinutes(T), C = new Date(e.start), C.setMinutes(W);
1689
+ let J = { ...z.value, start: S, end: C };
1690
+ const { create: le } = w.eventListeners.event;
1691
+ if (typeof le == "function") {
1692
+ const h = J;
1693
+ J = await new Promise((R) => le({ e: i, event: J, cell: Z.value, resolve: R, cursor: ee.value })), J && typeof J == "object" && o.createEvent(J), J && typeof J == "boolean" && o.createEvent(h);
1694
+ } else o.createEvent(J);
1695
+ (pe = navigator.vibrate) == null || pe.call(navigator, 200);
1670
1696
  }, K = () => {
1671
- var r;
1672
- for (const Y of Object.keys(de.value))
1673
- (r = c.value) == null || r.removeEventListener(Y, de.value[Y]);
1697
+ var i;
1698
+ for (const S of Object.keys(de.value))
1699
+ (i = u.value) == null || i.removeEventListener(S, de.value[S]);
1674
1700
  }, De = () => {
1675
- k.value = N.getCellOverlappingEvents(t.start, t.end);
1701
+ a.value = N.getCellOverlappingEvents(e.start, e.end, e.allDay);
1676
1702
  };
1677
1703
  return me(
1678
1704
  // Watch event IDs and start/end dates (only) to detect event resizing/dnd.
1679
- () => !o.isYears && !o.isYear && h.value.map((r) => `${r._.id}${r.start.getTime()}${r.end.getTime()}`).join(),
1705
+ () => !o.isYears && !o.isYear && v.value.map((i) => `${i._.id}${i.start.getTime()}${i.end.getTime()}`).join(),
1680
1706
  async () => {
1681
- await Je(), De();
1707
+ await Ie(), De();
1682
1708
  },
1683
1709
  { immediate: !0, flush: "post" }
1684
1710
  // Use flush: 'post' to prevent infinite updates.
1685
- ), Be(async () => {
1686
- for (const r of y.value) N.deleteEvent(r, 3);
1687
- K(), await Je();
1688
- }), (r, Y) => (C(), L("div", le({
1689
- class: ["vuecal__cell", F.value],
1711
+ ), Ne(async () => {
1712
+ for (const i of D.value) N.deleteEvent(i, 3);
1713
+ K(), await Ie();
1714
+ }), (i, S) => (V(), H("div", re({
1715
+ class: ["vuecal__cell", A.value],
1690
1716
  ref_key: "cellEl",
1691
- ref: c
1692
- }, Re(de.value, !0)), [
1693
- r.$slots.cell ? O(r.$slots, "cell", {
1717
+ ref: u
1718
+ }, Xe(de.value, !0)), [
1719
+ i.$slots.cell ? j(i.$slots, "cell", {
1694
1720
  key: 0,
1695
1721
  cell: Z.value
1696
1722
  }) : U("", !0),
1697
- l.value ? (C(!0), L(ue, { key: 1 }, pe(l.value, (j, M) => (C(), L("div", {
1698
- class: ye(["vuecal__special-hours", j.class]),
1699
- style: _e(j.style),
1700
- innerHTML: j.label || ""
1723
+ l.value ? (V(!0), H(ue, { key: 1 }, we(l.value, (C, T) => (V(), H("div", {
1724
+ class: he(["vuecal__special-hours", C.class]),
1725
+ style: $e(C.style),
1726
+ innerHTML: C.label || ""
1701
1727
  }, null, 14, xt))), 256)) : U("", !0),
1702
- !r.$slots.cell && b(w).schedules ? (C(!0), L(ue, { key: 2 }, pe(b(w).schedules, (j) => (C(), L("div", {
1703
- class: ye(["vuecal__schedule vuecal__schedule--cell", j.class]),
1704
- key: j.id,
1705
- style: _e(j.style || null),
1706
- "data-schedule": j.id
1728
+ !i.$slots.cell && Y(w).schedules ? (V(!0), H(ue, { key: 2 }, we(Y(w).schedules, (C) => (V(), H("div", {
1729
+ class: he(["vuecal__schedule vuecal__schedule--cell", C.class]),
1730
+ key: C.id,
1731
+ style: $e(C.style || null),
1732
+ "data-schedule": C.id
1707
1733
  }, [
1708
- r.$slots["cell-events"] ? O(r.$slots, "cell-events", {
1734
+ i.$slots["cell-events"] ? j(i.$slots, "cell-events", {
1709
1735
  key: 0,
1710
1736
  cell: Z.value
1711
1737
  }) : U("", !0),
1712
- A.value || r.$slots["cell-date"] ? (C(), L("div", ta, [
1713
- O(r.$slots, "cell-date", { cell: Z.value }, () => [
1714
- Ue(ce(A.value), 1)
1738
+ M.value || i.$slots["cell-date"] ? (V(), H("div", ta, [
1739
+ j(i.$slots, "cell-date", { cell: Z.value }, () => [
1740
+ Ue(ce(M.value), 1)
1715
1741
  ])
1716
1742
  ])) : U("", !0),
1717
- r.$slots["cell-content"] ? (C(), L("div", aa, [
1718
- O(r.$slots, "cell-content", { cell: Z.value })
1743
+ i.$slots["cell-content"] ? (V(), H("div", aa, [
1744
+ j(i.$slots, "cell-content", { cell: Z.value })
1719
1745
  ])) : U("", !0),
1720
- r.$slots["cell-events"] && m.value.length ? (C(), L("div", na, [
1721
- O(r.$slots, "cell-events", { cell: Z.value })
1722
- ])) : m.value.length || P.value ? (C(), Se(tt, {
1746
+ i.$slots["cell-events"] && d.value.length ? (V(), H("div", na, [
1747
+ j(i.$slots, "cell-events", { cell: Z.value })
1748
+ ])) : d.value.length || F.value ? (V(), Se(tt, {
1723
1749
  key: 4,
1724
1750
  class: "vuecal__cell-events",
1725
1751
  name: "vuecal-event-delete",
1726
- onBeforeLeave: Y[0] || (Y[0] = (M) => P.value = !0),
1727
- onAfterLeave: a,
1752
+ onBeforeLeave: S[0] || (S[0] = (T) => F.value = !0),
1753
+ onAfterLeave: t,
1728
1754
  tag: "div"
1729
1755
  }, {
1730
- default: W(() => [
1731
- (C(!0), L(ue, null, pe(z.value[j.id], (M) => (C(), Se(st, {
1732
- key: M._.id,
1733
- event: M,
1734
- onEventDeleted: I,
1735
- "in-all-day-bar": t.allDay,
1736
- style: _e(f.value[M._.id])
1756
+ default: I(() => [
1757
+ (V(!0), H(ue, null, we(L.value[C.id], (T) => (V(), Se(st, {
1758
+ key: T._.id,
1759
+ event: T,
1760
+ onEventDeleted: X,
1761
+ "in-all-day-bar": e.allDay,
1762
+ style: $e(f.value[T._.id])
1737
1763
  }, Ce({ _: 2 }, [
1738
- r.$slots["event.all-day"] && t.allDay ? {
1764
+ i.$slots["event.all-day"] && e.allDay ? {
1739
1765
  name: "event.all-day",
1740
- fn: W((B) => [
1741
- O(r.$slots, "event.all-day", le({ ref_for: !0 }, B))
1766
+ fn: I((W) => [
1767
+ j(i.$slots, "event.all-day", re({ ref_for: !0 }, W))
1742
1768
  ]),
1743
1769
  key: "0"
1744
1770
  } : void 0,
1745
- r.$slots[`event.${b(o).id}`] ? {
1746
- name: `event.${b(o).id}`,
1747
- fn: W((B) => [
1748
- O(r.$slots, `event.${b(o).id}`, le({ ref_for: !0 }, B))
1771
+ i.$slots[`event.${Y(o).id}`] ? {
1772
+ name: `event.${Y(o).id}`,
1773
+ fn: I((W) => [
1774
+ j(i.$slots, `event.${Y(o).id}`, re({ ref_for: !0 }, W))
1749
1775
  ]),
1750
1776
  key: "1"
1751
1777
  } : void 0,
1752
- r.$slots.event ? {
1778
+ i.$slots.event ? {
1753
1779
  name: "event",
1754
- fn: W((B) => [
1755
- O(r.$slots, "event", le({ ref_for: !0 }, B))
1780
+ fn: I((W) => [
1781
+ j(i.$slots, "event", re({ ref_for: !0 }, W))
1756
1782
  ]),
1757
1783
  key: "2"
1758
1784
  } : void 0
@@ -1760,62 +1786,62 @@ const lt = (p, t) => {
1760
1786
  ]),
1761
1787
  _: 2
1762
1788
  }, 1024)) : U("", !0),
1763
- V.value && s.schedule === j.id && !t.allDay ? (C(), L("div", {
1789
+ s.value && r.schedule === C.id && !e.allDay ? (V(), H("div", {
1764
1790
  key: 5,
1765
1791
  class: "vuecal__event-placeholder",
1766
- style: _e(i.value.style)
1767
- }, ce(i.value.start) + " - " + ce(i.value.end), 5)) : U("", !0)
1792
+ style: $e(z.value.style)
1793
+ }, ce(z.value.start) + " - " + ce(z.value.end), 5)) : U("", !0)
1768
1794
  ], 14, ea))), 128)) : U("", !0),
1769
- !r.$slots.cell && !b(w).schedules ? (C(), L(ue, { key: 3 }, [
1770
- r.$slots["cell-events"] ? O(r.$slots, "cell-events", {
1795
+ !i.$slots.cell && !Y(w).schedules ? (V(), H(ue, { key: 3 }, [
1796
+ i.$slots["cell-events"] ? j(i.$slots, "cell-events", {
1771
1797
  key: 0,
1772
1798
  cell: Z.value
1773
1799
  }) : U("", !0),
1774
- A.value || r.$slots["cell-date"] ? (C(), L("div", sa, [
1775
- O(r.$slots, "cell-date", { cell: Z.value }, () => [
1776
- Ue(ce(A.value), 1)
1800
+ M.value || i.$slots["cell-date"] ? (V(), H("div", sa, [
1801
+ j(i.$slots, "cell-date", { cell: Z.value }, () => [
1802
+ Ue(ce(M.value), 1)
1777
1803
  ])
1778
1804
  ])) : U("", !0),
1779
- r.$slots["cell-content"] ? (C(), L("div", la, [
1780
- O(r.$slots, "cell-content", { cell: Z.value })
1805
+ i.$slots["cell-content"] ? (V(), H("div", la, [
1806
+ j(i.$slots, "cell-content", { cell: Z.value })
1781
1807
  ])) : U("", !0),
1782
- r.$slots["cell-events"] && m.value.length ? (C(), L("div", ra, [
1783
- O(r.$slots, "cell-events", { cell: Z.value })
1784
- ])) : !(b(o).isMonth && !b(w).eventsOnMonthView) && !b(o).isYear && !b(o).isYears && (m.value.length || P.value) ? (C(), Se(tt, {
1808
+ i.$slots["cell-events"] && d.value.length ? (V(), H("div", ra, [
1809
+ j(i.$slots, "cell-events", { cell: Z.value })
1810
+ ])) : !(Y(o).isMonth && !Y(w).eventsOnMonthView) && !Y(o).isYear && !Y(o).isYears && (d.value.length || F.value) ? (V(), Se(tt, {
1785
1811
  key: 4,
1786
1812
  class: "vuecal__cell-events",
1787
1813
  name: "vuecal-event-delete",
1788
- onBeforeLeave: Y[1] || (Y[1] = (j) => P.value = !0),
1789
- onAfterLeave: a,
1814
+ onBeforeLeave: S[1] || (S[1] = (C) => F.value = !0),
1815
+ onAfterLeave: t,
1790
1816
  tag: "div"
1791
1817
  }, {
1792
- default: W(() => [
1793
- (C(!0), L(ue, null, pe(m.value, (j) => (C(), Se(st, {
1794
- key: j._.id,
1795
- event: j,
1796
- onEventDeleted: I,
1797
- "in-all-day-bar": t.allDay,
1798
- class: ye(T.value[j._.id]),
1799
- style: _e(f.value[j._.id])
1818
+ default: I(() => [
1819
+ (V(!0), H(ue, null, we(d.value, (C) => (V(), Se(st, {
1820
+ key: C._.id,
1821
+ event: C,
1822
+ onEventDeleted: X,
1823
+ "in-all-day-bar": e.allDay,
1824
+ class: he(k.value[C._.id]),
1825
+ style: $e(f.value[C._.id])
1800
1826
  }, Ce({ _: 2 }, [
1801
- r.$slots["event.all-day"] && t.allDay ? {
1827
+ i.$slots["event.all-day"] && e.allDay ? {
1802
1828
  name: "event.all-day",
1803
- fn: W((M) => [
1804
- O(r.$slots, "event.all-day", le({ ref_for: !0 }, M))
1829
+ fn: I((T) => [
1830
+ j(i.$slots, "event.all-day", re({ ref_for: !0 }, T))
1805
1831
  ]),
1806
1832
  key: "0"
1807
1833
  } : void 0,
1808
- r.$slots[`event.${b(o).id}`] ? {
1809
- name: `event.${b(o).id}`,
1810
- fn: W((M) => [
1811
- O(r.$slots, `event.${b(o).id}`, le({ ref_for: !0 }, M))
1834
+ i.$slots[`event.${Y(o).id}`] ? {
1835
+ name: `event.${Y(o).id}`,
1836
+ fn: I((T) => [
1837
+ j(i.$slots, `event.${Y(o).id}`, re({ ref_for: !0 }, T))
1812
1838
  ]),
1813
1839
  key: "1"
1814
1840
  } : void 0,
1815
- r.$slots.event ? {
1841
+ i.$slots.event ? {
1816
1842
  name: "event",
1817
- fn: W((M) => [
1818
- O(r.$slots, "event", le({ ref_for: !0 }, M))
1843
+ fn: I((T) => [
1844
+ j(i.$slots, "event", re({ ref_for: !0 }, T))
1819
1845
  ]),
1820
1846
  key: "2"
1821
1847
  } : void 0
@@ -1823,23 +1849,23 @@ const lt = (p, t) => {
1823
1849
  ]),
1824
1850
  _: 3
1825
1851
  })) : U("", !0),
1826
- V.value ? (C(), L("div", {
1852
+ s.value ? (V(), H("div", {
1827
1853
  key: 5,
1828
1854
  class: "vuecal__event-placeholder",
1829
- style: _e(i.value.style)
1830
- }, ce(i.value.start) + " - " + ce(i.value.end), 5)) : U("", !0)
1855
+ style: $e(z.value.style)
1856
+ }, ce(z.value.start) + " - " + ce(z.value.end), 5)) : U("", !0)
1831
1857
  ], 64)) : U("", !0),
1832
- r.$slots["event-count"] ? O(r.$slots, "event-count", {
1858
+ i.$slots["event-count"] ? j(i.$slots, "event-count", {
1833
1859
  key: 4,
1834
- events: h.value
1835
- }) : S.value ? (C(), L("div", oa, ce(h.value.length), 1)) : U("", !0),
1836
- se.show ? (C(), L("div", {
1860
+ events: v.value
1861
+ }) : O.value ? (V(), H("div", oa, ce(v.value.length), 1)) : U("", !0),
1862
+ ne.show ? (V(), H("div", {
1837
1863
  key: 6,
1838
1864
  class: "vuecal__now-line",
1839
- style: _e(se.style),
1840
- title: se.currentTime
1865
+ style: $e(ne.style),
1866
+ title: ne.currentTime
1841
1867
  }, [
1842
- ve("span", null, ce(se.currentTime), 1)
1868
+ ve("span", null, ce(ne.currentTime), 1)
1843
1869
  ], 12, ia)) : U("", !0)
1844
1870
  ], 16));
1845
1871
  }
@@ -1855,25 +1881,25 @@ const lt = (p, t) => {
1855
1881
  }, ma = {
1856
1882
  key: 1,
1857
1883
  class: "vuecal__schedules-headings w-flex grow"
1858
- }, ga = ["innerHTML"], ya = {
1884
+ }, ga = ["innerHTML"], ha = {
1859
1885
  key: 2,
1860
1886
  class: "vuecal__all-day w-flex grow"
1861
- }, ha = {
1887
+ }, ya = {
1862
1888
  __name: "headings-bar",
1863
1889
  setup(p) {
1864
- const t = ze("vuecal"), u = ze("$vuecalEl"), { view: o, config: w, dateUtils: _ } = t, N = E(() => w.xs ? "day-xs" : w.sm || o.isDays || o.isMonth ? "day-sm" : "day"), d = E(() => (o.isDay || o.isDays || o.isWeek || o.isMonth) && !(o.isDay && !w.schedules && !w.allDayEvents)), H = E(() => o.cellDates.slice(0, o.cols).map(({ start: y }) => ({
1865
- id: Xe[y.getDay()],
1866
- date: y,
1867
- dateNumber: y.getDate(),
1868
- day: _.formatDate(y, "dddd"),
1869
- "day-sm": _.formatDate(y, "ddd"),
1870
- "day-xs": _.formatDate(y, "dd"),
1871
- isToday: _.isToday(y)
1872
- }))), v = {
1873
- click: (y) => {
1874
- (o.isDays || o.isWeek) && o.updateSelectedDate(y);
1890
+ const e = ze("vuecal"), c = ze("$vuecalEl"), { view: o, config: w, dateUtils: $ } = e, N = E(() => w.xs ? "day-xs" : w.sm || o.isDays || o.isMonth ? "day-sm" : "day"), m = E(() => (o.isDay || o.isDays || o.isWeek || o.isMonth) && !(o.isDay && !w.schedules && !w.allDayEvents)), P = E(() => o.cellDates.slice(0, o.cols).map(({ start: D }) => ({
1891
+ id: Ge[D.getDay()],
1892
+ date: D,
1893
+ dateNumber: D.getDate(),
1894
+ day: $.formatDate(D, "dddd"),
1895
+ "day-sm": $.formatDate(D, "ddd"),
1896
+ "day-xs": $.formatDate(D, "dd"),
1897
+ isToday: $.isToday(D)
1898
+ }))), g = {
1899
+ click: (D) => {
1900
+ (o.isDays || o.isWeek) && o.updateSelectedDate(D);
1875
1901
  }
1876
- }, c = {
1902
+ }, u = {
1877
1903
  isResizing: ie(!1),
1878
1904
  startY: ie(0),
1879
1905
  initialHeight: ie(0),
@@ -1881,103 +1907,103 @@ const lt = (p, t) => {
1881
1907
  // Default height in pixels.
1882
1908
  // Cleanup event listeners.
1883
1909
  cleanup() {
1884
- typeof document < "u" && (document.removeEventListener("mousemove", c.handleMouseMove), document.removeEventListener("mouseup", c.cleanup), document.removeEventListener("touchmove", c.handleTouchMove, { passive: !1 }), document.removeEventListener("touchend", c.cleanup)), c.isResizing.value = !1;
1910
+ typeof document < "u" && (document.removeEventListener("mousemove", u.handleMouseMove), document.removeEventListener("mouseup", u.cleanup), document.removeEventListener("touchmove", u.handleTouchMove, { passive: !1 }), document.removeEventListener("touchend", u.cleanup)), u.isResizing.value = !1;
1885
1911
  },
1886
- startResize(y) {
1887
- var I;
1888
- this.isResizing.value = !0, this.startY.value = y;
1889
- const P = (I = u.value) == null ? void 0 : I.querySelector(".vuecal__all-day");
1890
- P && (this.initialHeight.value = P.offsetHeight), document.addEventListener("mousemove", c.handleMouseMove), document.addEventListener("mouseup", c.cleanup), document.addEventListener("touchmove", c.handleTouchMove, { passive: !1 }), document.addEventListener("touchend", c.cleanup);
1912
+ startResize(D) {
1913
+ var X;
1914
+ this.isResizing.value = !0, this.startY.value = D;
1915
+ const F = (X = c.value) == null ? void 0 : X.querySelector(".vuecal__all-day");
1916
+ F && (this.initialHeight.value = F.offsetHeight), document.addEventListener("mousemove", u.handleMouseMove), document.addEventListener("mouseup", u.cleanup), document.addEventListener("touchmove", u.handleTouchMove, { passive: !1 }), document.addEventListener("touchend", u.cleanup);
1891
1917
  },
1892
1918
  // Update height based on mouse/touch movement.
1893
- updateHeight(y) {
1894
- var a;
1919
+ updateHeight(D) {
1920
+ var t;
1895
1921
  if (!this.isResizing.value) return;
1896
- const P = y - this.startY.value, I = Math.max(20, this.initialHeight.value + P);
1897
- (a = u.value) == null || a.style.setProperty("--vuecal-all-day-bar-height", `${I}px`);
1922
+ const F = D - this.startY.value, X = Math.max(20, this.initialHeight.value + F);
1923
+ (t = c.value) == null || t.style.setProperty("--vuecal-all-day-bar-height", `${X}px`);
1898
1924
  },
1899
1925
  // Mouse event handlers.
1900
- handleMouseDown(y) {
1901
- this.startResize(y.clientY);
1926
+ handleMouseDown(D) {
1927
+ this.startResize(D.clientY);
1902
1928
  },
1903
- handleMouseMove(y) {
1904
- c.updateHeight(y.clientY);
1929
+ handleMouseMove(D) {
1930
+ u.updateHeight(D.clientY);
1905
1931
  },
1906
1932
  // Touch event handlers.
1907
- handleTouchStart(y) {
1908
- var P;
1909
- (P = y.touches) != null && P[0] && this.startResize(y.touches[0].clientY);
1933
+ handleTouchStart(D) {
1934
+ var F;
1935
+ (F = D.touches) != null && F[0] && this.startResize(D.touches[0].clientY);
1910
1936
  },
1911
- handleTouchMove(y) {
1912
- var P;
1913
- (P = y.touches) != null && P[0] && (c.updateHeight(y.touches[0].clientY), y.preventDefault());
1937
+ handleTouchMove(D) {
1938
+ var F;
1939
+ (F = D.touches) != null && F[0] && (u.updateHeight(D.touches[0].clientY), D.preventDefault());
1914
1940
  }
1915
1941
  };
1916
- return Be(() => {
1917
- c.cleanup();
1918
- }), (y, P) => d.value ? (C(), L("div", ua, [
1919
- b(o).isDay ? U("", !0) : (C(), L("div", ca, [
1920
- (C(!0), L(ue, null, pe(H.value, (I, a) => (C(), L("div", {
1921
- class: ye(["vuecal__weekday", { "vuecal__weekday--today": I.isToday }]),
1922
- key: a,
1923
- onClick: (s) => v.click(I.date)
1942
+ return Ne(() => {
1943
+ u.cleanup();
1944
+ }), (D, F) => m.value ? (V(), H("div", ua, [
1945
+ Y(o).isDay ? U("", !0) : (V(), H("div", ca, [
1946
+ (V(!0), H(ue, null, we(P.value, (X, t) => (V(), H("div", {
1947
+ class: he(["vuecal__weekday", { "vuecal__weekday--today": X.isToday }]),
1948
+ key: t,
1949
+ onClick: (r) => g.click(X.date)
1924
1950
  }, [
1925
- O(y.$slots, "weekday-heading", {
1926
- label: I[N.value],
1927
- id: I.id,
1928
- date: I.date
1951
+ j(D.$slots, "weekday-heading", {
1952
+ label: X[N.value],
1953
+ id: X.id,
1954
+ date: X.date
1929
1955
  }, () => [
1930
- ve("span", va, ce(I[N.value]), 1),
1931
- b(o).isMonth ? U("", !0) : (C(), L("strong", fa, ce(I.dateNumber), 1))
1956
+ ve("span", va, ce(X[N.value]), 1),
1957
+ Y(o).isMonth ? U("", !0) : (V(), H("strong", fa, ce(X.dateNumber), 1))
1932
1958
  ])
1933
1959
  ], 10, da))), 128))
1934
1960
  ])),
1935
- b(w).schedules ? (C(), L("div", ma, [
1936
- (C(!0), L(ue, null, pe(H.value, (I, a) => (C(), L(ue, { key: a }, [
1937
- (C(!0), L(ue, null, pe(b(w).schedules, (s, e) => (C(), L(ue, { key: e }, [
1938
- y.$slots["schedule-heading"] ? (C(), L("div", {
1961
+ Y(w).schedules ? (V(), H("div", ma, [
1962
+ (V(!0), H(ue, null, we(P.value, (X, t) => (V(), H(ue, { key: t }, [
1963
+ (V(!0), H(ue, null, we(Y(w).schedules, (r, _) => (V(), H(ue, { key: _ }, [
1964
+ D.$slots["schedule-heading"] ? (V(), H("div", {
1939
1965
  key: 0,
1940
- class: ye(["vuecal__schedule vuecal__schedule--heading", s.class])
1966
+ class: he(["vuecal__schedule vuecal__schedule--heading", r.class])
1941
1967
  }, [
1942
- O(y.$slots, "schedule-heading", {
1943
- schedule: s,
1944
- view: b(o)
1968
+ j(D.$slots, "schedule-heading", {
1969
+ schedule: r,
1970
+ view: Y(o)
1945
1971
  })
1946
- ], 2)) : (C(), L("div", {
1972
+ ], 2)) : (V(), H("div", {
1947
1973
  key: 1,
1948
- class: ye(["vuecal__schedule vuecal__schedule--heading", s.class]),
1949
- innerHTML: s.label
1974
+ class: he(["vuecal__schedule vuecal__schedule--heading", r.class]),
1975
+ innerHTML: r.label
1950
1976
  }, null, 10, ga))
1951
1977
  ], 64))), 128))
1952
1978
  ], 64))), 128))
1953
1979
  ])) : U("", !0),
1954
- b(w).allDayEvents ? (C(), L("div", ya, [
1955
- (C(!0), L(ue, null, pe(H.value, (I, a) => (C(), Se($t, {
1956
- class: ye(["vuecal__all-day-cell", { "vuecal__weekday--today": I.isToday }]),
1957
- key: a,
1958
- start: I.date,
1959
- end: new Date(I.date.getTime() + 24 * 60 * 60 * 1e3 - 1),
1960
- index: a,
1980
+ Y(w).allDayEvents ? (V(), H("div", ha, [
1981
+ (V(!0), H(ue, null, we(P.value, (X, t) => (V(), Se(_t, {
1982
+ class: he(["vuecal__all-day-cell", { "vuecal__weekday--today": X.isToday }]),
1983
+ key: t,
1984
+ start: X.date,
1985
+ end: new Date(X.date.getTime() + 1440 * 60 * 1e3 - 1),
1986
+ index: t,
1961
1987
  "all-day": ""
1962
1988
  }, Ce({ _: 2 }, [
1963
- y.$slots["event.all-day"] ? {
1989
+ D.$slots["event.all-day"] ? {
1964
1990
  name: "event.all-day",
1965
- fn: W((s) => [
1966
- O(y.$slots, "event.all-day", le({ ref_for: !0 }, s))
1991
+ fn: I((r) => [
1992
+ j(D.$slots, "event.all-day", re({ ref_for: !0 }, r))
1967
1993
  ]),
1968
1994
  key: "0"
1969
1995
  } : {
1970
1996
  name: "event",
1971
- fn: W((s) => [
1972
- O(y.$slots, "event", le({ ref_for: !0 }, s))
1997
+ fn: I((r) => [
1998
+ j(D.$slots, "event", re({ ref_for: !0 }, r))
1973
1999
  ]),
1974
2000
  key: "1"
1975
2001
  }
1976
2002
  ]), 1032, ["class", "start", "end", "index"]))), 128)),
1977
2003
  ve("div", {
1978
2004
  class: "vuecal__all-day-resizer",
1979
- onMousedown: P[0] || (P[0] = (...I) => c.handleMouseDown && c.handleMouseDown(...I)),
1980
- onTouchstart: P[1] || (P[1] = (...I) => c.handleTouchStart && c.handleTouchStart(...I))
2005
+ onMousedown: F[0] || (F[0] = (...X) => u.handleMouseDown && u.handleMouseDown(...X)),
2006
+ onTouchstart: F[1] || (F[1] = (...X) => u.handleTouchStart && u.handleTouchStart(...X))
1981
2007
  }, null, 32)
1982
2008
  ])) : U("", !0)
1983
2009
  ])) : U("", !0);
@@ -1988,43 +2014,43 @@ const lt = (p, t) => {
1988
2014
  }, wa = {
1989
2015
  __name: "time-column",
1990
2016
  setup(p) {
1991
- const t = ze("vuecal"), { config: u, texts: o } = t, w = E(() => {
1992
- const _ = [];
1993
- for (let d = u.timeFrom; d < u.timeTo; d += u.timeStep) {
1994
- const H = d + u.timeStep > u.timeTo, v = ~~(d / 60), c = d % 60, y = o[d < 720 ? "am" : "pm"];
1995
- let P = null;
1996
- H && (P = `calc(var(--vuecal-time-cell-height) * ${(u.timeTo - d) / u.timeStep})`), _.push({
1997
- minutesSum: d,
2017
+ const e = ze("vuecal"), { config: c, texts: o } = e, w = E(() => {
2018
+ const $ = [];
2019
+ for (let m = c.timeFrom; m < c.timeTo; m += c.timeStep) {
2020
+ const P = m + c.timeStep > c.timeTo, g = ~~(m / 60), u = m % 60, D = o[m < 720 ? "am" : "pm"];
2021
+ let F = null;
2022
+ P && (F = `calc(var(--vuecal-time-cell-height) * ${(c.timeTo - m) / c.timeStep})`), $.push({
2023
+ minutesSum: m,
1998
2024
  // The sum of hours + minutes in minutes.
1999
- hours: v,
2000
- minutes: c,
2001
- formatted12: `${v % 12 ? v % 12 : 12}${c ? `:${c.toString().padStart(2, 0)}` : ""}${y}`,
2002
- formatted24: `${v.toString().padStart(2, 0)}:${c.toString().padStart(2, 0)}`,
2003
- height: P
2025
+ hours: g,
2026
+ minutes: u,
2027
+ formatted12: `${g % 12 ? g % 12 : 12}${u ? `:${u.toString().padStart(2, 0)}` : ""}${D}`,
2028
+ formatted24: `${g.toString().padStart(2, 0)}:${u.toString().padStart(2, 0)}`,
2029
+ height: F
2004
2030
  });
2005
2031
  }
2006
- return _;
2032
+ return $;
2007
2033
  });
2008
- return (_, N) => (C(), L("div", Da, [
2009
- b(u).allDayEvents ? (C(), L("div", pa, [
2010
- O(_.$slots, "all-day-label", {}, () => [
2011
- Ue(ce(b(t).texts.allDay), 1)
2034
+ return ($, N) => (V(), H("div", Da, [
2035
+ Y(c).allDayEvents ? (V(), H("div", pa, [
2036
+ j($.$slots, "all-day-label", {}, () => [
2037
+ Ue(ce(Y(e).texts.allDay), 1)
2012
2038
  ])
2013
2039
  ])) : U("", !0),
2014
- (C(!0), L(ue, null, pe(w.value, (d, H) => (C(), L("div", {
2040
+ (V(!0), H(ue, null, we(w.value, (m, P) => (V(), H("div", {
2015
2041
  class: "vuecal__time-cell",
2016
- key: H,
2017
- style: _e({ height: d.height || null })
2042
+ key: P,
2043
+ style: $e({ height: m.height || null })
2018
2044
  }, [
2019
- O(_.$slots, "time-cell", {
2020
- index: H,
2021
- minutes: d.minutes,
2022
- hours: d.hours,
2023
- minutesSum: d.minutesSum,
2024
- format12: d.formatted12,
2025
- format24: d.formatted24
2045
+ j($.$slots, "time-cell", {
2046
+ index: P,
2047
+ minutes: m.minutes,
2048
+ hours: m.hours,
2049
+ minutesSum: m.minutesSum,
2050
+ format12: m.formatted12,
2051
+ format24: m.formatted24
2026
2052
  }, () => [
2027
- ve("label", null, ce(b(u).twelveHour ? d.formatted12 : d.formatted24), 1)
2053
+ ve("label", null, ce(Y(c).twelveHour ? m.formatted12 : m.formatted24), 1)
2028
2054
  ])
2029
2055
  ], 4))), 128))
2030
2056
  ]));
@@ -2032,111 +2058,112 @@ const lt = (p, t) => {
2032
2058
  }, ka = {
2033
2059
  __name: "body",
2034
2060
  setup(p) {
2035
- const t = ze("vuecal"), { view: u, config: o, dateUtils: w } = t, _ = ie(null), N = ie(null), d = E(() => ({
2036
- "--vuecal-grid-columns": u.cols,
2037
- "--vuecal-grid-rows": u.rows
2038
- })), H = E(() => {
2039
- const y = w.formatTime(Le(N.value, o));
2061
+ const e = ze("vuecal"), { view: c, config: o, dateUtils: w } = e, $ = ie(null), N = ie(null), m = E(() => ({
2062
+ "--vuecal-grid-columns": c.cols,
2063
+ "--vuecal-grid-rows": c.rows,
2064
+ "--vuecal-body-max-height": o.time ? `${o.timeCellHeight * (o.timeTo - o.timeFrom) / o.timeStep}px` : null
2065
+ })), P = E(() => {
2066
+ const D = w.formatTime(Le(N.value, o));
2040
2067
  return {
2041
2068
  style: { top: `${N.value}%` },
2042
- time: y
2069
+ time: D
2043
2070
  };
2044
- }), v = (y) => {
2045
- var a;
2046
- if (u.isMonth || u.isYear || u.isYears) return;
2047
- const P = (((a = y.touches) == null ? void 0 : a[0]) || y).clientY, { top: I } = _.value.getBoundingClientRect();
2048
- N.value = Ke(P - I, _.value);
2049
- }, c = () => {
2071
+ }), g = (D) => {
2072
+ var t;
2073
+ if (c.isMonth || c.isYear || c.isYears) return;
2074
+ const F = (((t = D.touches) == null ? void 0 : t[0]) || D).clientY, { top: X } = $.value.getBoundingClientRect();
2075
+ N.value = Ke(F - X, $.value);
2076
+ }, u = () => {
2050
2077
  N.value = null;
2051
2078
  };
2052
2079
  return Ze(() => {
2053
- _.value.addEventListener("mousemove", v), _.value.addEventListener("touchmove", v), _.value.addEventListener("mouseleave", c), _.value.addEventListener("touchend", c);
2054
- }), Be(() => {
2055
- _.value && (_.value.removeEventListener("mousemove", v), _.value.removeEventListener("touchmove", v), _.value.removeEventListener("mouseleave", c), _.value.removeEventListener("touchend", c));
2056
- }), (y, P) => (C(), L("div", {
2080
+ $.value.addEventListener("mousemove", g), $.value.addEventListener("touchmove", g), $.value.addEventListener("mouseleave", u), $.value.addEventListener("touchend", u);
2081
+ }), Ne(() => {
2082
+ $.value && ($.value.removeEventListener("mousemove", g), $.value.removeEventListener("touchmove", g), $.value.removeEventListener("mouseleave", u), $.value.removeEventListener("touchend", u));
2083
+ }), (D, F) => (V(), H("div", {
2057
2084
  class: "vuecal__body",
2058
2085
  ref_key: "bodyEl",
2059
- ref: _,
2060
- style: _e(d.value)
2086
+ ref: $,
2087
+ style: $e(m.value)
2061
2088
  }, [
2062
- je(Ge, { name: "vuecal-shrink" }, {
2063
- default: W(() => [
2064
- b(o).timeAtCursor && N.value !== null ? (C(), L("div", {
2089
+ je(qe, { name: "vuecal-shrink" }, {
2090
+ default: I(() => [
2091
+ Y(o).timeAtCursor && N.value !== null ? (V(), H("div", {
2065
2092
  key: 0,
2066
2093
  class: "vuecal__time-at-cursor",
2067
- style: _e(H.value.style)
2094
+ style: $e(P.value.style)
2068
2095
  }, [
2069
- ve("label", null, ce(H.value.time), 1)
2096
+ ve("label", null, ce(P.value.time), 1)
2070
2097
  ], 4)) : U("", !0)
2071
2098
  ]),
2072
2099
  _: 1
2073
2100
  }),
2074
- (C(!0), L(ue, null, pe(b(u).cellDates, (I, a) => (C(), Se($t, {
2075
- key: a,
2076
- start: I.start,
2077
- end: I.end,
2078
- index: a
2101
+ (V(!0), H(ue, null, we(Y(c).cellDates, (X, t) => (V(), Se(_t, {
2102
+ key: t,
2103
+ start: X.start,
2104
+ end: X.end,
2105
+ index: t
2079
2106
  }, Ce({ _: 2 }, [
2080
- y.$slots.cell ? {
2107
+ D.$slots.cell ? {
2081
2108
  name: "cell",
2082
- fn: W((s) => [
2083
- O(y.$slots, "cell", le({ ref_for: !0 }, s))
2109
+ fn: I((r) => [
2110
+ j(D.$slots, "cell", re({ ref_for: !0 }, r))
2084
2111
  ]),
2085
2112
  key: "0"
2086
2113
  } : void 0,
2087
- y.$slots["cell-date"] ? {
2114
+ D.$slots["cell-date"] ? {
2088
2115
  name: "cell-date",
2089
- fn: W((s) => [
2090
- O(y.$slots, "cell-date", le({ ref_for: !0 }, s))
2116
+ fn: I((r) => [
2117
+ j(D.$slots, "cell-date", re({ ref_for: !0 }, r))
2091
2118
  ]),
2092
2119
  key: "1"
2093
2120
  } : void 0,
2094
- y.$slots["cell-content"] ? {
2121
+ D.$slots["cell-content"] ? {
2095
2122
  name: "cell-content",
2096
- fn: W((s) => [
2097
- O(y.$slots, "cell-content", le({ ref_for: !0 }, s))
2123
+ fn: I((r) => [
2124
+ j(D.$slots, "cell-content", re({ ref_for: !0 }, r))
2098
2125
  ]),
2099
2126
  key: "2"
2100
2127
  } : void 0,
2101
- y.$slots["cell-events"] ? {
2128
+ D.$slots["cell-events"] ? {
2102
2129
  name: "cell-events",
2103
- fn: W((s) => [
2104
- O(y.$slots, "cell-events", le({ ref_for: !0 }, s))
2130
+ fn: I((r) => [
2131
+ j(D.$slots, "cell-events", re({ ref_for: !0 }, r))
2105
2132
  ]),
2106
2133
  key: "3"
2107
2134
  } : void 0,
2108
- y.$slots[`event.${b(u).id}`] ? {
2109
- name: `event.${b(u).id}`,
2110
- fn: W((s) => [
2111
- O(y.$slots, `event.${b(u).id}`, le({ ref_for: !0 }, s))
2135
+ D.$slots[`event.${Y(c).id}`] ? {
2136
+ name: `event.${Y(c).id}`,
2137
+ fn: I((r) => [
2138
+ j(D.$slots, `event.${Y(c).id}`, re({ ref_for: !0 }, r))
2112
2139
  ]),
2113
2140
  key: "4"
2114
2141
  } : void 0,
2115
- y.$slots["event.all-day"] ? {
2142
+ D.$slots["event.all-day"] ? {
2116
2143
  name: "event.all-day",
2117
- fn: W((s) => [
2118
- O(y.$slots, "event.all-day", le({ ref_for: !0 }, s))
2144
+ fn: I((r) => [
2145
+ j(D.$slots, "event.all-day", re({ ref_for: !0 }, r))
2119
2146
  ]),
2120
2147
  key: "5"
2121
2148
  } : void 0,
2122
- y.$slots.event ? {
2149
+ D.$slots.event ? {
2123
2150
  name: "event",
2124
- fn: W((s) => [
2125
- O(y.$slots, "event", le({ ref_for: !0 }, s))
2151
+ fn: I((r) => [
2152
+ j(D.$slots, "event", re({ ref_for: !0 }, r))
2126
2153
  ]),
2127
2154
  key: "6"
2128
2155
  } : void 0,
2129
- y.$slots["event-count"] ? {
2156
+ D.$slots["event-count"] ? {
2130
2157
  name: "event-count",
2131
- fn: W((s) => [
2132
- O(y.$slots, "event-count", le({ ref_for: !0 }, s))
2158
+ fn: I((r) => [
2159
+ j(D.$slots, "event-count", re({ ref_for: !0 }, r))
2133
2160
  ]),
2134
2161
  key: "7"
2135
2162
  } : void 0
2136
2163
  ]), 1032, ["start", "end", "index"]))), 128))
2137
2164
  ], 4));
2138
2165
  }
2139
- }, $a = ["data-locale"], _a = { class: "vuecal__scrollable-wrap" }, ba = {
2166
+ }, _a = ["data-locale"], $a = { class: "vuecal__scrollable-wrap" }, ba = {
2140
2167
  key: 1,
2141
2168
  class: "vuecal__week-numbers"
2142
2169
  }, Ta = { class: "vuecal__week-number" }, Ma = { class: "vuecal__body-wrap" }, Ea = {
@@ -2155,246 +2182,251 @@ const lt = (p, t) => {
2155
2182
  "event-drag-start",
2156
2183
  "event-drag-end"
2157
2184
  ],
2158
- setup(p, { expose: t, emit: u }) {
2159
- const o = p, w = u, _ = Tt("vuecal-el"), N = zt({ props: o, emit: w, attrs: Yt(), vuecalEl: _, uid: Mt() }), { config: d, view: H, dateUtils: v, touch: c } = N, y = E(() => d.time && (H.isDay || H.isDays || H.isWeek)), P = E(() => Array(H.rows).fill().map((e, k) => v.getWeek(v.addDays(H.firstCellDate, 7 * k)))), I = E(() => {
2160
- var e;
2185
+ setup(p, { expose: e, emit: c }) {
2186
+ const o = p, w = c, $ = Tt("vuecal-el"), N = zt({ props: o, emit: w, attrs: Yt(), vuecalEl: $, uid: Mt() }), { config: m, view: P, dateUtils: g, touch: u } = N, D = E(() => m.time && (P.isDay || P.isDays || P.isWeek)), F = E(() => Array(P.rows).fill().map((a, z) => g.getWeek(g.addDays(P.firstCellDate, 7 * z)))), X = E(() => {
2187
+ var a;
2161
2188
  return {
2162
- "vuecal--ready": d.ready,
2163
- [`vuecal--${d.theme}-theme`]: d.theme,
2164
- [`vuecal--${d.size}`]: !0,
2165
- "vuecal--date-picker": d.datePicker,
2166
- "vuecal--dark": d.dark,
2167
- "vuecal--light": !d.dark,
2168
- [`vuecal--${H.id}-view`]: !0,
2169
- "vuecal--view-has-time": y.value,
2170
- "vuecal--timeless": !d.time,
2171
- "vuecal--dragging-cell": c.isDraggingCell,
2172
- "vuecal--dragging-event": c.isDraggingEvent,
2173
- "vuecal--resizing-event": c.isResizingEvent,
2174
- "vuecal--has-schedules": (e = d.schedules) == null ? void 0 : e.length
2189
+ "vuecal--ready": m.ready,
2190
+ [`vuecal--${m.theme}-theme`]: m.theme,
2191
+ [`vuecal--${m.size}`]: !0,
2192
+ "vuecal--date-picker": m.datePicker,
2193
+ "vuecal--dark": m.dark,
2194
+ "vuecal--light": !m.dark,
2195
+ [`vuecal--${P.id}-view`]: !0,
2196
+ "vuecal--view-has-time": D.value,
2197
+ "vuecal--timeless": !m.time,
2198
+ "vuecal--dragging-cell": u.isDraggingCell,
2199
+ "vuecal--dragging-event": u.isDraggingEvent,
2200
+ "vuecal--resizing-event": u.isResizingEvent,
2201
+ "vuecal--has-schedules": (a = m.schedules) == null ? void 0 : a.length
2175
2202
  };
2176
- }), a = E(() => ({
2177
- "--vuecal-time-cell-height": d.timeCellHeight && `${d.timeCellHeight}px`
2178
- })), s = E(() => {
2179
- var e, k;
2203
+ }), t = E(() => ({
2204
+ "--vuecal-time-cell-height": m.timeCellHeight && `${m.timeCellHeight}px`
2205
+ })), r = E(() => {
2206
+ var a, z;
2180
2207
  return {
2181
- "vuecal__scrollable--row": y.value || d.weekNumbers && H.isMonth,
2208
+ "vuecal__scrollable--row": D.value || m.weekNumbers && P.isMonth,
2182
2209
  // Keep the states inside the Vue transition wrapper for smooth CSS transitions.
2183
- [`vuecal__scrollable--${H.id}-view`]: !0,
2184
- "vuecal__scrollable--has-schedules": (e = d.schedules) == null ? void 0 : e.length,
2185
- "vuecal__scrollable--no-schedules": !((k = d.schedules) != null && k.length),
2186
- "vuecal__scrollable--no-all-day-bar": !d.allDayEvents,
2187
- "vuecal__scrollable--has-all-day-bar": d.allDayEvents
2210
+ [`vuecal__scrollable--${P.id}-view`]: !0,
2211
+ "vuecal__scrollable--has-schedules": (a = m.schedules) == null ? void 0 : a.length,
2212
+ "vuecal__scrollable--no-schedules": !((z = m.schedules) != null && z.length),
2213
+ "vuecal__scrollable--no-all-day-bar": !m.allDayEvents,
2214
+ "vuecal__scrollable--has-all-day-bar": m.allDayEvents
2188
2215
  };
2189
- });
2216
+ }), _ = (a) => {
2217
+ a.target.closest(".vuecal__cell") && a.preventDefault();
2218
+ };
2190
2219
  return Ze(async () => {
2191
- await Je(), d.ready = !0, w("ready", { config: d, view: H });
2192
- }), at("vuecal", N), at("$vuecalEl", _), t({ view: N.view }), (e, k) => (C(), L("div", {
2193
- class: ye(["vuecal", I.value]),
2220
+ typeof window < "u" && window.hasOwnProperty("ontouchstart") && $.value.addEventListener("contextmenu", _), await Ie(), m.ready = !0, w("ready", { config: m, view: P });
2221
+ }), Ne(() => {
2222
+ var a;
2223
+ (a = $ == null ? void 0 : $.value) == null || a.removeEventListener("contextmenu", _);
2224
+ }), at("vuecal", N), at("$vuecalEl", $), e({ view: N.view }), (a, z) => (V(), H("div", {
2225
+ class: he(["vuecal", X.value]),
2194
2226
  ref: "vuecal-el",
2195
- "data-locale": e.locale,
2196
- style: _e(a.value)
2227
+ "data-locale": a.locale,
2228
+ style: $e(t.value)
2197
2229
  }, [
2198
- e.$slots.diy ? O(e.$slots, "diy", {
2230
+ a.$slots.diy ? j(a.$slots, "diy", {
2199
2231
  key: 0,
2200
- vuecal: b(N)
2201
- }) : (C(), L(ue, { key: 1 }, [
2202
- je(Rt, null, Ce({ _: 2 }, [
2203
- e.$slots.header ? {
2232
+ vuecal: Y(N)
2233
+ }) : (V(), H(ue, { key: 1 }, [
2234
+ je(It, null, Ce({ _: 2 }, [
2235
+ a.$slots.header ? {
2204
2236
  name: "header",
2205
- fn: W((i) => [
2206
- O(e.$slots, "header", te(ne(i)))
2237
+ fn: I((s) => [
2238
+ j(a.$slots, "header", te(se(s)))
2207
2239
  ]),
2208
2240
  key: "0"
2209
2241
  } : void 0,
2210
- !e.$slots.header && e.$slots["previous-button"] ? {
2242
+ !a.$slots.header && a.$slots["previous-button"] ? {
2211
2243
  name: "previous-button",
2212
- fn: W((i) => [
2213
- O(e.$slots, "previous-button", te(ne(i)))
2244
+ fn: I((s) => [
2245
+ j(a.$slots, "previous-button", te(se(s)))
2214
2246
  ]),
2215
2247
  key: "1"
2216
2248
  } : void 0,
2217
- !e.$slots.header && e.$slots["next-button"] ? {
2249
+ !a.$slots.header && a.$slots["next-button"] ? {
2218
2250
  name: "next-button",
2219
- fn: W((i) => [
2220
- O(e.$slots, "next-button", te(ne(i)))
2251
+ fn: I((s) => [
2252
+ j(a.$slots, "next-button", te(se(s)))
2221
2253
  ]),
2222
2254
  key: "2"
2223
2255
  } : void 0,
2224
- !e.$slots.header && e.$slots["today-button"] ? {
2256
+ !a.$slots.header && a.$slots["today-button"] ? {
2225
2257
  name: "today-button",
2226
- fn: W((i) => [
2227
- O(e.$slots, "today-button", te(ne(i)))
2258
+ fn: I((s) => [
2259
+ j(a.$slots, "today-button", te(se(s)))
2228
2260
  ]),
2229
2261
  key: "3"
2230
2262
  } : void 0,
2231
- !e.$slots.header && e.$slots.title ? {
2263
+ !a.$slots.header && a.$slots.title ? {
2232
2264
  name: "title",
2233
- fn: W((i) => [
2234
- O(e.$slots, "title", te(ne(i)))
2265
+ fn: I((s) => [
2266
+ j(a.$slots, "title", te(se(s)))
2235
2267
  ]),
2236
2268
  key: "4"
2237
2269
  } : void 0,
2238
- !e.$slots.header && e.$slots["title.day"] ? {
2270
+ !a.$slots.header && a.$slots["title.day"] ? {
2239
2271
  name: "title.day",
2240
- fn: W((i) => [
2241
- O(e.$slots, "title.day", te(ne(i)))
2272
+ fn: I((s) => [
2273
+ j(a.$slots, "title.day", te(se(s)))
2242
2274
  ]),
2243
2275
  key: "5"
2244
2276
  } : void 0,
2245
- !e.$slots.header && e.$slots["title.days"] ? {
2277
+ !a.$slots.header && a.$slots["title.days"] ? {
2246
2278
  name: "title.days",
2247
- fn: W((i) => [
2248
- O(e.$slots, "title.days", te(ne(i)))
2279
+ fn: I((s) => [
2280
+ j(a.$slots, "title.days", te(se(s)))
2249
2281
  ]),
2250
2282
  key: "6"
2251
2283
  } : void 0,
2252
- !e.$slots.header && e.$slots["title.week"] ? {
2284
+ !a.$slots.header && a.$slots["title.week"] ? {
2253
2285
  name: "title.week",
2254
- fn: W((i) => [
2255
- O(e.$slots, "title.week", te(ne(i)))
2286
+ fn: I((s) => [
2287
+ j(a.$slots, "title.week", te(se(s)))
2256
2288
  ]),
2257
2289
  key: "7"
2258
2290
  } : void 0,
2259
- !e.$slots.header && e.$slots["title.month"] ? {
2291
+ !a.$slots.header && a.$slots["title.month"] ? {
2260
2292
  name: "title.month",
2261
- fn: W((i) => [
2262
- O(e.$slots, "title.month", te(ne(i)))
2293
+ fn: I((s) => [
2294
+ j(a.$slots, "title.month", te(se(s)))
2263
2295
  ]),
2264
2296
  key: "8"
2265
2297
  } : void 0,
2266
- !e.$slots.header && e.$slots["title.year"] ? {
2298
+ !a.$slots.header && a.$slots["title.year"] ? {
2267
2299
  name: "title.year",
2268
- fn: W((i) => [
2269
- O(e.$slots, "title.year", te(ne(i)))
2300
+ fn: I((s) => [
2301
+ j(a.$slots, "title.year", te(se(s)))
2270
2302
  ]),
2271
2303
  key: "9"
2272
2304
  } : void 0,
2273
- !e.$slots.header && e.$slots["title.years"] ? {
2305
+ !a.$slots.header && a.$slots["title.years"] ? {
2274
2306
  name: "title.years",
2275
- fn: W((i) => [
2276
- O(e.$slots, "title.years", te(ne(i)))
2307
+ fn: I((s) => [
2308
+ j(a.$slots, "title.years", te(se(s)))
2277
2309
  ]),
2278
2310
  key: "10"
2279
2311
  } : void 0,
2280
- !e.$slots.header && e.$slots["schedule-heading"] ? {
2312
+ !a.$slots.header && a.$slots["schedule-heading"] ? {
2281
2313
  name: "schedule-heading",
2282
- fn: W((i) => [
2283
- O(e.$slots, "schedule-heading", te(ne(i)))
2314
+ fn: I((s) => [
2315
+ j(a.$slots, "schedule-heading", te(se(s)))
2284
2316
  ]),
2285
2317
  key: "11"
2286
2318
  } : void 0
2287
2319
  ]), 1024),
2288
- ve("div", _a, [
2289
- je(Ge, {
2290
- name: `vuecal-slide-fade--${b(H).transitionDirection}`
2320
+ ve("div", $a, [
2321
+ je(qe, {
2322
+ name: `vuecal-slide-fade--${Y(P).transitionDirection}`
2291
2323
  }, {
2292
- default: W(() => [
2293
- (C(), L("div", {
2294
- class: ye(["vuecal__scrollable", s.value]),
2295
- key: b(H).id + b(H).start.getTime()
2324
+ default: I(() => [
2325
+ (V(), H("div", {
2326
+ class: he(["vuecal__scrollable", r.value]),
2327
+ key: Y(P).id + Y(P).start.getTime()
2296
2328
  }, [
2297
- y.value ? (C(), Se(wa, { key: 0 }, Ce({ _: 2 }, [
2298
- e.$slots["time-cell"] ? {
2329
+ D.value ? (V(), Se(wa, { key: 0 }, Ce({ _: 2 }, [
2330
+ a.$slots["time-cell"] ? {
2299
2331
  name: "time-cell",
2300
- fn: W((i) => [
2301
- O(e.$slots, "time-cell", te(ne(i)))
2332
+ fn: I((s) => [
2333
+ j(a.$slots, "time-cell", te(se(s)))
2302
2334
  ]),
2303
2335
  key: "0"
2304
2336
  } : void 0
2305
2337
  ]), 1024)) : U("", !0),
2306
- b(d).weekNumbers && b(H).isMonth ? (C(), L("div", ba, [
2307
- (C(!0), L(ue, null, pe(P.value, (i) => (C(), L("div", Ta, [
2308
- O(e.$slots, "week-number", {}, () => [
2309
- ve("small", null, ce(i), 1)
2338
+ Y(m).weekNumbers && Y(P).isMonth ? (V(), H("div", ba, [
2339
+ (V(!0), H(ue, null, we(F.value, (s) => (V(), H("div", Ta, [
2340
+ j(a.$slots, "week-number", {}, () => [
2341
+ ve("small", null, ce(s), 1)
2310
2342
  ])
2311
2343
  ]))), 256))
2312
2344
  ])) : U("", !0),
2313
2345
  ve("div", Ma, [
2314
- je(ha, null, Ce({ _: 2 }, [
2315
- e.$slots["weekday-heading"] ? {
2346
+ je(ya, null, Ce({ _: 2 }, [
2347
+ a.$slots["weekday-heading"] ? {
2316
2348
  name: "weekday-heading",
2317
- fn: W((i) => [
2318
- O(e.$slots, "weekday-heading", te(ne(i)))
2349
+ fn: I((s) => [
2350
+ j(a.$slots, "weekday-heading", te(se(s)))
2319
2351
  ]),
2320
2352
  key: "0"
2321
2353
  } : void 0,
2322
- e.$slots["schedule-heading"] ? {
2354
+ a.$slots["schedule-heading"] ? {
2323
2355
  name: "schedule-heading",
2324
- fn: W((i) => [
2325
- O(e.$slots, "schedule-heading", te(ne(i)))
2356
+ fn: I((s) => [
2357
+ j(a.$slots, "schedule-heading", te(se(s)))
2326
2358
  ]),
2327
2359
  key: "1"
2328
2360
  } : void 0,
2329
- e.$slots["event.all-day"] ? {
2361
+ a.$slots["event.all-day"] ? {
2330
2362
  name: "event.all-day",
2331
- fn: W((i) => [
2332
- O(e.$slots, "event.all-day", te(ne(i)))
2363
+ fn: I((s) => [
2364
+ j(a.$slots, "event.all-day", te(se(s)))
2333
2365
  ]),
2334
2366
  key: "2"
2335
2367
  } : void 0,
2336
- e.$slots.event ? {
2368
+ a.$slots.event ? {
2337
2369
  name: "event",
2338
- fn: W((i) => [
2339
- O(e.$slots, "event", te(ne(i)))
2370
+ fn: I((s) => [
2371
+ j(a.$slots, "event", te(se(s)))
2340
2372
  ]),
2341
2373
  key: "3"
2342
2374
  } : void 0
2343
2375
  ]), 1024),
2344
2376
  je(ka, null, Ce({ _: 2 }, [
2345
- e.$slots.cell ? {
2377
+ a.$slots.cell ? {
2346
2378
  name: "cell",
2347
- fn: W((i) => [
2348
- O(e.$slots, "cell", te(ne(i)))
2379
+ fn: I((s) => [
2380
+ j(a.$slots, "cell", te(se(s)))
2349
2381
  ]),
2350
2382
  key: "0"
2351
2383
  } : void 0,
2352
- !e.$slots.cell && e.$slots["cell-date"] ? {
2384
+ !a.$slots.cell && a.$slots["cell-date"] ? {
2353
2385
  name: "cell-date",
2354
- fn: W((i) => [
2355
- O(e.$slots, "cell-date", te(ne(i)))
2386
+ fn: I((s) => [
2387
+ j(a.$slots, "cell-date", te(se(s)))
2356
2388
  ]),
2357
2389
  key: "1"
2358
2390
  } : void 0,
2359
- !e.$slots.cell && e.$slots["cell-content"] ? {
2391
+ !a.$slots.cell && a.$slots["cell-content"] ? {
2360
2392
  name: "cell-content",
2361
- fn: W((i) => [
2362
- O(e.$slots, "cell-content", te(ne(i)))
2393
+ fn: I((s) => [
2394
+ j(a.$slots, "cell-content", te(se(s)))
2363
2395
  ]),
2364
2396
  key: "2"
2365
2397
  } : void 0,
2366
- !e.$slots.cell && e.$slots["cell-events"] ? {
2398
+ !a.$slots.cell && a.$slots["cell-events"] ? {
2367
2399
  name: "cell-events",
2368
- fn: W((i) => [
2369
- O(e.$slots, "cell-events", te(ne(i)))
2400
+ fn: I((s) => [
2401
+ j(a.$slots, "cell-events", te(se(s)))
2370
2402
  ]),
2371
2403
  key: "3"
2372
2404
  } : void 0,
2373
- !e.$slots.cell && !e.$slots["cell-events"] && e.$slots["event.all-day"] ? {
2405
+ !a.$slots.cell && !a.$slots["cell-events"] && a.$slots["event.all-day"] ? {
2374
2406
  name: "event.all-day",
2375
- fn: W((i) => [
2376
- O(e.$slots, "event.all-day", te(ne(i)))
2407
+ fn: I((s) => [
2408
+ j(a.$slots, "event.all-day", te(se(s)))
2377
2409
  ]),
2378
2410
  key: "4"
2379
2411
  } : void 0,
2380
- !e.$slots.cell && !e.$slots["cell-events"] && e.$slots[`event.${b(H).id}`] ? {
2381
- name: `event.${b(H).id}`,
2382
- fn: W((i) => [
2383
- O(e.$slots, `event.${b(H).id}`, te(ne(i)))
2412
+ !a.$slots.cell && !a.$slots["cell-events"] && a.$slots[`event.${Y(P).id}`] ? {
2413
+ name: `event.${Y(P).id}`,
2414
+ fn: I((s) => [
2415
+ j(a.$slots, `event.${Y(P).id}`, te(se(s)))
2384
2416
  ]),
2385
2417
  key: "5"
2386
2418
  } : void 0,
2387
- !e.$slots.cell && !e.$slots["cell-events"] && e.$slots.event ? {
2419
+ !a.$slots.cell && !a.$slots["cell-events"] && a.$slots.event ? {
2388
2420
  name: "event",
2389
- fn: W((i) => [
2390
- O(e.$slots, "event", te(ne(i)))
2421
+ fn: I((s) => [
2422
+ j(a.$slots, "event", te(se(s)))
2391
2423
  ]),
2392
2424
  key: "6"
2393
2425
  } : void 0,
2394
- !e.$slots.cell && e.$slots["event-count"] ? {
2426
+ !a.$slots.cell && a.$slots["event-count"] ? {
2395
2427
  name: "event-count",
2396
- fn: W((i) => [
2397
- O(e.$slots, "event-count", te(ne(i)))
2428
+ fn: I((s) => [
2429
+ j(a.$slots, "event-count", te(se(s)))
2398
2430
  ]),
2399
2431
  key: "7"
2400
2432
  } : void 0
@@ -2406,10 +2438,10 @@ const lt = (p, t) => {
2406
2438
  }, 8, ["name"])
2407
2439
  ])
2408
2440
  ], 64))
2409
- ], 14, $a));
2441
+ ], 14, _a));
2410
2442
  }
2411
2443
  }, Sa = (p) => {
2412
- Ne.texts = { ...ge.texts, ...p }, Ne.dateUtils.updateTexts(Ne.texts);
2444
+ Ae.texts = { ...ge.texts, ...p }, Ae.dateUtils.updateTexts(Ae.texts);
2413
2445
  }, {
2414
2446
  addDatePrototypes: Ca,
2415
2447
  removeDatePrototypes: Va,
@@ -2420,12 +2452,12 @@ const lt = (p, t) => {
2420
2452
  subtractHours: Ha,
2421
2453
  addMinutes: Pa,
2422
2454
  subtractMinutes: Fa,
2423
- getWeek: Na,
2424
- isToday: Aa,
2455
+ getWeek: Aa,
2456
+ isToday: Na,
2425
2457
  isSameDate: Ba,
2426
2458
  isInRange: Wa,
2427
- isLeapYear: Ia,
2428
- getPreviousFirstDayOfWeek: Ra,
2459
+ isLeapYear: Ra,
2460
+ getPreviousFirstDayOfWeek: Ia,
2429
2461
  stringToDate: Xa,
2430
2462
  dateToMinutes: Ga,
2431
2463
  countDays: qa,
@@ -2436,7 +2468,7 @@ const lt = (p, t) => {
2436
2468
  formatTime: Qa,
2437
2469
  formatTimeLite: xa,
2438
2470
  formatMinutes: en
2439
- } = Ne.dateUtils;
2471
+ } = Ae.dateUtils;
2440
2472
  export {
2441
2473
  Ea as VueCal,
2442
2474
  Ca as addDatePrototypes,
@@ -2451,12 +2483,12 @@ export {
2451
2483
  en as formatMinutes,
2452
2484
  Qa as formatTime,
2453
2485
  xa as formatTimeLite,
2454
- Ra as getPreviousFirstDayOfWeek,
2455
- Na as getWeek,
2486
+ Ia as getPreviousFirstDayOfWeek,
2487
+ Aa as getWeek,
2456
2488
  Wa as isInRange,
2457
- Ia as isLeapYear,
2489
+ Ra as isLeapYear,
2458
2490
  Ba as isSameDate,
2459
- Aa as isToday,
2491
+ Na as isToday,
2460
2492
  Ua as isValidDate,
2461
2493
  Va as removeDatePrototypes,
2462
2494
  Xa as stringToDate,